[Mlir-commits] [mlir] [mlir][spirv] Expand support for TOSA Extended Instruction Set (00100… (PR #176908)

Jakub Kuderski llvmlistbot at llvm.org
Tue Jan 20 05:59:04 PST 2026


================
@@ -20,6 +20,72 @@ namespace mlir::spirv {
 // TOSA Operator Verifiers.
 //===----------------------------------------------------------------------===//
 
+namespace {
+
+template <typename T>
+static LogicalResult verifyConvOp(T op) {
+  ShapedType inputTy = op.getInputType();
+  ShapedType biasTy = op.getBiasType();
+  ShapedType resultTy = op.getResultType();
+
+  Type inputETy = inputTy.getElementType();
+  Type biasETy = biasTy.getElementType();
+  Type resultETy = resultTy.getElementType();
+
+  if (inputETy.isInteger() && !inputETy.isInteger(8) &&
+      !inputETy.isInteger(16)) {
+    return op.emitOpError(
+        "input element type can only be of width 8 or 16 when integer type");
+  }
+
+  if (inputETy.isInteger(8) && !resultETy.isInteger(32)) {
+    return op.emitOpError("expect result type to be i32, got ") << resultETy;
+  }
+
+  if (inputETy.isInteger(16) && !resultETy.isInteger(64)) {
+    return op.emitOpError("expect result type to be i64, got ") << resultETy;
+  }
+
+  if (inputETy.isF16() && !resultETy.isF16()) {
+    return op.emitOpError("expect result type to be f16, got ") << resultETy;
+  }
+
+  if (inputETy.isF32() && !resultETy.isF32()) {
+    return op.emitOpError("expect result type to be f32, got ") << resultETy;
+  }
+
+  if (biasETy != resultETy) {
+    return op.emitOpError("element types of bias and result must be the same");
+  }
+
+  TosaExtAccType accType = op.getAccType();
+  if (inputETy.isInteger(8) && accType != TosaExtAccType::INT32) {
+    return op.emitOpError("accumulator type for i8 tensorARM is not i32");
+  }
+
+  if (inputETy.isInteger(16) && accType != TosaExtAccType::INT48) {
+    return op.emitOpError("accumulator type for i16 tensorARM is not i48");
+  }
+
+  if (inputETy.isF16() &&
+      !(accType == TosaExtAccType::FP16 || accType == TosaExtAccType::FP32)) {
----------------
kuhar wrote:

nit:

```suggestion
      !llvm::is_contained({TosaExtAccType::FP16, TosaExtAccType::FP32}, accType)) {
```

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


More information about the Mlir-commits mailing list