libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / vect / vect-126.c
blob02d1f1e1970622eca4d6cdc4c128c23e5efbf196
1 /* PR tree-optimization/66718 */
2 /* { dg-do compile } */
3 /* { dg-additional-options "-fdump-tree-optimized-details-blocks" } */
5 int *a[1024], b[1024];
6 struct S { int u, v, w, x; };
7 struct S c[1024];
8 int d[1024][10];
10 void
11 f0 (void)
13 for (int i = 0; i < 1024; i++)
14 a[i] = &b[0];
17 void
18 f1 (void)
20 for (int i = 0; i < 1024; i++)
22 int *p = &b[0];
23 a[i] = p + i;
27 void
28 f2 (int *p)
30 for (int i = 0; i < 1024; i++)
31 a[i] = &p[i];
34 void
35 f3 (void)
37 for (int i = 0; i < 1024; i++)
38 a[i] = &b[i];
41 void
42 f4 (void)
44 int *p = &c[0].v;
45 for (int i = 0; i < 1024; i++)
46 a[i] = &p[4 * i];
49 void
50 f5 (void)
52 for (int i = 0; i < 1024; i++)
53 a[i] = &c[i].v;
56 void
57 f6 (void)
59 for (int i = 0; i < 1024; i++)
60 for (unsigned int j = 0; j < 10; j++)
61 a[i] = &d[i][j];
64 /* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 7 "vect" { target { i?86-*-* x86_64-*-* } } } } */
65 /* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */