32 lines
692 B
C
32 lines
692 B
C
/* { dg-do compile */
|
|
/* { dg-options "-O2 -mno-fused-madd -ftree-vectorize" } */
|
|
/* { dg-final { scan-assembler "fpmpy" } } */
|
|
|
|
/* fpma and fpms will show in either way because there are no
|
|
specific vector add/sub instructions. So we just check for fpmpy. */
|
|
|
|
#define N 16
|
|
extern bar(float *, float *, float *, float *);
|
|
void foo()
|
|
{
|
|
int i;
|
|
float a[N], b[N], c[N], d[N];
|
|
bar(a,b,c,d);
|
|
for (i = 0; i < N; i++) {
|
|
a[i] = b[i] + c[i] * d[i];
|
|
}
|
|
bar(a,b,c,d);
|
|
for (i = 0; i < N; i++) {
|
|
a[i] = b[i] - c[i] * d[i];
|
|
}
|
|
bar(a,b,c,d);
|
|
for (i = 0; i < N; i++) {
|
|
a[i] = b[i] * c[i] + d[i];
|
|
}
|
|
bar(a,b,c,d);
|
|
for (i = 0; i < N; i++) {
|
|
a[i] = b[i] * c[i] - d[i];
|
|
}
|
|
bar(a,b,c,d);
|
|
}
|