// RUN: %target-swift-frontend %s -emit-sil -O -o - -verify | %FileCheck %s

sil_stage canonical

import Builtin
import Swift
import SwiftShims

// top_level_code
sil private @top_level_code : $@convention(thin) () -> () {
bb0:
  %0 = tuple ()                                   // user: %1
  return %0 : $()                                 // id: %1
}

struct BuiltinWord {
  var value: Builtin.Word
}

struct BuiltinUWord {
  var value: Builtin.Word
}

// peephole: Word(Int64(x >> 1)) -> (x >> 1)
// CHECK-LABEL: sil @_TF4test29test_trunc_u_to_s_zext_lshr_1FSuSi : $@convention(thin) (BuiltinUWord) -> BuiltinWord
// CHECK: builtin "lshr_Word"
// CHECK-NOT: builtin "zextOrBitCast_Word_Int64"
// CHECK-NOT: builtin "u_to_s_checked_conversion_Int64"
// CHECK-NOT: builtin "truncOrBitCast_Int64_Word"
// CHECK: return
// test.test_trunc_u_to_s_zext_lshr_1 (BuiltinUWord) -> Swift.BuiltinWord
sil @_TF4test29test_trunc_u_to_s_zext_lshr_1FSuSi : $@convention(thin) (BuiltinUWord) -> BuiltinWord {
bb0(%0 : $BuiltinUWord):
  debug_value %0 : $BuiltinUWord, let, name "x" // id: %1
  %2 = integer_literal $Builtin.Word, 1           // user: %7
  br bb1                                          // id: %3

bb1:                                              // Preds: bb0
  br bb2                                          // id: %4

bb2:                                              // Preds: bb1
  %6 = struct_extract %0 : $BuiltinUWord, #BuiltinUWord.value     // user: %7
  %7 = builtin "lshr_Word"(%6 : $Builtin.Word, %2 : $Builtin.Word) : $Builtin.Word // user: %8
  %8 = struct $BuiltinUWord (%7 : $Builtin.Word)  // user: %11
  br bb3                                          // id: %9

bb3:                                              // Preds: bb2
  %11 = struct_extract %8 : $BuiltinUWord, #BuiltinUWord.value    // user: %12
  %12 = builtin "zextOrBitCast_Word_Int64"(%11 : $Builtin.Word) : $Builtin.Int64 // user: %14
  %14 = builtin "u_to_s_checked_conversion_Int64"(%12 : $Builtin.Int64) : $(Builtin.Int64, Builtin.Int1) // users: %15, %16
  %15 = tuple_extract %14 : $(Builtin.Int64, Builtin.Int1), 0 // user: %18
  %16 = tuple_extract %14 : $(Builtin.Int64, Builtin.Int1), 1 // user: %17
  cond_fail %16 : $Builtin.Int1                   // id: %17
  %18 = struct $Int64 (%15 : $Builtin.Int64)      // user: %19
  %19 = struct_extract %18 : $Int64, #Int64._value // user: %21
  %21 = builtin "truncOrBitCast_Int64_Word"(%19 : $Builtin.Int64) : $Builtin.Word // user: %22
  %22 = struct $BuiltinWord (%21 : $Builtin.Word) // users: %23, %24
  debug_value %22 : $BuiltinWord, let, name "v1" // id: %23
  return %22 : $BuiltinWord                       // id: %24
}


