llvm/flang/test/Fir/inline.fir

// RUN: tco --inline-all %s -o - | FileCheck %s
// RUN: %flang_fc1  -mmlir --inline-all -emit-llvm %s -o - | FileCheck %s

// CHECK-LABEL: @add
func.func @add(%a : i32, %b : i32) -> i32 {
  // CHECK: %[[add:.*]] = add i32
  %p = arith.addi %a, %b : i32
  // CHECK: ret i32 %[[add]]
  return %p : i32
}

// CHECK-LABEL: @test
func.func @test(%a : i32, %b : i32, %c : i32) -> i32 {
  // CHECK: %[[add:.*]] = add i32
  %m = fir.call @add(%a, %b) : (i32, i32) -> i32
  // CHECK: %[[mul:.*]] = mul i32 %[[add]],
  %n = arith.muli %m, %c : i32
  // CHECK: ret i32 %[[mul]]
  return %n : i32
}