Skip to content

Commit 125bd06

Browse files
authored
[mlir][emitc] Support conversion of arith.divsi and arith.remsi to EmitC (#93450)
1 parent 516a9f5 commit 125bd06

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,9 @@ void mlir::populateArithToEmitCPatterns(TypeConverter &typeConverter,
394394
ArithConstantOpConversionPattern,
395395
ArithOpConversion<arith::AddFOp, emitc::AddOp>,
396396
ArithOpConversion<arith::DivFOp, emitc::DivOp>,
397+
ArithOpConversion<arith::DivSIOp, emitc::DivOp>,
397398
ArithOpConversion<arith::MulFOp, emitc::MulOp>,
399+
ArithOpConversion<arith::RemSIOp, emitc::RemOp>,
398400
ArithOpConversion<arith::SubFOp, emitc::SubOp>,
399401
IntegerOpConversion<arith::AddIOp, emitc::AddOp>,
400402
IntegerOpConversion<arith::MulIOp, emitc::MulOp>,

mlir/test/Conversion/ArithToEmitC/arith-to-emitc.mlir

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,17 @@ func.func @arith_index(%arg0: index, %arg1: index) {
8888

8989
// -----
9090

91+
// CHECK-LABEL: arith_signed_integer_div_rem
92+
func.func @arith_signed_integer_div_rem(%arg0: i32, %arg1: i32) {
93+
// CHECK: emitc.div %arg0, %arg1 : (i32, i32) -> i32
94+
%0 = arith.divsi %arg0, %arg1 : i32
95+
// CHECK: emitc.rem %arg0, %arg1 : (i32, i32) -> i32
96+
%1 = arith.remsi %arg0, %arg1 : i32
97+
return
98+
}
99+
100+
// -----
101+
91102
func.func @arith_select(%arg0: i1, %arg1: tensor<8xi32>, %arg2: tensor<8xi32>) -> () {
92103
// CHECK: [[V0:[^ ]*]] = emitc.conditional %arg0, %arg1, %arg2 : tensor<8xi32>
93104
%0 = arith.select %arg0, %arg1, %arg2 : i1, tensor<8xi32>

0 commit comments

Comments
 (0)