| /* { dg-do assemble } */ | |
| /* { dg-options "-O2 -save-temps" } */ | |
| void | |
| foo (unsigned short u) | |
| { | |
| volatile unsigned short u2 = u << 5; | |
| } | |
| void | |
| foo2 (short s) | |
| { | |
| volatile unsigned short s2 = s << 5; | |
| } | |
| void | |
| foo3 (unsigned short u) | |
| { | |
| volatile unsigned short u2 = u >> 5; | |
| } | |
| void | |
| foo4 (signed short s) | |
| { | |
| volatile signed short s2 = s >> 5; | |
| } | |
| /* { dg-final { scan-assembler-times "(?n)shl\\.b16.*%r" 2 } } */ | |
| /* { dg-final { scan-assembler "(?n)shr\\.u16.*%r" } } */ | |
| /* { dg-final { scan-assembler "(?n)shr\\.s16.*%r" } } */ |