From 183db4fb73a64bc4641604c30cdbbd9d9e8a6ed6 Mon Sep 17 00:00:00 2001 From: liuhongt <hongtao.liu@intel.com> Date: Thu, 17 Nov 2022 16:19:31 +0800 Subject: [PATCH] define builtins for "shared" avxneconvert-avx512bf16vl builtins. This should fix incorrect error when call those builtin with -mavxneconvert and w/o -mavx512bf16 -mavx512vl. gcc/ChangeLog: * config/i386/i386-builtins.cc (def_builtin): Handle "shared" avx512bf16vl-avxneconvert builtins. gcc/testsuite/ChangeLog: * gcc.target/i386/avxneconvert-1.c: New test. --- gcc/config/i386/i386-builtins.cc | 2 ++ gcc/testsuite/gcc.target/i386/avxneconvert-1.c | 11 +++++++++++ 2 files changed, 13 insertions(+) create mode 100644 gcc/testsuite/gcc.target/i386/avxneconvert-1.c diff --git a/gcc/config/i386/i386-builtins.cc b/gcc/config/i386/i386-builtins.cc index 9412cf1acc86..eacdf072244e 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 000000000000..2bb129c3f724 --- /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); +} -- GitLab