// peephole: Word(Int64(x >> 10)) -> (x >> 1)
// CHECK-LABEL: sil @_TF4test30test_trunc_u_to_s_zext_lshr_10FSuSi : $@convention(thin) (BuiltinUWord) -> BuiltinWord
// CHECK: builtin "lshr_Word"
// CHECK-NOT: builtin "zextOrBitCast_Word_Int64"
// CHECK-NOT: builtin "u_to_s_checked_conversion_Int64"
// CHECK-NOT: builtin "truncOrBitCast_Int64_Word"
// CHECK: return
// test.test_trunc_u_to_s_zext_lshr_10 (Swift.BuiltinUWord) -> Swift.BuiltinWord
sil @_TF4test30test_trunc_u_to_s_zext_lshr_10FSuSi : $@convention(thin) (BuiltinUWord) -> BuiltinWord {
bb0(%0 : $BuiltinUWord):
  debug_value %0 : $BuiltinUWord, let, name "x" // id: %1
  %2 = integer_literal $Builtin.Word, 10          // user: %7
  br bb1                                          // id: %3

bb1:                                              // Preds: bb0
  br bb2                                          // id: %4

bb2:                                              // Preds: bb1
  %6 = struct_extract %0 : $BuiltinUWord, #BuiltinUWord.value     // user: %7
  %7 = builtin "lshr_Word"(%6 : $Builtin.Word, %2 : $Builtin.Word) : $Builtin.Word // user: %8
  %8 = struct $BuiltinUWord (%7 : $Builtin.Word)          // user: %11
  br bb3                                          // id: %9

bb3:                                              // Preds: bb2
  %11 = struct_extract %8 : $BuiltinUWord, #BuiltinUWord.value    // user: %12
  %12 = builtin "zextOrBitCast_Word_Int64"(%11 : $Builtin.Word) : $Builtin.Int64 // user: %14
  %14 = builtin "u_to_s_checked_conversion_Int64"(%12 : $Builtin.Int64) : $(Builtin.Int64, Builtin.Int1) // users: %15, %16
  %15 = tuple_extract %14 : $(Builtin.Int64, Builtin.Int1), 0 // user: %18
  %16 = tuple_extract %14 : $(Builtin.Int64, Builtin.Int1), 1 // user: %17
  cond_fail %16 : $Builtin.Int1                   // id: %17
  %18 = struct $Int64 (%15 : $Builtin.Int64)      // user: %19
  %19 = struct_extract %18 : $Int64, #Int64._value // user: %21
  %21 = builtin "truncOrBitCast_Int64_Word"(%19 : $Builtin.Int64) : $Builtin.Word // user: %22
  %22 = struct $BuiltinWord (%21 : $Builtin.Word)         // users: %23, %24
  debug_value %22 : $BuiltinWord, let, name "v1" // id: %23
  return %22 : $BuiltinWord                               // id: %24
}

// no peephole: Word(Int64(x >> c)), where c is a variable
// This should not trigger the optimization as it is not known if c > 0
// CHECK-LABEL: sil @_TF4test31test_trunc_u_to_s_zext_lshr_varFTSuSu_Si : $@convention(thin) (BuiltinUWord, BuiltinUWord) -> BuiltinWord
// CHECK: builtin "u_to_s_checked_conversion_Int64"
// CHECK: builtin "truncOrBitCast_Int64_Word"
// CHECK: return
// test.test_trunc_u_to_s_zext_lshr_var (Swift.BuiltinUWord, Swift.BuiltinUWord) -> Swift.BuiltinWord
sil @_TF4test31test_trunc_u_to_s_zext_lshr_varFTSuSu_Si : $@convention(thin) (BuiltinUWord, BuiltinUWord) -> BuiltinWord {
bb0(%0 : $BuiltinUWord, %1 : $BuiltinUWord):
  debug_value %0 : $BuiltinUWord, let, name "x" // id: %2
  debug_value %1 : $BuiltinUWord, let, name "c" // id: %3
  %4 = tuple ()
  %5 = tuple ()
  %6 = tuple ()
  %7 = tuple ()
  %8 = tuple ()
  %9 = tuple ()
  %10 = tuple ()
  %11 = tuple ()
  %12 = tuple ()
  br bb1                                          // id: %13

bb1:                                              // Preds: bb0
  %14 = integer_literal $Builtin.Word, 64         // user: %17
  %16 = struct_extract %1 : $BuiltinUWord, #BuiltinUWord.value    // user: %17
  %17 = builtin "cmp_ult_Word"(%16 : $Builtin.Word, %14 : $Builtin.Word) : $Builtin.Int1 // user: %20
  %18 = integer_literal $Builtin.Int1, -1         // user: %20
  %20 = builtin "int_expect_Int1"(%17 : $Builtin.Int1, %18 : $Builtin.Int1) : $Builtin.Int1 // user: %21
  cond_br %20, bb2, bb3                           // id: %21

bb2:                                              // Preds: bb1
  %23 = struct_extract %0 : $BuiltinUWord, #BuiltinUWord.value    // user: %25
  %24 = struct_extract %1 : $BuiltinUWord, #BuiltinUWord.value    // user: %25
  %25 = builtin "lshr_Word"(%23 : $Builtin.Word, %24 : $Builtin.Word) : $Builtin.Word // user: %26
  %26 = struct $BuiltinUWord (%25 : $Builtin.Word)        // user: %35
  br bb4                                          // id: %27

bb3:                                              // Preds: bb1
  %28 = function_ref @fatalError : $@convention(thin) () -> Never // user: %32
  %29 = tuple ()
  %30 = tuple ()
  %31 = tuple ()
  %32 = apply %28() : $@convention(thin) () -> Never
  unreachable                                     // id: %33

bb4:                                              // Preds: bb2
  %35 = struct_extract %26 : $BuiltinUWord, #BuiltinUWord.value   // user: %36
  %36 = builtin "zextOrBitCast_Word_Int64"(%35 : $Builtin.Word) : $Builtin.Int64 // user: %38
  %38 = builtin "u_to_s_checked_conversion_Int64"(%36 : $Builtin.Int64) : $(Builtin.Int64, Builtin.Int1) // users: %39, %40
  %39 = tuple_extract %38 : $(Builtin.Int64, Builtin.Int1), 0 // user: %42
  %40 = tuple_extract %38 : $(Builtin.Int64, Builtin.Int1), 1 // user: %41
  cond_fail %40 : $Builtin.Int1                   // id: %41
  %42 = struct $Int64 (%39 : $Builtin.Int64)      // user: %43
  %43 = struct_extract %42 : $Int64, #Int64._value // user: %45
  %45 = builtin "truncOrBitCast_Int64_Word"(%43 : $Builtin.Int64) : $Builtin.Word // user: %46
  %46 = struct $BuiltinWord (%45 : $Builtin.Word)         // users: %47, %48
  debug_value %46 : $BuiltinWord, let, name "v1" // id: %47
  return %46 : $BuiltinWord                               // id: %48
}

