Skip to content

Commit 51a166e

Browse files
committed
add arith check
1 parent 934f936 commit 51a166e

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

lib/Conversion/TPtrToLLVM/TPtrToLLVM.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@ struct PtrAddConverter : OpConversionPattern<tptr::PtrAddOp> {
7070
mulOp.getRhs().getDefiningOp<tptr::TypeOffsetOp>()) {
7171
elemTy = typeOffsetOp.getBaseType();
7272
}
73+
} else if (auto mulOp = origOffset.getDefiningOp<arith::MulIOp>()) {
74+
if (auto typeOffsetOp =
75+
mulOp.getRhs().getDefiningOp<tptr::TypeOffsetOp>()) {
76+
elemTy = typeOffsetOp.getBaseType();
77+
}
7378
}
7479

7580
if (!elemTy) {
@@ -84,6 +89,9 @@ struct PtrAddConverter : OpConversionPattern<tptr::PtrAddOp> {
8489
Value elementIndex;
8590
if (auto mulOp = adaptor.getOffset().getDefiningOp<LLVM::MulOp>()) {
8691
elementIndex = mulOp.getLhs();
92+
} else if (auto mulOp =
93+
adaptor.getOffset().getDefiningOp<arith::MulIOp>()) {
94+
elementIndex = mulOp.getLhs();
8795
} else {
8896
LDBG("Warning: ptradd offset is not MulOp pattern, using raw offset");
8997
elementIndex = adaptor.getOffset();

0 commit comments

Comments
 (0)