/* { 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" } } */ |