Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sil_stage canonical
- import Builtin
- import Swift
- import SwiftShims
- func x()
- // main
- sil @main : $@convention(c) (Int32, UnsafeMutablePointer<Optional<UnsafeMutablePointer<Int8>>>) -> Int32 {
- bb0(%0 : $Int32, %1 : $UnsafeMutablePointer<Optional<UnsafeMutablePointer<Int8>>>):
- %2 = integer_literal $Builtin.Int32, 0 // user: %3
- %3 = struct $Int32 (%2 : $Builtin.Int32) // user: %4
- return %3 : $Int32 // id: %4
- } // end sil function 'main'
- // x()
- sil hidden @$s4main1xyyF : $@convention(thin) () -> () {
- bb0:
- %0 = alloc_stack $Float16, var, name "x" // users: %49, %50
- %1 = float_literal $Builtin.FPIEEE80, 0x3FFF8000000000000000 // 1 // user: %14
- %2 = float_literal $Builtin.FPIEEE32, 0x3F800000 // 1 // users: %3, %4, %12
- %3 = struct $Float (%2 : $Builtin.FPIEEE32) // users: %17, %31
- %4 = builtin "bitcast_FPIEEE32_Int32"(%2 : $Builtin.FPIEEE32) : $Builtin.Int32 // users: %26, %20, %6
- %5 = integer_literal $Builtin.Int32, 23 // user: %6
- %6 = builtin "lshr_Int32"(%4 : $Builtin.Int32, %5 : $Builtin.Int32) : $Builtin.Int32 // user: %7
- %7 = builtin "zextOrBitCast_Int32_Int64"(%6 : $Builtin.Int32) : $Builtin.Int64 // user: %9
- %8 = integer_literal $Builtin.Int64, 255 // users: %10, %9
- %9 = builtin "and_Int64"(%7 : $Builtin.Int64, %8 : $Builtin.Int64) : $Builtin.Int64 // user: %10
- %10 = builtin "cmp_ult_Int64"(%9 : $Builtin.Int64, %8 : $Builtin.Int64) : $Builtin.Int1 // user: %11
- cond_br %10, bb1, bb2 // id: %11
- bb1: // Preds: bb0
- %12 = builtin "fpext_FPIEEE32_FPIEEE80"(%2 : $Builtin.FPIEEE32) : $Builtin.FPIEEE80 // user: %13
- %13 = builtin "int_fabs_FPIEEE80"(%12 : $Builtin.FPIEEE80) : $Builtin.FPIEEE80 // user: %15
- %14 = builtin "int_fabs_FPIEEE80"(%1 : $Builtin.FPIEEE80) : $Builtin.FPIEEE80 // users: %36, %15
- %15 = builtin "fcmp_olt_FPIEEE80"(%14 : $Builtin.FPIEEE80, %13 : $Builtin.FPIEEE80) : $Builtin.Int1 // user: %16
- cond_br %15, bb3, bb4 // id: %16
- bb2: // Preds: bb0
- br bb8(%3 : $Float) // id: %17
- bb3: // Preds: bb1
- %18 = integer_literal $Builtin.Int32, 0 // user: %20
- %19 = integer_literal $Builtin.Int1, 0 // users: %26, %23, %20
- %20 = builtin "usub_with_overflow_Int32"(%18 : $Builtin.Int32, %4 : $Builtin.Int32, %19 : $Builtin.Int1) : $(Builtin.Int32, Builtin.Int1) // user: %21
- %21 = tuple_extract %20 : $(Builtin.Int32, Builtin.Int1), 0 // user: %23
- %22 = integer_literal $Builtin.Int32, 1 // users: %25, %23
- %23 = builtin "usub_with_overflow_Int32"(%21 : $Builtin.Int32, %22 : $Builtin.Int32, %19 : $Builtin.Int1) : $(Builtin.Int32, Builtin.Int1) // user: %24
- %24 = tuple_extract %23 : $(Builtin.Int32, Builtin.Int1), 0 // user: %25
- %25 = builtin "and_Int32"(%24 : $Builtin.Int32, %22 : $Builtin.Int32) : $Builtin.Int32 // user: %26
- %26 = builtin "usub_with_overflow_Int32"(%4 : $Builtin.Int32, %25 : $Builtin.Int32, %19 : $Builtin.Int1) : $(Builtin.Int32, Builtin.Int1) // user: %27
- %27 = tuple_extract %26 : $(Builtin.Int32, Builtin.Int1), 0 // user: %28
- %28 = builtin "bitcast_Int32_FPIEEE32"(%27 : $Builtin.Int32) : $Builtin.FPIEEE32 // user: %29
- %29 = struct $Float (%28 : $Builtin.FPIEEE32) // user: %30
- br bb5(%29 : $Float) // id: %30
- bb4: // Preds: bb1
- br bb5(%3 : $Float) // id: %31
- // %32 // users: %44, %33
- bb5(%32 : $Float): // Preds: bb4 bb3
- %33 = struct_extract %32 : $Float, #Float._value // users: %38, %34
- %34 = builtin "fpext_FPIEEE32_FPIEEE80"(%33 : $Builtin.FPIEEE32) : $Builtin.FPIEEE80 // user: %35
- %35 = builtin "int_fabs_FPIEEE80"(%34 : $Builtin.FPIEEE80) : $Builtin.FPIEEE80 // user: %36
- %36 = builtin "fcmp_olt_FPIEEE80"(%35 : $Builtin.FPIEEE80, %14 : $Builtin.FPIEEE80) : $Builtin.Int1 // user: %37
- cond_br %36, bb6, bb7 // id: %37
- bb6: // Preds: bb5
- %38 = builtin "bitcast_FPIEEE32_Int32"(%33 : $Builtin.FPIEEE32) : $Builtin.Int32 // user: %40
- %39 = integer_literal $Builtin.Int32, 1 // user: %40
- %40 = builtin "or_Int32"(%38 : $Builtin.Int32, %39 : $Builtin.Int32) : $Builtin.Int32 // user: %41
- %41 = builtin "bitcast_Int32_FPIEEE32"(%40 : $Builtin.Int32) : $Builtin.FPIEEE32 // user: %42
- %42 = struct $Float (%41 : $Builtin.FPIEEE32) // user: %43
- br bb8(%42 : $Float) // id: %43
- bb7: // Preds: bb5
- br bb8(%32 : $Float) // id: %44
- // %45 // user: %46
- bb8(%45 : $Float): // Preds: bb2 bb7 bb6
- %46 = struct_extract %45 : $Float, #Float._value // user: %47
- %47 = builtin "fptrunc_FPIEEE32_FPIEEE16"(%46 : $Builtin.FPIEEE32) : $Builtin.FPIEEE16 // user: %48
- %48 = struct $Float16 (%47 : $Builtin.FPIEEE16) // user: %49
- store %48 to %0 : $*Float16 // id: %49
- dealloc_stack %0 : $*Float16 // id: %50
- %51 = tuple () // user: %52
- return %51 : $() // id: %52
- } // end sil function '$s4main1xyyF'
- // Float16.init(_builtinFloatLiteral:)
- sil public_external [transparent] [serialized] @$ss7Float16V20_builtinFloatLiteralABBf80__tcfC : $@convention(method) (Builtin.FPIEEE80, @thin Float16.Type) -> Float16 {
- // %0 // users: %15, %2
- bb0(%0 : $Builtin.FPIEEE80, %1 : $@thin Float16.Type):
- %2 = builtin "fptrunc_FPIEEE80_FPIEEE32"(%0 : $Builtin.FPIEEE80) : $Builtin.FPIEEE32 // users: %13, %4, %3
- %3 = struct $Float (%2 : $Builtin.FPIEEE32) // users: %18, %12
- %4 = builtin "bitcast_FPIEEE32_Int32"(%2 : $Builtin.FPIEEE32) : $Builtin.Int32 // users: %27, %21, %6
- %5 = integer_literal $Builtin.Int32, 23 // user: %6
- %6 = builtin "lshr_Int32"(%4 : $Builtin.Int32, %5 : $Builtin.Int32) : $Builtin.Int32 // user: %7
- %7 = builtin "zextOrBitCast_Int32_Int64"(%6 : $Builtin.Int32) : $Builtin.Int64 // user: %9
- %8 = integer_literal $Builtin.Int64, 255 // users: %10, %9
- %9 = builtin "and_Int64"(%7 : $Builtin.Int64, %8 : $Builtin.Int64) : $Builtin.Int64 // user: %10
- %10 = builtin "cmp_ult_Int64"(%9 : $Builtin.Int64, %8 : $Builtin.Int64) : $Builtin.Int1 // user: %11
- cond_br %10, bb2, bb1 // id: %11
- bb1: // Preds: bb0
- br bb8(%3 : $Float) // id: %12
- bb2: // Preds: bb0
- %13 = builtin "fpext_FPIEEE32_FPIEEE80"(%2 : $Builtin.FPIEEE32) : $Builtin.FPIEEE80 // user: %14
- %14 = builtin "int_fabs_FPIEEE80"(%13 : $Builtin.FPIEEE80) : $Builtin.FPIEEE80 // user: %16
- %15 = builtin "int_fabs_FPIEEE80"(%0 : $Builtin.FPIEEE80) : $Builtin.FPIEEE80 // users: %36, %16
- %16 = builtin "fcmp_olt_FPIEEE80"(%15 : $Builtin.FPIEEE80, %14 : $Builtin.FPIEEE80) : $Builtin.Int1 // user: %17
- cond_br %16, bb4, bb3 // id: %17
- bb3: // Preds: bb2
- br bb5(%3 : $Float) // id: %18
- bb4: // Preds: bb2
- %19 = integer_literal $Builtin.Int32, 0 // user: %21
- %20 = integer_literal $Builtin.Int1, 0 // users: %27, %24, %21
- %21 = builtin "usub_with_overflow_Int32"(%19 : $Builtin.Int32, %4 : $Builtin.Int32, %20 : $Builtin.Int1) : $(Builtin.Int32, Builtin.Int1) // user: %22
- %22 = tuple_extract %21 : $(Builtin.Int32, Builtin.Int1), 0 // user: %24
- %23 = integer_literal $Builtin.Int32, 1 // users: %26, %24
- %24 = builtin "usub_with_overflow_Int32"(%22 : $Builtin.Int32, %23 : $Builtin.Int32, %20 : $Builtin.Int1) : $(Builtin.Int32, Builtin.Int1) // user: %25
- %25 = tuple_extract %24 : $(Builtin.Int32, Builtin.Int1), 0 // user: %26
- %26 = builtin "and_Int32"(%25 : $Builtin.Int32, %23 : $Builtin.Int32) : $Builtin.Int32 // user: %27
- %27 = builtin "usub_with_overflow_Int32"(%4 : $Builtin.Int32, %26 : $Builtin.Int32, %20 : $Builtin.Int1) : $(Builtin.Int32, Builtin.Int1) // user: %28
- %28 = tuple_extract %27 : $(Builtin.Int32, Builtin.Int1), 0 // user: %29
- %29 = builtin "bitcast_Int32_FPIEEE32"(%28 : $Builtin.Int32) : $Builtin.FPIEEE32 // user: %30
- %30 = struct $Float (%29 : $Builtin.FPIEEE32) // user: %31
- br bb5(%30 : $Float) // id: %31
- // %32 // users: %38, %33
- bb5(%32 : $Float): // Preds: bb4 bb3
- %33 = struct_extract %32 : $Float, #Float._value // users: %39, %34
- %34 = builtin "fpext_FPIEEE32_FPIEEE80"(%33 : $Builtin.FPIEEE32) : $Builtin.FPIEEE80 // user: %35
- %35 = builtin "int_fabs_FPIEEE80"(%34 : $Builtin.FPIEEE80) : $Builtin.FPIEEE80 // user: %36
- %36 = builtin "fcmp_olt_FPIEEE80"(%35 : $Builtin.FPIEEE80, %15 : $Builtin.FPIEEE80) : $Builtin.Int1 // user: %37
- cond_br %36, bb7, bb6 // id: %37
- bb6: // Preds: bb5
- br bb8(%32 : $Float) // id: %38
- bb7: // Preds: bb5
- %39 = builtin "bitcast_FPIEEE32_Int32"(%33 : $Builtin.FPIEEE32) : $Builtin.Int32 // user: %41
- %40 = integer_literal $Builtin.Int32, 1 // user: %41
- %41 = builtin "or_Int32"(%39 : $Builtin.Int32, %40 : $Builtin.Int32) : $Builtin.Int32 // user: %42
- %42 = builtin "bitcast_Int32_FPIEEE32"(%41 : $Builtin.Int32) : $Builtin.FPIEEE32 // user: %43
- %43 = struct $Float (%42 : $Builtin.FPIEEE32) // user: %44
- br bb8(%43 : $Float) // id: %44
- // %45 // user: %46
- bb8(%45 : $Float): // Preds: bb7 bb6 bb1
- %46 = struct_extract %45 : $Float, #Float._value // user: %47
- %47 = builtin "fptrunc_FPIEEE32_FPIEEE16"(%46 : $Builtin.FPIEEE32) : $Builtin.FPIEEE16 // user: %48
- %48 = struct $Float16 (%47 : $Builtin.FPIEEE16) // user: %49
- return %48 : $Float16 // id: %49
- } // end sil function '$ss7Float16V20_builtinFloatLiteralABBf80__tcfC'
Add Comment
Please, Sign In to add comment