Skip to content

Commit 7ea3c5d

Browse files
committed
fixup! Address review comments
1 parent 1842e03 commit 7ea3c5d

File tree

1 file changed

+20
-18
lines changed

1 file changed

+20
-18
lines changed

llvm/lib/Target/RISCV/RISCVISelLowering.cpp

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -21160,26 +21160,28 @@ SDValue RISCVTargetLowering::PerformDAGCombine(SDNode *N,
2116021160
// If the scalar we're sliding in was extracted from the first element of a
2116121161
// vector, we can use that vector as the passthru in a normal slideup of 1.
2116221162
// This saves us an extract_element instruction (i.e. vfmv.f.s, vmv.x.s).
21163-
if (N->getOperand(0).isUndef() &&
21164-
sd_match(N->getOperand(2),
21165-
m_AnyOf(m_ExtractElt(m_Value(SrcVec), m_Zero()),
21166-
m_Node(RISCVISD::VMV_X_S, m_Value(SrcVec))))) {
21167-
MVT SrcVecVT = SrcVec.getSimpleValueType();
21168-
// Adapt the value type of source vector.
21169-
if (SrcVecVT.isFixedLengthVector()) {
21170-
SrcVecVT = getContainerForFixedLengthVector(SrcVecVT);
21171-
SrcVec = convertToScalableVector(SrcVecVT, SrcVec, DAG, Subtarget);
21172-
}
21173-
if (SrcVecVT.getVectorMinNumElements() < VT.getVectorMinNumElements())
21174-
SrcVec = DAG.getInsertSubvector(DL, DAG.getUNDEF(VT), SrcVec, 0);
21175-
else
21176-
SrcVec = DAG.getExtractSubvector(DL, VT, SrcVec, 0);
21163+
if (!N->getOperand(0).isUndef() ||
21164+
!sd_match(N->getOperand(2),
21165+
m_AnyOf(m_ExtractElt(m_Value(SrcVec), m_Zero()),
21166+
m_Node(RISCVISD::VMV_X_S, m_Value(SrcVec)))))
21167+
break;
2117721168

21178-
return getVSlideup(DAG, Subtarget, DL, VT, SrcVec, N->getOperand(1),
21179-
DAG.getConstant(1, DL, XLenVT), N->getOperand(3),
21180-
N->getOperand(4));
21169+
MVT SrcVecVT = SrcVec.getSimpleValueType();
21170+
if (SrcVecVT.getVectorElementType() != VT.getVectorElementType())
21171+
break;
21172+
// Adapt the value type of source vector.
21173+
if (SrcVecVT.isFixedLengthVector()) {
21174+
SrcVecVT = getContainerForFixedLengthVector(SrcVecVT);
21175+
SrcVec = convertToScalableVector(SrcVecVT, SrcVec, DAG, Subtarget);
2118121176
}
21182-
break;
21177+
if (SrcVecVT.getVectorMinNumElements() < VT.getVectorMinNumElements())
21178+
SrcVec = DAG.getInsertSubvector(DL, DAG.getUNDEF(VT), SrcVec, 0);
21179+
else
21180+
SrcVec = DAG.getExtractSubvector(DL, VT, SrcVec, 0);
21181+
21182+
return getVSlideup(DAG, Subtarget, DL, VT, SrcVec, N->getOperand(1),
21183+
DAG.getConstant(1, DL, XLenVT), N->getOperand(3),
21184+
N->getOperand(4));
2118321185
}
2118421186
}
2118521187

0 commit comments

Comments
 (0)