| /* PR debug/41926 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O2 -g -ffast-math -funroll-loops -ftree-vectorize -msse2" { target { i?86-*-* x86_64-*-* } } } */ |
| /* { dg-require-effective-target sse2 { target { i?86-*-* x86_64-*-* } } } */ |
| |
| void |
| foo (double (*__restrict p)[4], double (*__restrict q)[4], |
| double *__restrict prim, double scale, double pp, double pq) |
| { |
| int md, mc, mb, ma, p_index = 0; |
| |
| for (md = 0; md < 1; md++) |
| for (mc = 0; mc < 1; mc++) |
| for (mb = 0; mb < 1; mb++) |
| for (ma = 0; ma < 4; ma++) |
| { |
| double tmp = scale * prim[p_index++]; |
| p[md][ma] = p[md][ma] - tmp * pp; |
| q[mc][ma] = q[mc][ma] - tmp * pq; |
| } |
| } |