Skip to content

Commit 8da0402

Browse files
committed
[X86] Disable combineConcatVectors for vXi1 vectors.
I'm not convinced the code this calls is properly vetted for vXi1 vectors. Experimental vector widening legalization testing for D55251 is now hitting an assertion failure inside EltsFromConsecutiveLoads. This is occurring from a v2i1 load having a store size different than its VT size. Hopefully this commit will keep such issues from happening. llvm-svn: 366405
1 parent 4f93b8b commit 8da0402

File tree

2 files changed

+116
-116
lines changed

2 files changed

+116
-116
lines changed

llvm/lib/Target/X86/X86ISelLowering.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43730,6 +43730,10 @@ static SDValue combineConcatVectors(SDNode *N, SelectionDAG &DAG,
4373043730
EVT SrcVT = N->getOperand(0).getValueType();
4373143731
const TargetLowering &TLI = DAG.getTargetLoweringInfo();
4373243732

43733+
// Don't do anything for i1 vectors.
43734+
if (VT.getVectorElementType() == MVT::i1)
43735+
return SDValue();
43736+
4373343737
if (Subtarget.hasAVX() && TLI.isTypeLegal(VT) && TLI.isTypeLegal(SrcVT)) {
4373443738
SmallVector<SDValue, 4> Ops(N->op_begin(), N->op_end());
4373543739
if (SDValue R = combineConcatVectorOps(SDLoc(N), VT.getSimpleVT(), Ops, DAG,

0 commit comments

Comments
 (0)