| /* PR target/82260 */ |
| /* { dg-do compile { target lp64 } } */ |
| /* { dg-options "-Os -mtune=generic -masm=att -mno-bmi2" } */ |
| /* movl %esi, %ecx is shorter than movb %sil, %cl. While |
| movl %edx, %ecx is the same size as movb %dl, %cl and |
| movl %r8d, %ecx is the same size as movb %r8b, %cl, movl |
| is faster on contemporary CPUs. */ |
| /* { dg-final { scan-assembler-not {\mmovb\M} } } */ |
| |
| int |
| foo (int x, int c) |
| { |
| return x >> c; |
| } |
| |
| int |
| bar (int x, int y, int z) |
| { |
| return x >> z; |
| } |
| |
| int |
| baz (int x, int y, int z, int u, int v) |
| { |
| return x >> v; |
| } |