brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 97fb9f4 Raw
52 lines · plain
1// RUN: mlir-opt -allow-unregistered-dialect -p 'builtin.module(buffer-results-to-out-params{hoist-static-allocs})'  %s | FileCheck %s2 3// CHECK-LABEL:   func private @basic(4// CHECK-SAME:                %[[ARG:.*]]: memref<8x64xf32>) {5// CHECK-NOT:        memref.alloc()6// CHECK:           "test.source"(%[[ARG]])  : (memref<8x64xf32>) -> ()7// CHECK:           return8// CHECK:         }9func.func private @basic() -> (memref<8x64xf32>) {10  %b = memref.alloc() : memref<8x64xf32>11  "test.source"(%b)  : (memref<8x64xf32>) -> ()12  return %b : memref<8x64xf32>13}14 15// CHECK-LABEL:   func private @basic_no_change(16// CHECK-SAME:                %[[ARG:.*]]: memref<f32>) {17// CHECK:           %[[RESULT:.*]] = "test.source"() : () -> memref<f32>18// CHECK:           memref.copy %[[RESULT]], %[[ARG]]  : memref<f32> to memref<f32>19// CHECK:           return20// CHECK:         }21func.func private @basic_no_change() -> (memref<f32>) {22  %0 = "test.source"() : () -> (memref<f32>)23  return %0 : memref<f32>24}25 26// CHECK-LABEL:   func private @basic_dynamic(27// CHECK-SAME:                %[[D:.*]]: index, %[[ARG:.*]]: memref<?xf32>) {28// CHECK:           %[[RESULT:.*]] = memref.alloc(%[[D]]) : memref<?xf32>29// CHECK:           "test.source"(%[[RESULT]])  : (memref<?xf32>) -> ()30// CHECK:           memref.copy %[[RESULT]], %[[ARG]]31// CHECK:           return32// CHECK:         }33func.func private @basic_dynamic(%d: index) -> (memref<?xf32>) {34  %b = memref.alloc(%d) : memref<?xf32>35  "test.source"(%b)  : (memref<?xf32>) -> ()36  return %b : memref<?xf32>37}38 39// -----40 41// no change due to writing to func args42// CHECK-LABEL:   func private @return_arg(43// CHECK-SAME:        %[[ARG0:.*]]: memref<128x256xf32>, %[[ARG1:.*]]: memref<128x256xf32>, %[[ARG2:.*]]: memref<128x256xf32>) {44// CHECK:           "test.source"(%[[ARG0]], %[[ARG1]])45// CHECK:           memref.copy46// CHECK:           return47// CHECK:         }48func.func private @return_arg(%arg0: memref<128x256xf32>, %arg1: memref<128x256xf32>) -> memref<128x256xf32> {49  "test.source"(%arg0, %arg1)  : (memref<128x256xf32>, memref<128x256xf32>) -> ()50  return %arg0 : memref<128x256xf32>51}52