diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp index 1d5cd3ecd8ea..171c1b12434e 100644 --- a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp +++ b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp @@ -3581,16 +3581,10 @@ SDValue RISCVTargetLowering::LowerOperation(SDValue Op, break; } - MVT ContainerVT, SrcContainerVT; - // Derive the reference container type from the larger vector type. - if (SrcEltSize > EltSize) { - SrcContainerVT = getContainerForFixedLengthVector(SrcVT); - ContainerVT = - SrcContainerVT.changeVectorElementType(VT.getVectorElementType()); - } else { - ContainerVT = getContainerForFixedLengthVector(VT); - SrcContainerVT = ContainerVT.changeVectorElementType(SrcEltVT); - } + MVT ContainerVT = getContainerForFixedLengthVector(VT); + MVT SrcContainerVT = getContainerForFixedLengthVector(SrcVT); + assert(ContainerVT.getVectorElementCount() == SrcContainerVT.getVectorElementCount() && + "Expected same element count"); SDValue Mask, VL; std::tie(Mask, VL) = getDefaultVLOps(VT, ContainerVT, DL, DAG, Subtarget);