aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/match.c
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2020-07-06 02:04:48 +0200
committerHans-Peter Nilsson <hp@axis.com>2020-07-06 02:38:53 +0200
commitcf2bfc7c8013b7fc72ec5f104156fce736c2b3e1 (patch)
tree323b9532fb34772c52e7ef90070a1792d69136b3 /gcc/fortran/match.c
parent1e98f060280b48328e9e7f5912d63d52c3ed6814 (diff)
downloadgcc-cf2bfc7c8013b7fc72ec5f104156fce736c2b3e1.zip
gcc-cf2bfc7c8013b7fc72ec5f104156fce736c2b3e1.tar.gz
gcc-cf2bfc7c8013b7fc72ec5f104156fce736c2b3e1.tar.bz2
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.
Diffstat (limited to 'gcc/fortran/match.c')
0 files changed, 0 insertions, 0 deletions