[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