diff --git a/llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp b/llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp index adcc608b2286d..91d8d91cdfe85 100644 --- a/llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp +++ b/llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp @@ -301,21 +301,18 @@ inline raw_ostream &operator<<(raw_ostream &OS, const DemandedFields &DF) { /// of instructions) which use only the Used subfields and properties. static bool areCompatibleVTYPEs(uint64_t CurVType, uint64_t NewVType, const DemandedFields &Used) { - switch (Used.SEW) { - case DemandedFields::SEWEqual: - if (RISCVVType::getSEW(CurVType) != RISCVVType::getSEW(NewVType)) - return false; - break; - case DemandedFields::SEWGreaterThanOrEqual: - if (RISCVVType::getSEW(NewVType) < RISCVVType::getSEW(CurVType)) - return false; - break; - case DemandedFields::SEWGreaterThanOrEqualAndLessThan64: - if (RISCVVType::getSEW(NewVType) < RISCVVType::getSEW(CurVType) || - RISCVVType::getSEW(NewVType) >= 64) - return false; - break; - } + if (Used.SEW == DemandedFields::SEWEqual && + RISCVVType::getSEW(CurVType) != RISCVVType::getSEW(NewVType)) + return false; + + if (Used.SEW == DemandedFields::SEWGreaterThanOrEqual && + RISCVVType::getSEW(NewVType) < RISCVVType::getSEW(CurVType)) + return false; + + if (Used.SEW == DemandedFields::SEWGreaterThanOrEqualAndLessThan64 && + (RISCVVType::getSEW(NewVType) < RISCVVType::getSEW(CurVType) || + RISCVVType::getSEW(NewVType) >= 64)) + return false; if (Used.LMUL && RISCVVType::getVLMUL(CurVType) != RISCVVType::getVLMUL(NewVType))