brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · ca7acb5 Raw
45 lines · plain
1// Invoke the test control-flow sink pass to test the utilities.2// RUN: mlir-opt -test-control-flow-sink %s | FileCheck %s3 4// CHECK-LABEL: func @test_sink5func.func @test_sink() {6  %0 = "test.sink_me"() : () -> i327  // CHECK-NEXT: test.sink_target8  "test.sink_target"() ({9    // CHECK-NEXT: %[[V0:.*]] = "test.sink_me"() {was_sunk = 0 : i32}10    // CHECK-NEXT: "test.use"(%[[V0]])11    "test.use"(%0) : (i32) -> ()12  }) : () -> ()13  return14}15 16// CHECK-LABEL: func @test_sink_first_region_only17func.func @test_sink_first_region_only() {18  %0 = "test.sink_me"() {first} : () -> i3219  // CHECK-NEXT: %[[V1:.*]] = "test.sink_me"() {second}20  %1 = "test.sink_me"() {second} : () -> i3221  // CHECK-NEXT: test.sink_target22  "test.sink_target"() ({23    // CHECK-NEXT: %[[V0:.*]] = "test.sink_me"() {first, was_sunk = 0 : i32}24    // CHECK-NEXT: "test.use"(%[[V0]])25    "test.use"(%0) : (i32) -> ()26  }, {27    "test.use"(%1) : (i32) -> ()28  }) : () -> ()29  return30}31 32// CHECK-LABEL: func @test_sink_targeted_op_only33func.func @test_sink_targeted_op_only() {34  %0 = "test.sink_me"() : () -> i3235  // CHECK-NEXT: %[[V1:.*]] = "test.dont_sink_me"36  %1 = "test.dont_sink_me"() : () -> i3237  // CHECK-NEXT: test.sink_target38  "test.sink_target"() ({39    // CHECK-NEXT: %[[V0:.*]] = "test.sink_me"40    // CHECK-NEXT: "test.use"(%[[V0]], %[[V1]])41    "test.use"(%0, %1) : (i32, i32) -> ()42  }) : () -> ()43  return44}45