annotate gcc/testsuite/gcc.dg/vect/pr48172.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
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 *memset(void *s, int c, __SIZE_TYPE__ n);
kono
parents:
diff changeset
4 extern void abort (void);
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 #define ASIZE 1028
kono
parents:
diff changeset
7 #define HALF (ASIZE/2)
kono
parents:
diff changeset
8
kono
parents:
diff changeset
9 int main() {
kono
parents:
diff changeset
10 unsigned int array[ASIZE];
kono
parents:
diff changeset
11 int i;
kono
parents:
diff changeset
12
kono
parents:
diff changeset
13 check_vect ();
kono
parents:
diff changeset
14
kono
parents:
diff changeset
15 memset(array, 0, sizeof(array));
kono
parents:
diff changeset
16
kono
parents:
diff changeset
17 /* initialize first half of the array */
kono
parents:
diff changeset
18 for (i = 0; i < HALF; i++)
kono
parents:
diff changeset
19 array[i] = i;
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 /* fill second half of array in by summing earlier elements of the array
kono
parents:
diff changeset
22 gcc 4.5.1 and 4.5.2 incorrectly vectorize this loop! aray[1025] is left
kono
parents:
diff changeset
23 at 0 for ASIZE=1028 */
kono
parents:
diff changeset
24 for (i = 0; i < HALF-1; i++)
kono
parents:
diff changeset
25 array[HALF+i] = array[2*i] + array[2*i + 1];
kono
parents:
diff changeset
26
kono
parents:
diff changeset
27 /* see if we have any failures */
kono
parents:
diff changeset
28 for (i = 0; i < HALF - 1; i++)
kono
parents:
diff changeset
29 if (array[HALF+i] != array[2*i] + array[2*i + 1])
kono
parents:
diff changeset
30 abort ();
kono
parents:
diff changeset
31
kono
parents:
diff changeset
32 return 0;
kono
parents:
diff changeset
33 }
kono
parents:
diff changeset
34