// peephole: UInt16(Int32(x >> 1)) -> (x >> 1)
// CHECK-LABEL: sil @_TF4test36test_uint16_trunc_u_to_s_zext_lshr_1FVs6UInt16S0_ : $@convention(thin) (UInt16) -> UInt16
// CHECK: builtin "lshr_Int16"
// CHECK-NOT: builtin "zext_Int16_Int32"
// CHECK-NOT: builtin "s_to_u_checked_trunc_Int32_Int16"
// CHECK-NOT: tuple_extract
// CHECK: return
// test.test_uint16_trunc_u_to_s_zext_lshr_1 (Swift.UInt16) -> Swift.UInt16
sil @_TF4test36test_uint16_trunc_u_to_s_zext_lshr_1FVs6UInt16S0_ : $@convention(thin) (UInt16) -> UInt16 {
bb0(%0 : $UInt16):
  debug_value %0 : $UInt16, let, name "x" // id: %1
  %2 = integer_literal $Builtin.Int16, 1          // user: %7
  br bb1                                          // id: %3

bb1:                                              // Preds: bb0
  br bb2                                          // id: %4

bb2:                                              // Preds: bb1
  %6 = struct_extract %0 : $UInt16, #UInt16._value // user: %7
  %7 = builtin "lshr_Int16"(%6 : $Builtin.Int16, %2 : $Builtin.Int16) : $Builtin.Int16 // user: %8
  %8 = struct $UInt16 (%7 : $Builtin.Int16)       // user: %10
  br bb3                                          // id: %9

bb3:                                              // Preds: bb2
  %10 = struct_extract %8 : $UInt16, #UInt16._value // user: %12
  %12 = builtin "zext_Int16_Int32"(%10 : $Builtin.Int16) : $Builtin.Int32 // user: %13
  %13 = struct $Int32 (%12 : $Builtin.Int32)      // user: %14
  %14 = struct_extract %13 : $Int32, #Int32._value // user: %16
  %16 = builtin "s_to_u_checked_trunc_Int32_Int16"(%14 : $Builtin.Int32) : $(Builtin.Int16, Builtin.Int1) // users: %17, %18
  %17 = tuple_extract %16 : $(Builtin.Int16, Builtin.Int1), 0 // user: %20
  %18 = tuple_extract %16 : $(Builtin.Int16, Builtin.Int1), 1 // user: %19
  cond_fail %18 : $Builtin.Int1                   // id: %19
  %20 = struct $UInt16 (%17 : $Builtin.Int16)     // users: %21, %22
  debug_value %20 : $UInt16, let, name "v1" // id: %21
  return %20 : $UInt16                            // id: %22
}


