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

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 /* PR tree-optimization/85467 */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 /* { dg-do compile } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3 /* { dg-options "-O2 -fno-tree-ccp" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 #define TEST(N, T) \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 typedef T V##N __attribute__ ((__vector_size__ (sizeof (T)))); \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 V##N \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 bar##N (V##N u, V##N v) \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 { \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 do \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 v *= (T)((V##N){}[0] ? u[v[0]] : 0); \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 while ((V##N){}[0]); \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 return v; \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 } \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 void \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 foo##N (void) \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 { \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 bar##N ((V##N){}, (V##N){}); \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 TEST (1, char)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 TEST (2, short)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 TEST (3, int)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 TEST (4, long)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 TEST (5, long long)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 #ifdef __SIZEOF_INT128__
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 TEST (6, __int128)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 #endif