Viewing file: avx512vl-pr96246-1.C (1.17 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* PR target/96246 */ /* { dg-do compile } */ /* { dg-options "-O2 -std=c++14 -mavx512bw -mavx512vl" } */ /* { dg-require-effective-target c99_runtime } */ /* { dg-final { scan-assembler-times "vpblendm\[bwdq\]\[\t \]" 6 } } */ /* { dg-final { scan-assembler-times "vblendmp\[sd\]\[\t \]" 3 } } */
typedef char v16qi __attribute__ ((vector_size (16))); typedef char v32qi __attribute__ ((vector_size (32))); typedef char v16hi __attribute__ ((vector_size (32))); typedef int v4si __attribute__((vector_size (16))); typedef int v8si __attribute__((vector_size (32))); typedef long long v4di __attribute__((vector_size (32))); typedef float v4sf __attribute__((vector_size (16))); typedef float v8sf __attribute__((vector_size (32))); typedef double v4df __attribute__((vector_size (32)));
#define COMPILE_TEST(vtype, num) \ vtype \ __attribute__ ((noipa)) \ foo_##vtype (vtype a, vtype b, vtype c, vtype d) \ { \ return a > b ? c : d; \ }
COMPILE_TEST (v16qi, 16); COMPILE_TEST (v32qi, 32); COMPILE_TEST (v16hi, 16); COMPILE_TEST (v4si, 4); COMPILE_TEST (v8si, 8); COMPILE_TEST (v4sf, 4); COMPILE_TEST (v8sf, 8); COMPILE_TEST (v4di, 4); COMPILE_TEST (v4df, 4);
|