cris: New peephole2 movulsr + test-case.
Combine likes to change a zero-extension / and + shift as seen
in the test-case source to a logical shift followed by an and of
the shifted mask, like:
lsrq 1,r0
and.d 0x7f,r0
This was observed in the hot loop of coremark crcu16 and crcu32,
when doing other changes affecting instruction selection. While
fixable by other means (like instruction costs or combine
patches), I wanted to break this out from those "other means".
The similarity to extant peephole optimizations is not
deliberate.
I noticed some paths to other peephole2 test-cases have changed
due to moves and renaming, so I updated them.
gcc:
* config/cris/cris.md (movulsr): New peephole2.
gcc/testsuite:
* gcc.target/cris/peep2-movulsr.c: New test.