// peephole: Int16(Int32(x >> 1)) -> (x >> 1)
// CHECK-LABEL: sil @_TF4test35test_int16_trunc_u_to_s_zext_lshr_1FVs6UInt16Vs5Int16 : $@convention(thin) (UInt16) -> Int16
// CHECK: builtin "lshr_Int16"
// CHECK-NOT: builtin "zext_Int16_Int32"
// CHECK-NOT: builtin "s_to_u_checked_trunc_Int32_Int16"
// CHECK-NOT: tuple_extract
// CHECK: return
// test.test_int16_trunc_u_to_s_zext_lshr_1 (Swift.UInt16) -> Swift.Int16
sil @_TF4test35test_int16_trunc_u_to_s_zext_lshr_1FVs6UInt16Vs5Int16 : $@convention(thin) (UInt16) -> Int16 {
bb0(%0 : $UInt16):
  debug_value %0 : $UInt16, let, name "x" // id: %1
  %2 = integer_literal $Builtin.Int16, 1          // user: %7
  br bb1                                          // id: %3

bb1:                                              // Preds: bb0
  br bb2                                          // id: %4

bb2:                                              // Preds: bb1
  %6 = struct_extract %0 : $UInt16, #UInt16._value // user: %7
  %7 = builtin "lshr_Int16"(%6 : $Builtin.Int16, %2 : $Builtin.Int16) : $Builtin.Int16 // user: %8
  %8 = struct $UInt16 (%7 : $Builtin.Int16)       // user: %10
  br bb3                                          // id: %9

bb3:                                              // Preds: bb2
  %10 = struct_extract %8 : $UInt16, #UInt16._value // user: %12
  %12 = builtin "zext_Int16_Int32"(%10 : $Builtin.Int16) : $Builtin.Int32 // user: %13
  %13 = struct $Int32 (%12 : $Builtin.Int32)      // user: %14
  %14 = struct_extract %13 : $Int32, #Int32._value // user: %16
  %16 = builtin "s_to_s_checked_trunc_Int32_Int16"(%14 : $Builtin.Int32) : $(Builtin.Int16, Builtin.Int1) // users: %17, %18
  %17 = tuple_extract %16 : $(Builtin.Int16, Builtin.Int1), 0 // user: %20
  %18 = tuple_extract %16 : $(Builtin.Int16, Builtin.Int1), 1 // user: %19
  cond_fail %18 : $Builtin.Int1                   // id: %19
  %20 = struct $Int16 (%17 : $Builtin.Int16)      // users: %21, %22
  debug_value %20 : $Int16, let, name "v1" // id: %21
  return %20 : $Int16                             // id: %22
}

// No peephole for UWord(UInt64(x)), because it is not known if top bit of x is set
// CHECK-LABEL: sil @_TF4test26test_trunc_s_to_u_zext_varFSiSu : $@convention(thin) (BuiltinWord) -> BuiltinUWord
// This should not trigger the optimization as it is not known if top bit of x is set
// CHECK: builtin "zextOrBitCast_Word_Int64"
// CHECK: builtin "s_to_u_checked_conversion_Int64"
// CHECK: builtin "truncOrBitCast_Int64_Word"
// CHECK: return
// test.test_trunc_s_to_u_zext_var (Swift.BuiltinWord) -> Swift.BuiltinUWord
sil @_TF4test26test_trunc_s_to_u_zext_varFSiSu : $@convention(thin) (BuiltinWord) -> BuiltinUWord {
bb0(%0 : $BuiltinWord):
  debug_value %0 : $BuiltinWord, let, name "x" // id: %1
  %3 = struct_extract %0 : $BuiltinWord, #BuiltinWord.value // user: %4
  %4 = builtin "zextOrBitCast_Word_Int64"(%3 : $Builtin.Word) : $Builtin.Int64 // user: %6
  %6 = builtin "s_to_u_checked_conversion_Int64"(%4 : $Builtin.Int64) : $(Builtin.Int64, Builtin.Int1) // users: %7, %8
  %7 = tuple_extract %6 : $(Builtin.Int64, Builtin.Int1), 0 // user: %10
  %8 = tuple_extract %6 : $(Builtin.Int64, Builtin.Int1), 1 // user: %9
  cond_fail %8 : $Builtin.Int1                              // id: %9
  %10 = struct $UInt64 (%7 : $Builtin.Int64)                // user: %11
  %11 = struct_extract %10 : $UInt64, #UInt64._value         // user: %13
  %13 = builtin "truncOrBitCast_Int64_Word"(%11 : $Builtin.Int64) : $Builtin.Word // user: %14
  %14 = struct $BuiltinUWord (%13 : $Builtin.Word)          // user: %15
  return %14 : $BuiltinUWord                                // id: %15
}


