brintos

brintos / llvm-project-archived public Read only

0
0
Text · 886 B · c012c31 Raw
25 lines · plain
1// RUN: mlir-opt -allow-unregistered-dialect %s -test-inline-callback | FileCheck %s2 3// Test inlining with multiple blocks and scf.execute_region transformation4// CHECK-LABEL: func @test_inline_multiple_blocks5func.func @test_inline_multiple_blocks(%arg0: i32) -> i32 {6  // CHECK: %[[RES:.*]] = scf.execute_region -> i327  // CHECK-NEXT: %[[ADD1:.*]] = arith.addi %arg0, %arg08  // CHECK-NEXT: cf.br ^bb1(%[[ADD1]] : i32)9  // CHECK: ^bb1(%[[ARG:.*]]: i32):10  // CHECK-NEXT: %[[ADD2:.*]] = arith.addi %[[ARG]], %[[ARG]]11  // CHECK-NEXT: scf.yield %[[ADD2]]12  // CHECK: return %[[RES]]13  %fn = "test.functional_region_op"() ({14  ^bb0(%a : i32):15    %b = arith.addi %a, %a : i3216    cf.br ^bb1(%b: i32)17  ^bb1(%c: i32):18    %d = arith.addi %c, %c : i3219    "test.return"(%d) : (i32) -> ()20  }) : () -> ((i32) -> i32)21 22  %0 = call_indirect %fn(%arg0) : (i32) -> i3223  return %0 : i3224}25