diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp --- a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp +++ b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp @@ -5791,7 +5791,7 @@ MVT XLenVT = Subtarget.getXLenVT(); // Use a VL of 1 to avoid processing more elements than we need. - MVT MaskVT = MVT::getVectorVT(MVT::i1, VecVT.getVectorElementCount()); + MVT MaskVT = MVT::getVectorVT(MVT::i1, ContainerVT.getVectorElementCount()); SDValue VL = DAG.getConstant(1, DL, XLenVT); SDValue Mask = DAG.getNode(RISCVISD::VMSET_VL, DL, MaskVT, VL);