[clang] [PowerPC] fix float ABI selection on ppcle (PR #154773)
via cfe-commits
cfe-commits at lists.llvm.org
Mon Sep 15 01:07:46 PDT 2025
https://github.com/DanilaZhebryakov updated https://github.com/llvm/llvm-project/pull/154773
>From 542f85b55be08712622fd84c5b40de4fe24bcefb Mon Sep 17 00:00:00 2001
From: Danila Zhebryakov <d.zhebryakov at 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 ++-
clang/test/CodeGen/PowerPC/ppc-sfvarargs.c | 3 +++
2 files changed, 5 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:
diff --git a/clang/test/CodeGen/PowerPC/ppc-sfvarargs.c b/clang/test/CodeGen/PowerPC/ppc-sfvarargs.c
index 850acf8f0317e..125f2ae4680ef 100644
--- a/clang/test/CodeGen/PowerPC/ppc-sfvarargs.c
+++ b/clang/test/CodeGen/PowerPC/ppc-sfvarargs.c
@@ -1,4 +1,7 @@
// RUN: %clang -O0 --target=powerpc-unknown-linux-gnu -EB -msoft-float -S -emit-llvm %s -o - | FileCheck %s
+// RUN: %clang -O0 --target=powerpcle-unknown-linux-gnu -EL -msoft-float -S -emit-llvm %s -o - | FileCheck %s
+// RUN: %clang -O0 --target=powerpcle-unknown-unknown -mcpu=e500 -mhard-float -S -emit-llvm %s -o - | FileCheck %s
+// RUN: %clang -O0 --target=powerpc-unknown-unknown -mcpu=e500 -mhard-float -S -emit-llvm %s -o - | FileCheck %s
#include <stdarg.h>
void test(char *fmt, ...) {
More information about the cfe-commits
mailing list