2 /* { dg-do compile } */
3 /* { dg-options "-O2 -g -ffast-math -funroll-loops -ftree-vectorize -msse2" { target { i?86-*-* x86_64-*-* } } } */
4 /* { dg-require-effective-target sse2 { target { i?86-*-* x86_64-*-* } } } */
7 foo (double (*__restrict p)[4], double (*__restrict q)[4],
8 double *__restrict prim, double scale, double pp, double pq)
10 int md, mc, mb, ma, p_index = 0;
12 for (md = 0; md < 1; md++)
13 for (mc = 0; mc < 1; mc++)
14 for (mb = 0; mb < 1; mb++)
15 for (ma = 0; ma < 4; ma++)
17 double tmp = scale * prim[p_index++];
18 p[md][ma] = p[md][ma] - tmp * pp;
19 q[mc][ma] = q[mc][ma] - tmp * pq;