diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2025-11-03 14:19:58 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-03 14:19:58 -0800 |
| commit | ecaaebf8f0f70a0b6e21c19fdd4be23ffe23ef53 (patch) | |
| tree | d48d0314f3dd3b171ddca471e8e36181167e1ab1 | |
| parent | 3c2c9d5bc1e2c8a1648f77d4a4a574c56c392442 (diff) | |
| download | llvm-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.cpp | 5 |
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); |
