[Mlir-commits] [mlir] [mlir][tosa] Add more verifiers for the following operators (PR #127923)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Fri Feb 28 16:44:12 PST 2025


================
@@ -850,6 +850,71 @@ LogicalResult tosa::ConcatOp::inferReturnTypeComponents(
   return success();
 }
 
+LogicalResult tosa::ConcatOp::verify() {
+  // check that each input has same element type as output
+  auto outType = getOutput().getType();
+  const Operation::operand_range inputList = getInput1();
+
+  if (!llvm::all_of(inputList, [&](auto input) {
+        return succeeded(verifySameElementTypes(
+            *this, /* inType = */ input.getType(), outType));
+      })) {
+    return failure();
+  }
+
+  // Check there is at least one input
+  if (inputList.empty())
+    return emitOpError("expect at least one input");
+
+  const Type firstInputType = inputList.front().getType();
+  const ShapeAdaptor firstInputShape(firstInputType);
+  const int32_t axis = getAxis();
+
+  if (firstInputShape.hasRank()) {
----------------
Jerry-Ge wrote:

Thanks @lhutton1 for the clarification. Then how about let's move the axis check to the end of the verifier? 

In such case, we'll still do all of the `OperandsHashRank` check. If it hits `tensor<*xf32>`, it will emitError. Once the `OperandsHashRank` check is done. We then check the axis. Then @GeorgeARM 's concern won't happen. 

https://github.com/llvm/llvm-project/pull/127923


More information about the Mlir-commits mailing list