[clang] [PowerPC] fix float ABI selection on ppcle (PR #154773)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Aug 21 07:47:31 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-codegen
Author: None (DanilaZhebryakov)
<details>
<summary>Changes</summary>
soft float ABI selection was not taking effect on little-endian powerPC with embedded vectors (e.g. e500v2) leading to errors.
(embedded vectors use "extended" GPRs to store floating-point values, and this caused issues with variadic arguments assuming dedicated floating-point registers with hard-float ABI)
---
Full diff: https://github.com/llvm/llvm-project/pull/154773.diff
1 Files Affected:
- (modified) clang/lib/CodeGen/CodeGenModule.cpp (+2-1)
``````````diff
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index 677d8bc82cb0a..8b85b93b5d568 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -188,7 +188,8 @@ createTargetCodeGenInfo(CodeGenModule &CGM) {
return createPPC32TargetCodeGenInfo(CGM, IsSoftFloat);
}
case llvm::Triple::ppcle: {
- bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
+ bool IsSoftFloat =
+ CodeGenOpts.FloatABI == "soft" || Target.hasFeature("spe");
return createPPC32TargetCodeGenInfo(CGM, IsSoftFloat);
}
case llvm::Triple::ppc64:
``````````
</details>
https://github.com/llvm/llvm-project/pull/154773
More information about the cfe-commits
mailing list