1 /* { dg-do run } */ 2 /* { dg-options "-O2 -fno-inline --save-temps" } */ 3 4 extern void abort (void); 5 6 typedef float float32x2_t __attribute__ ((__vector_size__ ((8)))); 7 typedef unsigned int uint32x2_t __attribute__ ((__vector_size__ ((8)))); 8 9 float32x2_t test_dup_1(float32x2_t in)10test_dup_1 (float32x2_t in) 11 { 12 return __builtin_shuffle (in, (uint32x2_t) {1, 1}); 13 } 14 15 int main(int argc,char ** argv)16main (int argc, char **argv) 17 { 18 float32x2_t test = {2.718, 3.141}; 19 float32x2_t res = test_dup_1 (test); 20 if (res[0] != test[1] || res[1] != test[1]) 21 abort (); 22 return 0; 23 } 24 25 /* { dg-final { scan-assembler-times "\[ \t\]*dup\[ \t\]+v\[0-9\]+\.2s, ?v\[0-9\]+\.s\\\[\[01\]\\\]" 1 } } */ 26 /* { dg-final { scan-assembler-not "zip" } } */ 27 28