// sizeof is known to return strictly positive values
// peephole: UWord(UInt64(sizeof(Int.self))) -> sizeof(Int.self)
// CHECK-LABEL: sil @_TF4test29test_trunc_s_to_u_zext_sizeofFT_Su : $@convention(thin) () -> BuiltinUWord
// CHECK: builtin "sizeof"
// CHECK-NOT: builtin "zextOrBitCast_Word_Int64"
// CHECK-NOT: builtin "s_to_u_checked_conversion_Int64"
// CHECK-NOT: builtin "truncOrBitCast_Int64_Word"
// CHECK: return
// test.test_trunc_s_to_u_zext_sizeof () -> Swift.BuiltinUWord
sil @_TF4test29test_trunc_s_to_u_zext_sizeofFT_Su : $@convention(thin) () -> BuiltinUWord {
bb0:
  %0 = metatype $@thin BuiltinWord.Type
  %2 = metatype $@thick BuiltinWord.Type                      // user: %3
  %3 = builtin "sizeof"<(BuiltinWord)>(%2 : $@thick (BuiltinWord).Type) : $Builtin.Word // user: %4
  %4 = struct $BuiltinWord (%3 : $Builtin.Word)              // user: %6
  %6 = struct_extract %4 : $BuiltinWord, #BuiltinWord.value  // user: %7
  %7 = builtin "zextOrBitCast_Word_Int64"(%6 : $Builtin.Word) : $Builtin.Int64 // user: %9
  %9 = builtin "s_to_u_checked_conversion_Int64"(%7 : $Builtin.Int64) : $(Builtin.Int64, Builtin.Int1) // users: %10, %11
  %10 = tuple_extract %9 : $(Builtin.Int64, Builtin.Int1), 0 // user: %13
  %11 = tuple_extract %9 : $(Builtin.Int64, Builtin.Int1), 1 // user: %12
  cond_fail %11 : $Builtin.Int1                              // id: %12
  %13 = struct $UInt64 (%10 : $Builtin.Int64)                // user: %14
  %14 = struct_extract %13 : $UInt64, #UInt64._value          // user: %16
  %16 = builtin "truncOrBitCast_Int64_Word"(%14 : $Builtin.Int64) : $Builtin.Word // user: %17
  %17 = struct $BuiltinUWord (%16 : $Builtin.Word)           // user: %18
  return %17 : $BuiltinUWord                                 // id: %18
}


// sizeof is known to return strictly positive values
// But Word ->Int64 is not a safe conversion
// No peephole for UInt16(UInt32(sizeof(Int.self)))
// CHECK-LABEL: sil @_TF4test35test_int16_trunc_s_to_u_zext_sizeofFT_Vs6UInt16 : $@convention(thin) () -> UInt16
// CHECK: builtin "zextOrBitCast_Word_Int64"
// CHECK: builtin "s_to_u_checked_trunc_Int64_Int32"
// CHECK: builtin "u_to_u_checked_trunc_Int32_Int16"
// CHECK: return
// test.test_int16_trunc_s_to_u_zext_sizeof () -> Swift.UInt16
sil @_TF4test35test_int16_trunc_s_to_u_zext_sizeofFT_Vs6UInt16 : $@convention(thin) () -> UInt16 {
bb0:
  %0 = metatype $@thin Int.Type
  %2 = metatype $@thick Int.Type                  // user: %3
  %3 = builtin "sizeof"<(Int)>(%2 : $@thick (Int).Type) : $Builtin.Word // user: %4
  %4 = tuple ()
  %6 = tuple ()
  %7 = builtin "zextOrBitCast_Word_Int64"(%3 : $Builtin.Word) : $Builtin.Int64 // user: %9
  %9 = builtin "s_to_u_checked_trunc_Int64_Int32"(%7 : $Builtin.Int64) : $(Builtin.Int32, Builtin.Int1) // users: %10, %11
  %10 = tuple_extract %9 : $(Builtin.Int32, Builtin.Int1), 0 // user: %13
  %11 = tuple_extract %9 : $(Builtin.Int32, Builtin.Int1), 1 // user: %12
  cond_fail %11 : $Builtin.Int1                   // id: %12
  %13 = struct $UInt32 (%10 : $Builtin.Int32)     // user: %14
  %14 = struct_extract %13 : $UInt32, #UInt32._value // user: %16
  %16 = builtin "u_to_u_checked_trunc_Int32_Int16"(%14 : $Builtin.Int32) : $(Builtin.Int16, Builtin.Int1) // users: %17, %18
  %17 = tuple_extract %16 : $(Builtin.Int16, Builtin.Int1), 0 // user: %20
  %18 = tuple_extract %16 : $(Builtin.Int16, Builtin.Int1), 1 // user: %19
  cond_fail %18 : $Builtin.Int1                   // id: %19
  %20 = struct $UInt16 (%17 : $Builtin.Int16)     // user: %21
  return %20 : $UInt16                            // id: %21
}


