blob: d899cebd0d66d3cf2a178f095d2c635a87043597 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
/* { dg-final { scan-assembler-not "%k\[0-7\]" } } */
typedef char v16qi __attribute__ ((vector_size (16)));
typedef char v32qi __attribute__ ((vector_size (32)));
typedef short v8hi __attribute__ ((vector_size (16)));
typedef short v16hi __attribute__ ((vector_size (32)));
typedef int v4si __attribute__ ((vector_size (16)));
typedef int v8si __attribute__ ((vector_size (32)));
typedef long long v2di __attribute__ ((vector_size (16)));
typedef long long v4di __attribute__ ((vector_size (32)));
#define FOO(VTYPE, OPNAME, OP) \
VTYPE \
foo_##VTYPE##_##OPNAME (VTYPE a, VTYPE b) \
{ \
return a OP b; \
} \
#define FOO1(VTYPE, OPNAME, OP) \
VTYPE \
foo1_##VTYPE##_##OPNAME (VTYPE a, VTYPE b) \
{ \
return ~(a OP b); \
} \
FOO (v16qi, eq, ==)
FOO1 (v16qi, neq, !=)
FOO (v16qi, gt, >)
FOO (v16qi, lt, <)
FOO1 (v16qi, le, <=)
FOO1 (v16qi, ge, >=)
FOO (v32qi, eq, ==)
FOO1 (v32qi, neq, !=)
FOO (v32qi, gt, >)
FOO (v32qi, lt, <)
FOO1 (v32qi, le, <=)
FOO1 (v32qi, ge, >=)
FOO (v8hi, eq, ==)
FOO1 (v8hi, neq, !=)
FOO (v8hi, gt, >)
FOO (v8hi, lt, <)
FOO1 (v8hi, le, <=)
FOO1 (v8hi, ge, >=)
FOO (v16hi, eq, ==)
FOO1 (v16hi, neq, !=)
FOO (v16hi, gt, >)
FOO (v16hi, lt, <)
FOO1 (v16hi, le, <=)
FOO1 (v16hi, ge, >=)
FOO (v4si, eq, ==)
FOO1 (v4si, neq, !=)
FOO (v4si, gt, >)
FOO (v4si, lt, <)
FOO1 (v4si, le, <=)
FOO1 (v4si, ge, >=)
FOO (v8si, eq, ==)
FOO1 (v8si, neq, !=)
FOO (v8si, gt, >)
FOO (v8si, lt, <)
FOO1 (v8si, le, <=)
FOO1 (v8si, ge, >=)
FOO (v2di, eq, ==)
FOO1 (v2di, neq, !=)
FOO (v2di, gt, >)
FOO (v2di, lt, <)
FOO1 (v2di, le, <=)
FOO1 (v2di, ge, >=)
FOO (v4di, eq, ==)
FOO1 (v4di, neq, !=)
FOO (v4di, gt, >)
FOO (v4di, lt, >)
FOO1 (v4di, le, <=)
FOO1 (v4di, ge, >=)