/* PR middle-end/87138 */ /* { dg-do run { target int128 } } */ /* { dg-options "-O -fno-tree-fre -mavx512bw -mtune=k8" } */ /* { dg-require-effective-target avx512bw } */ #include "avx512bw-check.h" typedef int U __attribute__ ((vector_size (64))); typedef __int128 V __attribute__ ((vector_size (64))); V g, i; static inline void foo (unsigned h, V j, U k, V n) { k /= h; __builtin_memmove (&h, &n, 1); n[j[1]] *= 0x7FFFFFFFFFFFFFFF; j[k[5]] = 0; g = n; i = h + j + n; } void avx512bw_test () { foo (~0, (V) { }, (U) { 5 }, (V) { 3 }); if (g[0] != (__int128) 3 * 0x7FFFFFFFFFFFFFFF) abort (); }