aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2025-11-03 14:19:58 -0800
committerGitHub <noreply@github.com>2025-11-03 14:19:58 -0800
commitecaaebf8f0f70a0b6e21c19fdd4be23ffe23ef53 (patch)
treed48d0314f3dd3b171ddca471e8e36181167e1ab1
parent3c2c9d5bc1e2c8a1648f77d4a4a574c56c392442 (diff)
downloadllvm-ecaaebf8f0f70a0b6e21c19fdd4be23ffe23ef53.zip
llvm-ecaaebf8f0f70a0b6e21c19fdd4be23ffe23ef53.tar.gz
llvm-ecaaebf8f0f70a0b6e21c19fdd4be23ffe23ef53.tar.bz2
X86: Correct IR type used for sincos_stret return value (#166240)
Match the IR type that clang uses here: https://godbolt.org/z/KzbodEcxh This was manually selecting the IR legal type. Instead just set the flag to ensure legal types.
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index 2970cf4..b97b508 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -33034,12 +33034,13 @@ static SDValue LowerFSINCOS(SDValue Op, const X86Subtarget &Subtarget,
DAG.getExternalSymbol(LibcallName, TLI.getPointerTy(DAG.getDataLayout()));
Type *RetTy = isF64 ? (Type *)StructType::get(ArgTy, ArgTy)
- : (Type *)FixedVectorType::get(ArgTy, 4);
+ : (Type *)FixedVectorType::get(ArgTy, 2);
TargetLowering::CallLoweringInfo CLI(DAG);
CLI.setDebugLoc(dl)
.setChain(DAG.getEntryNode())
- .setLibCallee(CallingConv::C, RetTy, Callee, std::move(Args));
+ .setLibCallee(CallingConv::C, RetTy, Callee, std::move(Args))
+ .setIsPostTypeLegalization();
std::pair<SDValue, SDValue> CallResult = TLI.LowerCallTo(CLI);