[llvm] [X86] Use integer VT for second argument of X86ISD::VPERMILPV in combineConcatVectorOps. (PR #228257)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 1 14:49:17 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-x86
Author: Craig Topper (topperc)
<details>
<summary>Changes</summary>
Found by adding VTisInt to verifyTargetSDNode
---
Full diff: https://github.com/llvm/llvm-project/pull/228257.diff
1 Files Affected:
- (modified) llvm/lib/Target/X86/X86ISelLowering.cpp (+4-2)
``````````diff
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index 7817c86155e5b..a0e221048ba76 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -61504,12 +61504,14 @@ static SDValue combineConcatVectorOps(const SDLoc &DL, MVT VT,
case X86ISD::VPERMILPV:
if (!IsSplat && (VT.is256BitVector() ||
(VT.is512BitVector() && Subtarget.useAVX512Regs()))) {
+ MVT IntVT = VT.changeVectorElementTypeToInteger();
SDValue Concat0 = CombineSubOperand(VT, Ops, 0);
- SDValue Concat1 = CombineSubOperand(VT, Ops, 1);
+ SDValue Concat1 = CombineSubOperand(IntVT, Ops, 1);
if (Concat0 || Concat1)
return DAG.getNode(Opcode, DL, VT,
Concat0 ? Concat0 : ConcatSubOperand(VT, Ops, 0),
- Concat1 ? Concat1 : ConcatSubOperand(VT, Ops, 1));
+ Concat1 ? Concat1
+ : ConcatSubOperand(IntVT, Ops, 1));
}
break;
case X86ISD::PSHUFB:
``````````
</details>
https://github.com/llvm/llvm-project/pull/228257
More information about the llvm-commits
mailing list