blob: e50cf9695c4a3bea5e4f6158096a93ec52eb82ee [file] [log] [blame] [edit]
// RUN: mlir-opt %s -inline='default-pipeline=' | FileCheck %s
// RUN: mlir-opt %s --mlir-disable-threading -inline='default-pipeline=' | FileCheck %s
module {
// CHECK-LABEL: func.func @parent1
func.func @parent1(%arg0: i32) -> i32 {
// CHECK: call @child
%0 = call @child(%arg0) : (i32) -> i32
return %0 : i32
}
// CHECK-LABEL: func.func @parent2
func.func @parent2(%arg0: i32) -> i32 {
// CHECK: call @child
%0 = call @child(%arg0) : (i32) -> i32
return %0 : i32
}
// CHECK-LABEL: func.func @child
func.func @child(%arg0: i32) -> i32 {
%c10_i32 = arith.constant 10 : i32
%c1_i32 = arith.constant 1 : i32
%0 = arith.cmpi sge, %arg0, %c10_i32 : i32
%1 = scf.if %0 -> (i32) {
scf.yield %arg0 : i32
} else {
%2 = arith.addi %arg0, %c1_i32 : i32
// CHECK: call @parent1
// CHECK: call @parent2
%3 = func.call @parent1(%2) : (i32) -> i32
%4 = func.call @parent2(%2) : (i32) -> i32
%5 = arith.addi %3, %4 : i32
scf.yield %5 : i32
}
return %1 : i32
}
}