// RUN: %target-sil-opt -enable-sil-verify-all -inline %s | %FileCheck %s

// Check if cloning of select_value and switch_value works correctly without
// producing illegal SIL.

sil_stage canonical

import Builtin

sil [always_inline] @callee : $@convention(thin) () -> () {
bb0:
  %1 = integer_literal $Builtin.Word, 1
  %2 = integer_literal $Builtin.Word, 2
  %3 = integer_literal $Builtin.Word, 3

  %4 = select_value %1: $Builtin.Word, case %1: %2, case %2: %1, default %3 : $Builtin.Word

  switch_value %1 : $Builtin.Word, case %1: bb1, case %2: bb2

bb1:
  br bb3

bb2:
  br bb3

bb3:
  %5 = tuple ()
  return %5 : $()
}

// CHECK-LABEL: sil @caller : $@convention(thin) () -> ()
// CHECK: select_value
// CHECK: switch_value
sil @caller : $@convention(thin) () -> () {
bb0:
  %0 = function_ref @callee : $@convention(thin) () -> ()
  %1 = apply %0() : $@convention(thin) () -> ()
  %2 = tuple ()
  return %2 : $()
}

