aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorliuhongt <hongtao.liu@intel.com>2022-11-17 16:19:31 +0800
committerliuhongt <hongtao.liu@intel.com>2022-11-21 09:05:38 +0800
commit183db4fb73a64bc4641604c30cdbbd9d9e8a6ed6 (patch)
tree0a769ce745ae20f457f132f0316e26cfa38462a1 /gcc
parentfb98ede8ca007d5f7c1d3208f22b3094e2802702 (diff)
downloadgcc-183db4fb73a64bc4641604c30cdbbd9d9e8a6ed6.zip
gcc-183db4fb73a64bc4641604c30cdbbd9d9e8a6ed6.tar.gz
gcc-183db4fb73a64bc4641604c30cdbbd9d9e8a6ed6.tar.bz2
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/i386/i386-builtins.cc2
-rw-r--r--gcc/testsuite/gcc.target/i386/avxneconvert-1.c11
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/config/i386/i386-builtins.cc b/gcc/config/i386/i386-builtins.cc
index 9412cf1..eacdf07 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 0000000..2bb129c
--- /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);
+}