1 /* { dg-do compile } */
2 /* { dg-options "-O2 -msse3 -fno-expensive-optimizations" } */
4 typedef double __m128d
__attribute__ ((__vector_size__ (16)));
11 __attribute__((__noinline__
, __noclone__
)) int chk_pd (double *v1
, double *v2
)
13 return v2
[n
] != v1
[n
];
16 static inline void sse3_test_movddup_reg_subsume_ldsd (double *i1
, double *r
)
18 __m128d t1
= (__m128d
){*i1
, 0};
19 __m128d t2
= __builtin_ia32_shufpd (t1
, t1
, 0);
20 __builtin_ia32_storeupd (r
, t2
);
27 for (; i
< 80; i
+= 1)
30 fail
+= chk_pd (ck
, p2
);
31 sse3_test_movddup_reg_subsume_ldsd (p1
, p2
);