1 /* { dg-do compile } */ 2 /* { dg-options "-msse2 -O2" } */ 3 4 /* We used to ICE because of a bogous pattern. */ 5 6 typedef double __v2df __attribute__ ((__vector_size__ (16))); 7 typedef __v2df __m128d; _mm_set1_pd(double __F)8static __inline __m128d __attribute__((__always_inline__)) _mm_set1_pd (double __F) { 9 return __extension__ (__m128d){__F, __F}; 10 } _mm_move_sd(__m128d __A,__m128d __B)11static __inline __m128d __attribute__((__always_inline__)) _mm_move_sd (__m128d __A, __m128d __B) { 12 return (__m128d) __builtin_ia32_movsd ((__v2df)__A, (__v2df)__B); 13 } 14 void g(__m128d b); cross(__m128d tmp9)15__m128d cross(__m128d tmp9) 16 { 17 __m128d t1 = _mm_set1_pd(1.0); 18 __m128d tmp10 = _mm_move_sd(t1, tmp9); 19 return tmp10; 20 } 21