2 // { dg-options "-O -fopenmp -ftree-loop-if-convert -fno-ssa-phiopt" }
4 #pragma omp declare simd simdlen(4) notinbranch
5 __attribute__((noinline)) int
6 foo (double c1, double c2)
8 double z1 = c1, z2 = c2;
11 for (i = 0; i < 5; i++)
13 res = (z1 * z1 + z2 * z2 > 4.0) ? (i < res ? i : res) : res;
14 z1 = c1 + z1 * z1 - z2 * z2;
15 z2 = c2 + 2.0 * z1 * z2;
22 __attribute__((noinline, noclone)) void
23 bar (double *x, double *y)
25 asm volatile ("" : : "rm" (x), "rm" (y) : "memory");
32 double c[4] = { 0.0, 1.0, 0.0, 1.0 };
33 double d[4] = { 0.0, 1.0, 2.0, 0.0 };
36 #pragma omp simd safelen(4)
37 for (i = 0; i < 4; i++)
38 e[i] = foo (c[i], d[i]);
39 if (e[0] != 3 || e[1] != 1 || e[2] != 1 || e[3] != 2)