blob: de5fe3bd4a029c71dfd3d870f26b0983ee913670 [file] [log] [blame]
// RUN: mlir-opt %s -inline | FileCheck %s
// CHECK-LABEL: func @test_inline
// CHECK-SAME: (%[[ARG:.*]]: memref<*xf32>)
// CHECK-NOT: call
// CHECK: %[[RES:.*]] = bufferization.clone %[[ARG]]
// CHECK: bufferization.dealloc
// CHECK: return %[[RES]]
func.func @test_inline(%buf : memref<*xf32>) -> (memref<*xf32>, i1) {
%0:2 = call @inner_func(%buf) : (memref<*xf32>) -> (memref<*xf32>, i1)
return %0#0, %0#1 : memref<*xf32>, i1
}
func.func @inner_func(%buf : memref<*xf32>) -> (memref<*xf32>, i1) {
%true = arith.constant true
%clone = bufferization.clone %buf : memref<*xf32> to memref<*xf32>
%0 = bufferization.dealloc (%buf : memref<*xf32>) if (%true) retain (%clone : memref<*xf32>)
return %clone, %0 : memref<*xf32>, i1
}