[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