bb-slp-pr65935.c: Remove explicit "dg-do run".
[gcc.git] / gcc / testsuite / gcc.dg / vect / pr65518.c
1 extern void abort (void);
2
3 typedef struct giga
4 {
5 unsigned int g[16];
6 } giga;
7
8 unsigned long __attribute__((noinline,noclone))
9 addfst(giga const *gptr, int num)
10 {
11 unsigned int retval = 0;
12 int i;
13 for (i = 0; i < num; i++)
14 retval += gptr[i].g[0];
15 return retval;
16 }
17
18 int main ()
19 {
20 struct giga g[8];
21 unsigned int n = 1;
22 int i, j;
23 for (i = 0; i < 8; ++i)
24 for (j = 0; j < 16; ++j)
25 {
26 g[i].g[j] = n++;
27 __asm__ volatile ("");
28 }
29 if (addfst (g, 8) != 456)
30 abort ();
31 return 0;
32 }
33
34 /* We don't want to vectorize the single-element interleaving in the way
35 we currently do that (without ignoring not needed vectors in the
36 gap between gptr[0].g[0] and gptr[1].g[0]), because that's very
37 sub-optimal and causes memory explosion (even though the cost model
38 should reject that in the end). */
39
40 /* { dg-final { scan-tree-dump-times "vectorized 0 loops in function" 2 "vect" } } */
41 /* { dg-final { cleanup-tree-dump "vect" } } */