/* { dg-do compile } */ /* { dg-options "-mavx512vl -O2" } */ /* { dg-final { scan-assembler-not "%k\[0-7\]" } } */ typedef float v4sf __attribute__ ((vector_size (16))); typedef float v8sf __attribute__ ((vector_size (32))); typedef double v2df __attribute__ ((vector_size (16))); typedef double v4df __attribute__ ((vector_size (32))); #define FOO(VTYPE, OPNAME, OP) \ VTYPE \ foo_##VTYPE##_##OPNAME (VTYPE a, VTYPE b) \ { \ return a OP b; \ } \ FOO (v4sf, eq, ==) FOO (v4sf, neq, !=) FOO (v4sf, gt, >) FOO (v4sf, ge, >=) FOO (v4sf, lt, <) FOO (v4sf, le, <=) FOO (v8sf, eq, ==) FOO (v8sf, neq, !=) FOO (v8sf, gt, >) FOO (v8sf, ge, >=) FOO (v8sf, lt, <) FOO (v8sf, le, <=) FOO (v2df, eq, ==) FOO (v2df, neq, !=) FOO (v2df, gt, >) FOO (v2df, ge, >=) FOO (v2df, lt, <) FOO (v2df, le, <=) FOO (v4df, eq, ==) FOO (v4df, neq, !=) FOO (v4df, gt, >) FOO (v4df, ge, >=) FOO (v4df, lt, <) FOO (v4df, le, <=)