/* { dg-do compile } */ /* { dg-options "-O2 -msse2" } */ /* { dg-final { scan-assembler-times "psrlw" 1 } } */ /* { dg-final { scan-assembler-times "psrld" 1 } } */ /* { dg-final { scan-assembler-times "psrlq" 1 { target { ! ia32 } } } } */ #define SHIFTC 12 typedef int v4si __attribute__((vector_size(16))); typedef short v8hi __attribute__((vector_size(16))); typedef long long v2di __attribute__((vector_size(16))); v8hi foo1 (v8hi a) { return (a >> (16 - SHIFTC)) & (__extension__(v8hi){(1<> (32 - SHIFTC)) & (__extension__(v4si){(1<> (long long)(64 - SHIFTC)) & (__extension__(v2di){(1ULL<