llvm::append_range(pad, op.getPad());
pad.resize(pad.size() + 2, 0);
TypedAttr padAttr = rewriter.getZeroAttr(inElementTy);
+ // Unsupported element type
+ if (!padAttr)
+ return failure();
Value paddedInput = applyPad(loc, input, pad, padAttr, rewriter);
auto initialAttr = rewriter.getZeroAttr(accETy);
--- /dev/null
+// RUN: mlir-opt --split-input-file -pass-pipeline="builtin.module(func.func(tosa-to-linalg-named))" %s -verify-diagnostics
+
+// CHECK-LABEL: @avg_pool2d_with_unsupported_quant_type
+func.func @avg_pool2d_with_unsupported_quant_type(%arg0: tensor<1x7x7x9x!quant.uniform<i8:f32, 0.01>>) -> tensor<1x7x7x9x!quant.uniform<i8:f32, 0.01>> {
+ // expected-error@+1 {{failed to legalize operation 'tosa.avg_pool2d'}}
+ %0 = "tosa.avg_pool2d"(%arg0) {acc_type = i32, kernel = array<i64: 2, 2>, pad = array<i64: 0, 1, 0, 1>, stride = array<i64: 1, 1>} : (tensor<1x7x7x9x!quant.uniform<i8:f32, 0.01>>) -> tensor<1x7x7x9x!quant.uniform<i8:f32, 0.01>>
+ return %0 : tensor<1x7x7x9x!quant.uniform<i8:f32, 0.01>>
+}