summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/pr85467.c
blob: fad94fcd83ee03ef80e822888bf1f5227582eda4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* 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