diff options
author | Tai Ly <tai.ly@arm.com> | 2024-05-01 15:26:42 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-01 13:26:42 -0700 |
commit | 82383d5f3fa8289688dcd314f7a89ce5599bbdb2 (patch) | |
tree | 124d049305f07e47ca9b51d427c4cb45cae8e729 | |
parent | fa9e96a2e55226b1f9f9744f42ac5e925297f819 (diff) |
[mlir][tosa] Rename Tosa Div op to IntDiv Op (#80047)
This patch renames Tosa Div Op to IntDiv Op to align with the TOSA Spec.
<!-- Reviewable:start -->
- - -
This change is [<img src="https://reviewable.io/review_button.svg"
height="34" align="absmiddle"
alt="Reviewable"/>](https://reviewable.io/reviews/llvm/llvm-project/80047)
<!-- Reviewable:end -->
Signed-off-by: Tai Ly <tai.ly@arm.com>
-rw-r--r-- | mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td | 4 | ||||
-rw-r--r-- | mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp | 6 | ||||
-rw-r--r-- | mlir/lib/Dialect/Tosa/IR/ShardingInterfaceImpl.cpp | 2 | ||||
-rw-r--r-- | mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp | 2 | ||||
-rw-r--r-- | mlir/lib/Dialect/Tosa/IR/TosaOps.cpp | 4 | ||||
-rw-r--r-- | mlir/lib/Dialect/Tosa/Transforms/TosaMakeBroadcastable.cpp | 2 | ||||
-rw-r--r-- | mlir/lib/Dialect/Tosa/Transforms/TosaValidation.cpp | 2 | ||||
-rw-r--r-- | mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir | 2 | ||||
-rw-r--r-- | mlir/test/Dialect/Tosa/constant-op-fold.mlir | 8 | ||||
-rw-r--r-- | mlir/test/Dialect/Tosa/ops.mlir | 6 |
10 files changed, 19 insertions, 19 deletions
diff --git a/mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td b/mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td index 138deb1e773b..97a36c49d01b 100644 --- a/mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td +++ b/mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td @@ -605,9 +605,9 @@ def Tosa_BitwiseXorOp : Tosa_ElementwiseOp<"bitwise_xor", [ } //===----------------------------------------------------------------------===// -// Operator: div +// Operator: int_div //===----------------------------------------------------------------------===// -def Tosa_DivOp : Tosa_ElementwiseOp<"div", [SameOperandsAndResultElementType]> { +def Tosa_IntDivOp : Tosa_ElementwiseOp<"int_div", [SameOperandsAndResultElementType]> { let summary = "Integer divide operator"; let description = [{ diff --git a/mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp b/mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp index 7c068d2e94fc..e6ba6e6bc602 100644 --- a/mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp +++ b/mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp @@ -89,8 +89,8 @@ createLinalgBodyCalculationForElementwiseOp(Operation *op, ValueRange args, return rewriter.create<arith::MulFOp>(loc, resultTypes, args); } - // tosa::DivOp - if (isa<tosa::DivOp>(op) && isa<IntegerType>(elementTy)) + // tosa::IntDivOp + if (isa<tosa::IntDivOp>(op) && isa<IntegerType>(elementTy)) return rewriter.create<arith::DivSIOp>(loc, resultTypes, args); // tosa::ReciprocalOp @@ -2567,7 +2567,7 @@ void mlir::tosa::populateTosaToLinalgConversionPatterns( PointwiseConverter<tosa::AddOp>, PointwiseConverter<tosa::SubOp>, PointwiseConverter<tosa::MulOp>, - PointwiseConverter<tosa::DivOp>, + PointwiseConverter<tosa::IntDivOp>, PointwiseConverter<tosa::NegateOp>, PointwiseConverter<tosa::PowOp>, PointwiseConverter<tosa::ReciprocalOp>, diff --git a/mlir/lib/Dialect/Tosa/IR/ShardingInterfaceImpl.cpp b/mlir/lib/Dialect/Tosa/IR/ShardingInterfaceImpl.cpp index 137156fe1a73..ffbb707344b8 100644 --- a/mlir/lib/Dialect/Tosa/IR/ShardingInterfaceImpl.cpp +++ b/mlir/lib/Dialect/Tosa/IR/ShardingInterfaceImpl.cpp @@ -79,7 +79,7 @@ void mlir::tosa::registerShardingInterfaceExternalModels( registry.addExtension(+[](MLIRContext *ctx, TosaDialect *dialect) { registerElemwiseAll< ClampOp, SigmoidOp, TanhOp, AddOp, ArithmeticRightShiftOp, BitwiseAndOp, - BitwiseOrOp, BitwiseXorOp, DivOp, LogicalAndOp, LogicalLeftShiftOp, + BitwiseOrOp, BitwiseXorOp, IntDivOp, LogicalAndOp, LogicalLeftShiftOp, LogicalRightShiftOp, LogicalOrOp, LogicalXorOp, MaximumOp, MinimumOp, MulOp, PowOp, SubOp, AbsOp, BitwiseNotOp, CeilOp, ClzOp, ExpOp, FloorOp, LogOp, LogicalNotOp, NegateOp, ReciprocalOp, RsqrtOp, SelectOp, EqualOp, diff --git a/mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp b/mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp index c139d5f60024..e4e5fe3d1db3 100644 --- a/mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp +++ b/mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp @@ -520,7 +520,7 @@ OpFoldResult ArgMaxOp::fold(FoldAdaptor adaptor) { return {}; } -OpFoldResult DivOp::fold(FoldAdaptor adaptor) { +OpFoldResult IntDivOp::fold(FoldAdaptor adaptor) { auto lhsTy = llvm::dyn_cast<RankedTensorType>(getInput1().getType()); auto rhsTy = llvm::dyn_cast<RankedTensorType>(getInput2().getType()); auto resultTy = llvm::dyn_cast<RankedTensorType>(getType()); diff --git a/mlir/lib/Dialect/Tosa/IR/TosaOps.cpp b/mlir/lib/Dialect/Tosa/IR/TosaOps.cpp index b7394ad4c4bd..288cbac7b7b8 100644 --- a/mlir/lib/Dialect/Tosa/IR/TosaOps.cpp +++ b/mlir/lib/Dialect/Tosa/IR/TosaOps.cpp @@ -139,7 +139,7 @@ void TosaDialect::initialize() { addInterfaces<TosaDialectBytecodeInterface, TosaInlinerInterface>(); declarePromisedInterfaces< mesh::ShardingInterface, ClampOp, SigmoidOp, TanhOp, AddOp, - ArithmeticRightShiftOp, BitwiseAndOp, BitwiseOrOp, BitwiseXorOp, DivOp, + ArithmeticRightShiftOp, BitwiseAndOp, BitwiseOrOp, BitwiseXorOp, IntDivOp, LogicalAndOp, LogicalLeftShiftOp, LogicalRightShiftOp, LogicalOrOp, LogicalXorOp, MaximumOp, MinimumOp, MulOp, PowOp, SubOp, AbsOp, BitwiseNotOp, CeilOp, ClzOp, ExpOp, FloorOp, LogOp, LogicalNotOp, @@ -1381,12 +1381,12 @@ NARY_SHAPE_INFER(tosa::CeilOp) NARY_SHAPE_INFER(tosa::ClampOp) NARY_SHAPE_INFER(tosa::ClzOp) NARY_SHAPE_INFER(tosa::CosOp) -NARY_SHAPE_INFER(tosa::DivOp) NARY_SHAPE_INFER(tosa::ExpOp) NARY_SHAPE_INFER(tosa::FloorOp) NARY_SHAPE_INFER(tosa::GreaterEqualOp) NARY_SHAPE_INFER(tosa::GreaterOp) NARY_SHAPE_INFER(tosa::IdentityOp) +NARY_SHAPE_INFER(tosa::IntDivOp) NARY_SHAPE_INFER(tosa::LogOp) NARY_SHAPE_INFER(tosa::LogicalAndOp) NARY_SHAPE_INFER(tosa::LogicalLeftShiftOp) diff --git a/mlir/lib/Dialect/Tosa/Transforms/TosaMakeBroadcastable.cpp b/mlir/lib/Dialect/Tosa/Transforms/TosaMakeBroadcastable.cpp index 18bc7d6aa9ee..9c6ee4c62eee 100644 --- a/mlir/lib/Dialect/Tosa/Transforms/TosaMakeBroadcastable.cpp +++ b/mlir/lib/Dialect/Tosa/Transforms/TosaMakeBroadcastable.cpp @@ -232,7 +232,7 @@ public: patterns.add<ConvertTosaOp<tosa::AddOp>>(ctx); patterns.add<ConvertTosaOp<tosa::SubOp>>(ctx); patterns.add<ConvertTosaOp<tosa::MulOp>>(ctx); - patterns.add<ConvertTosaOp<tosa::DivOp>>(ctx); + patterns.add<ConvertTosaOp<tosa::IntDivOp>>(ctx); patterns.add<ConvertTosaOp<tosa::MaximumOp>>(ctx); patterns.add<ConvertTosaOp<tosa::MinimumOp>>(ctx); patterns.add<ConvertTosaOp<tosa::EqualOp>>(ctx); diff --git a/mlir/lib/Dialect/Tosa/Transforms/TosaValidation.cpp b/mlir/lib/Dialect/Tosa/Transforms/TosaValidation.cpp index c99f62d5ae11..539501082fd3 100644 --- a/mlir/lib/Dialect/Tosa/Transforms/TosaValidation.cpp +++ b/mlir/lib/Dialect/Tosa/Transforms/TosaValidation.cpp @@ -200,7 +200,7 @@ private: CHECK_RANKS_FOR(BitwiseAnd); CHECK_RANKS_FOR(BitwiseOr); CHECK_RANKS_FOR(BitwiseXor); - CHECK_RANKS_FOR(Div); + CHECK_RANKS_FOR(IntDiv); CHECK_RANKS_FOR(LogicalAnd); CHECK_RANKS_FOR(LogicalLeftShift); CHECK_RANKS_FOR(LogicalRightShift); diff --git a/mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir b/mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir index 03c9fec1c9a8..45b39f79a2a7 100644 --- a/mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir +++ b/mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir @@ -626,7 +626,7 @@ func.func @test_simple_i32(%arg0: tensor<1xi32>) -> () { // CHECK: linalg.generic // CHECK: arith.divsi - %4 = tosa.div %arg0, %arg0 : (tensor<1xi32>, tensor<1xi32>) -> tensor<1xi32> + %40 = tosa.int_div %arg0, %arg0 : (tensor<1xi32>, tensor<1xi32>) -> tensor<1xi32> // CHECK: linalg.generic // CHECK: ^bb0(%[[ARG1:.*]]: i32, %[[ARG2:.*]]: i32): diff --git a/mlir/test/Dialect/Tosa/constant-op-fold.mlir b/mlir/test/Dialect/Tosa/constant-op-fold.mlir index c9c60a94bf9e..ad82c9f8858e 100644 --- a/mlir/test/Dialect/Tosa/constant-op-fold.mlir +++ b/mlir/test/Dialect/Tosa/constant-op-fold.mlir @@ -213,7 +213,7 @@ func.func @fold_add_splat_f32() -> tensor<10xf32> { func.func @fold_div_zero_lhs_i32(%arg0: tensor<i32>) -> tensor<i32> { %zero = "tosa.const"() {value = dense<0> : tensor<i32>} : () -> tensor<i32> // CHECK: %[[ZERO:.+]] = "tosa.const"() <{value = dense<0> - %div = tosa.div %zero, %arg0 : (tensor<i32>, tensor<i32>) -> tensor<i32> + %div = tosa.int_div %zero, %arg0 : (tensor<i32>, tensor<i32>) -> tensor<i32> // CHECK: return %[[ZERO]] return %div : tensor<i32> } @@ -223,7 +223,7 @@ func.func @fold_div_zero_lhs_i32(%arg0: tensor<i32>) -> tensor<i32> { // CHECK-LABEL: @fold_div_one_rhs_i32 func.func @fold_div_one_rhs_i32(%arg0: tensor<i32>) -> tensor<i32> { %one = "tosa.const"() {value = dense<1> : tensor<i32>} : () -> tensor<i32> - %div = tosa.div %arg0, %one : (tensor<i32>, tensor<i32>) -> tensor<i32> + %div = tosa.int_div %arg0, %one : (tensor<i32>, tensor<i32>) -> tensor<i32> // CHECK: return %arg0 return %div : tensor<i32> } @@ -235,7 +235,7 @@ func.func @fold_div_splat_i32() -> tensor<i32> { %lhs = "tosa.const"() {value = dense<10> : tensor<i32>} : () -> tensor<i32> %rhs = "tosa.const"() {value = dense<-3> : tensor<i32>} : () -> tensor<i32> // CHECK: %[[SPLAT:.+]] = "tosa.const"() <{value = dense<-3> - %div = tosa.div %lhs, %rhs : (tensor<i32>, tensor<i32>) -> tensor<i32> + %div = tosa.int_div %lhs, %rhs : (tensor<i32>, tensor<i32>) -> tensor<i32> // CHECK: return %[[SPLAT]] return %div : tensor<i32> } @@ -1092,7 +1092,7 @@ func.func @reduce_sum_constant_aggressive() -> tensor<1x3xi32> { // AGGRESIVE-LABEL: func.func @reduce_sum_constant_aggressive() -> tensor<1x3xi32> { // AGGRESIVE: %[[VAL_0:.*]] = "tosa.const"() <{value = dense<4> : tensor<1x3xi32>}> : () -> tensor<1x3xi32> // AGGRESIVE: return %[[VAL_0:.*]] : tensor<1x3xi32> - + // CHECK-LABEL: func.func @reduce_sum_constant_aggressive() -> tensor<1x3xi32> { // CHECK: %[[VAL_0:.*]] = "tosa.const"() <{value = dense<1> : tensor<2x3xi32>}> : () -> tensor<2x3xi32> // CHECK: %[[VAL_1:.*]] = tosa.reduce_sum %[[VAL_0]] {axis = 0 : i32} : (tensor<2x3xi32>) -> tensor<1x3xi32> diff --git a/mlir/test/Dialect/Tosa/ops.mlir b/mlir/test/Dialect/Tosa/ops.mlir index 01b27072a4b6..525ee917ccd9 100644 --- a/mlir/test/Dialect/Tosa/ops.mlir +++ b/mlir/test/Dialect/Tosa/ops.mlir @@ -257,9 +257,9 @@ func.func @test_bitwise_xor(%arg0: tensor<13x21x1xi32>, %arg1: tensor<13x21x3xi3 } // ----- -// CHECK-LABEL: div -func.func @test_div(%arg0: tensor<13x21x1xi32>, %arg1: tensor<13x21x3xi32>) -> tensor<13x21x3xi32> { - %0 = tosa.div %arg0, %arg1 : (tensor<13x21x1xi32>, tensor<13x21x3xi32>) -> tensor<13x21x3xi32> +// CHECK-LABEL: int_div +func.func @test_int_div(%arg0: tensor<13x21x1xi32>, %arg1: tensor<13x21x3xi32>) -> tensor<13x21x3xi32> { + %0 = tosa.int_div %arg0, %arg1 : (tensor<13x21x1xi32>, tensor<13x21x3xi32>) -> tensor<13x21x3xi32> return %0 : tensor<13x21x3xi32> } |