// RUN: mlir-opt %s --split-input-file --tosa-to-linalg-pipeline -verify-diagnostics // ----- // check that -tosa-validate of stateful ops kick in func.func @test_variable_write_shape(%arg0: tensor<1x4x8xi32>) -> () { tosa.variable @stored_var = dense<-1> : tensor<2x4x8xi32> // expected-error@+1 {{'tosa.variable.write' op operand type does not equal variable type}} tosa.variable.write @stored_var, %arg0 : tensor<1x4x8xi32> return } // ----- // check that -tosa-validate level checking kick in func.func @tensor_with_unknown_rank(%arg0: tensor<*xi8>) -> tensor<*xi8> { // expected-error@+1 {{'tosa.abs' op failed level check: unranked tensor}} %0 = "tosa.abs"(%arg0) : (tensor<*xi8>) -> tensor<*xi8> return %0 : tensor<*xi8> } // ----- // check that tosa verify kick in func.func @test_avg_pool2d_zero_dim_input(%arg0: tensor<1x0x?x9xf32>) -> tensor<1x7x7x9xf32> { // expected-error@+1 {{'tosa.avg_pool2d' op tensor has a dimension with size zero. Each dimension of a tensor must have size >= 1}} %0 = "tosa.avg_pool2d"(%arg0) {acc_type = f32, kernel = array, pad = array, stride = array} : (tensor<1x0x?x9xf32>) -> tensor<1x7x7x9xf32> return %0 : tensor<1x7x7x9xf32> } // ----- // check that --tosa-to-linalg kick in func.func @avg_pool2d_with_unsupported_quant_type(%arg0: tensor<1x7x7x9x!quant.uniform>) -> tensor<1x7x7x9x!quant.uniform> { // expected-error@+1 {{failed to legalize operation 'tosa.avg_pool2d'}} %0 = "tosa.avg_pool2d"(%arg0) {acc_type = i32, kernel = array, pad = array, stride = array} : (tensor<1x7x7x9x!quant.uniform>) -> tensor<1x7x7x9x!quant.uniform> return %0 : tensor<1x7x7x9x!quant.uniform> }