]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
define builtins for "shared" avxneconvert-avx512bf16vl builtins.
authorliuhongt <hongtao.liu@intel.com>
Thu, 17 Nov 2022 08:19:31 +0000 (16:19 +0800)
committerliuhongt <hongtao.liu@intel.com>
Mon, 21 Nov 2022 01:05:38 +0000 (09:05 +0800)
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
gcc/testsuite/gcc.target/i386/avxneconvert-1.c [new file with mode: 0644]

index 9412cf1acc86f3edc162ed742b2cbd9c243b7398..eacdf072244e00373391999276fe21ea1d31f4ac 100644 (file)
@@ -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 (file)
index 0000000..2bb129c
--- /dev/null
@@ -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);
+}