[Mlir-commits] [mlir] 125bd06 - [mlir][emitc] Support conversion of arith.divsi and arith.remsi to EmitC (#93450)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Tue May 28 05:36:28 PDT 2024
Author: josel-amd
Date: 2024-05-28T14:36:24+02:00
New Revision: 125bd061c3240afd92edd5ef8c29a7b3d24a5cd1
URL: https://github.com/llvm/llvm-project/commit/125bd061c3240afd92edd5ef8c29a7b3d24a5cd1
DIFF: https://github.com/llvm/llvm-project/commit/125bd061c3240afd92edd5ef8c29a7b3d24a5cd1.diff
LOG: [mlir][emitc] Support conversion of arith.divsi and arith.remsi to EmitC (#93450)
Added:
Modified:
mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp
mlir/test/Conversion/ArithToEmitC/arith-to-emitc.mlir
Removed:
################################################################################
diff --git a/mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp b/mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp
index 0be3d76f556de..388794ec122d2 100644
--- a/mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp
+++ b/mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp
@@ -394,7 +394,9 @@ void mlir::populateArithToEmitCPatterns(TypeConverter &typeConverter,
ArithConstantOpConversionPattern,
ArithOpConversion<arith::AddFOp, emitc::AddOp>,
ArithOpConversion<arith::DivFOp, emitc::DivOp>,
+ ArithOpConversion<arith::DivSIOp, emitc::DivOp>,
ArithOpConversion<arith::MulFOp, emitc::MulOp>,
+ ArithOpConversion<arith::RemSIOp, emitc::RemOp>,
ArithOpConversion<arith::SubFOp, emitc::SubOp>,
IntegerOpConversion<arith::AddIOp, emitc::AddOp>,
IntegerOpConversion<arith::MulIOp, emitc::MulOp>,
diff --git a/mlir/test/Conversion/ArithToEmitC/arith-to-emitc.mlir b/mlir/test/Conversion/ArithToEmitC/arith-to-emitc.mlir
index b453b69a214e8..dac3fd99b607c 100644
--- a/mlir/test/Conversion/ArithToEmitC/arith-to-emitc.mlir
+++ b/mlir/test/Conversion/ArithToEmitC/arith-to-emitc.mlir
@@ -88,6 +88,17 @@ func.func @arith_index(%arg0: index, %arg1: index) {
// -----
+// CHECK-LABEL: arith_signed_integer_div_rem
+func.func @arith_signed_integer_div_rem(%arg0: i32, %arg1: i32) {
+ // CHECK: emitc.div %arg0, %arg1 : (i32, i32) -> i32
+ %0 = arith.divsi %arg0, %arg1 : i32
+ // CHECK: emitc.rem %arg0, %arg1 : (i32, i32) -> i32
+ %1 = arith.remsi %arg0, %arg1 : i32
+ return
+}
+
+// -----
+
func.func @arith_select(%arg0: i1, %arg1: tensor<8xi32>, %arg2: tensor<8xi32>) -> () {
// CHECK: [[V0:[^ ]*]] = emitc.conditional %arg0, %arg1, %arg2 : tensor<8xi32>
%0 = arith.select %arg0, %arg1, %arg2 : i1, tensor<8xi32>
More information about the Mlir-commits
mailing list