// peephole: UInt16(UInt32(Int16(x>>1))) -> x>>1
// CHECK-LABEL: sil @_TF4test34test_int16_trunc_s_to_u_zext_int16FVs6UInt16S0_ : $@convention(thin) (UInt16) -> UInt16
// CHECK: builtin "lshr_Int16"
// CHECK-NOT: builtin "u_to_s_checked_conversion_Int16"
// CHECK-NOT: builtin "s_to_u_checked_conversion_Int16"
// CHECK-NOT: builtin "sext_Int16_Int32"
// CHECK-NOT: builtin "u_to_u_checked_trunc_Int32_Int16"
// CHECK-NOT: tuple_extract
// CHECK: return
// test.test_int16_trunc_s_to_u_zext_int16 (Swift.UInt16) -> Swift.UInt16
sil @_TF4test34test_int16_trunc_s_to_u_zext_int16FVs6UInt16S0_ : $@convention(thin) (UInt16) -> UInt16 {
bb0(%0 : $UInt16):
  debug_value %0 : $UInt16, let, name "x" // id: %1
  %2 = integer_literal $Builtin.Int16, 1          // user: %7
  br bb1                                          // id: %3

bb1:                                              // Preds: bb0
  br bb2                                          // id: %4

bb2:                                              // Preds: bb1
  %6 = struct_extract %0 : $UInt16, #UInt16._value // user: %7
  %7 = builtin "lshr_Int16"(%6 : $Builtin.Int16, %2 : $Builtin.Int16) : $Builtin.Int16 // user: %8
  %8 = struct $UInt16 (%7 : $Builtin.Int16)       // user: %10
  br bb3                                          // id: %9

bb3:                                              // Preds: bb2
  %10 = struct_extract %8 : $UInt16, #UInt16._value // user: %12
  %12 = builtin "u_to_s_checked_conversion_Int16"(%10 : $Builtin.Int16) : $(Builtin.Int16, Builtin.Int1) // users: %13, %14
  %13 = tuple_extract %12 : $(Builtin.Int16, Builtin.Int1), 0 // user: %16
  %14 = tuple_extract %12 : $(Builtin.Int16, Builtin.Int1), 1 // user: %15
  cond_fail %14 : $Builtin.Int1                   // id: %15
  %16 = struct $Int16 (%13 : $Builtin.Int16)      // user: %17
  %17 = struct_extract %16 : $Int16, #Int16._value // user: %19
  %19 = builtin "s_to_u_checked_conversion_Int16"(%17 : $Builtin.Int16) : $(Builtin.Int16, Builtin.Int1) // users: %20, %21
  %20 = tuple_extract %19 : $(Builtin.Int16, Builtin.Int1), 0 // user: %24
  %21 = tuple_extract %19 : $(Builtin.Int16, Builtin.Int1), 1 // user: %22
  cond_fail %21 : $Builtin.Int1                   // id: %22
  %24 = builtin "sext_Int16_Int32"(%20 : $Builtin.Int16) : $Builtin.Int32 // user: %25
  %25 = struct $UInt32 (%24 : $Builtin.Int32)     // user: %26
  %26 = struct_extract %25 : $UInt32, #UInt32._value // user: %28
  %28 = builtin "u_to_u_checked_trunc_Int32_Int16"(%26 : $Builtin.Int32) : $(Builtin.Int16, Builtin.Int1) // users: %29, %30
  %29 = tuple_extract %28 : $(Builtin.Int16, Builtin.Int1), 0 // user: %32
  %30 = tuple_extract %28 : $(Builtin.Int16, Builtin.Int1), 1 // user: %31
  cond_fail %30 : $Builtin.Int1                   // id: %31
  %32 = struct $UInt16 (%29 : $Builtin.Int16)     // user: %33
  return %32 : $UInt16                            // id: %33
}

// peephole: Int8(x & 127) -> remove overflow check
// CHECK-LABEL: sil @_TF22peephole_trunc_and_ext32test_s_to_s_checked_trunc_of_andFVs5Int32Vs4Int8 : $@convention(thin) (Int32) -> Int8
// CHECK: builtin "and_Int32"
// CHECK: builtin "s_to_s_checked_trunc_Int32_Int8"
// CHECK-NOT: cond_fail
// CHECK: return
// peephole_trunc_and_ext.test_s_to_s_checked_trunc_of_and (Swift.Int32) -> Swift.Int8
sil @_TF22peephole_trunc_and_ext32test_s_to_s_checked_trunc_of_andFVs5Int32Vs4Int8 : $@convention(thin) (Int32) -> Int8 {
bb0(%0 : $Int32):
  debug_value %0 : $Int32, let, name "x" // id: %1
  %2 = integer_literal $Builtin.Int32, 127        // user: %5
  %4 = struct_extract %0 : $Int32, #Int32._value   // user: %5
  %5 = builtin "and_Int32"(%4 : $Builtin.Int32, %2 : $Builtin.Int32) : $Builtin.Int32 // user: %6
  %6 = struct $Int32 (%5 : $Builtin.Int32)        // user: %7
  %7 = struct_extract %6 : $Int32, #Int32._value   // user: %9
  %9 = builtin "s_to_s_checked_trunc_Int32_Int8"(%7 : $Builtin.Int32) : $(Builtin.Int8, Builtin.Int1) // users: %10, %11
  %10 = tuple_extract %9 : $(Builtin.Int8, Builtin.Int1), 0 // user: %13
  %11 = tuple_extract %9 : $(Builtin.Int8, Builtin.Int1), 1 // user: %12
  cond_fail %11 : $Builtin.Int1                   // id: %12
  %13 = struct $Int8 (%10 : $Builtin.Int8)        // user: %14
  return %13 : $Int8                              // id: %14
}

// peephole: UInt8(x & 255) -> remove overflow check
// CHECK-LABEL: sil @_TF22peephole_trunc_and_ext32test_s_to_u_checked_trunc_of_andFVs5Int32Vs5UInt8 : $@convention(thin) (Int32) -> UInt8
// CHECK: builtin "and_Int32"
// CHECK: builtin "s_to_u_checked_trunc_Int32_Int8"
// CHECK-NOT: cond_fail
// CHECK: return
// peephole_trunc_and_ext.test_s_to_u_checked_trunc_of_and (Swift.Int32) -> Swift.UInt8
sil @_TF22peephole_trunc_and_ext32test_s_to_u_checked_trunc_of_andFVs5Int32Vs5UInt8 : $@convention(thin) (Int32) -> UInt8 {
bb0(%0 : $Int32):
  debug_value %0 : $Int32, let, name "x" // id: %1
  %2 = integer_literal $Builtin.Int32, 255        // user: %5
  %4 = struct_extract %0 : $Int32, #Int32._value   // user: %5
  %5 = builtin "and_Int32"(%4 : $Builtin.Int32, %2 : $Builtin.Int32) : $Builtin.Int32 // user: %6
  %6 = struct $Int32 (%5 : $Builtin.Int32)        // user: %7
  %7 = struct_extract %6 : $Int32, #Int32._value   // user: %9
  %9 = builtin "s_to_u_checked_trunc_Int32_Int8"(%7 : $Builtin.Int32) : $(Builtin.Int8, Builtin.Int1) // users: %10, %11
  %10 = tuple_extract %9 : $(Builtin.Int8, Builtin.Int1), 0 // user: %13
  %11 = tuple_extract %9 : $(Builtin.Int8, Builtin.Int1), 1 // user: %12
  cond_fail %11 : $Builtin.Int1                   // id: %12
  %13 = struct $UInt8 (%10 : $Builtin.Int8)       // user: %14
  return %13 : $UInt8                             // id: %14
}

