Skip to content

Commit 31b7dc7

Browse files
authored
Merge pull request #139 from Xilinx/matthias.addi_muli
ArithToEmitC: Handle addi, subi and muli
2 parents 0496bb4 + 8abaa9a commit 31b7dc7

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,9 @@ void mlir::populateArithToEmitCPatterns(TypeConverter &typeConverter,
9696
ArithOpConversion<arith::DivFOp, emitc::DivOp>,
9797
ArithOpConversion<arith::MulFOp, emitc::MulOp>,
9898
ArithOpConversion<arith::SubFOp, emitc::SubOp>,
99+
ArithOpConversion<arith::AddIOp, emitc::AddOp>,
100+
ArithOpConversion<arith::MulIOp, emitc::MulOp>,
101+
ArithOpConversion<arith::SubIOp, emitc::SubOp>,
99102
SelectOpConversion
100103
>(typeConverter, ctx);
101104
// clang-format on

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,19 @@ func.func @arith_ops(%arg0: f32, %arg1: f32) {
3737

3838
// -----
3939

40+
func.func @arith_integer_ops(%arg0: i32, %arg1: i32) {
41+
// CHECK: emitc.add %arg0, %arg1 : (i32, i32) -> i32
42+
%0 = arith.addi %arg0, %arg1 : i32
43+
// CHECK: emitc.sub %arg0, %arg1 : (i32, i32) -> i32
44+
%1 = arith.subi %arg0, %arg1 : i32
45+
// CHECK: emitc.mul %arg0, %arg1 : (i32, i32) -> i32
46+
%2 = arith.muli %arg0, %arg1 : i32
47+
48+
return
49+
}
50+
51+
// -----
52+
4053
func.func @arith_select(%arg0: i1, %arg1: tensor<8xi32>, %arg2: tensor<8xi32>) -> () {
4154
// CHECK: [[V0:[^ ]*]] = emitc.conditional %arg0, %arg1, %arg2 : tensor<8xi32>
4255
%0 = arith.select %arg0, %arg1, %arg2 : i1, tensor<8xi32>

0 commit comments

Comments
 (0)