Skip to content

Commit 4d2fb70

Browse files
authored
Merge branch 'main' into linalg-cleanup
2 parents b74d3b1 + ae36702 commit 4d2fb70

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

llvm/lib/Target/RISCV/RISCVISelLowering.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16184,10 +16184,12 @@ static SDValue expandMul(SDNode *N, SelectionDAG &DAG,
1618416184
// 2^N - 3/5/9 --> (sub (shl X, C1), (shXadd X, x))
1618516185
for (uint64_t Offset : {3, 5, 9}) {
1618616186
if (isPowerOf2_64(MulAmt + Offset)) {
16187+
unsigned ShAmt = Log2_64(MulAmt + Offset);
16188+
if (ShAmt >= VT.getSizeInBits())
16189+
continue;
1618716190
SDLoc DL(N);
1618816191
SDValue Shift1 =
16189-
DAG.getNode(ISD::SHL, DL, VT, X,
16190-
DAG.getConstant(Log2_64(MulAmt + Offset), DL, VT));
16192+
DAG.getNode(ISD::SHL, DL, VT, X, DAG.getConstant(ShAmt, DL, VT));
1619116193
SDValue Mul359 =
1619216194
DAG.getNode(RISCVISD::SHL_ADD, DL, VT, X,
1619316195
DAG.getConstant(Log2_64(Offset - 1), DL, VT), X);

0 commit comments

Comments
 (0)