aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/compile/pr108892.c
blob: fb0a258cdbad2dd2e81b571607bedd5993423e9b (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
/* { dg-require-effective-target int32 } */

typedef char __attribute__((__vector_size__ (64))) U;
typedef int __attribute__((__vector_size__ (64))) V;

int g;
U u;

static inline __attribute__((__always_inline__)) void
bar (short a, short b, V w)
{
  V v = __builtin_shufflevector ((V) { }, a % (0 != w), 17, 22, 20, 15,
				 20, 23, 17, 20, 16, 21, 16, 19, 18, 14, 15,
				 14) ^ b;
  g *= __builtin_memcmp_eq (0, 0, 2);
  v |= 6;
  __builtin_ilogb (0);
  u = (U) w + (U) v;
}

void
foo (void)
{
  bar (5, 4, (V){30, 4, 1, 5, 6});
}