// RUN: %target-sil-opt -enable-sil-verify-all %s -inline -dce -sil-inline-threshold=1 | FileCheck %s

sil_stage canonical

import Builtin

// CHECK-LABEL: @caller_of_noinline
sil @caller_of_noinline : $@convention(thin) () -> () {
bb0:
  // CHECK-NOT: function_ref @noinline_callee
  // CHECK-NOT: apply
  %0 = function_ref @noinline_callee : $@convention(thin) (Builtin.Int64) -> Builtin.Int64
  %2 = integer_literal $Builtin.Int64, 0
  %3 = apply %0(%2) : $@convention(thin) (Builtin.Int64) -> Builtin.Int64
  %4 = tuple ()
  return %4 : $()
}
// CHECK-LABEL: [always_inline] @noinline_callee
sil [always_inline] @noinline_callee : $@convention(thin) (Builtin.Int64) -> Builtin.Int64 {
bb0(%0 : $Builtin.Int64):
  %2 = integer_literal $Builtin.Int1, 0
  %3 = builtin "umul_with_overflow_Int64"(%0 : $Builtin.Int64, %0 : $Builtin.Int64, %2 : $Builtin.Int1) : $(Builtin.Int64, Builtin.Int1)
  %4 = tuple_extract %3 : $(Builtin.Int64, Builtin.Int1), 0
  %5 = builtin "umul_with_overflow_Int64"(%4 : $Builtin.Int64, %4 : $Builtin.Int64, %2 : $Builtin.Int1) : $(Builtin.Int64, Builtin.Int1)
  %6 = tuple_extract %5 : $(Builtin.Int64, Builtin.Int1), 0
  return %6 : $Builtin.Int64
}

