1/* { dg-do compile } */ 2/* { dg-options "-O2 -msse2" } */ 3/* { dg-require-effective-target sse2 } */ 4 5typedef int __v4si __attribute__ ((__vector_size__ (16))); 6typedef float __v4sf __attribute__ ((__vector_size__ (16))); 7 8int fooSI_1(__v4si *val) 9{ 10 return __builtin_ia32_vec_ext_v4si(*val, 1); 11} 12/* { dg-final { scan-assembler-not "pshufd" } } */ 13 14int fooSI_2(__v4si *val) 15{ 16 return __builtin_ia32_vec_ext_v4si(*val, 2); 17} 18/* { dg-final { scan-assembler-not "punpckhdq" } } */ 19 20float fooSF_2(__v4sf *val) 21{ 22 return __builtin_ia32_vec_ext_v4sf(*val, 2); 23} 24/* { dg-final { scan-assembler-not "unpckhps" } } */ 25 26float fooSF_3(__v4sf *val) 27{ 28 return __builtin_ia32_vec_ext_v4sf(*val, 3); 29} 30/* { dg-final { scan-assembler-not "shufps" } } */ 31