llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-backend-aarch64 Author: Fangrui Song (MaskRay) <details> <summary>Changes</summary> GCC sets `#define HAVE_atomic_compare_and_swapti 1` and therefore defines `__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16`. Clang compiles the 16-byte legacy `__sync_bool_compare_and_swap` and new `__atomic_compare_exchange` compile to LDXP/STXP or (with LSE) CASP{,A,L,AL}. Link: https://github.com/llvm/llvm-project/issues/71883 --- Full diff: https://github.com/llvm/llvm-project/pull/74954.diff 2 Files Affected: - (modified) clang/lib/Basic/Targets/AArch64.cpp (+1) - (modified) clang/test/Preprocessor/init-aarch64.c (+1) ``````````diff diff --git a/clang/lib/Basic/Targets/AArch64.cpp b/clang/lib/Basic/Targets/AArch64.cpp index c31f2e0bee543..07f86b62d86e1 100644 --- a/clang/lib/Basic/Targets/AArch64.cpp +++ b/clang/lib/Basic/Targets/AArch64.cpp @@ -579,6 +579,7 @@ void AArch64TargetInfo::getTargetDefines(const LangOptions &Opts, Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2"); Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4"); Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8"); + Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16"); // Allow detection of fast FMA support. Builder.defineMacro("__FP_FAST_FMA", "1"); diff --git a/clang/test/Preprocessor/init-aarch64.c b/clang/test/Preprocessor/init-aarch64.c index b0333b3f02389..94c091a69e844 100644 --- a/clang/test/Preprocessor/init-aarch64.c +++ b/clang/test/Preprocessor/init-aarch64.c @@ -118,6 +118,7 @@ // AARCH64-NEXT: #define __FP_FAST_FMAF 1 // AARCH64-NEXT: #define __GCC_ASM_FLAG_OUTPUTS__ 1 // AARCH64-NEXT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +// AARCH64-NEXT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 1 // AARCH64-NEXT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 // AARCH64-NEXT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 // AARCH64-NEXT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 `````````` </details> https://github.com/llvm/llvm-project/pull/74954 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits