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

sil_stage canonical

import Builtin
import Swift

enum SimpleEnum {
  case Empty
  case HasInt(Int)
  case HasInt2(Int)
}

//CHECK: _TF4main12test_union_1FT1EOS_10SimpleEnum_S0_
//CHECK: switch_enum
//CHECK: bb2
//CHECK: enum $SimpleEnum, #SimpleEnum.HasInt2!enumelt.1, %{{[0-9]+}} : $Int
//CHECK: bb3
//CHECK: enum $SimpleEnum, #SimpleEnum.HasInt!enumelt.1, %{{[0-9]+}} : $Int
//CHECK: bb4
//CHECK: return

// main.test_union_1 (E : main.SimpleEnum) -> main.SimpleEnum
sil @_TF4main12test_union_1FT1EOS_10SimpleEnum_S0_ : $@convention(thin) (SimpleEnum) -> SimpleEnum {
bb0(%0 : $SimpleEnum):
  %1 = alloc_stack $SimpleEnum, var, name "E"          // users: %16, %2
  store %0 to %1 : $*SimpleEnum                 // id: %2
  %3 = tuple ()
  switch_enum %0 : $SimpleEnum, case #SimpleEnum.Empty!enumelt: bb1, case #SimpleEnum.HasInt!enumelt.1: bb3, case #SimpleEnum.HasInt2!enumelt.1:bb4 // id: %4

bb1:                                              // Preds: bb0
  %6 = enum $SimpleEnum, #SimpleEnum.Empty!enumelt // user: %7
  br bb5(%6 : $SimpleEnum)                        // id: %7

bb3(%8 : $Int):                                 // Preds: bb0
  %9 = alloc_stack $Int, var, name "N"               // users: %13, %10
  store %8 to %9 : $*Int                      // id: %10
  %12 = enum $SimpleEnum, #SimpleEnum.HasInt2!enumelt.1, %8 : $Int // user: %14
  dealloc_stack %9 : $*Int     // id: %13
  br bb5(%12 : $SimpleEnum)                       // id: %14
  
bb4(%13 : $Int):                                 // Preds: bb0
  %14 = alloc_stack $Int, var, name "N"               // users: %13, %10
  store %13 to %14 : $*Int                     // id: %10
  %15 = enum $SimpleEnum, #SimpleEnum.HasInt!enumelt.1, %13 : $Int // user: %14
  dealloc_stack %14 : $*Int     // id: %13
  br bb5(%15 : $SimpleEnum)                       // id: %14

bb5(%16 : $SimpleEnum):                           // Preds: bb2 bb4
  dealloc_stack %1 : $*SimpleEnum // id: %16
  return %16 : $SimpleEnum                        // id: %17
}

