aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/i386/pr94942.c
blob: b20f7a62e91c5e177bac9dce75686b7cbeb34380 (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
/* PR target/94942 */
/* { dg-do compile } */
/* { dg-options "-O -flive-range-shrinkage -ftree-vrp -mavx512vl -mno-avx512bw -Wno-div-by-zero" } */

typedef unsigned __attribute__((__vector_size__(8))) U;
typedef short __attribute__((__vector_size__(8))) V;
typedef char __attribute__((__vector_size__(16))) W;
typedef int __attribute__((__vector_size__(16))) Z;
int i, j, n, o;
W k;
Z l;
char m;

U
foo (U q, long long r, V s)
{
  Z t = (i & i - (Z){10} & 4) - (0 != j);
  Z u = o * (j * l);
  s -= (char)__builtin_clrsbll (n);
  W v = (k | k >> m + (W){4}) % 0;
  W w = v + (W)t + (W)u;
  U x = ((union { W a; U b; })w).b + q + (U)s + (U)r;
  return x;
}