// RUN: %target-sil-opt -assume-parsing-unqualified-ownership-sil -enable-sil-verify-all %s -licm | %FileCheck %s

import Builtin
import Swift

sil_global @startTime : $Double
sil_global @sum1 : $Int32

// CHECK-LABEl: @sink_cond_fail
sil @sink_cond_fail : $@convention(thin) () -> () {
// CHECK: bb0
bb0:
  %0 = global_addr @startTime : $*Double
  %1 = global_addr @sum1 : $*Int32
  %2 = integer_literal $Builtin.Int32, 0
  %3 = struct $Int32 (%2 : $Builtin.Int32)
  store %3 to %1 : $*Int32
  %5 = function_ref @callee : $@convention(c) () -> Double
  %6 = apply %5() : $@convention(c) () -> Double
  store %6 to %0 : $*Double
  %8 = integer_literal $Builtin.Int32, 1000000000
  // CHECK: integer_literal $Builtin.Int32, 1
  // CHECK: integer_literal $Builtin.Int1, -1
  // CHECK: struct_element_addr {{.*}} : $*Int32, #Int32._value
  br bb2(%2 : $Builtin.Int32)

// CHECK: bb1:
bb1:
  %11 = tuple ()
  return %11 : $()

// CHECK: bb2(
bb2(%13 : $Builtin.Int32):
  %14 = integer_literal $Builtin.Int32, 1
  %16 = integer_literal $Builtin.Int1, -1
  // CHECK-NEXT: builtin
  %17 = builtin "sadd_with_overflow_Word"(%13 : $Builtin.Int32, %14 : $Builtin.Int32, %16 : $Builtin.Int1) : $(Builtin.Int32, Builtin.Int1)
  // CHECK-NEXT: tuple_extract
  %18 = tuple_extract %17 : $(Builtin.Int32, Builtin.Int1), 0
  // CHECK-NEXT: tuple_extract
  %19 = tuple_extract %17 : $(Builtin.Int32, Builtin.Int1), 1
  cond_fail %19 : $Builtin.Int1
  %21 = struct_element_addr %1 : $*Int32, #Int32._value
  // CHECK-NEXT: load
  %22 = load %21 : $*Builtin.Int32
  // CHECK-NEXT: builtin
  %23 = builtin "sadd_with_overflow_Word"(%22 : $Builtin.Int32, %14 : $Builtin.Int32, %16 : $Builtin.Int1) : $(Builtin.Int32, Builtin.Int1)
  // CHECK-NEXT: tuple_extract
  %24 = tuple_extract %23 : $(Builtin.Int32, Builtin.Int1), 0
  // CHECK-NEXT: tuple_extract
  %25 = tuple_extract %23 : $(Builtin.Int32, Builtin.Int1), 1
  cond_fail %25 : $Builtin.Int1
  // CHECK-NEXT: struct
  %27 = struct $Int32 (%24 : $Builtin.Int32)
  // CHECK-NEXT: store
  store %27 to %1 : $*Int32
  // CHECK-NEXT: {{ cond_fail}}
  // CHECK-NEXT: {{ cond_fail}}
  %29 = builtin "cmp_eq_Word"(%18 : $Builtin.Int32, %8 : $Builtin.Int32) : $Builtin.Int1
  cond_br %29, bb1, bb2(%18 : $Builtin.Int32)
}

sil @callee : $@convention(c) () -> Double