// peephole: UInt8(x & 255) -> remove overflow check
// CHECK-LABEL: sil @_TF22peephole_trunc_and_ext32test_u_to_u_checked_trunc_of_andFVs6UInt32Vs5UInt8 : $@convention(thin) (UInt32) -> UInt8
// CHECK: builtin "and_Int32"
// CHECK: builtin "u_to_u_checked_trunc_Int32_Int8"
// CHECK-NOT: cond_fail
// CHECK: return
// peephole_trunc_and_ext.test_u_to_u_checked_trunc_of_and (Swift.UInt32) -> Swift.UInt8
sil @_TF22peephole_trunc_and_ext32test_u_to_u_checked_trunc_of_andFVs6UInt32Vs5UInt8 : $@convention(thin) (UInt32) -> UInt8 {
bb0(%0 : $UInt32):
  debug_value %0 : $UInt32, let, name "x" // id: %1
  %2 = integer_literal $Builtin.Int32, 255        // user: %5
  %4 = struct_extract %0 : $UInt32, #UInt32._value // user: %5
  %5 = builtin "and_Int32"(%4 : $Builtin.Int32, %2 : $Builtin.Int32) : $Builtin.Int32 // user: %6
  %6 = struct $UInt32 (%5 : $Builtin.Int32)       // user: %7
  %7 = struct_extract %6 : $UInt32, #UInt32._value // user: %9
  %9 = builtin "u_to_u_checked_trunc_Int32_Int8"(%7 : $Builtin.Int32) : $(Builtin.Int8, Builtin.Int1) // users: %10, %11
  %10 = tuple_extract %9 : $(Builtin.Int8, Builtin.Int1), 0 // user: %13
  %11 = tuple_extract %9 : $(Builtin.Int8, Builtin.Int1), 1 // user: %12
  cond_fail %11 : $Builtin.Int1                   // id: %12
  %13 = struct $UInt8 (%10 : $Builtin.Int8)       // user: %14
  return %13 : $UInt8                             // id: %14
}

// peephole: Int8(x & 127) -> remove overflow check
// CHECK-LABEL: sil @_TF22peephole_trunc_and_ext32test_u_to_s_checked_trunc_of_andFVs6UInt32Vs4Int8 : $@convention(thin) (UInt32) -> Int8
// CHECK: builtin "and_Int32"
// CHECK: builtin "u_to_s_checked_trunc_Int32_Int8"
// CHECK-NOT: cond_fail
// CHECK: return
// peephole_trunc_and_ext.test_u_to_s_checked_trunc_of_and (Swift.UInt32) -> Swift.Int8
sil @_TF22peephole_trunc_and_ext32test_u_to_s_checked_trunc_of_andFVs6UInt32Vs4Int8 : $@convention(thin) (UInt32) -> Int8 {
bb0(%0 : $UInt32):
  debug_value %0 : $UInt32, let, name "x" // id: %1
  %2 = integer_literal $Builtin.Int32, 127        // user: %5
  %4 = struct_extract %0 : $UInt32, #UInt32._value // user: %5
  %5 = builtin "and_Int32"(%4 : $Builtin.Int32, %2 : $Builtin.Int32) : $Builtin.Int32 // user: %6
  %6 = struct $UInt32 (%5 : $Builtin.Int32)       // user: %7
  %7 = struct_extract %6 : $UInt32, #UInt32._value // user: %9
  %9 = builtin "u_to_s_checked_trunc_Int32_Int8"(%7 : $Builtin.Int32) : $(Builtin.Int8, Builtin.Int1) // users: %10, %11
  %10 = tuple_extract %9 : $(Builtin.Int8, Builtin.Int1), 0 // user: %13
  %11 = tuple_extract %9 : $(Builtin.Int8, Builtin.Int1), 1 // user: %12
  cond_fail %11 : $Builtin.Int1                   // id: %12
  %13 = struct $Int8 (%10 : $Builtin.Int8)       // user: %14
  return %13 : $Int8                             // id: %14
}

sil [noinline] @fatalError : $@convention(thin) () -> Never
