aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorliuhongt <hongtao.liu@intel.com>2021-09-02 12:49:46 +0800
committerliuhongt <hongtao.liu@intel.com>2021-09-03 13:04:41 +0800
commitde6795bbf58c7085933a1f86a88d8193ea72e26b (patch)
treebfa2743cb55f8bf4f095283bfdb97df718a30fcb /gcc
parent9f7c2bad52e51ec88a71c0d50826bfa2e6f44b15 (diff)
downloadgcc-de6795bbf58c7085933a1f86a88d8193ea72e26b.zip
gcc-de6795bbf58c7085933a1f86a88d8193ea72e26b.tar.gz
gcc-de6795bbf58c7085933a1f86a88d8193ea72e26b.tar.bz2
Remove macro check for __AMX_BF16/INT8/TILE__ in header file.
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/i386/amxbf16intrin.h2
-rw-r--r--gcc/config/i386/amxint8intrin.h2
-rw-r--r--gcc/config/i386/amxtileintrin.h2
-rw-r--r--gcc/testsuite/g++.target/i386/pr102166.C20
4 files changed, 23 insertions, 3 deletions
diff --git a/gcc/config/i386/amxbf16intrin.h b/gcc/config/i386/amxbf16intrin.h
index 8c24cdd..1d60e8e 100644
--- a/gcc/config/i386/amxbf16intrin.h
+++ b/gcc/config/i386/amxbf16intrin.h
@@ -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"}" ::)
diff --git a/gcc/config/i386/amxint8intrin.h b/gcc/config/i386/amxint8intrin.h
index 180c243..dbb7b6c 100644
--- a/gcc/config/i386/amxint8intrin.h
+++ b/gcc/config/i386/amxint8intrin.h
@@ -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"}" ::)
diff --git a/gcc/config/i386/amxtileintrin.h b/gcc/config/i386/amxtileintrin.h
index 16c8b6e..75d784a 100644
--- a/gcc/config/i386/amxtileintrin.h
+++ b/gcc/config/i386/amxtileintrin.h
@@ -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
index 0000000..751cd2c
--- /dev/null
+++ b/gcc/testsuite/g++.target/i386/pr102166.C
@@ -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);
+}