diff options
Diffstat (limited to 'mlir/test/Dialect/SCF/canonicalize.mlir')
-rw-r--r-- | mlir/test/Dialect/SCF/canonicalize.mlir | 69 |
1 files changed, 28 insertions, 41 deletions
diff --git a/mlir/test/Dialect/SCF/canonicalize.mlir b/mlir/test/Dialect/SCF/canonicalize.mlir index 8ba8013..308cf150 100644 --- a/mlir/test/Dialect/SCF/canonicalize.mlir +++ b/mlir/test/Dialect/SCF/canonicalize.mlir @@ -867,41 +867,6 @@ func.func @matmul_on_tensors(%t0: tensor<32x1024xf32>) -> tensor<?x?xf32> { // ----- -// CHECK-LABEL: @cond_prop -func.func @cond_prop(%arg0 : i1) -> index { - %res = scf.if %arg0 -> index { - %res1 = scf.if %arg0 -> index { - %v1 = "test.get_some_value1"() : () -> index - scf.yield %v1 : index - } else { - %v2 = "test.get_some_value2"() : () -> index - scf.yield %v2 : index - } - scf.yield %res1 : index - } else { - %res2 = scf.if %arg0 -> index { - %v3 = "test.get_some_value3"() : () -> index - scf.yield %v3 : index - } else { - %v4 = "test.get_some_value4"() : () -> index - scf.yield %v4 : index - } - scf.yield %res2 : index - } - return %res : index -} -// CHECK-NEXT: %[[if:.+]] = scf.if %arg0 -> (index) { -// CHECK-NEXT: %[[c1:.+]] = "test.get_some_value1"() : () -> index -// CHECK-NEXT: scf.yield %[[c1]] : index -// CHECK-NEXT: } else { -// CHECK-NEXT: %[[c4:.+]] = "test.get_some_value4"() : () -> index -// CHECK-NEXT: scf.yield %[[c4]] : index -// CHECK-NEXT: } -// CHECK-NEXT: return %[[if]] : index -// CHECK-NEXT:} - -// ----- - // CHECK-LABEL: @replace_if_with_cond1 func.func @replace_if_with_cond1(%arg0 : i1) -> (i32, i1) { %true = arith.constant true @@ -1475,8 +1440,8 @@ func.func @propagate_into_execute_region() { // ----- -// CHECK-LABEL: func @execute_region_elim -func.func @execute_region_elim() { +// CHECK-LABEL: func @execute_region_inline +func.func @execute_region_inline() { affine.for %i = 0 to 100 { "test.foo"() : () -> () %v = scf.execute_region -> i64 { @@ -1496,8 +1461,30 @@ func.func @execute_region_elim() { // ----- -// CHECK-LABEL: func @func_execute_region_elim -func.func @func_execute_region_elim() { +// CHECK-LABEL: func @execute_region_no_inline +func.func @execute_region_no_inline() { + affine.for %i = 0 to 100 { + "test.foo"() : () -> () + %v = scf.execute_region -> i64 no_inline { + %x = "test.val"() : () -> i64 + scf.yield %x : i64 + } + "test.bar"(%v) : (i64) -> () + } + return +} + +// CHECK-NEXT: affine.for %arg0 = 0 to 100 { +// CHECK-NEXT: "test.foo"() : () -> () +// CHECK-NEXT: scf.execute_region +// CHECK-NEXT: %[[VAL:.*]] = "test.val"() : () -> i64 +// CHECK-NEXT: scf.yield %[[VAL]] : i64 +// CHECK-NEXT: } + +// ----- + +// CHECK-LABEL: func @func_execute_region_inline +func.func @func_execute_region_inline() { "test.foo"() : () -> () %v = scf.execute_region -> i64 { %c = "test.cmp"() : () -> i1 @@ -1531,8 +1518,8 @@ func.func @func_execute_region_elim() { // ----- -// CHECK-LABEL: func @func_execute_region_elim_multi_yield -func.func @func_execute_region_elim_multi_yield() { +// CHECK-LABEL: func @func_execute_region_inline_multi_yield +func.func @func_execute_region_inline_multi_yield() { "test.foo"() : () -> () %v = scf.execute_region -> i64 { %c = "test.cmp"() : () -> i1 |