https://github.com/DanilaZhebryakov created 
https://github.com/llvm/llvm-project/pull/154773

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)

>From 96fde1d7cf81601a4a962f936bcf3b91bafde23b Mon Sep 17 00:00:00 2001
From: Danila Zhebryakov <d.zhebrya...@yandex.ru>
Date: Fri, 8 Aug 2025 14:16:30 +0300
Subject: [PATCH] [PowerPC] fix float ABI selection on ppcle

---
 clang/lib/CodeGen/CodeGenModule.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

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:

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to