/* PR tree-optimization/85467 */ | |
/* { dg-do compile } */ | |
/* { dg-options "-O2 -fno-tree-ccp" } */ | |
#define TEST(N, T) \ | |
typedef T V##N __attribute__ ((__vector_size__ (sizeof (T)))); \ | |
\ | |
V##N \ | |
bar##N (V##N u, V##N v) \ | |
{ \ | |
do \ | |
v *= (T)((V##N){}[0] ? u[v[0]] : 0); \ | |
while ((V##N){}[0]); \ | |
return v; \ | |
} \ | |
\ | |
void \ | |
foo##N (void) \ | |
{ \ | |
bar##N ((V##N){}, (V##N){}); \ | |
} | |
TEST (1, char) | |
TEST (2, short) | |
TEST (3, int) | |
TEST (4, long) | |
TEST (5, long long) | |
#ifdef __SIZEOF_INT128__ | |
TEST (6, __int128) | |
#endif |