annotate gcc/testsuite/gcc.dg/vect/pr65518.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children 84e7813d76e9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 #include "tree-vect.h"
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 extern void abort (void);
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 typedef struct giga
kono
parents:
diff changeset
6 {
kono
parents:
diff changeset
7 unsigned int g[16];
kono
parents:
diff changeset
8 } giga;
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 unsigned long __attribute__((noinline,noclone))
kono
parents:
diff changeset
11 addfst(giga const *gptr, int num)
kono
parents:
diff changeset
12 {
kono
parents:
diff changeset
13 unsigned int retval = 0;
kono
parents:
diff changeset
14 int i;
kono
parents:
diff changeset
15 for (i = 0; i < num; i++)
kono
parents:
diff changeset
16 retval += gptr[i].g[0];
kono
parents:
diff changeset
17 return retval;
kono
parents:
diff changeset
18 }
kono
parents:
diff changeset
19
kono
parents:
diff changeset
20 int main ()
kono
parents:
diff changeset
21 {
kono
parents:
diff changeset
22 struct giga g[8];
kono
parents:
diff changeset
23 unsigned int n = 1;
kono
parents:
diff changeset
24 int i, j;
kono
parents:
diff changeset
25 check_vect ();
kono
parents:
diff changeset
26 for (i = 0; i < 8; ++i)
kono
parents:
diff changeset
27 for (j = 0; j < 16; ++j)
kono
parents:
diff changeset
28 {
kono
parents:
diff changeset
29 g[i].g[j] = n++;
kono
parents:
diff changeset
30 __asm__ volatile ("");
kono
parents:
diff changeset
31 }
kono
parents:
diff changeset
32 if (addfst (g, 8) != 456)
kono
parents:
diff changeset
33 abort ();
kono
parents:
diff changeset
34 return 0;
kono
parents:
diff changeset
35 }
kono
parents:
diff changeset
36
kono
parents:
diff changeset
37 /* We don't want to vectorize the single-element interleaving in the way
kono
parents:
diff changeset
38 we currently do that (without ignoring not needed vectors in the
kono
parents:
diff changeset
39 gap between gptr[0].g[0] and gptr[1].g[0]), because that's very
kono
parents:
diff changeset
40 sub-optimal and causes memory explosion (even though the cost model
kono
parents:
diff changeset
41 should reject that in the end). */
kono
parents:
diff changeset
42
kono
parents:
diff changeset
43 /* { dg-final { scan-tree-dump-times "vectorized 0 loops in function" 2 "vect" } } */