OSDN Git Service

PR middle-end/29274
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.target / i386 / pr23575.c
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;
8 static __inline __m128d __attribute__((__always_inline__)) _mm_set1_pd (double __F) {
9   return __extension__ (__m128d){__F, __F};
10 }
11 static __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);
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 }