/* { dg-do compile } */ /* { dg-options "-O2 -msse2" } */ /* { dg-require-effective-target sse2 } */ typedef int __v4si __attribute__ ((__vector_size__ (16))); typedef float __v4sf __attribute__ ((__vector_size__ (16))); int fooSI_1(__v4si *val) { return __builtin_ia32_vec_ext_v4si(*val, 1); } /* { dg-final { scan-assembler-not "pshufd" } } */ int fooSI_2(__v4si *val) { return __builtin_ia32_vec_ext_v4si(*val, 2); } /* { dg-final { scan-assembler-not "punpckhdq" } } */ float fooSF_2(__v4sf *val) { return __builtin_ia32_vec_ext_v4sf(*val, 2); } /* { dg-final { scan-assembler-not "unpckhps" } } */ float fooSF_3(__v4sf *val) { return __builtin_ia32_vec_ext_v4sf(*val, 3); } /* { dg-final { scan-assembler-not "shufps" } } */