* gcc.target/i386/pr70021.c: Add -mtune=skylake.
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / pr55829.c
blobbe70ba2f24f91ba4d2b0ac4b108f27acb446996c
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -msse3 -fno-expensive-optimizations" } */
4 typedef double __m128d __attribute__ ((__vector_size__ (16)));
6 extern double p1[];
7 extern double p2[];
8 extern double ck[];
9 extern int n;
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);
23 int sse3_test (void)
25 int i = 0;
26 int fail = 0;
27 for (; i < 80; i += 1)
29 ck[0] = p1[0];
30 fail += chk_pd (ck, p2);
31 sse3_test_movddup_reg_subsume_ldsd (p1, p2);
33 return fail;