[Mlir-commits] [mlir] d325d2b - [mlir][tosa] Fix tosa::Select to linalg::generic indexingMaps bug

Jacques Pienaar llvmlistbot at llvm.org
Mon Oct 10 15:48:00 PDT 2022


Author: AmosLewis
Date: 2022-10-10T15:47:50-07:00
New Revision: d325d2b407fcb7f37230b86fb291ef777497137d

URL: https://github.com/llvm/llvm-project/commit/d325d2b407fcb7f37230b86fb291ef777497137d
DIFF: https://github.com/llvm/llvm-project/commit/d325d2b407fcb7f37230b86fb291ef777497137d.diff

LOG: [mlir][tosa] Fix tosa::Select to linalg::generic indexingMaps bug

The tosa to linalg generic ops indexingMaps rank use is wrong.
	 Find this bug in gpt2 pytorch model lowering to tosa.
	 issue link is here https://github.com/llvm/llvm-project/issues/58154

Reviewed By: jpienaar

Differential Revision: https://reviews.llvm.org/D135343

Added: 
    

Modified: 
    mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
    mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir

Removed: 
    


################################################################################
diff  --git a/mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp b/mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
index 7aae079410989..63a491664052f 100644
--- a/mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
+++ b/mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
@@ -614,7 +614,7 @@ elementwiseMatchAndRewriteHelper(Operation *operation,
 
     operands.push_back(operand);
     indexingMaps.push_back(AffineMap::get(
-        /*dimCount=*/type.getRank(), /*symbolCount=*/0, affineExprs,
+        /*dimCount=*/rank, /*symbolCount=*/0, affineExprs,
         rewriter.getContext()));
   }
 

diff  --git a/mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir b/mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
index a7297281d5ab3..a9b43d2b9f929 100644
--- a/mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
+++ b/mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
@@ -1990,3 +1990,18 @@ func.func @resize_dyn(%input: tensor<?x2x2x1xi8>) -> () {
   %output = "tosa.resize"(%input) { scale = [4, 2, 4, 2], offset = [-1, -1], border = [1, 1], mode = "BILINEAR" } : (tensor<?x2x2x1xi8>)  -> (tensor<?x4x4x1xi32>)
   return
 }
+
+// -----
+
+// Regression test for using the wrong rank.
+
+// CHECK-DAG: affine_map<(d0, d1, d2, d3) -> (d0, d2, d3)>
+// CHECK-DAG: affine_map<(d0, d1, d2, d3) -> (d0, d1, d2, d3)>
+// CHECK-DAG: affine_map<(d0, d1, d2, d3) -> ()>
+// CHECK-LABEL: @select_fp32
+func.func @select_fp32(%arg0: tensor<1x1x5x5xi1>, %arg1: tensor<1x12x5x5xf32>, %arg2: tensor<f32>) -> tensor<1x12x5x5xf32> {
+  // CHECK: linalg.generic
+  %0 = "tosa.select"(%arg0, %arg1, %arg2) : (tensor<1x1x5x5xi1>, tensor<1x12x5x5xf32>, tensor<f32>) -> tensor<1x12x5x5xf32>
+  return %0 : tensor<1x12x5x5xf32>
+}
+


        


More information about the Mlir-commits mailing list