xref: /llvm-project/mlir/test/Conversion/MemRefToEmitC/memref-to-emitc-failed.mlir (revision 777142937a599d8a9cea5964b415d9cd13016d79)
1// RUN: mlir-opt -convert-memref-to-emitc %s -split-input-file -verify-diagnostics
2
3func.func @memref_op(%arg0 : memref<2x4xf32>) {
4  // expected-error@+1 {{failed to legalize operation 'memref.copy'}}
5  memref.copy %arg0, %arg0 : memref<2x4xf32> to memref<2x4xf32>
6  return
7}
8
9// -----
10
11func.func @alloca_with_dynamic_shape() {
12  %0 = index.constant 1
13  // expected-error@+1 {{failed to legalize operation 'memref.alloca'}}
14  %1 = memref.alloca(%0) : memref<4x?xf32>
15  return
16}
17
18// -----
19
20func.func @alloca_with_alignment() {
21  // expected-error@+1 {{failed to legalize operation 'memref.alloca'}}
22  %0 = memref.alloca() {alignment = 64 : i64}: memref<4xf32>
23  return
24}
25
26// -----
27
28func.func @non_identity_layout() {
29  // expected-error@+1 {{failed to legalize operation 'memref.alloca'}}
30  %0 = memref.alloca() : memref<4x3xf32, affine_map<(d0, d1) -> (d1, d0)>>
31  return
32}
33
34// -----
35
36func.func @zero_rank() {
37  // expected-error@+1 {{failed to legalize operation 'memref.alloca'}}
38  %0 = memref.alloca() : memref<f32>
39  return
40}
41
42// -----
43
44func.func @zero_dim_rank_1() {
45  // expected-error@+1 {{failed to legalize operation 'memref.alloca'}}
46  %0 = memref.alloca() : memref<0xf32>
47  return
48}
49
50// -----
51
52func.func @zero_dim_rank_3() {
53  // expected-error@+1 {{failed to legalize operation 'memref.alloca'}}
54  %0 = memref.alloca() : memref<2x0x4xf32>
55  return
56}
57
58// -----
59
60// expected-error@+1 {{failed to legalize operation 'memref.global'}}
61memref.global "nested" constant @nested_global : memref<3x7xf32>
62
63// -----
64
65func.func @unsupported_type_f128() {
66  // expected-error@+1 {{failed to legalize operation 'memref.alloca'}}
67  %0 = memref.alloca() : memref<4xf128>
68  return
69}
70
71// -----
72
73func.func @unsupported_type_i4() {
74  // expected-error@+1 {{failed to legalize operation 'memref.alloca'}}
75  %0 = memref.alloca() : memref<4xi4>
76  return
77}
78