Skip to content

Commit a3ef167

Browse files
Use static cast for LMUL to/from VLMUL
1 parent 1a5d4a8 commit a3ef167

File tree

1 file changed

+3
-53
lines changed

1 file changed

+3
-53
lines changed

llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp

Lines changed: 3 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -229,64 +229,14 @@ getEEWAndEMULForUnitStrideLoadStore(unsigned Opcode, uint8_t LMUL,
229229
llvm_unreachable("Opcode is not a vector unit stride load nor store");
230230
}
231231

232-
RISCVII::VLMUL VLMUL;
233-
switch (LMUL) {
234-
case 0b000:
235-
VLMUL = RISCVII::LMUL_1;
236-
break;
237-
case 0b001:
238-
VLMUL = RISCVII::LMUL_2;
239-
break;
240-
case 0b010:
241-
VLMUL = RISCVII::LMUL_4;
242-
break;
243-
case 0b011:
244-
VLMUL = RISCVII::LMUL_8;
245-
break;
246-
case 0b111:
247-
VLMUL = RISCVII::LMUL_F2;
248-
break;
249-
case 0b110:
250-
VLMUL = RISCVII::LMUL_F4;
251-
break;
252-
case 0b101:
253-
VLMUL = RISCVII::LMUL_F8;
254-
break;
255-
case RISCVII::LMUL_RESERVED:
256-
llvm_unreachable("LMUL cannot be LMUL_RESERVED");
257-
}
258-
232+
RISCVII::VLMUL VLMUL = static_cast<RISCVII::VLMUL>(LMUL);
259233
auto [EMULPart, Fractional] =
260234
getEMULEqualsEEWDivSEWTimesLMUL(EEW, SEW, VLMUL);
261235
assert(RISCVVType::isValidLMUL(EMULPart, Fractional) &&
262236
"Unexpected EEW from instruction used with LMUL and SEW");
263237

264-
uint8_t EMUL;
265-
switch (RISCVVType::encodeLMUL(EMULPart, Fractional)) {
266-
case RISCVII::LMUL_1:
267-
EMUL = 0b000;
268-
break;
269-
case RISCVII::LMUL_2:
270-
EMUL = 0b001;
271-
break;
272-
case RISCVII::LMUL_4:
273-
EMUL = 0b010;
274-
break;
275-
case RISCVII::LMUL_8:
276-
EMUL = 0b011;
277-
break;
278-
case RISCVII::LMUL_F2:
279-
EMUL = 0b111;
280-
break;
281-
case RISCVII::LMUL_F4:
282-
EMUL = 0b110;
283-
break;
284-
case RISCVII::LMUL_F8:
285-
EMUL = 0b101;
286-
break;
287-
case RISCVII::LMUL_RESERVED:
288-
llvm_unreachable("Cannot create instrument for LMUL_RESERVED");
289-
}
238+
uint8_t EMUL =
239+
static_cast<RISCVII::VLMUL>(RISCVVType::encodeLMUL(EMULPart, Fractional));
290240
return std::make_pair(EEW, EMUL);
291241
}
292242

0 commit comments

Comments
 (0)