31 lines
599 B
C
31 lines
599 B
C
/* 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
|