diff --git a/gcc/config/i386/i386-builtins.cc b/gcc/config/i386/i386-builtins.cc index 9412cf1acc86f3edc162ed742b2cbd9c243b7398..eacdf072244e00373391999276fe21ea1d31f4ac 100644 --- a/gcc/config/i386/i386-builtins.cc +++ b/gcc/config/i386/i386-builtins.cc @@ -285,6 +285,8 @@ def_builtin (HOST_WIDE_INT mask, HOST_WIDE_INT mask2, avx512vl exist. */ || (mask2 == OPTION_MASK_ISA2_AVXVNNI) || (mask2 == OPTION_MASK_ISA2_AVXIFMA) + || (mask2 == (OPTION_MASK_ISA2_AVXNECONVERT + | OPTION_MASK_ISA2_AVX512BF16)) || (lang_hooks.builtin_function == lang_hooks.builtin_function_ext_scope)) { diff --git a/gcc/testsuite/gcc.target/i386/avxneconvert-1.c b/gcc/testsuite/gcc.target/i386/avxneconvert-1.c new file mode 100644 index 0000000000000000000000000000000000000000..2bb129c3f724f8f8a928ba230980f783faa2782d --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/avxneconvert-1.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-options "-mavxneconvert -O2" } */ + +typedef float v8sf __attribute__((vector_size(32))); +typedef __bf16 v8bf __attribute__((vector_size(16))); + +v8bf +foo (v8sf a) +{ + return __builtin_ia32_cvtneps2bf16_v8sf (a); +}