i386: Adjust rtx cost for imulq and imulw [PR115749]
[official-gcc.git] / gcc / testsuite / gcc.dg / vect / pr107160.c
blobf5883ac0ec3df9c708f913fc16d7a54cf06be82d
1 #include <math.h>
3 #define N 128
4 float fl[N];
6 __attribute__ ((noipa)) void
7 init ()
9 for (int i = 0; i < N; i++)
10 fl[i] = i;
13 __attribute__ ((noipa)) float
14 foo (int n1)
16 float sum0, sum1, sum2, sum3;
17 sum0 = sum1 = sum2 = sum3 = 0.0f;
19 int n = (n1 / 4) * 4;
20 for (int i = 0; i < n; i += 4)
22 sum0 += fabs (fl[i]);
23 sum1 += fabs (fl[i + 1]);
24 sum2 += fabs (fl[i + 2]);
25 sum3 += fabs (fl[i + 3]);
28 return sum0 + sum1 + sum2 + sum3;
31 int
32 main ()
34 init ();
35 float res = foo (80);
36 if (res != 3160)
37 __builtin_abort ();
38 return 0;