aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/i386/pr85193.c
blob: 98e3dafc7ae50e8bcdf06fce8b3f2a516bbbbe26 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* { dg-do compile } */
/* { dg-options "-Wno-psabi -O2 -fno-tree-ccp -fno-tree-fre -mno-sse" } */

typedef unsigned char U __attribute__((vector_size(16)));
typedef unsigned int V __attribute__((vector_size(16)));
typedef unsigned long long W __attribute__((vector_size(16)));

extern void bar(U, U);

V v;

void
foo(U f)
{
  f[0] = f[0] << (unsigned char)~v[0] | f[~((W)(U){0, 0, 0, 0, 0, 0, 0, 0, 5})[1] & 5] >> (-(unsigned char)~v[0] & 7);
  bar(f, (U){});
}