[clang] [ARM][Driver] Ensure NEON is enabled and disabled correctly (PR #137595)
via cfe-commits
cfe-commits at lists.llvm.org
Mon Apr 28 01:37:50 PDT 2025
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff HEAD~1 HEAD --extensions cpp,c -- clang/lib/Driver/ToolChains/Arch/ARM.cpp clang/test/Driver/arm-features.c clang/test/Driver/arm-mfpu.c clang/test/Preprocessor/arm-target-features.c
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/clang/lib/Driver/ToolChains/Arch/ARM.cpp b/clang/lib/Driver/ToolChains/Arch/ARM.cpp
index 61a98475d..a0db34a3a 100644
--- a/clang/lib/Driver/ToolChains/Arch/ARM.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/ARM.cpp
@@ -787,16 +787,16 @@ fp16_fml_fallthrough:
// crypto feature.
bool HasSimd = false;
const auto ItSimd =
- llvm::find_if(llvm::reverse(Features), [](const StringRef F) {
- return F.contains("neon");
- });
+ llvm::find_if(llvm::reverse(Features),
+ [](const StringRef F) { return F.contains("neon"); });
const bool FoundSimd = ItSimd != Features.rend();
- const bool FPUSupportsNeon =
- (llvm::ARM::FPUNames[FPUKind].NeonSupport == llvm::ARM::NeonSupportLevel::Neon) ||
- (llvm::ARM::FPUNames[FPUKind].NeonSupport == llvm::ARM::NeonSupportLevel::Crypto);
- if(FoundSimd)
- HasSimd = ItSimd->take_front() == "+";
- if(!HasSimd && FPUSupportsNeon) {
+ const bool FPUSupportsNeon = (llvm::ARM::FPUNames[FPUKind].NeonSupport ==
+ llvm::ARM::NeonSupportLevel::Neon) ||
+ (llvm::ARM::FPUNames[FPUKind].NeonSupport ==
+ llvm::ARM::NeonSupportLevel::Crypto);
+ if (FoundSimd)
+ HasSimd = ItSimd->take_front() == "+";
+ if (!HasSimd && FPUSupportsNeon) {
Features.push_back("-sha2");
Features.push_back("-aes");
Features.push_back("-crypto");
@@ -831,17 +831,14 @@ fp16_fml_fallthrough:
return F.contains("crypto") || F.contains("aes");
});
const auto ItBF16 =
- llvm::find_if(llvm::reverse(Features), [](const StringRef F) {
- return F.contains("bf16");
- });
+ llvm::find_if(llvm::reverse(Features),
+ [](const StringRef F) { return F.contains("bf16"); });
const auto ItDotprod =
- llvm::find_if(llvm::reverse(Features), [](const StringRef F) {
- return F.contains("dotprod");
- });
+ llvm::find_if(llvm::reverse(Features),
+ [](const StringRef F) { return F.contains("dotprod"); });
const auto ItI8MM =
- llvm::find_if(llvm::reverse(Features), [](const StringRef F) {
- return F.contains("i8mm");
- });
+ llvm::find_if(llvm::reverse(Features),
+ [](const StringRef F) { return F.contains("i8mm"); });
if (ItSHA2 != Features.rend())
HasSHA2 = ItSHA2->take_front() == "+";
if (ItAES != Features.rend())
@@ -870,8 +867,6 @@ fp16_fml_fallthrough:
if (HasAES || HasSHA2 || HasBF16 || HasDotprod || HasI8MM)
Features.push_back("+neon");
-
-
if (HasSHA2 || HasAES) {
StringRef ArchSuffix = arm::getLLVMArchSuffixForARM(
arm::getARMTargetCPU(CPUName, ArchName, Triple), ArchName, Triple);
``````````
</details>
https://github.com/llvm/llvm-project/pull/137595
More information about the cfe-commits
mailing list