diff options
author | Joe Loser <joeloser@fastmail.com> | 2023-02-01 10:19:27 -0700 |
---|---|---|
committer | Tobias Hieta <tobias@hieta.se> | 2023-02-05 21:15:33 +0100 |
commit | 66c1717f496d34fa248080f845c09e8ac8ce5b15 (patch) | |
tree | 49aa76e50c08712d273ceb8a13d8185a810d296f | |
parent | 673bf4fb39c837f8cc3eb76687446ff90602de8a (diff) | |
download | llvm-66c1717f496d34fa248080f845c09e8ac8ce5b15.tar.gz |
[clang] Change AMX macros to match names from GCC
The current behavior for AMX macros is:
```
gcc -march=native -dM -E - < /dev/null | grep TILE
clang -march=native -dM -E - < /dev/null | grep TILE
```
which is not ideal. Change `__AMXTILE__` and friends to `__AMX_TILE__` (i.e.
have an underscore in them). This makes GCC and Clang agree on the naming of
these AMX macros to simplify downstream user code.
Fix this for `__AMXTILE__`, `__AMX_INT8__`, `__AMX_BF16__`, and `__AMX_FP16__`.
Differential Revision: https://reviews.llvm.org/D143094
(cherry picked from commit 8998fa6c14f1e19957858aa0e4b592d62ae56041)
-rw-r--r-- | clang/lib/Basic/Targets/X86.cpp | 8 | ||||
-rw-r--r-- | clang/lib/Headers/immintrin.h | 4 | ||||
-rw-r--r-- | clang/test/Preprocessor/predefined-arch-macros.c | 28 | ||||
-rw-r--r-- | clang/test/Preprocessor/x86_amx_target_features.c | 24 | ||||
-rw-r--r-- | clang/test/Preprocessor/x86_target_features.c | 8 |
5 files changed, 36 insertions, 36 deletions
diff --git a/clang/lib/Basic/Targets/X86.cpp b/clang/lib/Basic/Targets/X86.cpp index cb3171227530..490e20ce4514 100644 --- a/clang/lib/Basic/Targets/X86.cpp +++ b/clang/lib/Basic/Targets/X86.cpp @@ -795,13 +795,13 @@ void X86TargetInfo::getTargetDefines(const LangOptions &Opts, if (HasHRESET) Builder.defineMacro("__HRESET__"); if (HasAMXTILE) - Builder.defineMacro("__AMXTILE__"); + Builder.defineMacro("__AMX_TILE__"); if (HasAMXINT8) - Builder.defineMacro("__AMXINT8__"); + Builder.defineMacro("__AMX_INT8__"); if (HasAMXBF16) - Builder.defineMacro("__AMXBF16__"); + Builder.defineMacro("__AMX_BF16__"); if (HasAMXFP16) - Builder.defineMacro("__AMXFP16__"); + Builder.defineMacro("__AMX_FP16__"); if (HasCMPCCXADD) Builder.defineMacro("__CMPCCXADD__"); if (HasRAOINT) diff --git a/clang/lib/Headers/immintrin.h b/clang/lib/Headers/immintrin.h index 6967b46fdb24..0d2e8be6e486 100644 --- a/clang/lib/Headers/immintrin.h +++ b/clang/lib/Headers/immintrin.h @@ -524,7 +524,7 @@ _storebe_i64(void * __P, long long __D) { #include <invpcidintrin.h> #endif #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AMXFP16__) + defined(__AMX_FP16__) #include <amxfp16intrin.h> #endif @@ -534,7 +534,7 @@ _storebe_i64(void * __P, long long __D) { #endif #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AMXTILE__) || defined(__AMXINT8__) || defined(__AMXBF16__) + defined(__AMX_TILE__) || defined(__AMX_INT8__) || defined(__AMX_BF16__) #include <amxintrin.h> #endif diff --git a/clang/test/Preprocessor/predefined-arch-macros.c b/clang/test/Preprocessor/predefined-arch-macros.c index a78bac132db1..a64e5afa7aac 100644 --- a/clang/test/Preprocessor/predefined-arch-macros.c +++ b/clang/test/Preprocessor/predefined-arch-macros.c @@ -1649,9 +1649,9 @@ // RUN: -target i386-unknown-linux \ // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPR_M32 // CHECK_SPR_M32: #define __AES__ 1 -// CHECK_SPR_M32: #define __AMXBF16__ 1 -// CHECK_SPR_M32: #define __AMXINT8__ 1 -// CHECK_SPR_M32: #define __AMXTILE__ 1 +// CHECK_SPR_M32: #define __AMX_BF16__ 1 +// CHECK_SPR_M32: #define __AMX_INT8__ 1 +// CHECK_SPR_M32: #define __AMX_TILE__ 1 // CHECK_SPR_M32: #define __AVX2__ 1 // CHECK_SPR_M32: #define __AVX512BF16__ 1 // CHECK_SPR_M32: #define __AVX512BITALG__ 1 @@ -1724,9 +1724,9 @@ // RUN: -target i386-unknown-linux \ // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPR_M64 // CHECK_SPR_M64: #define __AES__ 1 -// CHECK_SPR_M64: #define __AMXBF16__ 1 -// CHECK_SPR_M64: #define __AMXINT8__ 1 -// CHECK_SPR_M64: #define __AMXTILE__ 1 +// CHECK_SPR_M64: #define __AMX_BF16__ 1 +// CHECK_SPR_M64: #define __AMX_INT8__ 1 +// CHECK_SPR_M64: #define __AMX_TILE__ 1 // CHECK_SPR_M64: #define __AVX2__ 1 // CHECK_SPR_M64: #define __AVX512BF16__ 1 // CHECK_SPR_M64: #define __AVX512BITALG__ 1 @@ -1797,10 +1797,10 @@ // RUN: --target=i386 \ // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_GNR_M32 // CHECK_GNR_M32: #define __AES__ 1 -// CHECK_GNR_M32: #define __AMXBF16__ 1 -// CHECK_GNR_M32: #define __AMXFP16__ 1 -// CHECK_GNR_M32: #define __AMXINT8__ 1 -// CHECK_GNR_M32: #define __AMXTILE__ 1 +// CHECK_GNR_M32: #define __AMX_BF16__ 1 +// CHECK_GNR_M32: #define __AMX_FP16__ 1 +// CHECK_GNR_M32: #define __AMX_INT8__ 1 +// CHECK_GNR_M32: #define __AMX_TILE__ 1 // CHECK_GNR_M32: #define __AVX2__ 1 // CHECK_GNR_M32: #define __AVX512BF16__ 1 // CHECK_GNR_M32: #define __AVX512BITALG__ 1 @@ -1871,10 +1871,10 @@ // RUN: --target=x86_64 \ // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_GNR_M64 // CHECK_GNR_M64: #define __AES__ 1 -// CHECK_GNR_M64: #define __AMXBF16__ 1 -// CHECK_GNR_M64: #define __AMXFP16__ 1 -// CHECK_GNR_M64: #define __AMXINT8__ 1 -// CHECK_GNR_M64: #define __AMXTILE__ 1 +// CHECK_GNR_M64: #define __AMX_BF16__ 1 +// CHECK_GNR_M64: #define __AMX_FP16__ 1 +// CHECK_GNR_M64: #define __AMX_INT8__ 1 +// CHECK_GNR_M64: #define __AMX_TILE__ 1 // CHECK_GNR_M64: #define __AVX2__ 1 // CHECK_GNR_M64: #define __AVX512BF16__ 1 // CHECK_GNR_M64: #define __AVX512BITALG__ 1 diff --git a/clang/test/Preprocessor/x86_amx_target_features.c b/clang/test/Preprocessor/x86_amx_target_features.c index 644f160a0f6c..d5e41d152eb5 100644 --- a/clang/test/Preprocessor/x86_amx_target_features.c +++ b/clang/test/Preprocessor/x86_amx_target_features.c @@ -1,35 +1,35 @@ // RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mamx-tile -x c -E -dM -o - %s | FileCheck -check-prefix=AMX-TILE %s -// AMX-TILE: #define __AMXTILE__ 1 +// AMX-TILE: #define __AMX_TILE__ 1 // RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mamx-bf16 -x c -E -dM -o - %s | FileCheck -check-prefix=AMX-BF16 %s -// AMX-BF16: #define __AMXBF16__ 1 -// AMX-BF16: #define __AMXTILE__ 1 +// AMX-BF16: #define __AMX_BF16__ 1 +// AMX-BF16: #define __AMX_TILE__ 1 // RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mamx-int8 -x c -E -dM -o - %s | FileCheck -check-prefix=AMX-INT8 %s -// AMX-INT8: #define __AMXINT8__ 1 -// AMX-INT8: #define __AMXTILE__ 1 +// AMX-INT8: #define __AMX_INT8__ 1 +// AMX-INT8: #define __AMX_TILE__ 1 // RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-amx-tile -x c -E -dM -o - %s | FileCheck -check-prefix=NOAMX-TILE %s -// NOAMX-TILE-NOT: #define __AMXTILE__ 1 +// NOAMX-TILE-NOT: #define __AMX_TILE__ 1 // RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-amx-bf16 -x c -E -dM -o - %s | FileCheck -check-prefix=NOAMX-BF16 %s -// NOAMX-BF16-NOT: #define __AMXBF16__ 1 +// NOAMX-BF16-NOT: #define __AMX_BF16__ 1 // RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mamx-bf16 -mno-amx-tile -x c -E -dM -o - %s | FileCheck -check-prefix=NOAMX-BF16 %s -// NOAMX-BF16-NOT: #define __AMXTILE__ 1 -// NOAMX-BF16-NOT: #define __AMXBF16__ 1 +// NOAMX-BF16-NOT: #define __AMX_TILE__ 1 +// NOAMX-BF16-NOT: #define __AMX_BF16__ 1 // RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-amx-int8 -x c -E -dM -o - %s | FileCheck -check-prefix=NOAMX-INT8 %s -// NOAMX-INT8-NOT: #define __AMXINT8__ 1 +// NOAMX-INT8-NOT: #define __AMX_INT8__ 1 // RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mamx-int8 -mno-amx-tile -x c -E -dM -o - %s | FileCheck -check-prefix=NOAMX-INT8 %s -// NOAMX-INT8-NOT: #define __AMXTILE__ 1 -// NOAMX-INT8-NOT: #define __AMXINT8__ 1 +// NOAMX-INT8-NOT: #define __AMX_TILE__ 1 +// NOAMX-INT8-NOT: #define __AMX_INT8__ 1 diff --git a/clang/test/Preprocessor/x86_target_features.c b/clang/test/Preprocessor/x86_target_features.c index 1b4a36a4b250..326582446fcf 100644 --- a/clang/test/Preprocessor/x86_target_features.c +++ b/clang/test/Preprocessor/x86_target_features.c @@ -548,16 +548,16 @@ // RUN: %clang -target x86_64-unknown-linux-gnu -march=atom -mamx-fp16 -x c \ // RUN: -E -dM -o - %s | FileCheck -check-prefix=AMX-FP16 %s -// AMX-FP16: #define __AMXFP16__ 1 -// AMX-FP16: #define __AMXTILE__ 1 +// AMX-FP16: #define __AMX_FP16__ 1 +// AMX-FP16: #define __AMX_TILE__ 1 // RUN: %clang -target x86_64-unknown-linux-gnu -march=atom -mno-amx-fp16 \ // RUN: -x c -E -dM -o - %s | FileCheck -check-prefix=NO-AMX-FP16 %s // RUN: %clang -target x86_64-unknown-linux-gnu -march=atom -mamx-fp16 \ // RUN: -mno-amx-tile -x c -E -dM -o - %s | FileCheck -check-prefix=NO-AMX-FP16 %s -// NO-AMX-FP16-NOT: #define __AMXFP16__ 1 -// NO-AMX-FP16-NOT: #define __AMXTILE__ 1 +// NO-AMX-FP16-NOT: #define __AMX_FP16__ 1 +// NO-AMX-FP16-NOT: #define __AMX_TILE__ 1 // RUN: %clang -target i386-unknown-unknown -march=atom -mavxvnni -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVXVNNI %s |