blob: 36a8080b8a7919046a1541b45c72e2cd931b2fb3 [file] [log] [blame]
/* { dg-do compile { target int128 } } */
/* { dg-require-effective-target dfp } */
/* { dg-options "-O -fcaller-saves -mavx512vl -mno-avx512bw" } */
typedef int __attribute__((__vector_size__ (8))) T;
typedef signed char __attribute__((__vector_size__ (64))) U;
typedef int __attribute__((__vector_size__ (16))) V;
typedef long long __attribute__((__vector_size__ (8))) W;
typedef int __attribute__((__vector_size__ (64))) X;
typedef _Decimal128 __attribute__((__vector_size__ (64))) D;
D d;
T t;
U u;
V v;
W w;
void
foo (void)
{
T t0 = t;
T t1 = (T) __builtin_ia32_palignr (w, (W) { }, 0);
U u1 = __builtin_shufflevector (u, u, 7, 6, 2, 3, 6, 4, 5, 2, 3, 8, 3, 2, 0,
4, 0, 6, 2, 2, 5, 3, 1, 0, 7, 5, 3, 3, 7, 6,
2, 0, 4, 5, 4, 1, 7, 7, 0, 6, 1, 9, 3, 0, 3,
5, 5, 0, 0, 2, 1, 5, 4, 8, 7,
2, 1, 1, 6, 4, 9, 9, 1, 5, 0, 2);
V v1 = v;
d += 0.;
U u0 = u + u + u1 + (U) d;
V v0 = ((X)u0)[0] + v + v;
t = (T) (long) (__int128) v0 + t + t + t1;
}