| /* Tests to check if mov instructions are emitted efficiently. */ |
| /* { dg-require-effective-target codedensity } */ |
| /* { dg-options "-Os" } */ |
| |
| int rule1 (void) |
| { |
| return 0x3f000000; |
| } |
| |
| int rule2 (void) |
| { |
| return 0x3f00; |
| } |
| |
| int rule3 (void) |
| { |
| return 0x3f0000; |
| } |
| |
| int rule4 (void) |
| { |
| return 0x22000; |
| } |
| |
| int rule5 (void) |
| { |
| return 0x8000001f; |
| } |
| |
| int rule6 (void) |
| { |
| return 0x3fffff; |
| } |
| |
| /* { dg-final { scan-assembler "ror8\\s+r0,63" } } */ |
| /* { dg-final { scan-assembler "lsl8\\s+r0,63" } } */ |
| /* { dg-final { scan-assembler "lsl16\\s+r0,63" } } */ |
| /* { dg-final { scan-assembler "ror\\s+r0,63" } } */ |
| /* { dg-final { scan-assembler "mov_s\\s+r0,17" } } */ |
| /* { dg-final { scan-assembler "asl_s\\s+r0,r0,13" } } */ |
| /* { dg-final { scan-assembler "mov_s\\s+r0,-1" } } */ |
| /* { dg-final { scan-assembler "bmsk_s\\s+r0,r0,21" } } */ |