libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / vect / vect-119.c
blob028804ae21700027f516ead722e54357be1ed001
1 /* Disabling epilogues until we find a better way to deal with scans. */
2 /* { dg-additional-options "--param vect-epilogues-nomask=0 -fdump-tree-optimized-details-blocks" } */
3 /* { dg-do compile } */
4 /* { dg-require-effective-target vect_int } */
6 #define OUTER 32
7 #define INNER 40
9 static unsigned int
10 bar (const unsigned int x[INNER][2], unsigned int sum)
12 int i;
14 for (i = 0; i < INNER; i++)
15 sum += x[i][0] * x[i][0] + x[i][1] * x[i][1];
16 return sum;
19 unsigned int foo (const unsigned int x[OUTER][INNER][2])
21 int i;
22 unsigned int sum;
24 sum = 0.0f;
25 for (i = 0; i < OUTER; i++)
26 sum = bar (x[i], sum);
27 return sum;
30 /* { dg-final { scan-tree-dump-times "Detected interleaving load of size 2" 1 "vect" } } */
31 /* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */