]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Remove macro check for __AMX_BF16/INT8/TILE__ in header file.
authorliuhongt <hongtao.liu@intel.com>
Thu, 2 Sep 2021 04:49:46 +0000 (12:49 +0800)
committerliuhongt <hongtao.liu@intel.com>
Fri, 3 Sep 2021 05:04:41 +0000 (13:04 +0800)
gcc/ChangeLog:

PR target/102166
* config/i386/amxbf16intrin.h : Remove macro check for __AMX_BF16__.
* config/i386/amxint8intrin.h : Remove macro check for __AMX_INT8__.
* config/i386/amxtileintrin.h : Remove macro check for __AMX_TILE__.

gcc/testsuite/ChangeLog:

PR target/102166
* g++.target/i386/pr102166.C: New test.

gcc/config/i386/amxbf16intrin.h
gcc/config/i386/amxint8intrin.h
gcc/config/i386/amxtileintrin.h
gcc/testsuite/g++.target/i386/pr102166.C [new file with mode: 0644]

index 8c24cdd50a082c25bd84397bc269d65b4aed015a..1d60e8e609f4ba8badaac6df35b2e28a9cd551b2 100644 (file)
@@ -34,7 +34,7 @@
 #define __DISABLE_AMX_BF16__
 #endif /* __AMX_BF16__ */
 
-#if defined(__x86_64__) && defined(__AMX_BF16__)
+#if defined(__x86_64__)
 #define _tile_dpbf16ps_internal(dst,src1,src2)                                 \
   __asm__ volatile\
   ("{tdpbf16ps\t%%tmm"#src2", %%tmm"#src1", %%tmm"#dst"|tdpbf16ps\t%%tmm"#dst", %%tmm"#src1", %%tmm"#src2"}" ::)
index 180c2436278732a886f904a4a8b5f6331de74ae2..dbb7b6cc5adff2ea16cec8ce194f7b735cdbfdf7 100644 (file)
@@ -34,7 +34,7 @@
 #define __DISABLE_AMX_INT8__
 #endif /* __AMX_INT8__ */
 
-#if defined(__x86_64__) && defined(__AMX_INT8__)
+#if defined(__x86_64__)
 #define _tile_int8_dp_internal(name,dst,src1,src2)                                     \
   __asm__ volatile                                                     \
   ("{"#name"\t%%tmm"#src2", %%tmm"#src1", %%tmm"#dst"|"#name"\t%%tmm"#dst", %%tmm"#src1", %%tmm"#src2"}" ::)
index 16c8b6ef681a5bcf997fe61f1be2fc43415c64e4..75d784ad16031a63d922db711628f68e883ccc86 100644 (file)
@@ -34,7 +34,7 @@
 #define __DISABLE_AMX_TILE__
 #endif /* __AMX_TILE__ */
 
-#if defined(__x86_64__) && defined(__AMX_TILE__)
+#if defined(__x86_64__)
 extern __inline void
 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 _tile_loadconfig (const void *__config)
diff --git a/gcc/testsuite/g++.target/i386/pr102166.C b/gcc/testsuite/g++.target/i386/pr102166.C
new file mode 100644 (file)
index 0000000..751cd2c
--- /dev/null
@@ -0,0 +1,20 @@
+/* PR target/102166 */
+/* { dg-do compile { target { ! ia32 } } } */
+/* { dg-options "-O2 -std=c++14" } */
+
+#include<immintrin.h>
+__attribute__((target("amx-tile"))) void amx()
+{
+  _tile_loadd(0, 0, 0);
+  _tile_release();
+}
+
+__attribute__((target("amx-int8"))) void amxint8()
+{
+  _tile_dpbssd(0, 1, 2);
+}
+
+__attribute__((target("amx-bf16"))) void amxbf16()
+{
+  _tile_dpbf16ps (0, 1, 2);
+}