// RUN: mlir-opt -convert-memref-to-emitc %s -split-input-file -verify-diagnostics
func.func @memref_op(%arg0 : memref<2x4xf32>) {
// expected-error@+1 {{failed to legalize operation 'memref.copy'}}
memref.copy %arg0, %arg0 : memref<2x4xf32> to memref<2x4xf32>
return
}
// -----
func.func @alloca_with_dynamic_shape() {
%0 = index.constant 1
// expected-error@+1 {{failed to legalize operation 'memref.alloca'}}
%1 = memref.alloca(%0) : memref<4x?xf32>
return
}
// -----
func.func @alloca_with_alignment() {
// expected-error@+1 {{failed to legalize operation 'memref.alloca'}}
%0 = memref.alloca() {alignment = 64 : i64}: memref<4xf32>
return
}
// -----
func.func @non_identity_layout() {
// expected-error@+1 {{failed to legalize operation 'memref.alloca'}}
%0 = memref.alloca() : memref<4x3xf32, affine_map<(d0, d1) -> (d1, d0)>>
return
}
// -----
func.func @zero_rank() {
// expected-error@+1 {{failed to legalize operation 'memref.alloca'}}
%0 = memref.alloca() : memref<f32>
return
}
// -----
func.func @zero_dim_rank_1() {
// expected-error@+1 {{failed to legalize operation 'memref.alloca'}}
%0 = memref.alloca() : memref<0xf32>
return
}
// -----
func.func @zero_dim_rank_3() {
// expected-error@+1 {{failed to legalize operation 'memref.alloca'}}
%0 = memref.alloca() : memref<2x0x4xf32>
return
}
// -----
// expected-error@+1 {{failed to legalize operation 'memref.global'}}
memref.global "nested" constant @nested_global : memref<3x7xf32>
// -----
func.func @unsupported_type_f128() {
// expected-error@+1 {{failed to legalize operation 'memref.alloca'}}
%0 = memref.alloca() : memref<4xf128>
return
}
// -----
func.func @unsupported_type_i4() {
// expected-error@+1 {{failed to legalize operation 'memref.alloca'}}
%0 = memref.alloca() : memref<4xi4>
return
}