1 /* { dg-do assemble } */
2 /* { dg-options "-O2 -save-temps" } */
3
4 void
5 foo (unsigned short u)
6 {
7 volatile unsigned short u2 = u << 5;
8 }
9
10 void
11 foo2 (short s)
12 {
13 volatile unsigned short s2 = s << 5;
14 }
15
16 void
17 foo3 (unsigned short u)
18 {
19 volatile unsigned short u2 = u >> 5;
20 }
21
22 void
23 foo4 (signed short s)
24 {
25 volatile signed short s2 = s >> 5;
26 }
27
28 /* { dg-final { scan-assembler-times "(?n)shl\\.b16.*%r" 2 } } */
29 /* { dg-final { scan-assembler "(?n)shr\\.u16.*%r" } } */
30 /* { dg-final { scan-assembler "(?n)shr\\.s16.*%r" } } */