Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
mlir/test/Dialect/MemRef/ops.mlir
Show First 20 Lines • Show All 83 Lines • ▼ Show 20 Lines | |||||
// CHECK-LABEL: func @memref_dealloc | // CHECK-LABEL: func @memref_dealloc | ||||
func.func @memref_dealloc() { | func.func @memref_dealloc() { | ||||
%0 = memref.alloc() : memref<2xf32> | %0 = memref.alloc() : memref<2xf32> | ||||
%1 = memref.cast %0 : memref<2xf32> to memref<*xf32> | %1 = memref.cast %0 : memref<2xf32> to memref<*xf32> | ||||
memref.dealloc %1 : memref<*xf32> | memref.dealloc %1 : memref<*xf32> | ||||
return | return | ||||
} | } | ||||
// CHECK-LABEL: func @memref_cast | |||||
func.func @memref_cast() { | |||||
%0 = memref.alloc() : memref<2xi32> | |||||
%1 = memref.cast %0 : memref<2xi32> to memref<2xui32> | |||||
%2 = memref.cast %1 : memref<2xui32> to memref<2xsi32> | |||||
%3 = memref.cast %2 : memref<2xsi32> to memref<*xi32> | |||||
return | |||||
} | |||||
// CHECK-LABEL: func @memref_alloca_scope | // CHECK-LABEL: func @memref_alloca_scope | ||||
func.func @memref_alloca_scope() { | func.func @memref_alloca_scope() { | ||||
memref.alloca_scope { | memref.alloca_scope { | ||||
memref.alloca_scope.return | memref.alloca_scope.return | ||||
} | } | ||||
return | return | ||||
} | } | ||||
▲ Show 20 Lines • Show All 183 Lines • ▼ Show 20 Lines | func.func @expand_collapse_shape_transposed_layout( | ||||
%r0 = memref.expand_shape %m0 [[0], [1, 2]] : | %r0 = memref.expand_shape %m0 [[0], [1, 2]] : | ||||
memref<?x?xf32, strided<[1, 10], offset: 0>> into | memref<?x?xf32, strided<[1, 10], offset: 0>> into | ||||
memref<?x?x5xf32, strided<[1, 50, 10], offset: 0>> | memref<?x?x5xf32, strided<[1, 50, 10], offset: 0>> | ||||
%rr0 = memref.collapse_shape %r0 [[0], [1, 2]] : | %rr0 = memref.collapse_shape %r0 [[0], [1, 2]] : | ||||
memref<?x?x5xf32, strided<[1, 50, 10], offset: 0>> into | memref<?x?x5xf32, strided<[1, 50, 10], offset: 0>> into | ||||
memref<?x?xf32, strided<[1, 10], offset: 0>> | memref<?x?xf32, strided<[1, 10], offset: 0>> | ||||
%r1 = memref.expand_shape %m1 [[0, 1], [2], [3, 4]] : | %r1 = memref.expand_shape %m1 [[0, 1], [2], [3, 4]] : | ||||
memref<4x5x6xf32, strided<[1, ?, 1000], offset: 0>> into | memref<4x5x6xf32, strided<[1, ?, 1000], offset: 0>> into | ||||
memref<2x2x5x2x3xf32, strided<[2, 1, ?, 3000, 1000], offset: 0>> | memref<2x2x5x2x3xf32, strided<[2, 1, ?, 3000, 1000], offset: 0>> | ||||
%rr1 = memref.collapse_shape %r1 [[0, 1], [2], [3, 4]] : | %rr1 = memref.collapse_shape %r1 [[0, 1], [2], [3, 4]] : | ||||
memref<2x2x5x2x3xf32, strided<[2, 1, ?, 3000, 1000], offset: 0>> into | memref<2x2x5x2x3xf32, strided<[2, 1, ?, 3000, 1000], offset: 0>> into | ||||
memref<4x5x6xf32, strided<[1, ?, 1000], offset: 0>> | memref<4x5x6xf32, strided<[1, ?, 1000], offset: 0>> | ||||
return | return | ||||
} | } | ||||
// ----- | // ----- | ||||
Show All 28 Lines | ^bb0(%old_value : f32): | ||||
memref.atomic_yield %out : f32 | memref.atomic_yield %out : f32 | ||||
// CHECK: index_attr = 8 : index | // CHECK: index_attr = 8 : index | ||||
} { index_attr = 8 : index } | } { index_attr = 8 : index } | ||||
return | return | ||||
} | } | ||||
// ----- | // ----- | ||||
func.func @extract_strided_metadata(%memref : memref<10x?xf32>) | func.func @extract_strided_metadata(%memref : memref<10x?xf32>) | ||||
-> memref<?x?xf32, strided<[?, ?], offset: ?>> { | -> memref<?x?xf32, strided<[?, ?], offset: ?>> { | ||||
%base, %offset, %sizes:2, %strides:2 = memref.extract_strided_metadata %memref | %base, %offset, %sizes:2, %strides:2 = memref.extract_strided_metadata %memref | ||||
: memref<10x?xf32> -> memref<f32>, index, index, index, index, index | : memref<10x?xf32> -> memref<f32>, index, index, index, index, index | ||||
%m2 = memref.reinterpret_cast %base to | %m2 = memref.reinterpret_cast %base to | ||||
offset: [%offset], | offset: [%offset], | ||||
sizes: [%sizes#0, %sizes#1], | sizes: [%sizes#0, %sizes#1], | ||||
strides: [%strides#0, %strides#1] | strides: [%strides#0, %strides#1] | ||||
: memref<f32> to memref<?x?xf32, strided<[?, ?], offset: ?>> | : memref<f32> to memref<?x?xf32, strided<[?, ?], offset: ?>> | ||||
return %m2: memref<?x?xf32, strided<[?, ?], offset: ?>> | return %m2: memref<?x?xf32, strided<[?, ?], offset: ?>> | ||||
} | } |