Skip to content

Instantly share code, notes, and snippets.

@japaric
Created June 29, 2017 20:17
Show Gist options
  • Save japaric/c80ed7261da397c37822fd39afc9f6e2 to your computer and use it in GitHub Desktop.
Save japaric/c80ed7261da397c37822fd39afc9f6e2 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
; ModuleID = 'core.cgu-0.rs'
source_filename = "core.cgu-0.rs"
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%str_slice = type { i8*, i64 }
%"fmt::ArgumentV1" = type { %"fmt::Void"*, [0 x i8], i8 (%"fmt::Void"*, %"fmt::Formatter"*)*, [0 x i8] }
%"fmt::Void" = type { {}, [0 x i8] }
%"fmt::Formatter" = type { %"option::Option<usize>", [0 x i8], %"option::Option<usize>", [0 x i8], { i8*, void (i8*)** }, [0 x i8], %"slice::Iter<fmt::ArgumentV1>", [0 x i8], { %"fmt::ArgumentV1"*, i64 }, [0 x i8], i32, [0 x i8], i32, [0 x i8], i8, [7 x i8] }
%"option::Option<usize>" = type { i64, [0 x i64], [1 x i64] }
%"slice::Iter<fmt::ArgumentV1>" = type { %"fmt::ArgumentV1"*, [0 x i8], %"fmt::ArgumentV1"*, [0 x i8], %"marker::PhantomData<&fmt::ArgumentV1>", [0 x i8] }
%"marker::PhantomData<&fmt::ArgumentV1>" = type {}
%"str::SplitTerminator<char>" = type { %"str::SplitInternal<char>", [0 x i8] }
%"str::SplitInternal<char>" = type { i64, [0 x i8], i64, [0 x i8], %"str::pattern::CharSearcher", [0 x i8], i8, [0 x i8], i8, [6 x i8] }
%"str::pattern::CharSearcher" = type { %"str::pattern::CharEqSearcher<char>", [0 x i8] }
%"str::pattern::CharEqSearcher<char>" = type { %str_slice, [0 x i8], %"str::CharIndices", [0 x i8], i32, [0 x i8], i8, [3 x i8] }
%"str::CharIndices" = type { i64, [0 x i8], %"str::Chars", [0 x i8] }
%"str::Chars" = type { %"slice::Iter<u8>", [0 x i8] }
%"slice::Iter<u8>" = type { i8*, [0 x i8], i8*, [0 x i8], %"marker::PhantomData<&u8>", [0 x i8] }
%"marker::PhantomData<&u8>" = type {}
%"fmt::builders::PadAdapter" = type { %"fmt::Formatter"*, [0 x i8], i8, [7 x i8] }
%"fmt::Arguments" = type { { %str_slice*, i64 }, [0 x i8], %"option::Option<&[fmt::rt::v1::Argument]>", [0 x i8], { %"fmt::ArgumentV1"*, i64 }, [0 x i8] }
%"option::Option<&[fmt::rt::v1::Argument]>" = type { { %"fmt::rt::v1::Argument"*, i64 }, [0 x i8] }
%"fmt::rt::v1::Argument" = type { %"fmt::rt::v1::Position", [0 x i8], %"fmt::rt::v1::FormatSpec", [0 x i8] }
%"fmt::rt::v1::Position" = type { i64, [0 x i64], [1 x i64] }
%"fmt::rt::v1::FormatSpec" = type { %"fmt::rt::v1::Count", [0 x i8], %"fmt::rt::v1::Count", [0 x i8], i32, [0 x i8], i32, [0 x i8], i8, [7 x i8] }
%"fmt::rt::v1::Count" = type { i64, [0 x i64], [1 x i64] }
%"fmt::Write::write_fmt::Adapter<fmt::builders::PadAdapter>" = type { %"fmt::builders::PadAdapter"*, [0 x i8] }
%"num::flt2dec::decoder::Decoded" = type { i64, [0 x i8], i64, [0 x i8], i64, [0 x i8], i16, [0 x i8], i8, [5 x i8] }
%"num::dec2flt::parse::Decimal" = type { { i8*, i64 }, [0 x i8], { i8*, i64 }, [0 x i8], i64, [0 x i8] }
%"char::EscapeDefaultState" = type { i32, [1 x i32], [2 x i64] }
%"char::EscapeUnicode" = type { i64, [0 x i8], i32, [0 x i8], i8, [3 x i8] }
%"char::EscapeDefault" = type { %"char::EscapeDefaultState", [0 x i8] }
%"str::pattern::CharEqSearcher<&[char]>" = type { { i32*, i64 }, [0 x i8], %str_slice, [0 x i8], %"str::CharIndices", [0 x i8], i8, [7 x i8] }
%"str::pattern::StrSearcherImpl" = type { i64, [0 x i64], [8 x i64] }
%"str::pattern::TwoWaySearcher" = type { i64, [0 x i8], i64, [0 x i8], i64, [0 x i8], i64, [0 x i8], i64, [0 x i8], i64, [0 x i8], i64, [0 x i8], i64, [0 x i8] }
%"str::pattern::EmptyNeedle" = type { i64, [0 x i8], i64, [0 x i8], i8, [0 x i8], i8, [6 x i8] }
%"option::Option<u8>" = type { i8, [0 x i8], [1 x i8] }
%"iter::Cloned<slice::Iter<u8>>" = type { %"slice::Iter<u8>", [0 x i8] }
%"iter::Map<str::SplitTerminator<char>, str::LinesAnyMap>" = type { %"str::SplitTerminator<char>", [0 x i8], %"str::LinesAnyMap", [0 x i8] }
%"str::LinesAnyMap" = type {}
%"str::Lines" = type { %"iter::Map<str::SplitTerminator<char>, str::LinesAnyMap>", [0 x i8] }
%"hash::sip::Hasher<hash::sip::Sip13Rounds>" = type { i64, [0 x i8], i64, [0 x i8], i64, [0 x i8], %"hash::sip::State", [0 x i8], i64, [0 x i8], i64, [0 x i8], %"marker::PhantomData<hash::sip::Sip13Rounds>", [0 x i8] }
%"hash::sip::State" = type { i64, [0 x i8], i64, [0 x i8], i64, [0 x i8], i64, [0 x i8] }
%"marker::PhantomData<hash::sip::Sip13Rounds>" = type {}
%"hash::sip::Hasher<hash::sip::Sip24Rounds>" = type { i64, [0 x i8], i64, [0 x i8], i64, [0 x i8], %"hash::sip::State", [0 x i8], i64, [0 x i8], i64, [0 x i8], %"marker::PhantomData<hash::sip::Sip24Rounds>", [0 x i8] }
%"marker::PhantomData<hash::sip::Sip24Rounds>" = type {}
%"hash::sip::SipHasher24" = type { %"hash::sip::Hasher<hash::sip::Sip24Rounds>", [0 x i8] }
%"num::bignum::Big32x40" = type { i64, [0 x i8], [40 x i32], [0 x i8] }
%"num::diy_float::Fp" = type { i64, [0 x i8], i16, [6 x i8] }
%"option::Option<(usize, i16)>" = type { i64, [0 x i64], [2 x i64] }
%"num::flt2dec::Part" = type { i16, [3 x i16], [2 x i64] }
%"num::flt2dec::Formatted" = type { { i8*, i64 }, [0 x i8], { %"num::flt2dec::Part"*, i64 }, [0 x i8] }
%"num::flt2dec::decoder::FullDecoded" = type { i64, [0 x i64], [4 x i64] }
%"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>" = type { %"slice::Iter<u8>", [0 x i8], %"slice::Iter<u8>", [0 x i8], i8, [7 x i8] }
%"num::dec2flt::rawfp::Unpacked" = type { i64, [0 x i8], i16, [6 x i8] }
%"num::dec2flt::parse::ParseResult" = type { i64, [0 x i64], [5 x i64] }
%"num::dec2flt::ParseFloatError" = type { i8, [0 x i8] }
%"num::TryFromIntError" = type { {}, [0 x i8] }
%"result::Result<u64, num::ParseIntError>" = type { i8, [7 x i8], [1 x i64] }
%"result::Result<isize, num::ParseIntError>" = type { i8, [7 x i8], [1 x i64] }
%"result::Result<i128, num::ParseIntError>" = type { i8, [7 x i8], [2 x i64] }
%"result::Result<u128, num::ParseIntError>" = type { i8, [7 x i8], [2 x i64] }
%"num::ParseIntError" = type { i8, [0 x i8] }
%"ops::range::RangeFull" = type {}
%"ops::range::Range<usize>" = type { i64, [0 x i8], i64, [0 x i8] }
%"sync::atomic::AtomicBool" = type { %"cell::UnsafeCell<u8>", [0 x i8] }
%"cell::UnsafeCell<u8>" = type { i8, [0 x i8] }
%"fmt::builders::DebugTuple" = type { %"fmt::Formatter"*, [0 x i8], i64, [0 x i8], %"result::Result<(), fmt::Error>", [0 x i8], i8, [6 x i8] }
%"result::Result<(), fmt::Error>" = type { i8, [0 x i8], [0 x i8] }
%"cell::BorrowError" = type { {}, [0 x i8] }
%"cell::BorrowMutError" = type { {}, [0 x i8] }
%"char::ParseCharError" = type { i8, [0 x i8] }
%"char::CharTryFromError" = type { {}, [0 x i8] }
%"char::EscapeDebug" = type { %"char::EscapeDefault", [0 x i8] }
%"str::pattern::StrSearcher" = type { %str_slice, [0 x i8], %str_slice, [0 x i8], %"str::pattern::StrSearcherImpl", [0 x i8] }
%"str::ParseBoolError" = type { {}, [0 x i8] }
%"str::Utf8Error" = type { i64, [0 x i8], %"option::Option<u8>", [6 x i8] }
%"result::Result<&str, str::Utf8Error>" = type { i64, [0 x i64], [2 x i64] }
%"result::Result<&mut str, str::Utf8Error>" = type { i64, [0 x i64], [2 x i64] }
%"fmt::builders::DebugStruct" = type { %"fmt::Formatter"*, [0 x i8], %"result::Result<(), fmt::Error>", [0 x i8], i8, [6 x i8] }
%"fmt::builders::DebugInner" = type { %"fmt::Formatter"*, [0 x i8], %"result::Result<(), fmt::Error>", [0 x i8], i8, [6 x i8] }
%"fmt::builders::DebugSet" = type { %"fmt::builders::DebugInner", [0 x i8] }
%"fmt::builders::DebugList" = type { %"fmt::builders::DebugInner", [0 x i8] }
%"fmt::builders::DebugMap" = type { %"fmt::Formatter"*, [0 x i8], %"result::Result<(), fmt::Error>", [0 x i8], i8, [6 x i8] }
%"fmt::Error" = type {}
%"num::bignum::tests::Big8x3" = type { i64, [0 x i8], [3 x i8], [5 x i8] }
%"result::Result<i64, num::ParseIntError>" = type { i8, [7 x i8], [1 x i64] }
%"option::Option<u64>" = type { i64, [0 x i64], [1 x i64] }
%"option::Option<u128>" = type { i64, [0 x i64], [2 x i64] }
%"result::Result<usize, num::ParseIntError>" = type { i8, [7 x i8], [1 x i64] }
%"result::Result<i64, num::TryFromIntError>" = type { i64, [0 x i64], [1 x i64] }
%"result::Result<i128, num::TryFromIntError>" = type { i64, [0 x i64], [2 x i64] }
%"result::Result<u64, num::TryFromIntError>" = type { i64, [0 x i64], [1 x i64] }
%"result::Result<u128, num::TryFromIntError>" = type { i64, [0 x i64], [2 x i64] }
%"option::Option<i64>" = type { i64, [0 x i64], [1 x i64] }
%"option::Option<i128>" = type { i64, [0 x i64], [2 x i64] }
%"any::TypeId" = type { i64, [0 x i8] }
%"sync::atomic::AtomicI8" = type { %"cell::UnsafeCell<i8>", [0 x i8] }
%"cell::UnsafeCell<i8>" = type { i8, [0 x i8] }
%"sync::atomic::AtomicU8" = type { %"cell::UnsafeCell<u8>", [0 x i8] }
%"sync::atomic::AtomicI16" = type { %"cell::UnsafeCell<i16>", [0 x i8] }
%"cell::UnsafeCell<i16>" = type { i16, [0 x i8] }
%"sync::atomic::AtomicU16" = type { %"cell::UnsafeCell<u16>", [0 x i8] }
%"cell::UnsafeCell<u16>" = type { i16, [0 x i8] }
%"sync::atomic::AtomicI32" = type { %"cell::UnsafeCell<i32>", [0 x i8] }
%"cell::UnsafeCell<i32>" = type { i32, [0 x i8] }
%"sync::atomic::AtomicU32" = type { %"cell::UnsafeCell<u32>", [0 x i8] }
%"cell::UnsafeCell<u32>" = type { i32, [0 x i8] }
%"sync::atomic::AtomicI64" = type { %"cell::UnsafeCell<i64>", [0 x i8] }
%"cell::UnsafeCell<i64>" = type { i64, [0 x i8] }
%"sync::atomic::AtomicU64" = type { %"cell::UnsafeCell<u64>", [0 x i8] }
%"cell::UnsafeCell<u64>" = type { i64, [0 x i8] }
%"sync::atomic::AtomicIsize" = type { %"cell::UnsafeCell<isize>", [0 x i8] }
%"cell::UnsafeCell<isize>" = type { i64, [0 x i8] }
%"sync::atomic::AtomicUsize" = type { %"cell::UnsafeCell<usize>", [0 x i8] }
%"cell::UnsafeCell<usize>" = type { i64, [0 x i8] }
%"char::InvalidSequence" = type { {}, [0 x i8] }
%"str::pattern::SearchStep" = type { i64, [0 x i64], [2 x i64] }
%"str::pattern::CharSliceSearcher" = type { %"str::pattern::CharEqSearcher<&[char]>", [0 x i8] }
%"str::Bytes" = type { %"iter::Cloned<slice::Iter<u8>>", [0 x i8] }
%"str::LinesAny" = type { %"str::Lines", [0 x i8] }
%"hash::sip::SipHasher13" = type { %"hash::sip::Hasher<hash::sip::Sip13Rounds>", [0 x i8] }
%"hash::sip::SipHasher" = type { %"hash::sip::SipHasher24", [0 x i8] }
%"hash::sip::Sip13Rounds" = type {}
%"hash::sip::Sip24Rounds" = type {}
%"fmt::num::Binary" = type {}
%"fmt::num::Octal" = type {}
%"fmt::num::Decimal" = type {}
%"fmt::num::LowerHex" = type {}
%"fmt::num::UpperHex" = type {}
%"result::Result<isize, num::TryFromIntError>" = type { i64, [0 x i64], [1 x i64] }
%"result::Result<usize, num::TryFromIntError>" = type { i64, [0 x i64], [1 x i64] }
%"option::Option<isize>" = type { i64, [0 x i64], [1 x i64] }
@_ZN4core3num7flt2dec8strategy6dragon5POW1017hf0327ccee16c45aeE = internal constant [10 x i32] [i32 1, i32 10, i32 100, i32 1000, i32 10000, i32 100000, i32 1000000, i32 10000000, i32 100000000, i32 1000000000], align 4
@_ZN4core3num7flt2dec8strategy6dragon8TWOPOW1017h6c98a5ff94e6485fE = internal unnamed_addr constant [10 x i32] [i32 2, i32 20, i32 200, i32 2000, i32 20000, i32 200000, i32 2000000, i32 20000000, i32 200000000, i32 2000000000], align 4
@_ZN4core3num7flt2dec8strategy6dragon9POW10TO1617h36e563568261e693E = internal constant [2 x i32] [i32 1874919424, i32 2328306], align 4
@_ZN4core3num7flt2dec8strategy6dragon9POW10TO3217heec5e85ad1a5a8d6E = internal constant [4 x i32] [i32 0, i32 -2052264063, i32 762134875, i32 1262], align 4
@_ZN4core3num7flt2dec8strategy6dragon9POW10TO6417h6c44f56ffbd884d4E = internal constant [7 x i32] [i32 0, i32 0, i32 -1083564287, i32 1849224548, i32 -626550803, i32 -381683212, i32 1593091], align 4
@_ZN4core3num7flt2dec8strategy6dragon10POW10TO12817ha71ad777a5684cd6E = internal constant [14 x i32] [i32 0, i32 0, i32 0, i32 0, i32 781532673, i32 64985353, i32 253049085, i32 594863151, i32 -741345812, i32 -1006314488, i32 -1127370534, i32 -1506574567, i32 -383834621, i32 590], align 4
@_ZN4core3num7flt2dec8strategy6dragon10POW10TO25617h2043c4da7df4220aE = internal constant [27 x i32] [i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -1741784063, i32 -1093433509, i32 -656826510, i32 303378311, i32 1809731782, i32 -817205648, i32 -711600113, i32 649228654, i32 -1379506512, i32 487929380, i32 1011012442, i32 1677677582, i32 -866815040, i32 1710878487, i32 1438394610, i32 -2133014537, i32 -194056740, i32 1608314830, i32 349175], align 4
@_ZN4core3str15UTF8_CHAR_WIDTH17h9316ca283ec8ad10E = local_unnamed_addr constant [256 x i8] c"\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\04\04\04\04\04\00\00\00\00\00\00\00\00\00\00\00", align 1
@_ZN4core3num7flt2dec18to_exact_fixed_str15__STATIC_FMTSTR17hb7c8b21a69352204E = local_unnamed_addr constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.3x, i32 0, i32 0), i64 3 }, align 8
@_ZN4core3num7dec2flt5rawfp11fp_to_float15__STATIC_FMTSTR17hb220b53ab15827aeE = local_unnamed_addr constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref.46, i32 0, i32 0), i64 2 }, align 8
@_ZN4core3num7dec2flt5rawfp11fp_to_float15__STATIC_FMTSTR17hc9b0494ef9a26aefE = local_unnamed_addr constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref.48, i32 0, i32 0), i64 2 }, align 8
@_ZN4core3num7dec2flt5rawfp12round_normal15__STATIC_FMTSTR17h94fdf1038c5e7f45E = local_unnamed_addr constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.3x, i32 0, i32 0), i64 3 }, align 8
@"_ZN71_$LT$core..ops..range..Range$LT$Idx$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt15__STATIC_FMTSTR17hfad1f668a85ffeb5E" = local_unnamed_addr constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref.5v, i32 0, i32 0), i64 2 }, align 8
@"_ZN75_$LT$core..ops..range..RangeFrom$LT$Idx$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt15__STATIC_FMTSTR17h932b84b974820d33E" = local_unnamed_addr constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref.5v, i32 0, i32 0), i64 2 }, align 8
@"_ZN73_$LT$core..ops..range..RangeTo$LT$Idx$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt15__STATIC_FMTSTR17h5d0150e63eb17b04E" = local_unnamed_addr constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.5u, i32 0, i32 0), i64 1 }, align 8
@"_ZN80_$LT$core..ops..range..RangeInclusive$LT$Idx$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt15__STATIC_FMTSTR17h3427c3ecd077bbafE" = local_unnamed_addr constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref.5x, i32 0, i32 0), i64 2 }, align 8
@"_ZN82_$LT$core..ops..range..RangeToInclusive$LT$Idx$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt15__STATIC_FMTSTR17hf9180516642c26efE" = local_unnamed_addr constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.5y, i32 0, i32 0), i64 1 }, align 8
@"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$11encode_utf815__STATIC_FMTSTR17h88d4288bdb335556E" = local_unnamed_addr constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.6v, i32 0, i32 0), i64 3 }, align 8
@"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$12encode_utf1615__STATIC_FMTSTR17h123780969ea1346cE" = local_unnamed_addr constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.6y, i32 0, i32 0), i64 3 }, align 8
@_ZN4core4iter6traits17ExactSizeIterator3len15__STATIC_FMTSTR17h970c72ca202b0b47E = local_unnamed_addr constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.3x, i32 0, i32 0), i64 3 }, align 8
@_ZN4core6result13unwrap_failed15__STATIC_FMTSTR17h983e691c63703ef1E = local_unnamed_addr constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref.7c, i32 0, i32 0), i64 2 }, align 8
@_ZN4core5slice4sort19partition_in_blocks15__STATIC_FMTSTR17h1deddfec9afe40fdE = local_unnamed_addr constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.3x, i32 0, i32 0), i64 3 }, align 8
@_ZN4core5slice4sort19partition_in_blocks15__STATIC_FMTSTR17h33df6ef1d17f24c1E = local_unnamed_addr constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.3x, i32 0, i32 0), i64 3 }, align 8
@_ZN4core4hash3sip9u8to64_le15__STATIC_FMTSTR17hf472cf8439a4210fE = local_unnamed_addr constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.3x, i32 0, i32 0), i64 3 }, align 8
@str.0 = internal constant [62 x i8] c"/shared/rust/master/src/libcore/num/flt2dec/strategy/dragon.rs"
@panic_bounds_check_loc.3 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i64 62 }, i32 164 }, align 8
@panic_bounds_check_loc.4 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i64 62 }, i32 218 }, align 8
@panic_bounds_check_loc.5 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i64 62 }, i32 301 }, align 8
@_ZN4core3num7flt2dec8strategy5grisu12CACHED_POW1017hbb880931a269811cE = constant { { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] } } { { i64, i16, i16, [4 x i8] } { i64 -1865951482774665761, i16 -1087, i16 -308, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -6093090917745768758, i16 -1060, i16 -300, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -38366372719436721, i16 -1034, i16 -292, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -4731433901725329908, i16 -1007, i16 -284, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -8228041688891786180, i16 -980, i16 -276, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -3219690930897053053, i16 -954, i16 -268, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -7101705404292871755, i16 -927, i16 -260, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -1541319077368263733, i16 -901, i16 -252, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -5851220927660403859, i16 -874, i16 -244, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -9062348037703676329, i16 -847, i16 -236, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -4462904269766699465, i16 -821, i16 -228, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -8027971522334779313, i16 -794, i16 -220, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -2921563150702462265, i16 -768, i16 -212, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -6879582898840692748, i16 -741, i16 -204, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -1210330751515841307, i16 -715, i16 -196, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -5604615407819967858, i16 -688, i16 -188, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -8878612607581929669, i16 -661, i16 -180, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -4189117143640191558, i16 -635, i16 -172, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -7823984217374209642, i16 -608, i16 -164, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -2617598379430861436, i16 -582, i16 -156, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -6653111496142234890, i16 -555, i16 -148, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -872862063775190746, i16 -529, i16 -140, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -5353181642124984136, i16 -502, i16 -132, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -8691279853972075893, i16 -475, i16 -124, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -3909969587797413805, i16 -449, i16 -116, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -7616003081050118571, i16 -422, i16 -108, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -2307682335666372931, i16 -396, i16 -100, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -6422206049907525489, i16 -369, i16 -92, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -528786136287117932, i16 -343, i16 -84, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -5096825099203863601, i16 -316, i16 -76, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -8500279345513818773, i16 -289, i16 -68, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -3625356651333078602, i16 -263, i16 -60, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -7403949918844649556, i16 -236, i16 -52, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -1991698500497491194, i16 -210, i16 -44, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -6186779746782440749, i16 -183, i16 -36, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -177973607073265138, i16 -157, i16 -28, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -4835449396872013077, i16 -130, i16 -20, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -8305539271883716404, i16 -103, i16 -12, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -3335171328526686932, i16 -77, i16 -4, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -7187745005283311616, i16 -50, i16 4, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -1669528073709551616, i16 -24, i16 12, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -5946744073709551616, i16 3, i16 20, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -9133518327554766460, i16 30, i16 28, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -4568956265895094861, i16 56, i16 36, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -8106986416796705680, i16 83, i16 44, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -3039304518611664792, i16 109, i16 52, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -6967307053960650171, i16 136, i16 60, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -1341049929119499481, i16 162, i16 68, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -5702008784649933400, i16 189, i16 76, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -8951176327949752869, i16 216, i16 84, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -4297245513042813542, i16 242, i16 92, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -7904546130479028392, i16 269, i16 100, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -2737644984756826646, i16 295, i16 108, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -6742553186979055798, i16 322, i16 116, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -1006140569036166267, i16 348, i16 124, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -5452481866653427593, i16 375, i16 132, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -8765264286586255934, i16 402, i16 140, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -4020214983419339459, i16 428, i16 148, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -7698142301602209613, i16 455, i16 156, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -2430079312244744221, i16 481, i16 164, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -6513398903789220827, i16 508, i16 172, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -664674077828931748, i16 534, i16 180, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -5198069505264599346, i16 561, i16 188, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -8575712306248138270, i16 588, i16 196, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -3737760522056206171, i16 614, i16 204, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -7487697328667536417, i16 641, i16 212, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -2116491865831296966, i16 667, i16 220, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -6279758049420528746, i16 694, i16 228, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -316522074587315140, i16 720, i16 236, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -4938676049251384304, i16 747, i16 244, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -8382449121214030822, i16 774, i16 252, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -3449775934753242068, i16 800, i16 260, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -7273132090830278359, i16 827, i16 268, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -1796764746270372707, i16 853, i16 276, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -6041542782089432023, i16 880, i16 284, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -9204148869281624187, i16 907, i16 292, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -4674203974643163859, i16 933, i16 300, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -8185402070463610993, i16 960, i16 308, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -3156152948152813503, i16 986, i16 316, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -7054365918152680535, i16 1013, i16 324, [4 x i8] undef }, { i64, i16, i16, [4 x i8] } { i64 -1470777745987373095, i16 1039, i16 332, [4 x i8] undef } }, align 8
@str.9 = internal constant [61 x i8] c"/shared/rust/master/src/libcore/num/flt2dec/strategy/grisu.rs"
@panic_bounds_check_loc.c = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i64 61 }, i32 131 }, align 8
@str.d = internal constant [25 x i8] c"attempt to divide by zero"
@panic_loc.e = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @str.d, i32 0, i32 0), i64 25 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i64 61 }, i32 263 }, align 8
@panic_bounds_check_loc.h = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i64 61 }, i32 266 }, align 8
@panic_bounds_check_loc.i = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i64 61 }, i32 309 }, align 8
@panic_loc.j = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @str.d, i32 0, i32 0), i64 25 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i64 61 }, i32 510 }, align 8
@panic_bounds_check_loc.l = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i64 61 }, i32 513 }, align 8
@panic_bounds_check_loc.m = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i64 61 }, i32 564 }, align 8
@str.o = internal constant [50 x i8] c"/shared/rust/master/src/libcore/num/flt2dec/mod.rs"
@panic_bounds_check_loc.p = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 158 }, align 8
@panic_bounds_check_loc.q = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 159 }, align 8
@panic_bounds_check_loc.r = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 163 }, align 8
@panic_bounds_check_loc.s = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 164 }, align 8
@byte_str.u = internal unnamed_addr constant [2 x i8] c"0.", align 1
@byte_str.A = internal unnamed_addr constant [1 x i8] c".", align 1
@byte_str.M = internal unnamed_addr constant [2 x i8] c"E-", align 1
@byte_str.N = internal unnamed_addr constant [2 x i8] c"e-", align 1
@panic_bounds_check_loc.O = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 361 }, align 8
@byte_str.P = internal unnamed_addr constant [1 x i8] c"E", align 1
@byte_str.Q = internal constant [1 x i8] c"e", align 1
@panic_bounds_check_loc.R = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 364 }, align 8
@byte_str.S = internal unnamed_addr constant [1 x i8] c"-", align 1
@byte_str.T = internal unnamed_addr constant [1 x i8] c"+", align 1
@byte_str.U = internal constant [0 x i8] zeroinitializer, align 1
@byte_str.X = internal unnamed_addr constant [1 x i8] c"0", align 1
@byte_str.Z = internal unnamed_addr constant [3 x i8] c"inf", align 1
@byte_str.11 = internal unnamed_addr constant [3 x i8] c"NaN", align 1
@byte_str.13 = internal unnamed_addr constant [3 x i8] c"0E0", align 1
@byte_str.14 = internal unnamed_addr constant [3 x i8] c"0e0", align 1
@byte_str.1a = internal unnamed_addr constant [2 x i8] c"E0", align 1
@byte_str.1b = internal unnamed_addr constant [2 x i8] c"e0", align 1
@const.1o = internal unnamed_addr constant { [611 x i64], [611 x i16], [2 x i8] } { [611 x i64] [i64 -2254563809124702148, i64 -8326631408344020698, i64 -5796603242002637969, i64 -2634068034075909557, i64 -8563821548938525329, i64 -6093090917745768758, i64 -3004677628754823043, i64 -8795452545612846258, i64 -6382629663588669918, i64 -3366601061058449494, i64 -9021654690802612790, i64 -6665382345075878083, i64 -3720041912917459700, i64 -38366372719436721, i64 -6941508010590729807, i64 -4065198994811024354, i64 -469812725086392539, i64 -7211161980820077193, i64 -4402266457597708587, i64 -891147053569747830, i64 -7474495936122174249, i64 -4731433901725329908, i64 -1302606358729274481, i64 -7731658001846878407, i64 -5052886483881210104, i64 -1704422086424124726, i64 -7982792831656159810, i64 -5366805021142811858, i64 -2096820258001126919, i64 -8228041688891786180, i64 -5673366092687344821, i64 -2480021597431793123, i64 -8467542526035952558, i64 -5972742139117552793, i64 -2854241655469553087, i64 -8701430062309552536, i64 -6265101559459552766, i64 -3219690930897053053, i64 -8929835859451740014, i64 -6550608805887287114, i64 -3576574988931720988, i64 -9152888395723407474, i64 -6829424476226871438, i64 -3925094576856201393, i64 -294682202642863838, i64 -7101705404292871755, i64 -4265445736938701789, i64 -720121152745989333, i64 -7367604748107325189, i64 -4597819916706768582, i64 -1135588877456072824, i64 -7627272076051127371, i64 -4922404076636521309, i64 -1541319077368263733, i64 -7880853450996246689, i64 -5239380795317920457, i64 -1937539975720012667, i64 -8128491512466089773, i64 -5548928372155224312, i64 -2324474446766642487, i64 -8370325556870233410, i64 -5851220927660403859, i64 -2702340141148116919, i64 -8606491615858654931, i64 -6146428501395930759, i64 -3071349608317525545, i64 -8837122532839535322, i64 -6434717147622031248, i64 -3431710416100151156, i64 -9062348037703676329, i64 -6716249028702207507, i64 -3783625267450371479, i64 -117845565885576445, i64 -6991182506319567134, i64 -4127292114472071014, i64 -547429124662700863, i64 -7259672230555269896, i64 -4462904269766699465, i64 -966944318780986428, i64 -7521869226879198373, i64 -4790650515171610063, i64 -1376627125537124674, i64 -7777920981101784777, i64 -5110715207949843068, i64 -1776707991509915931, i64 -8027971522334779313, i64 -5423278384491086237, i64 -2167411962186469892, i64 -8272161504007625539, i64 -5728515861582144019, i64 -2548958808550292120, i64 -8510628282985014431, i64 -6026599335303880135, i64 -2921563150702462265, i64 -8743505996830120771, i64 -6317696477610263060, i64 -3285434578585440921, i64 -8970925639256982432, i64 -6601971030643840136, i64 -3640777769877412266, i64 -9193015133814464522, i64 -6879582898840692748, i64 -3987792605123478032, i64 -373054737976959636, i64 -7150688238876681628, i64 -4326674280168464131, i64 -796656831783192260, i64 -7415439547505577019, i64 -4657613415954583369, i64 -1210330751515841307, i64 -7673985747338482673, i64 -4980796165745715437, i64 -1614309188754756393, i64 -7926472270612804602, i64 -5296404319838617848, i64 -2008819381370884406, i64 -8173041140997884610, i64 -5604615407819967858, i64 -2394083241347571919, i64 -8413831053483314305, i64 -5905602798426754977, i64 -2770317479606055818, i64 -8648977452394866742, i64 -6199535797066195524, i64 -3137733727905356501, i64 -8878612607581929669, i64 -6486579741050024182, i64 -3496538657885142324, i64 -9102865688819295808, i64 -6766896092596731856, i64 -3846934097318526916, i64 -196981603220770741, i64 -7040642529654063569, i64 -4189117143640191558, i64 -624710411122851543, i64 -7307973034592864070, i64 -4523280274813692184, i64 -1042414325089727326, i64 -7569037980822161435, i64 -4849611457600313890, i64 -1450328303573004458, i64 -7823984217374209642, i64 -5168294253290374149, i64 -1848681798185579782, i64 -8072955151507069220, i64 -5479507920956448621, i64 -2237698882768172872, i64 -8316090829371189901, i64 -5783427518286599472, i64 -2617598379430861436, i64 -8553528014785370254, i64 -6080224000054324913, i64 -2988593981640518237, i64 -8785400266166405754, i64 -6370064314280619289, i64 -3350894374423386207, i64 -9011838011655698235, i64 -6653111496142234890, i64 -3704703351750405709, i64 -19193171260619232, i64 -6929524759678968876, i64 -4050219931171323191, i64 -451088895536766085, i64 -7199459587351560659, i64 -4387638465762062920, i64 -872862063775190746, i64 -7463067817500576072, i64 -4717148753448332186, i64 -1284749923383027329, i64 -7720497729755473936, i64 -5038936143766954516, i64 -1686984161281305242, i64 -7971894128441897632, i64 -5353181642124984136, i64 -2079791034228842266, i64 -8217398424034108272, i64 -5660062011615247436, i64 -2463391496091671391, i64 -8457148712698376476, i64 -5959749872445582690, i64 -2838001322129590459, i64 -8691279853972075893, i64 -6252413799037706962, i64 -3203831230369745799, i64 -8919923546622172980, i64 -6538218414850328321, i64 -3561087000135522498, i64 -9143208402725783417, i64 -6817324484979841367, i64 -3909969587797413805, i64 -275775966319379352, i64 -7089889006590693951, i64 -4250675239810979535, i64 -701658031336336515, i64 -7356065297226292178, i64 -4583395603105477318, i64 -1117558485454458744, i64 -7616003081050118571, i64 -4908317832885260309, i64 -1523711272679187483, i64 -7869848573065574033, i64 -5225624697904579637, i64 -1920344853953336642, i64 -8117744561361917257, i64 -5535494683275008668, i64 -2307682335666372931, i64 -8359830487432564938, i64 -5838102090863318268, i64 -2685941595151759931, i64 -8596242524610931813, i64 -6133617137336276862, i64 -3055335403242958174, i64 -8827113654667930715, i64 -6422206049907525489, i64 -3416071543957018958, i64 -9052573742614218704, i64 -6704031159840385477, i64 -3768352931373093942, i64 -98755145788979523, i64 -6979250993759194058, i64 -4112377723771604668, i64 -528786136287117932, i64 -7248020362820530563, i64 -4448339435098275300, i64 -948738275445456221, i64 -7510490449794491994, i64 -4776427043815727089, i64 -1358847786342270957, i64 -7766808894105001204, i64 -5096825099203863601, i64 -1759345355577441597, i64 -8017119874876982854, i64 -5409713825168840664, i64 -2150456263033662926, i64 -8261564192037121185, i64 -5715269221619013577, i64 -2532400508596379067, i64 -8500279345513818773, i64 -6013663163464885562, i64 -2905392935903719049, i64 -8733399612580906261, i64 -6305063497298744923, i64 -3269643353196043249, i64 -8961056123388608887, i64 -6589634135808373205, i64 -3625356651333078602, i64 -9183376934724255982, i64 -6867535149977932074, i64 -3972732919045027188, i64 -354230130378896081, i64 -7138922859127891907, i64 -4311967555482476979, i64 -778273425925708320, i64 -7403949918844649556, i64 -4643251380128424041, i64 -1192378206733142147, i64 -7662765406849295698, i64 -4966770740134231719, i64 -1596777406740401744, i64 -7915514906853832946, i64 -5282707615139903279, i64 -1991698500497491194, i64 -8162340590452013853, i64 -5591239719637629412, i64 -2377363631119648861, i64 -8403381297090862394, i64 -5892540602936190088, i64 -2753989735242849706, i64 -8638772612167862923, i64 -6186779746782440749, i64 -3121788665050663032, i64 -8868646943297746251, i64 -6474122660694794910, i64 -3480967307441105734, i64 -9093133594791772939, i64 -6754730975062328270, i64 -3831727700400522434, i64 -177973607073265138, i64 -7028762532061872568, i64 -4174267146649952805, i64 -606147914885053103, i64 -7296371474444240045, i64 -4508778324627912153, i64 -1024286887357502287, i64 -7557708332239520785, i64 -4835449396872013077, i64 -1432625727662628443, i64 -7812920107430224633, i64 -5154464115860392887, i64 -1831394126398103205, i64 -8062150356639896359, i64 -5466001927372482545, i64 -2220816390788215277, i64 -8305539271883716404, i64 -5770238071427257601, i64 -2601111570856684097, i64 -8543223759426509417, i64 -6067343680855748867, i64 -2972493582642298180, i64 -8775337516792518218, i64 -6357485877563259869, i64 -3335171328526686932, i64 -9002011107970261189, i64 -6640827866535438582, i64 -3689348814741910323, i64 -9223372036854775808, i64 -6917529027641081856, i64 -4035225266123964416, i64 -432345564227567616, i64 -7187745005283311616, i64 -4372995238176751616, i64 -854558029293551616, i64 -7451627795949551616, i64 -4702848726509551616, i64 -1266874889709551616, i64 -7709325833709551616, i64 -5024971273709551616, i64 -1669528073709551616, i64 -7960984073709551616, i64 -5339544073709551616, i64 -2062744073709551616, i64 -8206744073709551616, i64 -5646744073709551616, i64 -2446744073709551616, i64 -8446744073709551616, i64 -5946744073709551616, i64 -2821744073709551616, i64 -8681119073709551616, i64 -6239712823709551616, i64 -3187955011209551616, i64 -8910000909647051616, i64 -6525815118631426616, i64 -3545582879861895366, i64 -9133518327554766460, i64 -6805211891016070171, i64 -3894828845342699809, i64 -256850038250986858, i64 -7078060301547948642, i64 -4235889358507547899, i64 -683175679707046969, i64 -7344513827457986212, i64 -4568956265895094861, i64 -1099509313941480672, i64 -7604722348854507276, i64 -4894216917640746191, i64 -1506085128623544835, i64 -7858832233030797378, i64 -5211854272861108818, i64 -1903131822648998119, i64 -8106986416796705680, i64 -5522047002568494196, i64 -2290872734783229841, i64 -8349324486880600507, i64 -5824969590173362729, i64 -2669525969289315508, i64 -8585982758446904048, i64 -6120792429631242156, i64 -3039304518611664792, i64 -8817094351773372351, i64 -6409681921289327534, i64 -3400416383184271514, i64 -9042789267131251552, i64 -6691800565486676536, i64 -3753064688430957766, i64 -79644842111309304, i64 -6967307053960650171, i64 -4097447799023424810, i64 -510123730351893108, i64 -7236356359111015049, i64 -4433759430461380907, i64 -930513269649338229, i64 -7499099821171918249, i64 -4762188758037509908, i64 -1341049929119499481, i64 -7755685233340769031, i64 -5082920523248573385, i64 -1741964635633328828, i64 -8006256924911912373, i64 -5396135137712502563, i64 -2133482903713240299, i64 -8250955842461857043, i64 -5702008784649933400, i64 -2515824962385028846, i64 -8489919629131724885, i64 -6000713517987268202, i64 -2889205879056697348, i64 -8723282702051517699, i64 -6292417359137009219, i64 -3253835680493873620, i64 -8951176327949752869, i64 -6577284391509803182, i64 -3609919470959866073, i64 -9173728696990998152, i64 -6855474852811359786, i64 -3957657547586811828, i64 -335385916056126881, i64 -7127145225176161157, i64 -4297245513042813542, i64 -759870872876129023, i64 -7392448323188662496, i64 -4628874385558440215, i64 -1174406963520662365, i64 -7651533379841495834, i64 -4952730706374481889, i64 -1579227364540714457, i64 -7904546130479028392, i64 -5268996644671397586, i64 -1974559787411859078, i64 -8151628894773493780, i64 -5577850100039479321, i64 -2360626606621961247, i64 -8392920656779807635, i64 -5879464802547371640, i64 -2737644984756826646, i64 -8628557143114098510, i64 -6174010410465235233, i64 -3105826994654156138, i64 -8858670899299929442, i64 -6461652605697523898, i64 -3465379738694516969, i64 -9083391364325154962, i64 -6742553186979055798, i64 -3816505465296431844, i64 -158945813193151901, i64 -7016870160886801794, i64 -4159401682681114338, i64 -587566084924005019, i64 -7284757830718584993, i64 -4494261269970843337, i64 -1006140569036166267, i64 -7546366883288685773, i64 -4821272585683469312, i64 -1414904713676948736, i64 -7801844473689174816, i64 -5140619573684080616, i64 -1814088448677712866, i64 -8051334308064652397, i64 -5452481866653427593, i64 -2203916314889396587, i64 -8294976724446954723, i64 -5757034887131305500, i64 -2584607590486743971, i64 -8532908771695296838, i64 -6054449946191733143, i64 -2956376414312278525, i64 -8765264286586255934, i64 -6344894339805432013, i64 -3319431906329402113, i64 -8992173969096958177, i64 -6628531442943809817, i64 -3673978285252374367, i64 -9213765455923815835, i64 -6905520801477381890, i64 -4020214983419339459, i64 -413582710846786419, i64 -7176018221920323368, i64 -4358336758973016306, i64 -836234930288882479, i64 -7440175859071633405, i64 -4688533805412153852, i64 -1248981238337804411, i64 -7698142301602209613, i64 -5010991858575374112, i64 -1652053804791829737, i64 -7950062655635975441, i64 -5325892301117581398, i64 -2045679357969588843, i64 -8196078626372074883, i64 -5633412264537705700, i64 -2430079312244744221, i64 -8436328597794046994, i64 -5933724728815170838, i64 -2805469892591575644, i64 -8670947710510816633, i64 -6226998619711132888, i64 -3172062256211528206, i64 -8900067937773286985, i64 -6513398903789220827, i64 -3530062611309138129, i64 -9123818159709293187, i64 -6793086681209228580, i64 -3879672333084147821, i64 -237904397927796872, i64 -7066219276345954901, i64 -4221088077005055722, i64 -664674077828931748, i64 -7332950326284164199, i64 -4554501889427817344, i64 -1081441343357383777, i64 -7593429867239446716, i64 -4880101315621920491, i64 -1488440626100012710, i64 -7847804418953589800, i64 -5198069505264599346, i64 -1885900863153361278, i64 -8096217067111932655, i64 -5508585315462527915, i64 -2274045625900771989, i64 -8338807543829064349, i64 -5811823411358942533, i64 -2653093245771290262, i64 -8575712306248138270, i64 -6107954364382784933, i64 -3023256937051093262, i64 -8807064613298015145, i64 -6397144748195131027, i64 -3384744916816525880, i64 -9032994600651410531, i64 -6679557232386875260, i64 -3737760522056206171, i64 -60514634142869810, i64 -6955350673980375487, i64 -4082502324048081455, i64 -491441886632713914, i64 -7224680206786528052, i64 -4419164240055772162, i64 -912269281642327298, i64 -7487697328667536417, i64 -4747935642407032618, i64 -1323233534581402868, i64 -7744549986754458648, i64 -5069001465015685407, i64 -1724565812842218854, i64 -7995382660667468640, i64 -5382542307406947896, i64 -2116491865831296966, i64 -8240336443785642460, i64 -5688734536304665171, i64 -2499232151953443559, i64 -8479549122611984080, i64 -5987750384837592197, i64 -2873001962619602342, i64 -8713155254278333320, i64 -6279758049420528746, i64 -3238011543348273028, i64 -8941286242233752498, i64 -6564921784364802719, i64 -3594466212028615495, i64 -9164070410158966540, i64 -6843401994271320271, i64 -3942566474411762435, i64 -316522074587315140, i64 -7115355324258153818, i64 -4282508136895304369, i64 -741449152691742557, i64 -7380934748073420954, i64 -4614482416664388289, i64 -1156417002403097457, i64 -7640289654143017767, i64 -4938676049251384304, i64 -1561659043136842476, i64 -7893565929601608404, i64 -5255271393574622601, i64 -1957403223540890347, i64 -8140906042354138323, i64 -5564446534515285000, i64 -2343872149716718345, i64 -8382449121214030822, i64 -5866375383090150623, i64 -2721283210435300375, i64 -8618331034163144591, i64 -6161227774276542834, i64 -3089848699418290639, i64 -8848684464777513505, i64 -6449169562544503977, i64 -3449775934753242068, i64 -9073638986861858148, i64 -6730362715149934781, i64 -3801267375510030573, i64 -139898200960150312, i64 -7004965403241175801, i64 -4144520735624081847, i64 -568964901102714405, i64 -7273132090830278359, i64 -4479729095110460045, i64 -987975350460687152, i64 -7535013621679011326, i64 -4807081008671376254, i64 -1397165242411832413, i64 -7790757304148477114, i64 -5126760611758208489, i64 -1796764746270372707, i64 -8040506994060064798, i64 -5438947724147693093, i64 -2186998636757228463, i64 -8284403175614349645, i64 -5743817951090549152, i64 -2568086420435798537, i64 -8522583040413455941, i64 -6041542782089432023, i64 -2940242459184402124, i64 -8755180564631333184, i64 -6332289687361778576, i64 -3303676090774835316, i64 -8982326584375353928, i64 -6616222212041804506, i64 -3658591746624867729, i64 -9204148869281624187, i64 -6893500068174642329, i64 -4005189066790915007, i64 -394800315061255855, i64 -7164279224554366766, i64 -4343663012265570553, i64 -817892746904575287, i64 -7428711994456441410, i64 -4674203974643163859, i64 -1231068949876566920, i64 -7686947121313936181, i64 -4996997883215032322, i64 -1634561335591402499, i64 -7939129862385708418], [611 x i16] [i16 -1077, i16 -1073, i16 -1070, i16 -1067, i16 -1063, i16 -1060, i16 -1057, i16 -1053, i16 -1050, i16 -1047, i16 -1043, i16 -1040, i16 -1037, i16 -1034, i16 -1030, i16 -1027, i16 -1024, i16 -1020, i16 -1017, i16 -1014, i16 -1010, i16 -1007, i16 -1004, i16 -1000, i16 -997, i16 -994, i16 -990, i16 -987, i16 -984, i16 -980, i16 -977, i16 -974, i16 -970, i16 -967, i16 -964, i16 -960, i16 -957, i16 -954, i16 -950, i16 -947, i16 -944, i16 -940, i16 -937, i16 -934, i16 -931, i16 -927, i16 -924, i16 -921, i16 -917, i16 -914, i16 -911, i16 -907, i16 -904, i16 -901, i16 -897, i16 -894, i16 -891, i16 -887, i16 -884, i16 -881, i16 -877, i16 -874, i16 -871, i16 -867, i16 -864, i16 -861, i16 -857, i16 -854, i16 -851, i16 -847, i16 -844, i16 -841, i16 -838, i16 -834, i16 -831, i16 -828, i16 -824, i16 -821, i16 -818, i16 -814, i16 -811, i16 -808, i16 -804, i16 -801, i16 -798, i16 -794, i16 -791, i16 -788, i16 -784, i16 -781, i16 -778, i16 -774, i16 -771, i16 -768, i16 -764, i16 -761, i16 -758, i16 -754, i16 -751, i16 -748, i16 -744, i16 -741, i16 -738, i16 -735, i16 -731, i16 -728, i16 -725, i16 -721, i16 -718, i16 -715, i16 -711, i16 -708, i16 -705, i16 -701, i16 -698, i16 -695, i16 -691, i16 -688, i16 -685, i16 -681, i16 -678, i16 -675, i16 -671, i16 -668, i16 -665, i16 -661, i16 -658, i16 -655, i16 -651, i16 -648, i16 -645, i16 -642, i16 -638, i16 -635, i16 -632, i16 -628, i16 -625, i16 -622, i16 -618, i16 -615, i16 -612, i16 -608, i16 -605, i16 -602, i16 -598, i16 -595, i16 -592, i16 -588, i16 -585, i16 -582, i16 -578, i16 -575, i16 -572, i16 -568, i16 -565, i16 -562, i16 -558, i16 -555, i16 -552, i16 -549, i16 -545, i16 -542, i16 -539, i16 -535, i16 -532, i16 -529, i16 -525, i16 -522, i16 -519, i16 -515, i16 -512, i16 -509, i16 -505, i16 -502, i16 -499, i16 -495, i16 -492, i16 -489, i16 -485, i16 -482, i16 -479, i16 -475, i16 -472, i16 -469, i16 -465, i16 -462, i16 -459, i16 -455, i16 -452, i16 -449, i16 -446, i16 -442, i16 -439, i16 -436, i16 -432, i16 -429, i16 -426, i16 -422, i16 -419, i16 -416, i16 -412, i16 -409, i16 -406, i16 -402, i16 -399, i16 -396, i16 -392, i16 -389, i16 -386, i16 -382, i16 -379, i16 -376, i16 -372, i16 -369, i16 -366, i16 -362, i16 -359, i16 -356, i16 -353, i16 -349, i16 -346, i16 -343, i16 -339, i16 -336, i16 -333, i16 -329, i16 -326, i16 -323, i16 -319, i16 -316, i16 -313, i16 -309, i16 -306, i16 -303, i16 -299, i16 -296, i16 -293, i16 -289, i16 -286, i16 -283, i16 -279, i16 -276, i16 -273, i16 -269, i16 -266, i16 -263, i16 -259, i16 -256, i16 -253, i16 -250, i16 -246, i16 -243, i16 -240, i16 -236, i16 -233, i16 -230, i16 -226, i16 -223, i16 -220, i16 -216, i16 -213, i16 -210, i16 -206, i16 -203, i16 -200, i16 -196, i16 -193, i16 -190, i16 -186, i16 -183, i16 -180, i16 -176, i16 -173, i16 -170, i16 -166, i16 -163, i16 -160, i16 -157, i16 -153, i16 -150, i16 -147, i16 -143, i16 -140, i16 -137, i16 -133, i16 -130, i16 -127, i16 -123, i16 -120, i16 -117, i16 -113, i16 -110, i16 -107, i16 -103, i16 -100, i16 -97, i16 -93, i16 -90, i16 -87, i16 -83, i16 -80, i16 -77, i16 -73, i16 -70, i16 -67, i16 -63, i16 -60, i16 -57, i16 -54, i16 -50, i16 -47, i16 -44, i16 -40, i16 -37, i16 -34, i16 -30, i16 -27, i16 -24, i16 -20, i16 -17, i16 -14, i16 -10, i16 -7, i16 -4, i16 0, i16 3, i16 6, i16 10, i16 13, i16 16, i16 20, i16 23, i16 26, i16 30, i16 33, i16 36, i16 39, i16 43, i16 46, i16 49, i16 53, i16 56, i16 59, i16 63, i16 66, i16 69, i16 73, i16 76, i16 79, i16 83, i16 86, i16 89, i16 93, i16 96, i16 99, i16 103, i16 106, i16 109, i16 113, i16 116, i16 119, i16 123, i16 126, i16 129, i16 132, i16 136, i16 139, i16 142, i16 146, i16 149, i16 152, i16 156, i16 159, i16 162, i16 166, i16 169, i16 172, i16 176, i16 179, i16 182, i16 186, i16 189, i16 192, i16 196, i16 199, i16 202, i16 206, i16 209, i16 212, i16 216, i16 219, i16 222, i16 226, i16 229, i16 232, i16 235, i16 239, i16 242, i16 245, i16 249, i16 252, i16 255, i16 259, i16 262, i16 265, i16 269, i16 272, i16 275, i16 279, i16 282, i16 285, i16 289, i16 292, i16 295, i16 299, i16 302, i16 305, i16 309, i16 312, i16 315, i16 319, i16 322, i16 325, i16 328, i16 332, i16 335, i16 338, i16 342, i16 345, i16 348, i16 352, i16 355, i16 358, i16 362, i16 365, i16 368, i16 372, i16 375, i16 378, i16 382, i16 385, i16 388, i16 392, i16 395, i16 398, i16 402, i16 405, i16 408, i16 412, i16 415, i16 418, i16 422, i16 425, i16 428, i16 431, i16 435, i16 438, i16 441, i16 445, i16 448, i16 451, i16 455, i16 458, i16 461, i16 465, i16 468, i16 471, i16 475, i16 478, i16 481, i16 485, i16 488, i16 491, i16 495, i16 498, i16 501, i16 505, i16 508, i16 511, i16 515, i16 518, i16 521, i16 524, i16 528, i16 531, i16 534, i16 538, i16 541, i16 544, i16 548, i16 551, i16 554, i16 558, i16 561, i16 564, i16 568, i16 571, i16 574, i16 578, i16 581, i16 584, i16 588, i16 591, i16 594, i16 598, i16 601, i16 604, i16 608, i16 611, i16 614, i16 617, i16 621, i16 624, i16 627, i16 631, i16 634, i16 637, i16 641, i16 644, i16 647, i16 651, i16 654, i16 657, i16 661, i16 664, i16 667, i16 671, i16 674, i16 677, i16 681, i16 684, i16 687, i16 691, i16 694, i16 697, i16 701, i16 704, i16 707, i16 711, i16 714, i16 717, i16 720, i16 724, i16 727, i16 730, i16 734, i16 737, i16 740, i16 744, i16 747, i16 750, i16 754, i16 757, i16 760, i16 764, i16 767, i16 770, i16 774, i16 777, i16 780, i16 784, i16 787, i16 790, i16 794, i16 797, i16 800, i16 804, i16 807, i16 810, i16 813, i16 817, i16 820, i16 823, i16 827, i16 830, i16 833, i16 837, i16 840, i16 843, i16 847, i16 850, i16 853, i16 857, i16 860, i16 863, i16 867, i16 870, i16 873, i16 877, i16 880, i16 883, i16 887, i16 890, i16 893, i16 897, i16 900, i16 903, i16 907, i16 910, i16 913, i16 916, i16 920, i16 923, i16 926, i16 930, i16 933, i16 936, i16 940, i16 943, i16 946, i16 950], [2 x i8] undef }, align 8
@str.1p = internal constant [56 x i8] c"/shared/rust/master/src/libcore/num/dec2flt/algorithm.rs"
@panic_bounds_check_loc.1q = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([56 x i8], [56 x i8]* @str.1p, i32 0, i32 0), i64 56 }, i32 29 }, align 8
@str.1s = internal constant [50 x i8] c"/shared/rust/master/src/libcore/num/dec2flt/num.rs"
@panic_bounds_check_loc.1t = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.1s, i32 0, i32 0), i64 50 }, i32 75 }, align 8
@const.1v = internal unnamed_addr constant [11 x float] [float 1.000000e+00, float 1.000000e+01, float 1.000000e+02, float 1.000000e+03, float 1.000000e+04, float 1.000000e+05, float 1.000000e+06, float 1.000000e+07, float 1.000000e+08, float 1.000000e+09, float 1.000000e+10], align 4
@str.1w = internal constant [52 x i8] c"/shared/rust/master/src/libcore/num/dec2flt/rawfp.rs"
@panic_bounds_check_loc.1x = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i64 52 }, i32 197 }, align 8
@const.1y = internal unnamed_addr constant [23 x double] [double 1.000000e+00, double 1.000000e+01, double 1.000000e+02, double 1.000000e+03, double 1.000000e+04, double 1.000000e+05, double 1.000000e+06, double 1.000000e+07, double 1.000000e+08, double 1.000000e+09, double 1.000000e+10, double 1.000000e+11, double 1.000000e+12, double 1.000000e+13, double 1.000000e+14, double 1.000000e+15, double 1.000000e+16, double 1.000000e+17, double 1.000000e+18, double 1.000000e+19, double 1.000000e+20, double 1.000000e+21, double 1.000000e+22], align 8
@panic_bounds_check_loc.1z = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i64 52 }, i32 247 }, align 8
@str.1E = internal constant [21 x i8] c"invalid float literal"
@str.1F = internal constant [36 x i8] c"cannot parse float from empty string"
@str.1G = internal constant [50 x i8] c"/shared/rust/master/src/libcore/num/dec2flt/mod.rs"
@panic_bounds_check_loc.1H = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.1G, i32 0, i32 0), i64 50 }, i32 201 }, align 8
@str.1M = internal constant [47 x i8] c"out of range integral type conversion attempted"
@str.1N = internal constant [42 x i8] c"/shared/rust/master/src/libcore/num/mod.rs"
@str.1P = internal constant [38 x i8] c"number too small to fit in target type"
@str.1Q = internal constant [38 x i8] c"number too large to fit in target type"
@str.1R = internal constant [29 x i8] c"invalid digit found in string"
@str.1S = internal constant [38 x i8] c"cannot parse integer from empty string"
@ref.1W = internal unnamed_addr constant [0 x %"fmt::ArgumentV1"] zeroinitializer, align 8
@str.1X = internal constant [3 x i8] c"Any"
@str.1Y = internal constant [10 x i8] c"AtomicBool"
@vtable.1Z = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 (i8*, %"fmt::Formatter"*)* } { void (i8*)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (i8*)*), i64 1, i64 1, i8 (i8*, %"fmt::Formatter"*)* @"_ZN41_$LT$bool$u20$as$u20$core..fmt..Debug$GT$3fmt17h9eb6f058ca2d718cE" }, align 8
@str.20 = internal constant [11 x i8] c"BorrowError"
@str.21 = internal constant [24 x i8] c"already mutably borrowed"
@str.22 = internal constant [14 x i8] c"BorrowMutError"
@str.23 = internal constant [16 x i8] c"already borrowed"
@str.25 = internal constant [29 x i8] c"too many characters in string"
@str.26 = internal constant [35 x i8] c"cannot parse char from empty string"
@str.27 = internal constant [41 x i8] c"converted integer out of range for `char`"
@str.28 = internal constant [3 x i8] c"Map"
@str.29 = internal constant [4 x i8] c"iter"
@vtable.2a = internal unnamed_addr constant { void (%"str::SplitTerminator<char>"*)*, i64, i64, i8 (%"str::SplitTerminator<char>"*, %"fmt::Formatter"*)* } { void (%"str::SplitTerminator<char>"*)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"str::SplitTerminator<char>"*)*), i64 72, i64 8, i8 (%"str::SplitTerminator<char>"*, %"fmt::Formatter"*)* @"_ZN86_$LT$core..str..SplitTerminator$LT$$u27$a$C$$u20$P$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17ha9f27218dd41446cE" }, align 8
@str.2b = internal constant [44 x i8] c"/shared/rust/master/src/libcore/slice/mod.rs"
@panic_bounds_check_loc.2d = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i64 44 }, i32 815 }, align 8
@panic_bounds_check_loc.2e = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i64 44 }, i32 821 }, align 8
@str.2f = internal constant [4 x i8] c"Iter"
@vtable.2g = internal unnamed_addr constant { void ({ i8*, i64 }*)*, i64, i64, i8 ({ i8*, i64 }*, %"fmt::Formatter"*)* } { void ({ i8*, i64 }*)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void ({ i8*, i64 }*)*), i64 16, i64 8, i8 ({ i8*, i64 }*, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h7d31f5024dcb553eE" }, align 8
@str.2i = internal constant [41 x i8] c"provided string was not `true` or `false`"
@str.2j = internal constant [13 x i8] c"SplitInternal"
@str.2k = internal constant [5 x i8] c"start"
@vtable.2l = internal unnamed_addr constant { void (i64*)*, i64, i64, i8 (i64*, %"fmt::Formatter"*)* } { void (i64*)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (i64*)*), i64 8, i64 8, i8 (i64*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$usize$GT$3fmt17hd96001b741994207E" }, align 8
@str.2m = internal constant [3 x i8] c"end"
@str.2n = internal constant [7 x i8] c"matcher"
@vtable.2o = internal unnamed_addr constant { void (%"str::pattern::CharSearcher"*)*, i64, i64, i8 (%"str::pattern::CharSearcher"*, %"fmt::Formatter"*)* } { void (%"str::pattern::CharSearcher"*)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"str::pattern::CharSearcher"*)*), i64 48, i64 8, i8 (%"str::pattern::CharSearcher"*, %"fmt::Formatter"*)* @"_ZN83_$LT$core..str..pattern..CharSearcher$LT$$u27$a$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17h4f565347135394daE" }, align 8
@str.2p = internal constant [20 x i8] c"allow_trailing_empty"
@str.2q = internal constant [8 x i8] c"finished"
@str.2r = internal constant [42 x i8] c"/shared/rust/master/src/libcore/str/mod.rs"
@str.2w = internal constant [5 x i8] c"[...]"
@str.2y = internal constant [4 x i8] c" "
@str.2z = internal constant [1 x i8] c","
@str.2A = internal constant [2 x i8] c" {"
@vtable.2B = internal unnamed_addr constant { void (%"fmt::builders::PadAdapter"*)*, i64, i64, i8 (%"fmt::builders::PadAdapter"*, i8*, i64)*, i8 (%"fmt::builders::PadAdapter"*, i32)*, i8 (%"fmt::builders::PadAdapter"*, %"fmt::Arguments"*)* } { void (%"fmt::builders::PadAdapter"*)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"fmt::builders::PadAdapter"*)*), i64 16, i64 8, i8 (%"fmt::builders::PadAdapter"*, i8*, i64)* @"_ZN96_$LT$core..fmt..builders..PadAdapter$LT$$u27$a$C$$u20$$u27$b$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17hda04628e55aace35E", i8 (%"fmt::builders::PadAdapter"*, i32)* @_ZN4core3fmt5Write10write_char17h016e4dd9fe653fbeE, i8 (%"fmt::builders::PadAdapter"*, %"fmt::Arguments"*)* @_ZN4core3fmt5Write9write_fmt17h3decfa32edaf57cdE }, align 8
@str.2C = internal constant [2 x i8] c"\0A}"
@str.2D = internal constant [2 x i8] c" }"
@str.2E = internal constant [1 x i8] c" "
@str.2F = internal constant [1 x i8] c"("
@str.2G = internal constant [1 x i8] c"\0A"
@str.2H = internal constant [1 x i8] c")"
@str.2I = internal constant [2 x i8] c", "
@str.2J = internal constant [1 x i8] c"}"
@vtable.2K = internal unnamed_addr constant { void (i8**)*, i64, i64, i8 (i8**, %"fmt::Formatter"*)* } { void (i8**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (i8**)*), i64 8, i64 8, i8 (i8**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hfba509dd297befe8E" }, align 8
@vtable.2L = internal unnamed_addr constant { void (i32**)*, i64, i64, i8 (i32**, %"fmt::Formatter"*)* } { void (i32**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (i32**)*), i64 8, i64 8, i8 (i32**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h7cbd7c8c300440d1E" }, align 8
@str.2M = internal constant [1 x i8] c"]"
@vtable.2N = internal unnamed_addr constant { void (%"fmt::Write::write_fmt::Adapter<fmt::builders::PadAdapter>"*)*, i64, i64, i8 (%"fmt::Write::write_fmt::Adapter<fmt::builders::PadAdapter>"*, i8*, i64)*, i8 (%"fmt::Write::write_fmt::Adapter<fmt::builders::PadAdapter>"*, i32)*, i8 (%"fmt::Write::write_fmt::Adapter<fmt::builders::PadAdapter>"*, %"fmt::Arguments"*)* } { void (%"fmt::Write::write_fmt::Adapter<fmt::builders::PadAdapter>"*)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"fmt::Write::write_fmt::Adapter<fmt::builders::PadAdapter>"*)*), i64 8, i64 8, i8 (%"fmt::Write::write_fmt::Adapter<fmt::builders::PadAdapter>"*, i8*, i64)* @"_ZN96_$LT$core..fmt..Write..write_fmt..Adapter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17hdeac0ae1127da5eeE", i8 (%"fmt::Write::write_fmt::Adapter<fmt::builders::PadAdapter>"*, i32)* @"_ZN96_$LT$core..fmt..Write..write_fmt..Adapter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..fmt..Write$GT$10write_char17ha5891a081a77519cE", i8 (%"fmt::Write::write_fmt::Adapter<fmt::builders::PadAdapter>"*, %"fmt::Arguments"*)* @"_ZN96_$LT$core..fmt..Write..write_fmt..Adapter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..fmt..Write$GT$9write_fmt17h57c7f221ef98dbbbE" }, align 8
@str.2O = internal constant [42 x i8] c"/shared/rust/master/src/libcore/fmt/mod.rs"
@panic_bounds_check_loc.2P = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.2O, i32 0, i32 0), i64 42 }, i32 990 }, align 8
@panic_bounds_check_loc.2Q = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.2O, i32 0, i32 0), i64 42 }, i32 1002 }, align 8
@str.2R = internal constant [64 x i8] c"0000000000000000000000000000000000000000000000000000000000000000"
@str.2S = internal constant [45 x i8] c"an error occurred when formatting an argument"
@str.2T = internal constant [4 x i8] c"true"
@str.2U = internal constant [5 x i8] c"false"
@str.2V = internal constant [2 x i8] c"()"
@str.2W = internal constant [11 x i8] c"PhantomData"
@ref.2X = internal unnamed_addr constant { { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 } } { { i8, i8 } { i8 0, i8 1 }, { i8, i8 } { i8 3, i8 5 }, { i8, i8 } { i8 5, i8 8 }, { i8, i8 } { i8 6, i8 3 }, { i8, i8 } { i8 7, i8 4 }, { i8, i8 } { i8 8, i8 7 }, { i8, i8 } { i8 9, i8 16 }, { i8, i8 } { i8 10, i8 27 }, { i8, i8 } { i8 11, i8 24 }, { i8, i8 } { i8 12, i8 22 }, { i8, i8 } { i8 13, i8 20 }, { i8, i8 } { i8 14, i8 22 }, { i8, i8 } { i8 15, i8 4 }, { i8, i8 } { i8 16, i8 3 }, { i8, i8 } { i8 18, i8 18 }, { i8, i8 } { i8 19, i8 9 }, { i8, i8 } { i8 22, i8 1 }, { i8, i8 } { i8 23, i8 5 }, { i8, i8 } { i8 24, i8 2 }, { i8, i8 } { i8 25, i8 3 }, { i8, i8 } { i8 26, i8 7 }, { i8, i8 } { i8 28, i8 1 }, { i8, i8 } { i8 31, i8 22 }, { i8, i8 } { i8 32, i8 3 }, { i8, i8 } { i8 35, i8 1 }, { i8, i8 } { i8 43, i8 5 }, { i8, i8 } { i8 44, i8 2 }, { i8, i8 } { i8 45, i8 11 }, { i8, i8 } { i8 46, i8 1 }, { i8, i8 } { i8 48, i8 3 }, { i8, i8 } { i8 49, i8 1 }, { i8, i8 } { i8 50, i8 2 }, { i8, i8 } { i8 -89, i8 1 }, { i8, i8 } { i8 -88, i8 2 }, { i8, i8 } { i8 -87, i8 2 }, { i8, i8 } { i8 -86, i8 4 }, { i8, i8 } { i8 -85, i8 8 }, { i8, i8 } { i8 -6, i8 2 }, { i8, i8 } { i8 -5, i8 5 }, { i8, i8 } { i8 -3, i8 4 }, { i8, i8 } { i8 -2, i8 3 }, { i8, i8 } { i8 -1, i8 9 } }, align 1
@ref.2Y = internal unnamed_addr constant [303 x i8] c"\ADxy\8B\8D\A20WX`\88\8B\8C\90\1C\1D\DD\0E\0FKL./?\5C]\B5\E2\84\8D\8E\91\92\A9\B1\BA\BB\C5\C6\C9\CA\DE\E4\E5\04\11\12)147:;=IJ]\84\8E\92\A9\B1\B4\BA\BB\C6\CA\CE\CF\E4\E5\04\0D\0E\11\12)14:;EFIJ^de\84\91\9B\9D\C9\CE\CF\04\0D\11)EIWde\84\8D\91\A9\B4\BA\BB\C5\C9\DF\E4\E5\F0\04\0D\11;<EIde\80\81\84\B2\BC\BE\BF\D5\D7\F0\F1\83\85\86\89\8B\8C\98\A0\A4\A6\A8\A9\AC\BA\BE\BF\C5\C7\CE\CF\DA\DBH\98\BD\CD\C6\CE\CFINOWY^_\89\8E\8F\B1\B6\B7\BF\C1\C6\C7\D7\11\16\17[\5C\F6\F7\FE\FF\80\0Dmq\DE\DF\0E\0F\1Fno\1C\1D_}~\AE\AF\F7\16\17\1E\1FFGNOXZ\5C^~\7F\B5\C5\D4\D5\DC\F0\F1\F5rs\8F\FFtu\96\97\C9/_&./\A7\AF\B7\BF\C7\CF\D7\DF\9A@\97\98\8F\1F\FF\AF\FE\FF\CE\FFNOZ[\07\08\0F\10'/\EE\EFno7=?BE\90\91\FE\FFSgu\C8\C9\D0\D1\D8\D9\E7\FE\FF", align 1
@ref.2Z = internal unnamed_addr constant [333 x i8] c"\00 _\22\82\DF\04\82D\08\1B\05\05\11\81\AC\0E;\05_A\1E\16\80\DF\03\19\08\01\04 \05\0A\044\04\07\03\01\07\06\07\10\0BP\0F\12\07\01\07M\08\02\04\1C\0A\09\03\08\03\07\03\02\03\03\03\0C\04\05\03\0B\06\01\0E\15\05:\03\11\07\06\05\10\08V\07\02\07\15\0EO\04C\03-\03\01\04\11\06\0F\0C:\04\1D%\0D\06L m\04j%\80\C8\05\82\B0\03\1A\06\82\FD\03Y\07\15\0B\17\09\14\0C\14\0Cj\06\0A\06\1A\06X\08+\05F\0A,\04\0C\04\01\031\0B,\04\1A\06\0B\03\80\AC\06\0A\06\1FAL\04-\03t\08<\03\0F\03<7\08\08*\06\80\F6\05\82\04\11\18\08/\11-\03\1F\11!\0F\80\8C\04\82\97\19\0B\15\87Z\03\15\1A\04\10\80\F4\05/\05;\07\02\0E\18\09\80\A5;t\0C\80\D6\1A\0C\05\80\FF\05)\03\80\8A\05$\0C\9B\C6\0A\D2\16*\84\8D\037\09\81\5C\14\80\B8\08\80\B8?5\04\0A\068\08F\08\0C\06t\0B\1E\03Z\04Y\09\80\83\18\1C\0A\16\09F\0A\80\8A\06\AB\A4\0C\17\041\A1\04\81\DA&\07\0C\05\05\80\A5\11\81m\10x(*\06L\04\80\8D\04\80\BE\03\1B\03\0F\0D", align 1
@ref.30 = internal unnamed_addr constant { { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 }, { i8, i8 } } { { i8, i8 } { i8 0, i8 6 }, { i8, i8 } { i8 1, i8 1 }, { i8, i8 } { i8 3, i8 1 }, { i8, i8 } { i8 4, i8 2 }, { i8, i8 } { i8 8, i8 8 }, { i8, i8 } { i8 9, i8 2 }, { i8, i8 } { i8 10, i8 3 }, { i8, i8 } { i8 11, i8 2 }, { i8, i8 } { i8 16, i8 1 }, { i8, i8 } { i8 17, i8 4 }, { i8, i8 } { i8 18, i8 5 }, { i8, i8 } { i8 19, i8 18 }, { i8, i8 } { i8 20, i8 2 }, { i8, i8 } { i8 21, i8 2 }, { i8, i8 } { i8 28, i8 5 }, { i8, i8 } { i8 36, i8 1 }, { i8, i8 } { i8 106, i8 3 }, { i8, i8 } { i8 107, i8 2 }, { i8, i8 } { i8 -68, i8 2 }, { i8, i8 } { i8 -47, i8 2 }, { i8, i8 } { i8 -44, i8 12 }, { i8, i8 } { i8 -43, i8 9 }, { i8, i8 } { i8 -42, i8 2 }, { i8, i8 } { i8 -41, i8 2 }, { i8, i8 } { i8 -38, i8 1 }, { i8, i8 } { i8 -32, i8 5 }, { i8, i8 } { i8 -24, i8 2 }, { i8, i8 } { i8 -18, i8 32 }, { i8, i8 } { i8 -16, i8 4 }, { i8, i8 } { i8 -15, i8 1 }, { i8, i8 } { i8 -7, i8 4 } }, align 1
@ref.31 = internal unnamed_addr constant [146 x i8] c"\0C';>NO\8F\9E\9E\9F\06\07\096=>V\F3\D0\D1\04\14\18VW\BD5\CE\CF\E0\12\87\89\8E\9E\04\0D\0E\11\12)14:;EFIJNOdeZ\5C\B6\B7\097\90\91\A8o_\EE\EFZb\9A\9B'(U\9D\A0\A1\A3\A4\A7\A8\AD\BA\BC\C4\06\0B\0C\15\1D:?EQ\A6\A7\CC\CD\A0\07\19\1A\22%\C5\C6\04 #%&(38:HJLPSUVXZ\5C^`cefksx}\7F\8A\A4\AA\AF\B0\C0\D0/\1F12?", align 1
@ref.32 = internal unnamed_addr constant [342 x i8] c"^\22{\05\03\04-\03e\04\01/.\80\82\1D\031\0F\1C\04$\0C\1B\05+\05D\04\0E*\80\AA\06$\04$\04(\084\0B\01\80\90\817\09\16\0A\08\80\989\03c\08\090\16\05!\03\1B\05\01@8\04K\05(\04\03\04\09\08\09\07@ '\04\0C\096\03:\05\1A\07\04\0C\07PI73\0D3\07\06\81`\1F\81\81N\04\1E\0FC\0E\19\07\0A\06D\0C'\09u\0B?A*\06;\05\0A\06Q\06\01\05\10\03\05\80\8B^\22H\08\0A\80\A6^\22E\0B\0A\06\0D\138\08\0A6\1A\03\0F\04\10\81`S\0C\01\81\C09\81\07F\0A\1D\03G\83I\83\9Afu\0B\80\C4\8A\BC\84/\8F\D1\82G\A1\B9\829\07*\04\02`&\0AF\0A(\05\13\83pE\0B/\10\11@\01\1F\97\ED\13\82\F3\A5\0D\02\8B\FEk\05\0D\03\09\07\10\93`\80\F6\0As\08n\17F\80\BAW\09\12\80\8E\81G\03\85B\0F\15\85P+\87\D5\80\D7)K\05\0A\04\02\84\A0<\06\01\04U\05\1B4\02\81\0E,\04d\0CV\0A\0D\03\5C\04=9\1D\0D,\04\09\07\02\80\AE\83\D3\0D\0D\03\07\09t\0CU+\0C\048\08\0A\06(\08\1Eb\18\08\1C\04\0F!\12.\01\86?", align 1
@str.33 = internal constant [7 x i8] c"Decoded"
@str.34 = internal constant [4 x i8] c"mant"
@vtable.35 = internal unnamed_addr constant { void (i64**)*, i64, i64, i8 (i64**, %"fmt::Formatter"*)* } { void (i64**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (i64**)*), i64 8, i64 8, i8 (i64**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h4bdf30265ff44dd6E" }, align 8
@str.36 = internal constant [5 x i8] c"minus"
@str.37 = internal constant [4 x i8] c"plus"
@str.38 = internal constant [3 x i8] c"exp"
@vtable.39 = internal unnamed_addr constant { void (i16**)*, i64, i64, i8 (i16**, %"fmt::Formatter"*)* } { void (i16**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (i16**)*), i64 8, i64 8, i8 (i16**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h6bbae556f9e5c027E" }, align 8
@str.3a = internal constant [9 x i8] c"inclusive"
@vtable.3b = internal unnamed_addr constant { void (i8**)*, i64, i64, i8 (i8**, %"fmt::Formatter"*)* } { void (i8**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (i8**)*), i64 8, i64 8, i8 (i8**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hb732de07cf15248aE" }, align 8
@str.3c = internal constant [6 x i8] c"Finite"
@vtable.3d = internal unnamed_addr constant { void (%"num::flt2dec::decoder::Decoded"**)*, i64, i64, i8 (%"num::flt2dec::decoder::Decoded"**, %"fmt::Formatter"*)* } { void (%"num::flt2dec::decoder::Decoded"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"num::flt2dec::decoder::Decoded"**)*), i64 8, i64 8, i8 (%"num::flt2dec::decoder::Decoded"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h657deb732b282cceE" }, align 8
@str.3e = internal constant [4 x i8] c"Zero"
@str.3f = internal constant [8 x i8] c"Infinite"
@str.3g = internal constant [3 x i8] c"Nan"
@str.3j = internal constant [28 x i8] c"assertion failed: d.mant > 0"
@_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17h4713a116f8a0c522E = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.3j, i32 0, i32 0), i64 28 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i64 62 }, i32 91, [4 x i8] undef }, align 8
@str.3k = internal constant [29 x i8] c"assertion failed: d.minus > 0"
@_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17h87dec07a13ba31adE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str.3k, i32 0, i32 0), i64 29 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i64 62 }, i32 92, [4 x i8] undef }, align 8
@str.3l = internal constant [28 x i8] c"assertion failed: d.plus > 0"
@_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17h173d4a1132a475f6E = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.3l, i32 0, i32 0), i64 28 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i64 62 }, i32 93, [4 x i8] undef }, align 8
@str.3m = internal constant [54 x i8] c"assertion failed: d.mant.checked_add(d.plus).is_some()"
@_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17hed9db6ec816630a5E = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([54 x i8], [54 x i8]* @str.3m, i32 0, i32 0), i64 54 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i64 62 }, i32 94, [4 x i8] undef }, align 8
@str.3n = internal constant [55 x i8] c"assertion failed: d.mant.checked_sub(d.minus).is_some()"
@_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17h65db9718b8ed2ebeE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([55 x i8], [55 x i8]* @str.3n, i32 0, i32 0), i64 55 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i64 62 }, i32 95, [4 x i8] undef }, align 8
@str.3o = internal constant [45 x i8] c"assertion failed: buf.len() >= MAX_SIG_DIGITS"
@_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17h931871e6d76be5cfE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.3o, i32 0, i32 0), i64 45 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i64 62 }, i32 96, [4 x i8] undef }, align 8
@_ZN4core3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE17ha445c8f94623a688E = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.3j, i32 0, i32 0), i64 28 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i64 62 }, i32 229, [4 x i8] undef }, align 8
@_ZN4core3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE17hc27d4d0aab357fbeE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str.3k, i32 0, i32 0), i64 29 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i64 62 }, i32 230, [4 x i8] undef }, align 8
@_ZN4core3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE17h776fea105bc781ffE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.3l, i32 0, i32 0), i64 28 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i64 62 }, i32 231, [4 x i8] undef }, align 8
@_ZN4core3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE17h143886f7836e23eaE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([54 x i8], [54 x i8]* @str.3m, i32 0, i32 0), i64 54 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i64 62 }, i32 232, [4 x i8] undef }, align 8
@_ZN4core3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE17h69216136c606a806E = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([55 x i8], [55 x i8]* @str.3n, i32 0, i32 0), i64 55 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i64 62 }, i32 233, [4 x i8] undef }, align 8
@_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17h080c88a7226b45d5E = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.3j, i32 0, i32 0), i64 28 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i64 61 }, i32 166, [4 x i8] undef }, align 8
@_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17hf33bde18075a3235E = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str.3k, i32 0, i32 0), i64 29 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i64 61 }, i32 167, [4 x i8] undef }, align 8
@_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17hc7d0a8da67eccedcE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.3l, i32 0, i32 0), i64 28 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i64 61 }, i32 168, [4 x i8] undef }, align 8
@_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17h8db95e0f4e90f938E = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([54 x i8], [54 x i8]* @str.3m, i32 0, i32 0), i64 54 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i64 61 }, i32 169, [4 x i8] undef }, align 8
@_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17h854b02c68656b31aE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([55 x i8], [55 x i8]* @str.3n, i32 0, i32 0), i64 55 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i64 61 }, i32 170, [4 x i8] undef }, align 8
@_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17h7fcf8694fb79431fE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.3o, i32 0, i32 0), i64 45 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i64 61 }, i32 171, [4 x i8] undef }, align 8
@str.3t = internal constant [45 x i8] c"assertion failed: d.mant + d.plus < (1 << 61)"
@_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17h31be4e43f7df40abE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.3t, i32 0, i32 0), i64 45 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i64 61 }, i32 172, [4 x i8] undef }, align 8
@str.3u = internal constant [45 x i8] c"assertion failed: `(left == right)`\0A left: `"
@str.3v = internal constant [12 x i8] c"`,\0A right: `"
@str.3w = internal constant [1 x i8] c"`"
@ref.3x = internal unnamed_addr constant [3 x %str_slice] [%str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.3u, i32 0, i32 0), i64 45 }, %str_slice { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @str.3v, i32 0, i32 0), i64 12 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str.3w, i32 0, i32 0), i64 1 }], align 8
@str.3z = internal constant [33 x i8] c"assertion failed: !buf.is_empty()"
@_ZN4core3num7flt2dec8strategy5grisu16format_exact_opt14_MSG_FILE_LINE17h6a93c40b8bf77ee9E = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.3j, i32 0, i32 0), i64 28 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i64 61 }, i32 444, [4 x i8] undef }, align 8
@str.3B = internal constant [36 x i8] c"assertion failed: d.mant < (1 << 61)"
@_ZN4core3num7flt2dec8strategy5grisu16format_exact_opt14_MSG_FILE_LINE17h38a127c36993cbbaE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([36 x i8], [36 x i8]* @str.3B, i32 0, i32 0), i64 36 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i64 61 }, i32 445, [4 x i8] undef }, align 8
@_ZN4core3num7flt2dec8strategy5grisu16format_exact_opt14_MSG_FILE_LINE17h2ad745e254868d40E = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str.3z, i32 0, i32 0), i64 33 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i64 61 }, i32 446, [4 x i8] undef }, align 8
@str.3E = internal constant [4 x i8] c"Copy"
@vtable.3F = internal unnamed_addr constant { void ({ i8*, i64 }**)*, i64, i64, i8 ({ i8*, i64 }**, %"fmt::Formatter"*)* } { void ({ i8*, i64 }**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void ({ i8*, i64 }**)*), i64 8, i64 8, i8 ({ i8*, i64 }**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17ha6def20ee6e42d15E" }, align 8
@str.3G = internal constant [3 x i8] c"Num"
@vtable.3H = internal unnamed_addr constant { void (i16**)*, i64, i64, i8 (i16**, %"fmt::Formatter"*)* } { void (i16**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (i16**)*), i64 8, i64 8, i8 (i16**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17heb232e5f0fbd9d34E" }, align 8
@vtable.3I = internal unnamed_addr constant { void (i64**)*, i64, i64, i8 (i64**, %"fmt::Formatter"*)* } { void (i64**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (i64**)*), i64 8, i64 8, i8 (i64**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h4bdf30265ff44dd6E" }, align 8
@_ZN4core3num7flt2dec17digits_to_dec_str14_MSG_FILE_LINE17he46ea409bfe52b3aE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str.3z, i32 0, i32 0), i64 33 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 271, [4 x i8] undef }, align 8
@str.3J = internal constant [31 x i8] c"assertion failed: buf[0] > b'0'"
@_ZN4core3num7flt2dec17digits_to_dec_str14_MSG_FILE_LINE17h969cf0460267ed13E = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @str.3J, i32 0, i32 0), i64 31 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 272, [4 x i8] undef }, align 8
@str.3K = internal constant [34 x i8] c"assertion failed: parts.len() >= 4"
@_ZN4core3num7flt2dec17digits_to_dec_str14_MSG_FILE_LINE17h6e3030c15e33ee38E = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str.3K, i32 0, i32 0), i64 34 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 273, [4 x i8] undef }, align 8
@_ZN4core3num7flt2dec17digits_to_exp_str14_MSG_FILE_LINE17hf370fda7da123c2fE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str.3z, i32 0, i32 0), i64 33 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 339, [4 x i8] undef }, align 8
@_ZN4core3num7flt2dec17digits_to_exp_str14_MSG_FILE_LINE17hfb09a232cc400edbE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @str.3J, i32 0, i32 0), i64 31 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 340, [4 x i8] undef }, align 8
@str.3L = internal constant [34 x i8] c"assertion failed: parts.len() >= 6"
@_ZN4core3num7flt2dec17digits_to_exp_str14_MSG_FILE_LINE17hc79c2089b42598faE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str.3L, i32 0, i32 0), i64 34 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 341, [4 x i8] undef }, align 8
@str.3M = internal constant [12 x i8] c"MinusPlusRaw"
@str.3N = internal constant [9 x i8] c"MinusPlus"
@str.3O = internal constant [8 x i8] c"MinusRaw"
@str.3P = internal constant [5 x i8] c"Minus"
@_ZN4core3num7flt2dec15to_shortest_str14_MSG_FILE_LINE17h5096ca8e5ed40ad6E = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str.3K, i32 0, i32 0), i64 34 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 419, [4 x i8] undef }, align 8
@_ZN4core3num7flt2dec15to_shortest_str14_MSG_FILE_LINE17haaf1eccf54b09a2dE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.3o, i32 0, i32 0), i64 45 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 420, [4 x i8] undef }, align 8
@_ZN4core3num7flt2dec19to_shortest_exp_str14_MSG_FILE_LINE17h826813bcb0d5f123E = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str.3L, i32 0, i32 0), i64 34 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 474, [4 x i8] undef }, align 8
@_ZN4core3num7flt2dec19to_shortest_exp_str14_MSG_FILE_LINE17he04330f05734d6a3E = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.3o, i32 0, i32 0), i64 45 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 475, [4 x i8] undef }, align 8
@str.3Q = internal constant [46 x i8] c"assertion failed: dec_bounds.0 <= dec_bounds.1"
@_ZN4core3num7flt2dec19to_shortest_exp_str14_MSG_FILE_LINE17h6eb5fccbf5bc459bE = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.3Q, i32 0, i32 0), i64 46 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 476, [4 x i8] undef }, align 8
@_ZN4core3num7flt2dec16to_exact_exp_str14_MSG_FILE_LINE17hbec2330270dd4675E = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str.3L, i32 0, i32 0), i64 34 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 553, [4 x i8] undef }, align 8
@str.3R = internal constant [29 x i8] c"assertion failed: ndigits > 0"
@_ZN4core3num7flt2dec16to_exact_exp_str14_MSG_FILE_LINE17h97af1e36f8180a1eE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str.3R, i32 0, i32 0), i64 29 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 554, [4 x i8] undef }, align 8
@str.3S = internal constant [61 x i8] c"assertion failed: buf.len() >= ndigits || buf.len() >= maxlen"
@_ZN4core3num7flt2dec16to_exact_exp_str14_MSG_FILE_LINE17ha34fd979713f8b08E = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.3S, i32 0, i32 0), i64 61 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 580, [4 x i8] undef }, align 8
@_ZN4core3num7flt2dec18to_exact_fixed_str14_MSG_FILE_LINE17ha76735831913512aE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str.3K, i32 0, i32 0), i64 34 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 609, [4 x i8] undef }, align 8
@str.3T = internal constant [37 x i8] c"assertion failed: buf.len() >= maxlen"
@_ZN4core3num7flt2dec18to_exact_fixed_str14_MSG_FILE_LINE17h392f407aad998bddE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([37 x i8], [37 x i8]* @str.3T, i32 0, i32 0), i64 37 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 634, [4 x i8] undef }, align 8
@_ZN4core3num7flt2dec18to_exact_fixed_str10_FILE_LINE17hdd7256564fc4a0e1E = local_unnamed_addr constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i64 50 }, i32 645, [4 x i8] undef }, align 8
@str.3U = internal constant [35 x i8] c"assertion failed: e >= table::MIN_E"
@_ZN4core3num7dec2flt9algorithm12power_of_ten14_MSG_FILE_LINE17h3b7d76c72389c0b3E = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str.3U, i32 0, i32 0), i64 35 }, %str_slice { i8* getelementptr inbounds ([56 x i8], [56 x i8]* @str.1p, i32 0, i32 0), i64 56 }, i32 27, [4 x i8] undef }, align 8
@str.3V = internal constant [25 x i8] c"assertion failed: *k == 0"
@_ZN4core3num7dec2flt9algorithm11quick_start14_MSG_FILE_LINE17hc910a4ebe920f950E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @str.3V, i32 0, i32 0), i64 25 }, %str_slice { i8* getelementptr inbounds ([56 x i8], [56 x i8]* @str.1p, i32 0, i32 0), i64 56 }, i32 353, [4 x i8] undef }, align 8
@str.3W = internal constant [37 x i8] c"assertion failed: x.bit_length() < 64"
@_ZN4core3num7dec2flt3num6to_u6414_MSG_FILE_LINE17hb1073597c7152aacE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([37 x i8], [37 x i8]* @str.3W, i32 0, i32 0), i64 37 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.1s, i32 0, i32 0), i64 50 }, i32 72, [4 x i8] undef }, align 8
@str.3X = internal constant [35 x i8] c"assertion failed: end - start <= 64"
@_ZN4core3num7dec2flt3num8get_bits14_MSG_FILE_LINE17h12c0a0414ee16166E = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str.3X, i32 0, i32 0), i64 35 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.1s, i32 0, i32 0), i64 50 }, i32 87, [4 x i8] undef }, align 8
@str.3Y = internal constant [8 x i8] c"Unpacked"
@str.3Z = internal constant [3 x i8] c"sig"
@str.40 = internal constant [1 x i8] c"k"
@str.41 = internal constant [29 x i8] c"f32::from_bits: too many bits"
@"_ZN59_$LT$f32$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$9from_bits14_MSG_FILE_LINE17h6e14a33d7f900e24E" = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str.41, i32 0, i32 0), i64 29 }, %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i64 52 }, i32 181, [4 x i8] undef }, align 8
@_ZN4core3num7dec2flt5rawfp11fp_to_float10_FILE_LINE17h3fe27c0cc55b2f47E = local_unnamed_addr constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i64 52 }, i32 258, [4 x i8] undef }, align 8
@str.44 = internal constant [22 x i8] c"fp_to_float: exponent "
@str.45 = internal constant [10 x i8] c" too large"
@ref.46 = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str.44, i32 0, i32 0), i64 22 }, %str_slice { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @str.45, i32 0, i32 0), i64 10 }], align 8
@_ZN4core3num7dec2flt5rawfp11fp_to_float10_FILE_LINE17hfe8b3431dba07e11E = local_unnamed_addr constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i64 52 }, i32 262, [4 x i8] undef }, align 8
@str.47 = internal constant [10 x i8] c" too small"
@ref.48 = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str.44, i32 0, i32 0), i64 22 }, %str_slice { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @str.47, i32 0, i32 0), i64 10 }], align 8
@_ZN4core3num7dec2flt5rawfp12round_normal10_FILE_LINE17h1b4b453317804d0aE = local_unnamed_addr constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i64 52 }, i32 272, [4 x i8] undef }, align 8
@str.49 = internal constant [41 x i8] c"encode_normal: significand not normalized"
@_ZN4core3num7dec2flt5rawfp13encode_normal14_MSG_FILE_LINE17hf258190d743d088cE = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str.49, i32 0, i32 0), i64 41 }, %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i64 52 }, i32 289, [4 x i8] undef }, align 8
@str.4a = internal constant [36 x i8] c"encode_normal: exponent out of range"
@_ZN4core3num7dec2flt5rawfp13encode_normal14_MSG_FILE_LINE17hc201253b8d55b39bE = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([36 x i8], [36 x i8]* @str.4a, i32 0, i32 0), i64 36 }, %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i64 52 }, i32 295, [4 x i8] undef }, align 8
@str.4b = internal constant [40 x i8] c"encode_subnormal: not actually subnormal"
@_ZN4core3num7dec2flt5rawfp16encode_subnormal14_MSG_FILE_LINE17h5927a103dd023a25E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([40 x i8], [40 x i8]* @str.4b, i32 0, i32 0), i64 40 }, %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i64 52 }, i32 304, [4 x i8] undef }, align 8
@str.4c = internal constant [38 x i8] c"big_to_fp: unexpectedly, input is zero"
@_ZN4core3num7dec2flt5rawfp9big_to_fp14_MSG_FILE_LINE17h57900dbf66d550ebE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([38 x i8], [38 x i8]* @str.4c, i32 0, i32 0), i64 38 }, %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i64 52 }, i32 312, [4 x i8] undef }, align 8
@str.4d = internal constant [32 x i8] c"prev_float: argument is infinite"
@_ZN4core3num7dec2flt5rawfp10prev_float14_MSG_FILE_LINE17h7e993a7e0a3ea383E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([32 x i8], [32 x i8]* @str.4d, i32 0, i32 0), i64 32 }, %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i64 52 }, i32 334, [4 x i8] undef }, align 8
@str.4e = internal constant [27 x i8] c"prev_float: argument is NaN"
@_ZN4core3num7dec2flt5rawfp10prev_float14_MSG_FILE_LINE17h43d06f9627151c97E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str.4e, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i64 52 }, i32 335, [4 x i8] undef }, align 8
@str.4f = internal constant [33 x i8] c"prev_float: argument is subnormal"
@_ZN4core3num7dec2flt5rawfp10prev_float14_MSG_FILE_LINE17h1f18f4b6fd253432E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str.4f, i32 0, i32 0), i64 33 }, %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i64 52 }, i32 336, [4 x i8] undef }, align 8
@str.4g = internal constant [28 x i8] c"prev_float: argument is zero"
@_ZN4core3num7dec2flt5rawfp10prev_float14_MSG_FILE_LINE17h2319560007a76335E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.4g, i32 0, i32 0), i64 28 }, %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i64 52 }, i32 337, [4 x i8] undef }, align 8
@str.4h = internal constant [27 x i8] c"next_float: argument is NaN"
@_ZN4core3num7dec2flt5rawfp10next_float14_MSG_FILE_LINE17hed5ce16be65a24e5E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str.4h, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i64 52 }, i32 355, [4 x i8] undef }, align 8
@str.4i = internal constant [8 x i8] c"Negative"
@str.4j = internal constant [8 x i8] c"Positive"
@str.4k = internal constant [7 x i8] c"Decimal"
@str.4l = internal constant [8 x i8] c"integral"
@str.4m = internal constant [10 x i8] c"fractional"
@vtable.4n = internal unnamed_addr constant { void (i64**)*, i64, i64, i8 (i64**, %"fmt::Formatter"*)* } { void (i64**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (i64**)*), i64 8, i64 8, i8 (i64**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h161ff95e27a9a039E" }, align 8
@str.4o = internal constant [7 x i8] c"Invalid"
@str.4p = internal constant [14 x i8] c"ShortcutToZero"
@str.4q = internal constant [13 x i8] c"ShortcutToInf"
@str.4r = internal constant [5 x i8] c"Valid"
@vtable.4s = internal unnamed_addr constant { void (%"num::dec2flt::parse::Decimal"**)*, i64, i64, i8 (%"num::dec2flt::parse::Decimal"**, %"fmt::Formatter"*)* } { void (%"num::dec2flt::parse::Decimal"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"num::dec2flt::parse::Decimal"**)*), i64 8, i64 8, i8 (%"num::dec2flt::parse::Decimal"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hf92adc236ccc2370E" }, align 8
@str.4t = internal constant [15 x i8] c"ParseFloatError"
@str.4u = internal constant [4 x i8] c"kind"
@vtable.4v = internal unnamed_addr constant { void (i8**)*, i64, i64, i8 (i8**, %"fmt::Formatter"*)* } { void (i8**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (i8**)*), i64 8, i64 8, i8 (i8**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h76ab494e8891b447E" }, align 8
@str.4w = internal constant [5 x i8] c"Empty"
@str.4x = internal constant [45 x i8] c"/shared/rust/master/src/libcore/num/bignum.rs"
@panic_loc.4y = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @str.d, i32 0, i32 0), i64 25 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i64 45 }, i32 90 }, align 8
@panic_bounds_check_loc.4B = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i64 45 }, i32 144 }, align 8
@panic_bounds_check_loc.4E = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i64 45 }, i32 166 }, align 8
@panic_bounds_check_loc.4F = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i64 45 }, i32 212 }, align 8
@panic_bounds_check_loc.4G = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i64 45 }, i32 226 }, align 8
@panic_bounds_check_loc.4I = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i64 45 }, i32 267 }, align 8
@panic_bounds_check_loc.4L = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i64 45 }, i32 288 }, align 8
@panic_bounds_check_loc.4M = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i64 45 }, i32 291 }, align 8
@panic_bounds_check_loc.4N = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i64 45 }, i32 300 }, align 8
@panic_bounds_check_loc.4O = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i64 45 }, i32 304 }, align 8
@str.4V = internal constant [26 x i8] c"assertion failed: noborrow"
@_ZN4core3num6bignum8Big32x403sub14_MSG_FILE_LINE17he6988b9083a66661E = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @str.4V, i32 0, i32 0), i64 26 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i64 45 }, i32 489, [4 x i8] undef }, align 8
@str.4W = internal constant [29 x i8] c"assertion failed: digits < 40"
@_ZN4core3num6bignum8Big32x408mul_pow214_MSG_FILE_LINE17h21fef40b035fe110E = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str.4W, i32 0, i32 0), i64 29 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i64 45 }, i32 489, [4 x i8] undef }, align 8
@str.4Z = internal constant [27 x i8] c"assertion failed: other > 0"
@_ZN4core3num6bignum8Big32x4013div_rem_small14_MSG_FILE_LINE17h0d7c916774a67670E = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str.4Z, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i64 45 }, i32 489, [4 x i8] undef }, align 8
@str.50 = internal constant [30 x i8] c"assertion failed: !d.is_zero()"
@_ZN4core3num6bignum8Big32x407div_rem14_MSG_FILE_LINE17he1f4607671fae315E = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str.50, i32 0, i32 0), i64 30 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i64 45 }, i32 489, [4 x i8] undef }, align 8
@ref.53 = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), i64 0 }], align 8
@ref.54 = internal unnamed_addr constant { { { i64, i64 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } } } { { { i64, i64 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } } { { i64, i64 } { i64 1, i64 0 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } { { i64, [8 x i8] } { i64 3, [8 x i8] undef }, { i64, [8 x i8] } { i64 3, [8 x i8] undef }, i32 32, i32 4, i8 3, [7 x i8] undef } } }, align 8
@str.55 = internal constant [1 x i8] c"_"
@ref.56 = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str.55, i32 0, i32 0), i64 1 }], align 8
@ref.57 = internal unnamed_addr constant { { { i64, i64 }, { { i64, [8 x i8] }, { i64, i64 }, i32, i32, i8, [7 x i8] } } } { { { i64, i64 }, { { i64, [8 x i8] }, { i64, i64 }, i32, i32, i8, [7 x i8] } } { { i64, i64 } { i64 1, i64 0 }, { { i64, [8 x i8] }, { i64, i64 }, i32, i32, i8, [7 x i8] } { { i64, [8 x i8] } { i64 3, [8 x i8] undef }, { i64, i64 } { i64 1, i64 1 }, i32 32, i32 8, i8 3, [7 x i8] undef } } }, align 8
@_ZN4core3num6bignum5tests6Big8x33sub14_MSG_FILE_LINE17h48e5680d1e0ce2dcE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @str.4V, i32 0, i32 0), i64 26 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i64 45 }, i32 494, [4 x i8] undef }, align 8
@str.58 = internal constant [28 x i8] c"assertion failed: digits < 3"
@_ZN4core3num6bignum5tests6Big8x38mul_pow214_MSG_FILE_LINE17hb1ec0ab15960ba11E = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.58, i32 0, i32 0), i64 28 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i64 45 }, i32 494, [4 x i8] undef }, align 8
@_ZN4core3num6bignum5tests6Big8x313div_rem_small14_MSG_FILE_LINE17hffa2f3f7c9afdb01E = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str.4Z, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i64 45 }, i32 494, [4 x i8] undef }, align 8
@_ZN4core3num6bignum5tests6Big8x37div_rem14_MSG_FILE_LINE17hf11819e499e1bc5cE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str.50, i32 0, i32 0), i64 30 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i64 45 }, i32 494, [4 x i8] undef }, align 8
@str.5b = internal constant [2 x i8] c"Fp"
@str.5c = internal constant [1 x i8] c"f"
@str.5f = internal constant [48 x i8] c"/shared/rust/master/src/libcore/num/diy_float.rs"
@str.5g = internal constant [29 x i8] c"assertion failed: edelta >= 0"
@_ZN4core3num9diy_float2Fp12normalize_to14_MSG_FILE_LINE17h2f2c83a59b92ffc4E = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str.5g, i32 0, i32 0), i64 29 }, %str_slice { i8* getelementptr inbounds ([48 x i8], [48 x i8]* @str.5f, i32 0, i32 0), i64 48 }, i32 84, [4 x i8] undef }, align 8
@_ZN4core3num9diy_float2Fp12normalize_to10_FILE_LINE17h8c3fc481ef3ad19aE = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([48 x i8], [48 x i8]* @str.5f, i32 0, i32 0), i64 48 }, i32 86, [4 x i8] undef }, align 8
@str.5h = internal constant [6 x i8] c"Normal"
@str.5i = internal constant [9 x i8] c"Subnormal"
@str.5j = internal constant [15 x i8] c"TryFromIntError"
@vtable.5k = internal unnamed_addr constant { void ({}**)*, i64, i64, i8 ({}**, %"fmt::Formatter"*)* } { void ({}**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void ({}**)*), i64 8, i64 8, i8 ({}**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17he67f40bed8c89031E" }, align 8
@_ZN4core3num14from_str_radix10_FILE_LINE17hfef39fd500266a2eE = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.1N, i32 0, i32 0), i64 42 }, i32 2610, [4 x i8] undef }, align 8
@str.5l = internal constant [13 x i8] c"ParseIntError"
@vtable.5m = internal unnamed_addr constant { void (i8**)*, i64, i64, i8 (i8**, %"fmt::Formatter"*)* } { void (i8**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (i8**)*), i64 8, i64 8, i8 (i8**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hd6adb8a2493b12f3E" }, align 8
@str.5n = internal constant [9 x i8] c"Underflow"
@str.5o = internal constant [8 x i8] c"Overflow"
@str.5p = internal constant [12 x i8] c"InvalidDigit"
@str.5t = internal constant [2 x i8] c".."
@ref.5u = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.5t, i32 0, i32 0), i64 2 }], align 8
@ref.5v = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.5t, i32 0, i32 0), i64 2 }], align 8
@str.5w = internal constant [3 x i8] c"..."
@ref.5x = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @str.5w, i32 0, i32 0), i64 3 }], align 8
@ref.5y = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @str.5w, i32 0, i32 0), i64 3 }], align 8
@str.5z = internal constant [7 x i8] c"Greater"
@str.5A = internal constant [5 x i8] c"Equal"
@str.5B = internal constant [4 x i8] c"Less"
@str.5C = internal constant [6 x i8] c"TypeId"
@str.5D = internal constant [1 x i8] c"t"
@str.5E = internal constant [15 x i8] c"__Nonexhaustive"
@str.5F = internal constant [6 x i8] c"SeqCst"
@str.5G = internal constant [6 x i8] c"AcqRel"
@str.5H = internal constant [7 x i8] c"Acquire"
@str.5I = internal constant [7 x i8] c"Release"
@str.5J = internal constant [7 x i8] c"Relaxed"
@str.5K = internal constant [8 x i8] c"AtomicI8"
@vtable.5L = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 (i8*, %"fmt::Formatter"*)* } { void (i8*)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (i8*)*), i64 1, i64 1, i8 (i8*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num49_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i8$GT$3fmt17h2bfbdd0d188efe02E" }, align 8
@str.5M = internal constant [8 x i8] c"AtomicU8"
@vtable.5N = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 (i8*, %"fmt::Formatter"*)* } { void (i8*)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (i8*)*), i64 1, i64 1, i8 (i8*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num49_$LT$impl$u20$core..fmt..Debug$u20$for$u20$u8$GT$3fmt17h4370df586593c087E" }, align 8
@str.5O = internal constant [9 x i8] c"AtomicI16"
@vtable.5P = internal unnamed_addr constant { void (i16*)*, i64, i64, i8 (i16*, %"fmt::Formatter"*)* } { void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E, i64 2, i64 2, i8 (i16*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i16$GT$3fmt17h2742f1416f63af41E" }, align 8
@str.5Q = internal constant [9 x i8] c"AtomicU16"
@vtable.5R = internal unnamed_addr constant { void (i16*)*, i64, i64, i8 (i16*, %"fmt::Formatter"*)* } { void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E, i64 2, i64 2, i8 (i16*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$u16$GT$3fmt17hdb2789ea036dba36E" }, align 8
@str.5S = internal constant [9 x i8] c"AtomicI32"
@vtable.5T = internal unnamed_addr constant { void (i32*)*, i64, i64, i8 (i32*, %"fmt::Formatter"*)* } { void (i32*)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (i32*)*), i64 4, i64 4, i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i32$GT$3fmt17h212cd4d67c96404eE" }, align 8
@str.5U = internal constant [9 x i8] c"AtomicU32"
@vtable.5V = internal unnamed_addr constant { void (i32*)*, i64, i64, i8 (i32*, %"fmt::Formatter"*)* } { void (i32*)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (i32*)*), i64 4, i64 4, i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$u32$GT$3fmt17he339318ef5176cc3E" }, align 8
@str.5W = internal constant [9 x i8] c"AtomicI64"
@vtable.5X = internal unnamed_addr constant { void (i64*)*, i64, i64, i8 (i64*, %"fmt::Formatter"*)* } { void (i64*)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (i64*)*), i64 8, i64 8, i8 (i64*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i64$GT$3fmt17h33e9259a09001024E" }, align 8
@str.5Y = internal constant [9 x i8] c"AtomicU64"
@vtable.5Z = internal unnamed_addr constant { void (i64*)*, i64, i64, i8 (i64*, %"fmt::Formatter"*)* } { void (i64*)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (i64*)*), i64 8, i64 8, i8 (i64*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$u64$GT$3fmt17he1c690d4ec32cdddE" }, align 8
@str.60 = internal constant [11 x i8] c"AtomicIsize"
@vtable.61 = internal unnamed_addr constant { void (i64*)*, i64, i64, i8 (i64*, %"fmt::Formatter"*)* } { void (i64*)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (i64*)*), i64 8, i64 8, i8 (i64*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$isize$GT$3fmt17h4a64b4a80414beacE" }, align 8
@str.62 = internal constant [11 x i8] c"AtomicUsize"
@str.63 = internal constant [42 x i8] c"there is no such thing as an acquire store"
@str.64 = internal constant [46 x i8] c"/shared/rust/master/src/libcore/sync/atomic.rs"
@_ZN4core4sync6atomic12atomic_store14_MSG_FILE_LINE17hf6c837b4243cfac2E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.63, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1431, [4 x i8] undef }, align 8
@str.65 = internal constant [50 x i8] c"there is no such thing as an acquire/release store"
@_ZN4core4sync6atomic12atomic_store14_MSG_FILE_LINE17h6a2c7362a438afabE = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.65, i32 0, i32 0), i64 50 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1432, [4 x i8] undef }, align 8
@str.66 = internal constant [23 x i8] c"invalid memory ordering"
@_ZN4core4sync6atomic12atomic_store14_MSG_FILE_LINE17hc9082311d91749fcE = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.66, i32 0, i32 0), i64 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1433, [4 x i8] undef }, align 8
@str.67 = internal constant [40 x i8] c"there is no such thing as a release load"
@_ZN4core4sync6atomic11atomic_load14_MSG_FILE_LINE17hc44a1b4e499bf459E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([40 x i8], [40 x i8]* @str.67, i32 0, i32 0), i64 40 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1443, [4 x i8] undef }, align 8
@str.68 = internal constant [49 x i8] c"there is no such thing as an acquire/release load"
@_ZN4core4sync6atomic11atomic_load14_MSG_FILE_LINE17hdbe8ddf5f268e871E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([49 x i8], [49 x i8]* @str.68, i32 0, i32 0), i64 49 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1444, [4 x i8] undef }, align 8
@_ZN4core4sync6atomic11atomic_load14_MSG_FILE_LINE17hc91b96cf491e182eE = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.66, i32 0, i32 0), i64 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1445, [4 x i8] undef }, align 8
@_ZN4core4sync6atomic11atomic_swap14_MSG_FILE_LINE17h32072eec963fcddcE = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.66, i32 0, i32 0), i64 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1457, [4 x i8] undef }, align 8
@_ZN4core4sync6atomic10atomic_add14_MSG_FILE_LINE17h6844b7b3b91bc8cfE = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.66, i32 0, i32 0), i64 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1470, [4 x i8] undef }, align 8
@_ZN4core4sync6atomic10atomic_sub14_MSG_FILE_LINE17hc076e3a6161edcc7E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.66, i32 0, i32 0), i64 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1483, [4 x i8] undef }, align 8
@_ZN4core4sync6atomic23atomic_compare_exchange14_MSG_FILE_LINE17hb65bba12636f3ec7E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.66, i32 0, i32 0), i64 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1504, [4 x i8] undef }, align 8
@_ZN4core4sync6atomic23atomic_compare_exchange14_MSG_FILE_LINE17h12f7db25de3dd184E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.66, i32 0, i32 0), i64 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1505, [4 x i8] undef }, align 8
@str.69 = internal constant [61 x i8] c"there is no such thing as an acquire/release failure ordering"
@_ZN4core4sync6atomic23atomic_compare_exchange14_MSG_FILE_LINE17h88127f1eae74449eE = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.69, i32 0, i32 0), i64 61 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1506, [4 x i8] undef }, align 8
@str.6a = internal constant [52 x i8] c"there is no such thing as a release failure ordering"
@_ZN4core4sync6atomic23atomic_compare_exchange14_MSG_FILE_LINE17h556c94ff527b0b2cE = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.6a, i32 0, i32 0), i64 52 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1507, [4 x i8] undef }, align 8
@str.6b = internal constant [60 x i8] c"a failure ordering can't be stronger than a success ordering"
@_ZN4core4sync6atomic23atomic_compare_exchange14_MSG_FILE_LINE17h90a938be048d4b1eE = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([60 x i8], [60 x i8]* @str.6b, i32 0, i32 0), i64 60 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1508, [4 x i8] undef }, align 8
@_ZN4core4sync6atomic28atomic_compare_exchange_weak14_MSG_FILE_LINE17hebd53539445295bcE = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.66, i32 0, i32 0), i64 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1530, [4 x i8] undef }, align 8
@_ZN4core4sync6atomic28atomic_compare_exchange_weak14_MSG_FILE_LINE17h1d247a1c77f66f01E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.66, i32 0, i32 0), i64 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1531, [4 x i8] undef }, align 8
@_ZN4core4sync6atomic28atomic_compare_exchange_weak14_MSG_FILE_LINE17h5967ab6f5e3dc6c7E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.69, i32 0, i32 0), i64 61 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1532, [4 x i8] undef }, align 8
@_ZN4core4sync6atomic28atomic_compare_exchange_weak14_MSG_FILE_LINE17ha53fe2747216868dE = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.6a, i32 0, i32 0), i64 52 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1533, [4 x i8] undef }, align 8
@_ZN4core4sync6atomic28atomic_compare_exchange_weak14_MSG_FILE_LINE17h2f31424eb174b44bE = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([60 x i8], [60 x i8]* @str.6b, i32 0, i32 0), i64 60 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1534, [4 x i8] undef }, align 8
@_ZN4core4sync6atomic10atomic_and14_MSG_FILE_LINE17h3eed471d57db119fE = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.66, i32 0, i32 0), i64 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1547, [4 x i8] undef }, align 8
@_ZN4core4sync6atomic9atomic_or14_MSG_FILE_LINE17hd0a143f372b7cc12E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.66, i32 0, i32 0), i64 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1559, [4 x i8] undef }, align 8
@_ZN4core4sync6atomic10atomic_xor14_MSG_FILE_LINE17h105a7705c4a52427E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.66, i32 0, i32 0), i64 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1571, [4 x i8] undef }, align 8
@str.6c = internal constant [41 x i8] c"there is no such thing as a relaxed fence"
@_ZN4core4sync6atomic5fence14_MSG_FILE_LINE17h06bda9d79d4c82a5E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str.6c, i32 0, i32 0), i64 41 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1660, [4 x i8] undef }, align 8
@_ZN4core4sync6atomic5fence14_MSG_FILE_LINE17hb3f82b648e8f31e8E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.66, i32 0, i32 0), i64 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1661, [4 x i8] undef }, align 8
@str.6d = internal constant [50 x i8] c"there is no such thing as a relaxed compiler fence"
@_ZN4core4sync6atomic14compiler_fence14_MSG_FILE_LINE17h5b760a8dcdf61950E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.6d, i32 0, i32 0), i64 50 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1701, [4 x i8] undef }, align 8
@_ZN4core4sync6atomic14compiler_fence14_MSG_FILE_LINE17hd5443d5ef3630205E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.66, i32 0, i32 0), i64 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.64, i32 0, i32 0), i64 46 }, i32 1702, [4 x i8] undef }, align 8
@str.6e = internal constant [45 x i8] c"assertion failed: self.borrow.get() == UNUSED"
@str.6f = internal constant [39 x i8] c"/shared/rust/master/src/libcore/cell.rs"
@"_ZN37_$LT$core..cell..RefCell$LT$T$GT$$GT$10into_inner14_MSG_FILE_LINE17h395a6e6a6a2bfc66E" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.6e, i32 0, i32 0), i64 45 }, %str_slice { i8* getelementptr inbounds ([39 x i8], [39 x i8]* @str.6f, i32 0, i32 0), i64 39 }, i32 543, [4 x i8] undef }, align 8
@str.6g = internal constant [55 x i8] c"assertion failed: borrow != WRITING && borrow != UNUSED"
@"_ZN77_$LT$core..cell..BorrowRef$LT$$u27$b$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop14_MSG_FILE_LINE17h7f41a74b890b10e6E" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([55 x i8], [55 x i8]* @str.6g, i32 0, i32 0), i64 55 }, %str_slice { i8* getelementptr inbounds ([39 x i8], [39 x i8]* @str.6f, i32 0, i32 0), i64 39 }, i32 855, [4 x i8] undef }, align 8
@str.6h = internal constant [34 x i8] c"assertion failed: borrow != UNUSED"
@"_ZN74_$LT$core..cell..BorrowRef$LT$$u27$b$GT$$u20$as$u20$core..clone..Clone$GT$5clone14_MSG_FILE_LINE17h45710bd02e7cd955E" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str.6h, i32 0, i32 0), i64 34 }, %str_slice { i8* getelementptr inbounds ([39 x i8], [39 x i8]* @str.6f, i32 0, i32 0), i64 39 }, i32 866, [4 x i8] undef }, align 8
@str.6i = internal constant [35 x i8] c"assertion failed: borrow != WRITING"
@"_ZN74_$LT$core..cell..BorrowRef$LT$$u27$b$GT$$u20$as$u20$core..clone..Clone$GT$5clone14_MSG_FILE_LINE17he4b6648a91a03f62E" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str.6i, i32 0, i32 0), i64 35 }, %str_slice { i8* getelementptr inbounds ([39 x i8], [39 x i8]* @str.6f, i32 0, i32 0), i64 39 }, i32 868, [4 x i8] undef }, align 8
@str.6j = internal constant [35 x i8] c"assertion failed: borrow == WRITING"
@"_ZN80_$LT$core..cell..BorrowRefMut$LT$$u27$b$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop14_MSG_FILE_LINE17h00ad7a5efcbed2a2E" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str.6j, i32 0, i32 0), i64 35 }, %str_slice { i8* getelementptr inbounds ([39 x i8], [39 x i8]* @str.6f, i32 0, i32 0), i64 39 }, i32 996, [4 x i8] undef }, align 8
@str.6k = internal constant [14 x i8] c"ParseCharError"
@vtable.6l = internal unnamed_addr constant { void (i8**)*, i64, i64, i8 (i8**, %"fmt::Formatter"*)* } { void (i8**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (i8**)*), i64 8, i64 8, i8 (i8**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h78520a0883bad7a0E" }, align 8
@str.6m = internal constant [12 x i8] c"TooManyChars"
@str.6n = internal constant [11 x i8] c"EmptyString"
@str.6o = internal constant [16 x i8] c"CharTryFromError"
@str.6p = internal constant [42 x i8] c"from_digit: radix is too high (maximum 36)"
@str.6q = internal constant [39 x i8] c"/shared/rust/master/src/libcore/char.rs"
@_ZN4core4char10from_digit14_MSG_FILE_LINE17h9a4668dbc5fcb3bbE = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.6p, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([39 x i8], [39 x i8]* @str.6q, i32 0, i32 0), i64 39 }, i32 352, [4 x i8] undef }, align 8
@str.6r = internal constant [40 x i8] c"to_digit: radix is too high (maximum 36)"
@"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he73e9f4f7105b3e4E" = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([40 x i8], [40 x i8]* @str.6r, i32 0, i32 0), i64 40 }, %str_slice { i8* getelementptr inbounds ([39 x i8], [39 x i8]* @str.6q, i32 0, i32 0), i64 39 }, i32 404, [4 x i8] undef }, align 8
@"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$11encode_utf810_FILE_LINE17h71e84d9715eef285E" = constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([39 x i8], [39 x i8]* @str.6q, i32 0, i32 0), i64 39 }, i32 504, [4 x i8] undef }, align 8
@str.6s = internal constant [18 x i8] c"encode_utf8: need "
@str.6t = internal constant [19 x i8] c" bytes to encode U+"
@str.6u = internal constant [21 x i8] c", but the buffer has "
@ref.6v = internal unnamed_addr constant [3 x %str_slice] [%str_slice { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @str.6s, i32 0, i32 0), i64 18 }, %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str.6t, i32 0, i32 0), i64 19 }, %str_slice { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @str.6u, i32 0, i32 0), i64 21 }], align 8
@"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$12encode_utf1610_FILE_LINE17he82e80065e1dade4E" = local_unnamed_addr constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([39 x i8], [39 x i8]* @str.6q, i32 0, i32 0), i64 39 }, i32 528, [4 x i8] undef }, align 8
@str.6w = internal constant [19 x i8] c"encode_utf16: need "
@str.6x = internal constant [19 x i8] c" units to encode U+"
@ref.6y = internal unnamed_addr constant [3 x %str_slice] [%str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str.6w, i32 0, i32 0), i64 19 }, %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str.6x, i32 0, i32 0), i64 19 }, %str_slice { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @str.6u, i32 0, i32 0), i64 21 }], align 8
@str.6z = internal constant [13 x i8] c"EscapeUnicode"
@str.6A = internal constant [1 x i8] c"c"
@str.6B = internal constant [5 x i8] c"state"
@vtable.6C = internal unnamed_addr constant { void (i8**)*, i64, i64, i8 (i8**, %"fmt::Formatter"*)* } { void (i8**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (i8**)*), i64 8, i64 8, i8 (i8**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hfba214a2c3123f7aE" }, align 8
@str.6D = internal constant [13 x i8] c"hex_digit_idx"
@str.6E = internal constant [9 x i8] c"Backslash"
@str.6F = internal constant [4 x i8] c"Type"
@str.6G = internal constant [9 x i8] c"LeftBrace"
@str.6H = internal constant [5 x i8] c"Value"
@str.6I = internal constant [10 x i8] c"RightBrace"
@str.6J = internal constant [4 x i8] c"Done"
@str.6K = internal constant [13 x i8] c"EscapeDefault"
@vtable.6L = internal unnamed_addr constant { void (%"char::EscapeDefaultState"**)*, i64, i64, i8 (%"char::EscapeDefaultState"**, %"fmt::Formatter"*)* } { void (%"char::EscapeDefaultState"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"char::EscapeDefaultState"**)*), i64 8, i64 8, i8 (%"char::EscapeDefaultState"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17he8750558182b51bbE" }, align 8
@str.6M = internal constant [7 x i8] c"Unicode"
@vtable.6N = internal unnamed_addr constant { void (%"char::EscapeUnicode"**)*, i64, i64, i8 (%"char::EscapeUnicode"**, %"fmt::Formatter"*)* } { void (%"char::EscapeUnicode"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"char::EscapeUnicode"**)*), i64 8, i64 8, i8 (%"char::EscapeUnicode"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hfa79eba6b34f0f02E" }, align 8
@str.6O = internal constant [4 x i8] c"Char"
@str.6P = internal constant [11 x i8] c"EscapeDebug"
@vtable.6Q = internal unnamed_addr constant { void (%"char::EscapeDefault"**)*, i64, i64, i8 (%"char::EscapeDefault"**, %"fmt::Formatter"*)* } { void (%"char::EscapeDefault"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"char::EscapeDefault"**)*), i64 8, i64 8, i8 (%"char::EscapeDefault"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h6a149e07f46b6c3cE" }, align 8
@str.6R = internal constant [15 x i8] c"InvalidSequence"
@str.6S = internal constant [32 x i8] c"index out of bounds: the len is "
@str.6T = internal constant [18 x i8] c" but the index is "
@ref.6U = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([32 x i8], [32 x i8]* @str.6S, i32 0, i32 0), i64 32 }, %str_slice { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @str.6T, i32 0, i32 0), i64 18 }], align 8
@str.6V = internal constant [27 x i8] c"assertion failed: step != 0"
@str.6W = internal constant [48 x i8] c"/shared/rust/master/src/libcore/iter/iterator.rs"
@_ZN4core4iter8iterator8Iterator7step_by14_MSG_FILE_LINE17h16c37d0d35935dcbE = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str.6V, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([48 x i8], [48 x i8]* @str.6W, i32 0, i32 0), i64 48 }, i32 291, [4 x i8] undef }, align 8
@str.6X = internal constant [46 x i8] c"/shared/rust/master/src/libcore/iter/traits.rs"
@_ZN4core4iter6traits17ExactSizeIterator3len10_FILE_LINE17hf11b2f78f7798ae3E = constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.6X, i32 0, i32 0), i64 46 }, i32 584, [4 x i8] undef }, align 8
@str.6Y = internal constant [6 x i8] c"Cloned"
@str.6Z = internal constant [2 x i8] c"it"
@vtable.70 = internal unnamed_addr constant { void (%"slice::Iter<u8>"**)*, i64, i64, i8 (%"slice::Iter<u8>"**, %"fmt::Formatter"*)* } { void (%"slice::Iter<u8>"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"slice::Iter<u8>"**)*), i64 8, i64 8, i8 (%"slice::Iter<u8>"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h822b33e27b7e9f37E" }, align 8
@str.71 = internal constant [4 x i8] c"Back"
@str.72 = internal constant [5 x i8] c"Front"
@str.73 = internal constant [4 x i8] c"Both"
@str.74 = internal constant [40 x i8] c"internal error: entered unreachable code"
@str.75 = internal constant [43 x i8] c"/shared/rust/master/src/libcore/iter/mod.rs"
@"_ZN91_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..ZipImpl$LT$A$C$$u20$B$GT$$GT$9next_back14_MSG_FILE_LINE17hb26bdf3aa1b7c3c7E" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([40 x i8], [40 x i8]* @str.74, i32 0, i32 0), i64 40 }, %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str.75, i32 0, i32 0), i64 43 }, i32 875, [4 x i8] undef }, align 8
@"_ZN38_$LT$core..iter..Peekable$LT$I$GT$$GT$4peek14_MSG_FILE_LINE17h88cfbf1d04e948e8E" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([40 x i8], [40 x i8]* @str.74, i32 0, i32 0), i64 40 }, %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str.75, i32 0, i32 0), i64 43 }, i32 1520, [4 x i8] undef }, align 8
@str.76 = internal constant [4 x i8] c"Some"
@str.77 = internal constant [4 x i8] c"None"
@str.78 = internal constant [43 x i8] c"called `Option::unwrap()` on a `None` value"
@str.79 = internal constant [41 x i8] c"/shared/rust/master/src/libcore/option.rs"
@"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap14_MSG_FILE_LINE17h402d80e0681eef01E" = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str.78, i32 0, i32 0), i64 43 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str.79, i32 0, i32 0), i64 41 }, i32 335, [4 x i8] undef }, align 8
@"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$13get_or_insert14_MSG_FILE_LINE17h2c52c517b6554913E" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([40 x i8], [40 x i8]* @str.74, i32 0, i32 0), i64 40 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str.79, i32 0, i32 0), i64 41 }, i32 697, [4 x i8] undef }, align 8
@"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$18get_or_insert_with14_MSG_FILE_LINE17h99646474600d090dE" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([40 x i8], [40 x i8]* @str.74, i32 0, i32 0), i64 40 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str.79, i32 0, i32 0), i64 41 }, i32 732, [4 x i8] undef }, align 8
@_ZN4core6option13expect_failed10_FILE_LINE17hd4c8588abb736764E = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str.79, i32 0, i32 0), i64 41 }, i32 823, [4 x i8] undef }, align 8
@str.7a = internal constant [41 x i8] c"/shared/rust/master/src/libcore/result.rs"
@_ZN4core6result13unwrap_failed10_FILE_LINE17h88a900456e4e3d4eE = local_unnamed_addr constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str.7a, i32 0, i32 0), i64 41 }, i32 860, [4 x i8] undef }, align 8
@str.7b = internal constant [2 x i8] c": "
@ref.7c = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.7b, i32 0, i32 0), i64 2 }], align 8
@str.7d = internal constant [41 x i8] c"assertion failed: mem::size_of::<T>() > 0"
@str.7e = internal constant [45 x i8] c"/shared/rust/master/src/libcore/slice/sort.rs"
@_ZN4core5slice4sort19partition_in_blocks5width14_MSG_FILE_LINE17h8fbe8421624ee15eE = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str.7d, i32 0, i32 0), i64 41 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.7e, i32 0, i32 0), i64 45 }, i32 243, [4 x i8] undef }, align 8
@str.7f = internal constant [54 x i8] c"assertion failed: block_l <= BLOCK && block_r <= BLOCK"
@_ZN4core5slice4sort19partition_in_blocks14_MSG_FILE_LINE17hf76c00693c97d991E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([54 x i8], [54 x i8]* @str.7f, i32 0, i32 0), i64 54 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.7e, i32 0, i32 0), i64 45 }, i32 269, [4 x i8] undef }, align 8
@str.7g = internal constant [50 x i8] c"assertion failed: width(l, r) == block_l + block_r"
@_ZN4core5slice4sort19partition_in_blocks14_MSG_FILE_LINE17hf6f8c1b391de4c6eE = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.7g, i32 0, i32 0), i64 50 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.7e, i32 0, i32 0), i64 45 }, i32 270, [4 x i8] undef }, align 8
@_ZN4core5slice4sort19partition_in_blocks10_FILE_LINE17h64fcdb78a7d47aebE = local_unnamed_addr constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.7e, i32 0, i32 0), i64 45 }, i32 355, [4 x i8] undef }, align 8
@_ZN4core5slice4sort19partition_in_blocks10_FILE_LINE17h61abb95e370beaa3E = local_unnamed_addr constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.7e, i32 0, i32 0), i64 45 }, i32 367, [4 x i8] undef }, align 8
@str.7h = internal constant [27 x i8] c"assertion failed: size != 0"
@"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$7windows14_MSG_FILE_LINE17h6c14a0feb7411512E" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str.7h, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i64 44 }, i32 341, [4 x i8] undef }, align 8
@"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$6chunks14_MSG_FILE_LINE17haabb1cb939d11c55E" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str.7h, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i64 44 }, i32 347, [4 x i8] undef }, align 8
@str.7i = internal constant [28 x i8] c"assertion failed: mid <= len"
@"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$12split_at_mut14_MSG_FILE_LINE17h085b0e7d15f1f66dE" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.7i, i32 0, i32 0), i64 28 }, %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i64 44 }, i32 433, [4 x i8] undef }, align 8
@str.7j = internal constant [32 x i8] c"assertion failed: chunk_size > 0"
@"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$10chunks_mut14_MSG_FILE_LINE17hbff3bcc21a3f7c17E" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([32 x i8], [32 x i8]* @str.7j, i32 0, i32 0), i64 32 }, %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i64 44 }, i32 528, [4 x i8] undef }, align 8
@str.7k = internal constant [35 x i8] c"assertion failed: mid <= self.len()"
@"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$6rotate14_MSG_FILE_LINE17h00f4689612ef33ccE" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str.7k, i32 0, i32 0), i64 35 }, %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i64 44 }, i32 643, [4 x i8] undef }, align 8
@str.7l = internal constant [52 x i8] c"destination and source slices have different lengths"
@"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$16clone_from_slice14_MSG_FILE_LINE17h57fcbe2ebd0fa5feE" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.7l, i32 0, i32 0), i64 52 }, %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i64 44 }, i32 654, [4 x i8] undef }, align 8
@"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$15copy_from_slice14_MSG_FILE_LINE17h7abb920734f53c48E" = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.7l, i32 0, i32 0), i64 52 }, %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i64 44 }, i32 668, [4 x i8] undef }, align 8
@_ZN4core5slice20slice_index_len_fail10_FILE_LINE17hb90ee0655d771c92E = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i64 44 }, i32 735, [4 x i8] undef }, align 8
@str.7m = internal constant [6 x i8] c"index "
@str.7n = internal constant [34 x i8] c" out of range for slice of length "
@ref.7o = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str.7m, i32 0, i32 0), i64 6 }, %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str.7n, i32 0, i32 0), i64 34 }], align 8
@_ZN4core5slice22slice_index_order_fail10_FILE_LINE17hbf6f627fef3216d9E = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i64 44 }, i32 741, [4 x i8] undef }, align 8
@str.7p = internal constant [22 x i8] c"slice index starts at "
@str.7q = internal constant [13 x i8] c" but ends at "
@ref.7r = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str.7p, i32 0, i32 0), i64 22 }, %str_slice { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @str.7q, i32 0, i32 0), i64 13 }], align 8
@str.7s = internal constant [44 x i8] c"attempted to index slice up to maximum usize"
@"_ZN108_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index14_MSG_FILE_LINE17hf9b50f8500760d88E" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.7s, i32 0, i32 0), i64 44 }, %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i64 44 }, i32 1020, [4 x i8] undef }, align 8
@"_ZN108_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut14_MSG_FILE_LINE17h1f3407d346bed9e7E" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.7s, i32 0, i32 0), i64 44 }, %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i64 44 }, i32 1027, [4 x i8] undef }, align 8
@str.7t = internal constant [6 x i8] c"Reject"
@str.7u = internal constant [5 x i8] c"Match"
@str.7v = internal constant [14 x i8] c"CharEqSearcher"
@str.7w = internal constant [7 x i8] c"char_eq"
@vtable.7x = internal unnamed_addr constant { void ({ i32*, i64 }**)*, i64, i64, i8 ({ i32*, i64 }**, %"fmt::Formatter"*)* } { void ({ i32*, i64 }**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void ({ i32*, i64 }**)*), i64 8, i64 8, i8 ({ i32*, i64 }**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h4c3150676a467a93E" }, align 8
@str.7y = internal constant [8 x i8] c"haystack"
@vtable.7z = internal unnamed_addr constant { void (%str_slice**)*, i64, i64, i8 (%str_slice**, %"fmt::Formatter"*)* } { void (%str_slice**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%str_slice**)*), i64 8, i64 8, i8 (%str_slice**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h7fdbd35c8364fd0bE" }, align 8
@str.7A = internal constant [12 x i8] c"char_indices"
@vtable.7B = internal unnamed_addr constant { void (%"str::CharIndices"**)*, i64, i64, i8 (%"str::CharIndices"**, %"fmt::Formatter"*)* } { void (%"str::CharIndices"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"str::CharIndices"**)*), i64 8, i64 8, i8 (%"str::CharIndices"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h55c41a6f7e073656E" }, align 8
@str.7C = internal constant [10 x i8] c"ascii_only"
@str.7D = internal constant [12 x i8] c"CharSearcher"
@vtable.7E = internal unnamed_addr constant { void (%"str::pattern::CharEqSearcher<char>"**)*, i64, i64, i8 (%"str::pattern::CharEqSearcher<char>"**, %"fmt::Formatter"*)* } { void (%"str::pattern::CharEqSearcher<char>"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"str::pattern::CharEqSearcher<char>"**)*), i64 8, i64 8, i8 (%"str::pattern::CharEqSearcher<char>"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h98701cec2edb7464E" }, align 8
@str.7F = internal constant [17 x i8] c"CharSliceSearcher"
@vtable.7G = internal unnamed_addr constant { void (%"str::pattern::CharEqSearcher<&[char]>"**)*, i64, i64, i8 (%"str::pattern::CharEqSearcher<&[char]>"**, %"fmt::Formatter"*)* } { void (%"str::pattern::CharEqSearcher<&[char]>"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"str::pattern::CharEqSearcher<&[char]>"**)*), i64 8, i64 8, i8 (%"str::pattern::CharEqSearcher<&[char]>"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h5b3b5211ab00c9deE" }, align 8
@str.7H = internal constant [11 x i8] c"StrSearcher"
@str.7I = internal constant [6 x i8] c"needle"
@str.7J = internal constant [8 x i8] c"searcher"
@vtable.7K = internal unnamed_addr constant { void (%"str::pattern::StrSearcherImpl"**)*, i64, i64, i8 (%"str::pattern::StrSearcherImpl"**, %"fmt::Formatter"*)* } { void (%"str::pattern::StrSearcherImpl"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"str::pattern::StrSearcherImpl"**)*), i64 8, i64 8, i8 (%"str::pattern::StrSearcherImpl"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hc1892d82b21bed30E" }, align 8
@str.7L = internal constant [6 x i8] c"TwoWay"
@vtable.7M = internal unnamed_addr constant { void (%"str::pattern::TwoWaySearcher"**)*, i64, i64, i8 (%"str::pattern::TwoWaySearcher"**, %"fmt::Formatter"*)* } { void (%"str::pattern::TwoWaySearcher"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"str::pattern::TwoWaySearcher"**)*), i64 8, i64 8, i8 (%"str::pattern::TwoWaySearcher"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17ha5fb590e70fb58abE" }, align 8
@vtable.7N = internal unnamed_addr constant { void (%"str::pattern::EmptyNeedle"**)*, i64, i64, i8 (%"str::pattern::EmptyNeedle"**, %"fmt::Formatter"*)* } { void (%"str::pattern::EmptyNeedle"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"str::pattern::EmptyNeedle"**)*), i64 8, i64 8, i8 (%"str::pattern::EmptyNeedle"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hb7f51678b518730eE" }, align 8
@str.7O = internal constant [11 x i8] c"EmptyNeedle"
@str.7P = internal constant [8 x i8] c"position"
@str.7Q = internal constant [11 x i8] c"is_match_fw"
@str.7R = internal constant [11 x i8] c"is_match_bw"
@str.7S = internal constant [14 x i8] c"TwoWaySearcher"
@str.7T = internal constant [8 x i8] c"crit_pos"
@str.7U = internal constant [13 x i8] c"crit_pos_back"
@str.7V = internal constant [6 x i8] c"period"
@str.7W = internal constant [7 x i8] c"byteset"
@str.7X = internal constant [6 x i8] c"memory"
@str.7Y = internal constant [11 x i8] c"memory_back"
@str.81 = internal constant [14 x i8] c"ParseBoolError"
@str.82 = internal constant [5 x i8] c"_priv"
@str.83 = internal constant [9 x i8] c"Utf8Error"
@str.84 = internal constant [11 x i8] c"valid_up_to"
@str.85 = internal constant [9 x i8] c"error_len"
@vtable.86 = internal unnamed_addr constant { void (%"option::Option<u8>"**)*, i64, i64, i8 (%"option::Option<u8>"**, %"fmt::Formatter"*)* } { void (%"option::Option<u8>"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"option::Option<u8>"**)*), i64 8, i64 8, i8 (%"option::Option<u8>"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h60bf1bb448d5a0caE" }, align 8
@str.87 = internal constant [26 x i8] c"invalid utf-8 sequence of "
@str.88 = internal constant [18 x i8] c" bytes from index "
@ref.89 = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @str.87, i32 0, i32 0), i64 26 }, %str_slice { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @str.88, i32 0, i32 0), i64 18 }], align 8
@str.8a = internal constant [42 x i8] c"incomplete utf-8 byte sequence from index "
@ref.8b = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.8a, i32 0, i32 0), i64 42 }], align 8
@str.8c = internal constant [5 x i8] c"Chars"
@str.8d = internal constant [11 x i8] c"CharIndices"
@str.8e = internal constant [12 x i8] c"front_offset"
@vtable.8f = internal unnamed_addr constant { void (%"str::Chars"**)*, i64, i64, i8 (%"str::Chars"**, %"fmt::Formatter"*)* } { void (%"str::Chars"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"str::Chars"**)*), i64 8, i64 8, i8 (%"str::Chars"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h9f2c6f6b2377c3aeE" }, align 8
@str.8g = internal constant [5 x i8] c"Bytes"
@vtable.8h = internal unnamed_addr constant { void (%"iter::Cloned<slice::Iter<u8>>"**)*, i64, i64, i8 (%"iter::Cloned<slice::Iter<u8>>"**, %"fmt::Formatter"*)* } { void (%"iter::Cloned<slice::Iter<u8>>"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"iter::Cloned<slice::Iter<u8>>"**)*), i64 8, i64 8, i8 (%"iter::Cloned<slice::Iter<u8>>"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h884ca84fdc053a26E" }, align 8
@str.8i = internal constant [15 x i8] c"SplitTerminator"
@vtable.8j = internal unnamed_addr constant { void (%"str::SplitInternal<char>"*)*, i64, i64, i8 (%"str::SplitInternal<char>"*, %"fmt::Formatter"*)* } { void (%"str::SplitInternal<char>"*)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"str::SplitInternal<char>"*)*), i64 72, i64 8, i8 (%"str::SplitInternal<char>"*, %"fmt::Formatter"*)* @"_ZN84_$LT$core..str..SplitInternal$LT$$u27$a$C$$u20$P$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17h4560cf4af081110eE" }, align 8
@str.8k = internal constant [5 x i8] c"Lines"
@vtable.8l = internal unnamed_addr constant { void (%"iter::Map<str::SplitTerminator<char>, str::LinesAnyMap>"**)*, i64, i64, i8 (%"iter::Map<str::SplitTerminator<char>, str::LinesAnyMap>"**, %"fmt::Formatter"*)* } { void (%"iter::Map<str::SplitTerminator<char>, str::LinesAnyMap>"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"iter::Map<str::SplitTerminator<char>, str::LinesAnyMap>"**)*), i64 8, i64 8, i8 (%"iter::Map<str::SplitTerminator<char>, str::LinesAnyMap>"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h88dc73b0849dc38eE" }, align 8
@str.8m = internal constant [8 x i8] c"LinesAny"
@vtable.8n = internal unnamed_addr constant { void (%"str::Lines"**)*, i64, i64, i8 (%"str::Lines"**, %"fmt::Formatter"*)* } { void (%"str::Lines"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"str::Lines"**)*), i64 8, i64 8, i8 (%"str::Lines"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h24ffa3d4cecb8192E" }, align 8
@str.8o = internal constant [42 x i8] c"attempted to index str up to maximum usize"
@"_ZN4core3str6traits110_$LT$impl$u20$core..slice..SliceIndex$LT$str$GT$$u20$for$u20$core..ops..range..RangeInclusive$LT$usize$GT$$GT$5index14_MSG_FILE_LINE17h5000a3e47eac2a32E" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.8o, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.2r, i32 0, i32 0), i64 42 }, i32 1945, [4 x i8] undef }, align 8
@"_ZN4core3str6traits110_$LT$impl$u20$core..slice..SliceIndex$LT$str$GT$$u20$for$u20$core..ops..range..RangeInclusive$LT$usize$GT$$GT$9index_mut14_MSG_FILE_LINE17ha847ba167cc150aeE" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.8o, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.2r, i32 0, i32 0), i64 42 }, i32 1951, [4 x i8] undef }, align 8
@"_ZN4core3str6traits112_$LT$impl$u20$core..slice..SliceIndex$LT$str$GT$$u20$for$u20$core..ops..range..RangeToInclusive$LT$usize$GT$$GT$5index14_MSG_FILE_LINE17h3c13c87439aa05fcE" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.8o, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.2r, i32 0, i32 0), i64 42 }, i32 1990, [4 x i8] undef }, align 8
@"_ZN4core3str6traits112_$LT$impl$u20$core..slice..SliceIndex$LT$str$GT$$u20$for$u20$core..ops..range..RangeToInclusive$LT$usize$GT$$GT$9index_mut14_MSG_FILE_LINE17h0a16149b156bed1cE" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.8o, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.2r, i32 0, i32 0), i64 42 }, i32 1997, [4 x i8] undef }, align 8
@_ZN4core3str16slice_error_fail10_FILE_LINE17hf305793037ab0a35E = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.2r, i32 0, i32 0), i64 42 }, i32 2133, [4 x i8] undef }, align 8
@str.8p = internal constant [11 x i8] c"byte index "
@str.8q = internal constant [22 x i8] c" is out of bounds of `"
@ref.8r = internal unnamed_addr constant [3 x %str_slice] [%str_slice { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @str.8p, i32 0, i32 0), i64 11 }, %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str.8q, i32 0, i32 0), i64 22 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str.3w, i32 0, i32 0), i64 1 }], align 8
@_ZN4core3str16slice_error_fail10_FILE_LINE17h6fd1bc5d8912608aE = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.2r, i32 0, i32 0), i64 42 }, i32 2137, [4 x i8] undef }, align 8
@str.8s = internal constant [14 x i8] c"begin <= end ("
@str.8t = internal constant [4 x i8] c" <= "
@str.8u = internal constant [16 x i8] c") when slicing `"
@ref.8v = internal unnamed_addr constant [4 x %str_slice] [%str_slice { i8* getelementptr inbounds ([14 x i8], [14 x i8]* @str.8s, i32 0, i32 0), i64 14 }, %str_slice { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str.8t, i32 0, i32 0), i64 4 }, %str_slice { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @str.8u, i32 0, i32 0), i64 16 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str.3w, i32 0, i32 0), i64 1 }], align 8
@_ZN4core3str16slice_error_fail10_FILE_LINE17h5bdf793b758e73efE = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.2r, i32 0, i32 0), i64 42 }, i32 2150, [4 x i8] undef }, align 8
@str.8w = internal constant [38 x i8] c" is not a char boundary; it is inside "
@str.8x = internal constant [8 x i8] c" (bytes "
@str.8y = internal constant [6 x i8] c") of `"
@ref.8z = internal unnamed_addr constant [5 x %str_slice] [%str_slice { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @str.8p, i32 0, i32 0), i64 11 }, %str_slice { i8* getelementptr inbounds ([38 x i8], [38 x i8]* @str.8w, i32 0, i32 0), i64 38 }, %str_slice { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @str.8x, i32 0, i32 0), i64 8 }, %str_slice { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str.8y, i32 0, i32 0), i64 6 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str.3w, i32 0, i32 0), i64 1 }], align 8
@str.8A = internal constant [11 x i8] c"SipHasher13"
@str.8B = internal constant [6 x i8] c"hasher"
@vtable.8C = internal unnamed_addr constant { void (%"hash::sip::Hasher<hash::sip::Sip13Rounds>"**)*, i64, i64, i8 (%"hash::sip::Hasher<hash::sip::Sip13Rounds>"**, %"fmt::Formatter"*)* } { void (%"hash::sip::Hasher<hash::sip::Sip13Rounds>"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"hash::sip::Hasher<hash::sip::Sip13Rounds>"**)*), i64 8, i64 8, i8 (%"hash::sip::Hasher<hash::sip::Sip13Rounds>"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hf711729a92005386E" }, align 8
@str.8D = internal constant [11 x i8] c"SipHasher24"
@vtable.8E = internal unnamed_addr constant { void (%"hash::sip::Hasher<hash::sip::Sip24Rounds>"**)*, i64, i64, i8 (%"hash::sip::Hasher<hash::sip::Sip24Rounds>"**, %"fmt::Formatter"*)* } { void (%"hash::sip::Hasher<hash::sip::Sip24Rounds>"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"hash::sip::Hasher<hash::sip::Sip24Rounds>"**)*), i64 8, i64 8, i8 (%"hash::sip::Hasher<hash::sip::Sip24Rounds>"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17he1c47d6df5780c3eE" }, align 8
@str.8F = internal constant [9 x i8] c"SipHasher"
@vtable.8G = internal unnamed_addr constant { void (%"hash::sip::SipHasher24"**)*, i64, i64, i8 (%"hash::sip::SipHasher24"**, %"fmt::Formatter"*)* } { void (%"hash::sip::SipHasher24"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"hash::sip::SipHasher24"**)*), i64 8, i64 8, i8 (%"hash::sip::SipHasher24"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h53268e22c5180771E" }, align 8
@str.8H = internal constant [6 x i8] c"Hasher"
@str.8I = internal constant [2 x i8] c"k0"
@str.8J = internal constant [2 x i8] c"k1"
@str.8K = internal constant [6 x i8] c"length"
@vtable.8L = internal unnamed_addr constant { void (%"hash::sip::State"**)*, i64, i64, i8 (%"hash::sip::State"**, %"fmt::Formatter"*)* } { void (%"hash::sip::State"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"hash::sip::State"**)*), i64 8, i64 8, i8 (%"hash::sip::State"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h997a960fbb4451e5E" }, align 8
@str.8M = internal constant [4 x i8] c"tail"
@str.8N = internal constant [5 x i8] c"ntail"
@str.8O = internal constant [7 x i8] c"_marker"
@vtable.8P = internal unnamed_addr constant { void (%"marker::PhantomData<hash::sip::Sip13Rounds>"**)*, i64, i64, i8 (%"marker::PhantomData<hash::sip::Sip13Rounds>"**, %"fmt::Formatter"*)* } { void (%"marker::PhantomData<hash::sip::Sip13Rounds>"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"marker::PhantomData<hash::sip::Sip13Rounds>"**)*), i64 8, i64 8, i8 (%"marker::PhantomData<hash::sip::Sip13Rounds>"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h55707701ac16bd71E" }, align 8
@vtable.8Q = internal unnamed_addr constant { void (%"marker::PhantomData<hash::sip::Sip24Rounds>"**)*, i64, i64, i8 (%"marker::PhantomData<hash::sip::Sip24Rounds>"**, %"fmt::Formatter"*)* } { void (%"marker::PhantomData<hash::sip::Sip24Rounds>"**)* bitcast (void (i16*)* @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E to void (%"marker::PhantomData<hash::sip::Sip24Rounds>"**)*), i64 8, i64 8, i8 (%"marker::PhantomData<hash::sip::Sip24Rounds>"**, %"fmt::Formatter"*)* bitcast (i8 (%"marker::PhantomData<hash::sip::Sip13Rounds>"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h55707701ac16bd71E" to i8 (%"marker::PhantomData<hash::sip::Sip24Rounds>"**, %"fmt::Formatter"*)*) }, align 8
@str.8R = internal constant [5 x i8] c"State"
@str.8S = internal constant [2 x i8] c"v0"
@str.8T = internal constant [2 x i8] c"v2"
@str.8U = internal constant [2 x i8] c"v1"
@str.8V = internal constant [2 x i8] c"v3"
@str.8W = internal constant [25 x i8] c"assertion failed: len < 8"
@str.8X = internal constant [43 x i8] c"/shared/rust/master/src/libcore/hash/sip.rs"
@_ZN4core4hash3sip9u8to64_le14_MSG_FILE_LINE17hdd8080e0546df4baE = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @str.8W, i32 0, i32 0), i64 25 }, %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str.8X, i32 0, i32 0), i64 43 }, i32 123, [4 x i8] undef }, align 8
@str.8Y = internal constant [64 x i8] c"assertion failed: start + i + mem::size_of::<u32>() <= buf.len()"
@_ZN4core4hash3sip9u8to64_le14_MSG_FILE_LINE17hdbdfc36b3ec0de84E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([64 x i8], [64 x i8]* @str.8Y, i32 0, i32 0), i64 64 }, %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str.8X, i32 0, i32 0), i64 43 }, i32 127, [4 x i8] undef }, align 8
@str.8Z = internal constant [64 x i8] c"assertion failed: start + i + mem::size_of::<u16>() <= buf.len()"
@_ZN4core4hash3sip9u8to64_le14_MSG_FILE_LINE17h598fa45372700385E = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([64 x i8], [64 x i8]* @str.8Z, i32 0, i32 0), i64 64 }, %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str.8X, i32 0, i32 0), i64 43 }, i32 131, [4 x i8] undef }, align 8
@_ZN4core4hash3sip9u8to64_le10_FILE_LINE17h619270cc6fec8807E = local_unnamed_addr constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str.8X, i32 0, i32 0), i64 43 }, i32 138, [4 x i8] undef }, align 8
@str.90 = internal constant [32 x i8] c"assertion failed: msg.len() <= 8"
@"_ZN41_$LT$core..hash..sip..Hasher$LT$S$GT$$GT$11short_write14_MSG_FILE_LINE17hcbd552f64a5fb560E" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([32 x i8], [32 x i8]* @str.90, i32 0, i32 0), i64 32 }, %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str.8X, i32 0, i32 0), i64 43 }, i32 244, [4 x i8] undef }, align 8
@str.91 = internal constant [56 x i8] c"assertion failed: 0 + mem::size_of::<u64>() <= msg.len()"
@"_ZN41_$LT$core..hash..sip..Hasher$LT$S$GT$$GT$11short_write14_MSG_FILE_LINE17h4522e0ed9768f94aE" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([56 x i8], [56 x i8]* @str.91, i32 0, i32 0), i64 56 }, %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str.8X, i32 0, i32 0), i64 43 }, i32 251, [4 x i8] undef }, align 8
@str.92 = internal constant [56 x i8] c"assertion failed: i + mem::size_of::<u64>() <= msg.len()"
@"_ZN71_$LT$core..hash..sip..Hasher$LT$S$GT$$u20$as$u20$core..hash..Hasher$GT$5write14_MSG_FILE_LINE17h9727da43b74a6103E" = local_unnamed_addr constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([56 x i8], [56 x i8]* @str.92, i32 0, i32 0), i64 56 }, %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str.8X, i32 0, i32 0), i64 43 }, i32 351, [4 x i8] undef }, align 8
@str.93 = internal constant [11 x i8] c"Sip13Rounds"
@str.94 = internal constant [11 x i8] c"Sip24Rounds"
@str.95 = internal constant [2 x i8] c"0b"
@str.96 = internal constant [42 x i8] c"/shared/rust/master/src/libcore/fmt/num.rs"
@"_ZN71_$LT$core..fmt..num..Binary$u20$as$u20$core..fmt..num..GenericRadix$GT$5digit10_FILE_LINE17h8e896371157946f9E" = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.96, i32 0, i32 0), i64 42 }, i32 138, [4 x i8] undef }, align 8
@str.97 = internal constant [27 x i8] c"number not in the range 0.."
@ref.98 = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str.97, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.7b, i32 0, i32 0), i64 2 }], align 8
@str.99 = internal constant [2 x i8] c"0o"
@"_ZN70_$LT$core..fmt..num..Octal$u20$as$u20$core..fmt..num..GenericRadix$GT$5digit10_FILE_LINE17hbca8d72dd64cd74cE" = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.96, i32 0, i32 0), i64 42 }, i32 139, [4 x i8] undef }, align 8
@"_ZN72_$LT$core..fmt..num..Decimal$u20$as$u20$core..fmt..num..GenericRadix$GT$5digit10_FILE_LINE17h829a9f4f164c7e19E" = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.96, i32 0, i32 0), i64 42 }, i32 140, [4 x i8] undef }, align 8
@str.9a = internal constant [2 x i8] c"0x"
@"_ZN73_$LT$core..fmt..num..LowerHex$u20$as$u20$core..fmt..num..GenericRadix$GT$5digit10_FILE_LINE17h14402f06f1c37da4E" = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.96, i32 0, i32 0), i64 42 }, i32 141, [4 x i8] undef }, align 8
@"_ZN73_$LT$core..fmt..num..UpperHex$u20$as$u20$core..fmt..num..GenericRadix$GT$5digit10_FILE_LINE17h922454657ec966f3E" = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.96, i32 0, i32 0), i64 42 }, i32 143, [4 x i8] undef }, align 8
@byte_str.9b = internal unnamed_addr constant [200 x i8] c"00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899", align 1
@ref.9h = internal unnamed_addr constant [3 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str.2G, i32 0, i32 0), i64 1 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.7b, i32 0, i32 0), i64 2 }], align 8
@ref.9i = internal unnamed_addr constant { { { i64, i64 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } }, { { i64, i64 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } }, { { i64, i64 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } } } { { { i64, i64 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } } { { i64, i64 } { i64 1, i64 0 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } { { i64, [8 x i8] } { i64 3, [8 x i8] undef }, { i64, [8 x i8] } { i64 3, [8 x i8] undef }, i32 32, i32 0, i8 3, [7 x i8] undef } }, { { i64, i64 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } } { { i64, i64 } { i64 1, i64 1 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } { { i64, [8 x i8] } { i64 3, [8 x i8] undef }, { i64, [8 x i8] } { i64 3, [8 x i8] undef }, i32 32, i32 0, i8 3, [7 x i8] undef } }, { { i64, i64 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } } { { i64, i64 } { i64 1, i64 2 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } { { i64, [8 x i8] } { i64 3, [8 x i8] undef }, { i64, [8 x i8] } { i64 3, [8 x i8] undef }, i32 32, i32 4, i8 3, [7 x i8] undef } } }, align 8
@ref.9j = internal unnamed_addr constant [3 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str.2E, i32 0, i32 0), i64 1 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.7b, i32 0, i32 0), i64 2 }], align 8
@ref.9k = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str.2G, i32 0, i32 0), i64 1 }], align 8
@ref.9l = internal unnamed_addr constant { { { i64, i64 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } }, { { i64, i64 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } } } { { { i64, i64 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } } { { i64, i64 } { i64 1, i64 0 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } { { i64, [8 x i8] } { i64 3, [8 x i8] undef }, { i64, [8 x i8] } { i64 3, [8 x i8] undef }, i32 32, i32 0, i8 3, [7 x i8] undef } }, { { i64, i64 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } } { { i64, i64 } { i64 1, i64 1 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } { { i64, [8 x i8] } { i64 3, [8 x i8] undef }, { i64, [8 x i8] } { i64 3, [8 x i8] undef }, i32 32, i32 4, i8 3, [7 x i8] undef } } }, align 8
@ref.9m = internal unnamed_addr constant [3 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), i64 0 }], align 8
@ref.9n = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), i64 0 }], align 8
@str.9o = internal constant [1 x i8] c"{"
@ref.9p = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str.9o, i32 0, i32 0), i64 1 }], align 8
@str.9q = internal constant [1 x i8] c"["
@ref.9r = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str.9q, i32 0, i32 0), i64 1 }], align 8
@ref.9s = internal unnamed_addr constant { { { i64, i64 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } }, { { i64, i64 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } }, { { i64, i64 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } } } { { { i64, i64 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } } { { i64, i64 } { i64 1, i64 0 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } { { i64, [8 x i8] } { i64 3, [8 x i8] undef }, { i64, [8 x i8] } { i64 3, [8 x i8] undef }, i32 32, i32 0, i8 3, [7 x i8] undef } }, { { i64, i64 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } } { { i64, i64 } { i64 1, i64 1 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } { { i64, [8 x i8] } { i64 3, [8 x i8] undef }, { i64, [8 x i8] } { i64 3, [8 x i8] undef }, i32 32, i32 4, i8 3, [7 x i8] undef } }, { { i64, i64 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } } { { i64, i64 } { i64 1, i64 2 }, { { i64, [8 x i8] }, { i64, [8 x i8] }, i32, i32, i8, [7 x i8] } { { i64, [8 x i8] } { i64 3, [8 x i8] undef }, { i64, [8 x i8] } { i64 3, [8 x i8] undef }, i32 32, i32 4, i8 3, [7 x i8] undef } } }, align 8
@ref.9t = internal unnamed_addr constant [3 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.7b, i32 0, i32 0), i64 2 }], align 8
@ref.9u = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str.2J, i32 0, i32 0), i64 1 }], align 8
@str.9v = internal constant [7 x i8] c"Unknown"
@str.9w = internal constant [6 x i8] c"Center"
@str.9x = internal constant [5 x i8] c"Right"
@str.9y = internal constant [4 x i8] c"Left"
@str.9z = internal constant [5 x i8] c"Error"
@str.9A = internal constant [60 x i8] c"from_str_radix_int: must lie in the range `[2, 36]` - found "
@ref.9B = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([60 x i8], [60 x i8]* @str.9A, i32 0, i32 0), i64 60 }], align 8
@switch.table = private unnamed_addr constant [3 x i8*] [i8* getelementptr inbounds ([38 x i8], [38 x i8]* @str.1S, i32 0, i32 0), i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str.1R, i32 0, i32 0), i8* getelementptr inbounds ([38 x i8], [38 x i8]* @str.1Q, i32 0, i32 0)]
@switch.table.1 = private unnamed_addr constant [3 x i64] [i64 38, i64 29, i64 38]
@switch.table.2 = private unnamed_addr constant [8 x i64] [i64 4, i64 5, i64 5, i64 5, i64 0, i64 1, i64 2, i64 3]
; Function Attrs: norecurse nounwind readnone uwtable
define i8 @"_ZN4core3f3250_$LT$impl$u20$core..num..Float$u20$for$u20$f32$GT$8classify17h4b79793eb1dcb7cdE"(float) unnamed_addr #0 {
start:
%1 = bitcast float %0 to i32
%2 = and i32 %1, 8388607
%cond = icmp eq i32 %2, 0
%3 = and i32 %1, 2147483647
%4 = icmp eq i32 %3, 0
br i1 %4, label %bb10, label %bb8
bb6: ; preds = %bb8
br label %bb10
bb8: ; preds = %start
%5 = and i32 %1, 2139095040
%trunc = trunc i32 %5 to i31
switch i31 %trunc, label %bb6 [
i31 0, label %bb10
i31 -8388608, label %bb9
]
bb9: ; preds = %bb8
%. = zext i1 %cond to i8
br label %bb10
bb10: ; preds = %bb9, %start, %bb8, %bb6
%_0.0 = phi i8 [ 4, %bb6 ], [ 3, %bb8 ], [ 2, %start ], [ %., %bb9 ]
ret i8 %_0.0
}
; Function Attrs: norecurse nounwind readnone uwtable
define i8 @"_ZN4core3f6450_$LT$impl$u20$core..num..Float$u20$for$u20$f64$GT$8classify17h993fe7798d3f1859E"(double) unnamed_addr #0 {
start:
%1 = bitcast double %0 to i64
%2 = and i64 %1, 4503599627370495
%cond = icmp eq i64 %2, 0
%3 = and i64 %1, 9223372036854775807
%4 = icmp eq i64 %3, 0
br i1 %4, label %bb10, label %bb8
bb6: ; preds = %bb8
br label %bb10
bb8: ; preds = %start
%5 = and i64 %1, 9218868437227405312
%trunc = trunc i64 %5 to i63
switch i63 %trunc, label %bb6 [
i63 0, label %bb10
i63 -4503599627370496, label %bb9
]
bb9: ; preds = %bb8
%. = zext i1 %cond to i8
br label %bb10
bb10: ; preds = %bb9, %start, %bb8, %bb6
%_0.0 = phi i8 [ 4, %bb6 ], [ 3, %bb8 ], [ 2, %start ], [ %., %bb9 ]
ret i8 %_0.0
}
; Function Attrs: nounwind readnone uwtable
define i16 @_ZN4core3num7flt2dec9estimator23estimate_scaling_factor17hfa067c7b342a3906E(i64, i16) unnamed_addr #1 {
start:
%2 = add i64 %0, -1
%3 = tail call i64 @llvm.ctlz.i64(i64 %2, i1 false) #16
%4 = sub nsw i64 64, %3
%5 = sext i16 %1 to i64
%6 = add nsw i64 %4, %5
%7 = mul nsw i64 %6, 1292913986
%8 = lshr i64 %7, 32
%9 = trunc i64 %8 to i16
ret i16 %9
}
; Function Attrs: norecurse nounwind readnone uwtable
define float @"_ZN67_$LT$f32$u20$as$u20$core..num..flt2dec..decoder..DecodableFloat$GT$18min_pos_norm_value17h2f6d5d61d1f07c32E"() unnamed_addr #0 {
start:
ret float 0x3810000000000000
}
; Function Attrs: norecurse nounwind readnone uwtable
define double @"_ZN67_$LT$f64$u20$as$u20$core..num..flt2dec..decoder..DecodableFloat$GT$18min_pos_norm_value17h7a567eacd9476009E"() unnamed_addr #0 {
start:
ret double 0x10000000000000
}
; Function Attrs: uwtable
define nonnull dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num7flt2dec8strategy6dragon9mul_pow1017hb60ad3477bd5a2b3E(%"num::bignum::Big32x40"* returned dereferenceable(168), i64) unnamed_addr #2 {
start:
%2 = and i64 %1, 7
%3 = icmp eq i64 %2, 0
br i1 %3, label %bb5, label %bb1
bb1: ; preds = %start
%4 = getelementptr inbounds [10 x i32], [10 x i32]* @_ZN4core3num7flt2dec8strategy6dragon5POW1017hf0327ccee16c45aeE, i64 0, i64 %2
%5 = load i32, i32* %4, align 4
%6 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i64 0, i32 0
%7 = load i64, i64* %6, align 8
%8 = icmp ugt i64 %7, 40
br i1 %8, label %bb4.i.i.i.i, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i"
bb4.i.i.i.i: ; preds = %bb1
tail call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %7, i64 40), !noalias !0
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i": ; preds = %bb1
%9 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i64 0, i32 2, i64 %7
%10 = icmp eq i64 %7, 0
br i1 %10, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit, label %bb6.lr.ph.i
bb6.lr.ph.i: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i"
%11 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i64 0, i32 2, i64 0
%12 = zext i32 %5 to i64
%13 = shl i64 %7, 2
%14 = add i64 %13, -4
%15 = lshr exact i64 %14, 2
%16 = add nuw nsw i64 %15, 1
%xtraiter20 = and i64 %16, 3
%lcmp.mod21 = icmp eq i64 %xtraiter20, 0
br i1 %lcmp.mod21, label %bb6.i.prol.loopexit, label %bb6.i.prol.preheader
bb6.i.prol.preheader: ; preds = %bb6.lr.ph.i
br label %bb6.i.prol
bb6.i.prol: ; preds = %bb6.i.prol, %bb6.i.prol.preheader
%carry.020.i.prol = phi i64 [ 0, %bb6.i.prol.preheader ], [ %22, %bb6.i.prol ]
%iter.sroa.0.019.i.prol = phi i32* [ %11, %bb6.i.prol.preheader ], [ %17, %bb6.i.prol ]
%prol.iter22 = phi i64 [ %xtraiter20, %bb6.i.prol.preheader ], [ %prol.iter22.sub, %bb6.i.prol ]
%17 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i.prol, i64 1
%18 = load i32, i32* %iter.sroa.0.019.i.prol, align 4
%19 = zext i32 %18 to i64
%20 = mul nuw i64 %19, %12
%21 = add i64 %20, %carry.020.i.prol
%22 = lshr i64 %21, 32
%abi_cast.sroa.4.0.extract.trunc.i.prol = trunc i64 %21 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i.prol, i32* %iter.sroa.0.019.i.prol, align 4
%prol.iter22.sub = add i64 %prol.iter22, -1
%prol.iter22.cmp = icmp eq i64 %prol.iter22.sub, 0
br i1 %prol.iter22.cmp, label %bb6.i.prol.loopexit.unr-lcssa, label %bb6.i.prol, !llvm.loop !3
bb6.i.prol.loopexit.unr-lcssa: ; preds = %bb6.i.prol
br label %bb6.i.prol.loopexit
bb6.i.prol.loopexit: ; preds = %bb6.lr.ph.i, %bb6.i.prol.loopexit.unr-lcssa
%.lcssa19.unr = phi i64 [ undef, %bb6.lr.ph.i ], [ %22, %bb6.i.prol.loopexit.unr-lcssa ]
%carry.020.i.unr = phi i64 [ 0, %bb6.lr.ph.i ], [ %22, %bb6.i.prol.loopexit.unr-lcssa ]
%iter.sroa.0.019.i.unr = phi i32* [ %11, %bb6.lr.ph.i ], [ %17, %bb6.i.prol.loopexit.unr-lcssa ]
%23 = icmp ult i64 %14, 12
br i1 %23, label %bb5.i, label %bb6.lr.ph.i.new
bb6.lr.ph.i.new: ; preds = %bb6.i.prol.loopexit
br label %bb6.i
bb5.i.unr-lcssa: ; preds = %bb6.i
br label %bb5.i
bb5.i: ; preds = %bb6.i.prol.loopexit, %bb5.i.unr-lcssa
%.lcssa19 = phi i64 [ %.lcssa19.unr, %bb6.i.prol.loopexit ], [ %48, %bb5.i.unr-lcssa ]
%abi_cast.sroa.0.0.extract.trunc.i = trunc i64 %.lcssa19 to i32
%24 = icmp eq i32 %abi_cast.sroa.0.0.extract.trunc.i, 0
br i1 %24, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit, label %bb8.i
bb6.i: ; preds = %bb6.i, %bb6.lr.ph.i.new
%carry.020.i = phi i64 [ %carry.020.i.unr, %bb6.lr.ph.i.new ], [ %48, %bb6.i ]
%iter.sroa.0.019.i = phi i32* [ %iter.sroa.0.019.i.unr, %bb6.lr.ph.i.new ], [ %43, %bb6.i ]
%25 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i, i64 1
%26 = load i32, i32* %iter.sroa.0.019.i, align 4
%27 = zext i32 %26 to i64
%28 = mul nuw i64 %27, %12
%29 = add i64 %28, %carry.020.i
%30 = lshr i64 %29, 32
%abi_cast.sroa.4.0.extract.trunc.i = trunc i64 %29 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i, i32* %iter.sroa.0.019.i, align 4
%31 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i, i64 2
%32 = load i32, i32* %25, align 4
%33 = zext i32 %32 to i64
%34 = mul nuw i64 %33, %12
%35 = add i64 %34, %30
%36 = lshr i64 %35, 32
%abi_cast.sroa.4.0.extract.trunc.i.1 = trunc i64 %35 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i.1, i32* %25, align 4
%37 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i, i64 3
%38 = load i32, i32* %31, align 4
%39 = zext i32 %38 to i64
%40 = mul nuw i64 %39, %12
%41 = add i64 %40, %36
%42 = lshr i64 %41, 32
%abi_cast.sroa.4.0.extract.trunc.i.2 = trunc i64 %41 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i.2, i32* %31, align 4
%43 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i, i64 4
%44 = load i32, i32* %37, align 4
%45 = zext i32 %44 to i64
%46 = mul nuw i64 %45, %12
%47 = add i64 %46, %42
%48 = lshr i64 %47, 32
%abi_cast.sroa.4.0.extract.trunc.i.3 = trunc i64 %47 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i.3, i32* %37, align 4
%49 = icmp eq i32* %43, %9
br i1 %49, label %bb5.i.unr-lcssa, label %bb6.i
bb8.i: ; preds = %bb5.i
%50 = icmp ult i64 %7, 40
br i1 %50, label %bb10.i, label %panic.i, !prof !5
bb10.i: ; preds = %bb8.i
store i32 %abi_cast.sroa.0.0.extract.trunc.i, i32* %9, align 4
%51 = add i64 %7, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit
panic.i: ; preds = %bb8.i
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %7, i64 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i", %bb5.i, %bb10.i
%sz.0.i = phi i64 [ %51, %bb10.i ], [ %7, %bb5.i ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i" ]
store i64 %sz.0.i, i64* %6, align 8
br label %bb5
bb5: ; preds = %start, %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit
%52 = and i64 %1, 8
%53 = icmp eq i64 %52, 0
br i1 %53, label %bb10, label %bb8
bb8: ; preds = %bb5
%54 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i64 0, i32 0
%55 = load i64, i64* %54, align 8
%56 = icmp ugt i64 %55, 40
br i1 %56, label %bb4.i.i.i.i1, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i2"
bb4.i.i.i.i1: ; preds = %bb8
tail call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %55, i64 40), !noalias !6
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i2": ; preds = %bb8
%57 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i64 0, i32 2, i64 %55
%58 = icmp eq i64 %55, 0
br i1 %58, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit14, label %bb6.lr.ph.i3
bb6.lr.ph.i3: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i2"
%59 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i64 0, i32 2, i64 0
%60 = shl i64 %55, 2
%61 = add i64 %60, -4
%62 = lshr exact i64 %61, 2
%63 = add nuw nsw i64 %62, 1
%xtraiter = and i64 %63, 3
%lcmp.mod = icmp eq i64 %xtraiter, 0
br i1 %lcmp.mod, label %bb6.i9.prol.loopexit, label %bb6.i9.prol.preheader
bb6.i9.prol.preheader: ; preds = %bb6.lr.ph.i3
br label %bb6.i9.prol
bb6.i9.prol: ; preds = %bb6.i9.prol, %bb6.i9.prol.preheader
%carry.020.i6.prol = phi i64 [ 0, %bb6.i9.prol.preheader ], [ %69, %bb6.i9.prol ]
%iter.sroa.0.019.i7.prol = phi i32* [ %59, %bb6.i9.prol.preheader ], [ %64, %bb6.i9.prol ]
%prol.iter = phi i64 [ %xtraiter, %bb6.i9.prol.preheader ], [ %prol.iter.sub, %bb6.i9.prol ]
%64 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i7.prol, i64 1
%65 = load i32, i32* %iter.sroa.0.019.i7.prol, align 4
%66 = zext i32 %65 to i64
%67 = mul nuw nsw i64 %66, 100000000
%68 = add nuw nsw i64 %67, %carry.020.i6.prol
%69 = lshr i64 %68, 32
%abi_cast.sroa.4.0.extract.trunc.i8.prol = trunc i64 %68 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i8.prol, i32* %iter.sroa.0.019.i7.prol, align 4
%prol.iter.sub = add i64 %prol.iter, -1
%prol.iter.cmp = icmp eq i64 %prol.iter.sub, 0
br i1 %prol.iter.cmp, label %bb6.i9.prol.loopexit.unr-lcssa, label %bb6.i9.prol, !llvm.loop !9
bb6.i9.prol.loopexit.unr-lcssa: ; preds = %bb6.i9.prol
br label %bb6.i9.prol.loopexit
bb6.i9.prol.loopexit: ; preds = %bb6.lr.ph.i3, %bb6.i9.prol.loopexit.unr-lcssa
%.lcssa.unr = phi i64 [ undef, %bb6.lr.ph.i3 ], [ %69, %bb6.i9.prol.loopexit.unr-lcssa ]
%carry.020.i6.unr = phi i64 [ 0, %bb6.lr.ph.i3 ], [ %69, %bb6.i9.prol.loopexit.unr-lcssa ]
%iter.sroa.0.019.i7.unr = phi i32* [ %59, %bb6.lr.ph.i3 ], [ %64, %bb6.i9.prol.loopexit.unr-lcssa ]
%70 = icmp ult i64 %61, 12
br i1 %70, label %bb5.i5, label %bb6.lr.ph.i3.new
bb6.lr.ph.i3.new: ; preds = %bb6.i9.prol.loopexit
br label %bb6.i9
bb5.i5.unr-lcssa: ; preds = %bb6.i9
br label %bb5.i5
bb5.i5: ; preds = %bb6.i9.prol.loopexit, %bb5.i5.unr-lcssa
%.lcssa = phi i64 [ %.lcssa.unr, %bb6.i9.prol.loopexit ], [ %95, %bb5.i5.unr-lcssa ]
%abi_cast.sroa.0.0.extract.trunc.i4 = trunc i64 %.lcssa to i32
%71 = icmp eq i32 %abi_cast.sroa.0.0.extract.trunc.i4, 0
br i1 %71, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit14, label %bb8.i10
bb6.i9: ; preds = %bb6.i9, %bb6.lr.ph.i3.new
%carry.020.i6 = phi i64 [ %carry.020.i6.unr, %bb6.lr.ph.i3.new ], [ %95, %bb6.i9 ]
%iter.sroa.0.019.i7 = phi i32* [ %iter.sroa.0.019.i7.unr, %bb6.lr.ph.i3.new ], [ %90, %bb6.i9 ]
%72 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i7, i64 1
%73 = load i32, i32* %iter.sroa.0.019.i7, align 4
%74 = zext i32 %73 to i64
%75 = mul nuw nsw i64 %74, 100000000
%76 = add nuw nsw i64 %75, %carry.020.i6
%77 = lshr i64 %76, 32
%abi_cast.sroa.4.0.extract.trunc.i8 = trunc i64 %76 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i8, i32* %iter.sroa.0.019.i7, align 4
%78 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i7, i64 2
%79 = load i32, i32* %72, align 4
%80 = zext i32 %79 to i64
%81 = mul nuw nsw i64 %80, 100000000
%82 = add nuw nsw i64 %81, %77
%83 = lshr i64 %82, 32
%abi_cast.sroa.4.0.extract.trunc.i8.1 = trunc i64 %82 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i8.1, i32* %72, align 4
%84 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i7, i64 3
%85 = load i32, i32* %78, align 4
%86 = zext i32 %85 to i64
%87 = mul nuw nsw i64 %86, 100000000
%88 = add nuw nsw i64 %87, %83
%89 = lshr i64 %88, 32
%abi_cast.sroa.4.0.extract.trunc.i8.2 = trunc i64 %88 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i8.2, i32* %78, align 4
%90 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i7, i64 4
%91 = load i32, i32* %84, align 4
%92 = zext i32 %91 to i64
%93 = mul nuw nsw i64 %92, 100000000
%94 = add nuw nsw i64 %93, %89
%95 = lshr i64 %94, 32
%abi_cast.sroa.4.0.extract.trunc.i8.3 = trunc i64 %94 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i8.3, i32* %84, align 4
%96 = icmp eq i32* %90, %57
br i1 %96, label %bb5.i5.unr-lcssa, label %bb6.i9
bb8.i10: ; preds = %bb5.i5
%97 = icmp ult i64 %55, 40
br i1 %97, label %bb10.i11, label %panic.i13, !prof !5
bb10.i11: ; preds = %bb8.i10
store i32 %abi_cast.sroa.0.0.extract.trunc.i4, i32* %57, align 4
%98 = add i64 %55, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit14
panic.i13: ; preds = %bb8.i10
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %55, i64 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit14: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i2", %bb5.i5, %bb10.i11
%sz.0.i12 = phi i64 [ %98, %bb10.i11 ], [ %55, %bb5.i5 ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i2" ]
store i64 %sz.0.i12, i64* %54, align 8
br label %bb10
bb10: ; preds = %bb5, %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit14
%99 = and i64 %1, 16
%100 = icmp eq i64 %99, 0
br i1 %100, label %bb14, label %bb11
bb11: ; preds = %bb10
%101 = tail call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x4010mul_digits17h3701b22d25dc8efcE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %0, i32* noalias nonnull readonly getelementptr inbounds ([2 x i32], [2 x i32]* @_ZN4core3num7flt2dec8strategy6dragon9POW10TO1617h36e563568261e693E, i64 0, i64 0), i64 2)
br label %bb14
bb14: ; preds = %bb10, %bb11
%102 = and i64 %1, 32
%103 = icmp eq i64 %102, 0
br i1 %103, label %bb18, label %bb15
bb15: ; preds = %bb14
%104 = tail call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x4010mul_digits17h3701b22d25dc8efcE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %0, i32* noalias nonnull readonly getelementptr inbounds ([4 x i32], [4 x i32]* @_ZN4core3num7flt2dec8strategy6dragon9POW10TO3217heec5e85ad1a5a8d6E, i64 0, i64 0), i64 4)
br label %bb18
bb18: ; preds = %bb14, %bb15
%105 = and i64 %1, 64
%106 = icmp eq i64 %105, 0
br i1 %106, label %bb22, label %bb19
bb19: ; preds = %bb18
%107 = tail call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x4010mul_digits17h3701b22d25dc8efcE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %0, i32* noalias nonnull readonly getelementptr inbounds ([7 x i32], [7 x i32]* @_ZN4core3num7flt2dec8strategy6dragon9POW10TO6417h6c44f56ffbd884d4E, i64 0, i64 0), i64 7)
br label %bb22
bb22: ; preds = %bb18, %bb19
%108 = trunc i64 %1 to i8
%109 = icmp slt i8 %108, 0
br i1 %109, label %bb23, label %bb26
bb23: ; preds = %bb22
%110 = tail call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x4010mul_digits17h3701b22d25dc8efcE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %0, i32* noalias nonnull readonly getelementptr inbounds ([14 x i32], [14 x i32]* @_ZN4core3num7flt2dec8strategy6dragon10POW10TO12817ha71ad777a5684cd6E, i64 0, i64 0), i64 14)
br label %bb26
bb26: ; preds = %bb22, %bb23
%111 = and i64 %1, 256
%112 = icmp eq i64 %111, 0
br i1 %112, label %bb30, label %bb27
bb27: ; preds = %bb26
%113 = tail call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x4010mul_digits17h3701b22d25dc8efcE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %0, i32* noalias nonnull readonly getelementptr inbounds ([27 x i32], [27 x i32]* @_ZN4core3num7flt2dec8strategy6dragon10POW10TO25617h2043c4da7df4220aE, i64 0, i64 0), i64 27)
br label %bb30
bb30: ; preds = %bb26, %bb27
ret %"num::bignum::Big32x40"* %0
}
; Function Attrs: uwtable
define void @_ZN4core3num7flt2dec8strategy6dragon15format_shortest17h651d3ae832a9ed27E({ i64, [0 x i8], i16, [6 x i8] }* noalias nocapture sret dereferenceable(16), %"num::flt2dec::decoder::Decoded"* noalias nocapture readonly dereferenceable(32), i8* nonnull, i64) unnamed_addr #2 personality i32 (...)* @rust_eh_personality {
start:
%base.i = alloca [40 x i32], align 4
%_175 = alloca %"num::bignum::Big32x40", align 8
%scale8 = alloca %"num::bignum::Big32x40", align 8
%scale4 = alloca %"num::bignum::Big32x40", align 8
%scale2 = alloca %"num::bignum::Big32x40", align 8
%_116 = alloca %"num::bignum::Big32x40", align 8
%scale = alloca %"num::bignum::Big32x40", align 8
%plus = alloca %"num::bignum::Big32x40", align 8
%minus = alloca %"num::bignum::Big32x40", align 8
%mant = alloca %"num::bignum::Big32x40", align 8
%4 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i64 0, i32 0
%5 = load i64, i64* %4, align 8
%6 = icmp eq i64 %5, 0
br i1 %6, label %bb1, label %bb2
bb1: ; preds = %start
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17h4713a116f8a0c522E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb2: ; preds = %start
%7 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i64 0, i32 2
%8 = load i64, i64* %7, align 8
%9 = icmp eq i64 %8, 0
br i1 %9, label %bb3, label %bb4
bb3: ; preds = %bb2
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17h87dec07a13ba31adE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb4: ; preds = %bb2
%10 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i64 0, i32 4
%11 = load i64, i64* %10, align 8
%12 = icmp eq i64 %11, 0
br i1 %12, label %bb5, label %bb6
bb5: ; preds = %bb4
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17h173d4a1132a475f6E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb6: ; preds = %bb4
%13 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %5, i64 %11) #16
%14 = extractvalue { i64, i1 } %13, 1
br i1 %14, label %bb9, label %bb10
bb9: ; preds = %bb6
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17hed9db6ec816630a5E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb10: ; preds = %bb6
%15 = tail call { i64, i1 } @llvm.usub.with.overflow.i64(i64 %5, i64 %8) #16
%16 = extractvalue { i64, i1 } %15, 1
br i1 %16, label %bb13, label %bb14
bb13: ; preds = %bb10
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17h65db9718b8ed2ebeE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb14: ; preds = %bb10
%17 = icmp ult i64 %3, 17
br i1 %17, label %bb16, label %bb3.i21.preheader
bb16: ; preds = %bb14
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17h931871e6d76be5cfE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb3.i21.preheader: ; preds = %bb14
%18 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i64 0, i32 8
%19 = load i8, i8* %18, align 1, !range !10
%20 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i64 0, i32 6
%21 = load i16, i16* %20, align 2
%22 = add i64 %5, -1
%23 = add i64 %22, %11
%24 = tail call i64 @llvm.ctlz.i64(i64 %23, i1 false) #16
%25 = sext i16 %21 to i64
%26 = add nsw i64 %25, 64
%27 = sub nsw i64 %26, %24
%28 = mul nsw i64 %27, 1292913986
%29 = lshr i64 %28, 32
%30 = trunc i64 %29 to i16
%31 = bitcast %"num::bignum::Big32x40"* %mant to i8*
call void @llvm.lifetime.start(i64 168, i8* nonnull %31)
%32 = bitcast [40 x i32]* %base.i to i8*
call void @llvm.lifetime.start(i64 160, i8* nonnull %32), !noalias !11
call void @llvm.memset.p0i8.i64(i8* nonnull %32, i8 0, i64 160, i32 4, i1 false), !noalias !11
br label %bb3.i21
bb3.i21: ; preds = %bb3.i21.preheader, %bb4.i
%v.011.i = phi i64 [ %36, %bb4.i ], [ %5, %bb3.i21.preheader ]
%sz.010.i = phi i64 [ %37, %bb4.i ], [ 0, %bb3.i21.preheader ]
%33 = icmp ult i64 %sz.010.i, 40
br i1 %33, label %bb4.i, label %panic.i22, !prof !5
bb4.i: ; preds = %bb3.i21
%34 = getelementptr inbounds [40 x i32], [40 x i32]* %base.i, i64 0, i64 %sz.010.i
%35 = trunc i64 %v.011.i to i32
store i32 %35, i32* %34, align 4, !noalias !11
%36 = lshr i64 %v.011.i, 32
%37 = add nuw nsw i64 %sz.010.i, 1
%38 = icmp eq i64 %36, 0
br i1 %38, label %bb3.i28.preheader, label %bb3.i21
panic.i22: ; preds = %bb3.i21
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4B to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %sz.010.i, i64 40), !noalias !11
unreachable
bb3.i28.preheader: ; preds = %bb4.i
%39 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 0
store i64 %37, i64* %39, align 8, !alias.scope !11
%40 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2
%41 = bitcast [40 x i32]* %40 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %41, i8* nonnull %32, i64 160, i32 4, i1 false)
call void @llvm.lifetime.end(i64 160, i8* nonnull %32), !noalias !11
%42 = bitcast %"num::bignum::Big32x40"* %minus to i8*
call void @llvm.lifetime.start(i64 168, i8* nonnull %42)
call void @llvm.lifetime.start(i64 160, i8* nonnull %32), !noalias !14
call void @llvm.memset.p0i8.i64(i8* nonnull %32, i8 0, i64 160, i32 4, i1 false), !noalias !14
br label %bb3.i28
bb3.i28: ; preds = %bb3.i28.preheader, %bb4.i29
%v.011.i26 = phi i64 [ %46, %bb4.i29 ], [ %8, %bb3.i28.preheader ]
%sz.010.i27 = phi i64 [ %47, %bb4.i29 ], [ 0, %bb3.i28.preheader ]
%43 = icmp ult i64 %sz.010.i27, 40
br i1 %43, label %bb4.i29, label %panic.i30, !prof !5
bb4.i29: ; preds = %bb3.i28
%44 = getelementptr inbounds [40 x i32], [40 x i32]* %base.i, i64 0, i64 %sz.010.i27
%45 = trunc i64 %v.011.i26 to i32
store i32 %45, i32* %44, align 4, !noalias !14
%46 = lshr i64 %v.011.i26, 32
%47 = add nuw nsw i64 %sz.010.i27, 1
%48 = icmp eq i64 %46, 0
br i1 %48, label %bb3.i37.preheader, label %bb3.i28
panic.i30: ; preds = %bb3.i28
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4B to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %sz.010.i27, i64 40), !noalias !14
unreachable
bb3.i37.preheader: ; preds = %bb4.i29
%49 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %minus, i64 0, i32 0
store i64 %47, i64* %49, align 8, !alias.scope !14
%50 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %minus, i64 0, i32 2
%51 = bitcast [40 x i32]* %50 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %51, i8* nonnull %32, i64 160, i32 4, i1 false)
call void @llvm.lifetime.end(i64 160, i8* nonnull %32), !noalias !14
%52 = bitcast %"num::bignum::Big32x40"* %plus to i8*
call void @llvm.lifetime.start(i64 168, i8* nonnull %52)
call void @llvm.lifetime.start(i64 160, i8* nonnull %32), !noalias !17
call void @llvm.memset.p0i8.i64(i8* nonnull %32, i8 0, i64 160, i32 4, i1 false), !noalias !17
br label %bb3.i37
bb3.i37: ; preds = %bb3.i37.preheader, %bb4.i38
%v.011.i35 = phi i64 [ %56, %bb4.i38 ], [ %11, %bb3.i37.preheader ]
%sz.010.i36 = phi i64 [ %57, %bb4.i38 ], [ 0, %bb3.i37.preheader ]
%53 = icmp ult i64 %sz.010.i36, 40
br i1 %53, label %bb4.i38, label %panic.i39, !prof !5
bb4.i38: ; preds = %bb3.i37
%54 = getelementptr inbounds [40 x i32], [40 x i32]* %base.i, i64 0, i64 %sz.010.i36
%55 = trunc i64 %v.011.i35 to i32
store i32 %55, i32* %54, align 4, !noalias !17
%56 = lshr i64 %v.011.i35, 32
%57 = add nuw nsw i64 %sz.010.i36, 1
%58 = icmp eq i64 %56, 0
br i1 %58, label %_ZN4core3num6bignum8Big32x408from_u6417h7ac65617bdfe7160E.exit40, label %bb3.i37
panic.i39: ; preds = %bb3.i37
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4B to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %sz.010.i36, i64 40), !noalias !17
unreachable
_ZN4core3num6bignum8Big32x408from_u6417h7ac65617bdfe7160E.exit40: ; preds = %bb4.i38
%59 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %plus, i64 0, i32 0
store i64 %57, i64* %59, align 8, !alias.scope !17
%60 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %plus, i64 0, i32 2
%61 = bitcast [40 x i32]* %60 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %61, i8* nonnull %32, i64 160, i32 4, i1 false)
call void @llvm.lifetime.end(i64 160, i8* nonnull %32), !noalias !17
%62 = bitcast %"num::bignum::Big32x40"* %scale to i8*
call void @llvm.lifetime.start(i64 168, i8* nonnull %62)
call void @llvm.lifetime.start(i64 160, i8* nonnull %32) #16, !noalias !20
%63 = getelementptr inbounds [40 x i32], [40 x i32]* %base.i, i64 0, i64 0
%64 = getelementptr inbounds [40 x i32], [40 x i32]* %base.i, i64 0, i64 1
%65 = bitcast i32* %64 to i8*
call void @llvm.memset.p0i8.i64(i8* nonnull %65, i8 0, i64 156, i32 4, i1 false) #16, !noalias !20
store i32 1, i32* %63, align 4, !noalias !20
%66 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i64 0, i32 0
store i64 1, i64* %66, align 8, !alias.scope !20
%67 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i64 0, i32 2
%68 = bitcast [40 x i32]* %67 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %68, i8* nonnull %32, i64 160, i32 4, i1 false) #16
call void @llvm.lifetime.end(i64 160, i8* nonnull %32) #16, !noalias !20
%69 = icmp slt i16 %21, 0
br i1 %69, label %bb26, label %bb27
bb26: ; preds = %_ZN4core3num6bignum8Big32x408from_u6417h7ac65617bdfe7160E.exit40
%70 = sub i16 0, %21
%71 = sext i16 %70 to i64
%72 = call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h1cf2bd21d8443b3bE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %scale, i64 %71)
br label %bb32
bb27: ; preds = %_ZN4core3num6bignum8Big32x408from_u6417h7ac65617bdfe7160E.exit40
%73 = call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h1cf2bd21d8443b3bE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %mant, i64 %25)
%74 = call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h1cf2bd21d8443b3bE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %minus, i64 %25)
%75 = call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h1cf2bd21d8443b3bE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %plus, i64 %25)
br label %bb32
bb32: ; preds = %bb27, %bb26
%76 = icmp sgt i16 %30, -1
br i1 %76, label %bb33, label %bb34
bb33: ; preds = %bb32
%sext198 = shl i64 %29, 48
%77 = ashr exact i64 %sext198, 48
%78 = call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num7flt2dec8strategy6dragon9mul_pow1017hb60ad3477bd5a2b3E(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %scale, i64 %77)
br label %bb39
bb34: ; preds = %bb32
%79 = sub nsw i64 0, %29
%sext = shl i64 %79, 48
%80 = ashr exact i64 %sext, 48
%81 = call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num7flt2dec8strategy6dragon9mul_pow1017hb60ad3477bd5a2b3E(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %mant, i64 %80)
%82 = call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num7flt2dec8strategy6dragon9mul_pow1017hb60ad3477bd5a2b3E(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %minus, i64 %80)
%83 = call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num7flt2dec8strategy6dragon9mul_pow1017hb60ad3477bd5a2b3E(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %plus, i64 %80)
br label %bb39
bb39: ; preds = %bb34, %bb33
%84 = bitcast %"num::bignum::Big32x40"* %_116 to i8*
call void @llvm.lifetime.start(i64 168, i8* nonnull %84)
%85 = load i64, i64* %39, align 8, !alias.scope !23, !noalias !26
%86 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_116, i64 0, i32 0
store i64 %85, i64* %86, align 8, !alias.scope !26, !noalias !23
%87 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_116, i64 0, i32 2
%88 = bitcast [40 x i32]* %87 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %88, i8* %41, i64 160, i32 8, i1 false) #16, !alias.scope !28
%89 = load i64, i64* %59, align 8, !alias.scope !29
%90 = icmp uge i64 %89, %85
%_0.0.sroa.speculated.i.i.i = select i1 %90, i64 %89, i64 %85
%91 = icmp ugt i64 %_0.0.sroa.speculated.i.i.i, 40
br i1 %91, label %bb4.i.i.i.i56, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i"
bb4.i.i.i.i56: ; preds = %bb39
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %_0.0.sroa.speculated.i.i.i, i64 40), !noalias !32
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i": ; preds = %bb39
%.idx.i = shl nuw i64 %_0.0.sroa.speculated.i.i.i, 2
%92 = sdiv i64 %.idx.i, 4
%.idx.off.i = or i64 %.idx.i, 3
%93 = icmp ult i64 %.idx.off.i, 7
br i1 %93, label %_ZN4core3num6bignum8Big32x403add17hd2197a50c071fcf3E.exit, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i"
%carry.055.i = phi i32 [ %105, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.preheader" ]
%iter.sroa.8.054.i = phi i64 [ %96, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.preheader" ]
%94 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_116, i64 0, i32 2, i64 %iter.sroa.8.054.i
%95 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %plus, i64 0, i32 2, i64 %iter.sroa.8.054.i
%96 = add nuw i64 %iter.sroa.8.054.i, 1
%97 = load i32, i32* %94, align 4, !noalias !29
%98 = load i32, i32* %95, align 4, !alias.scope !29
%99 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %97, i32 %98) #16
%100 = extractvalue { i32, i1 } %99, 0
%101 = extractvalue { i32, i1 } %99, 1
%102 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %100, i32 %carry.055.i) #16
%103 = extractvalue { i32, i1 } %102, 0
%104 = extractvalue { i32, i1 } %102, 1
%brmerge.i.i = or i1 %101, %104
store i32 %103, i32* %94, align 4, !noalias !29
%105 = zext i1 %brmerge.i.i to i32
%106 = icmp ult i64 %96, %92
br i1 %106, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i", label %bb9.i
bb9.i: ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i"
br i1 %brmerge.i.i, label %bb12.i, label %_ZN4core3num6bignum8Big32x403add17hd2197a50c071fcf3E.exit
bb12.i: ; preds = %bb9.i
%107 = icmp ult i64 %_0.0.sroa.speculated.i.i.i, 40
br i1 %107, label %bb14.i, label %panic.i58, !prof !5
bb14.i: ; preds = %bb12.i
%108 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_116, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i
store i32 1, i32* %108, align 4, !noalias !29
%109 = add i64 %_0.0.sroa.speculated.i.i.i, 1
br label %_ZN4core3num6bignum8Big32x403add17hd2197a50c071fcf3E.exit
panic.i58: ; preds = %bb12.i
call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4F to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %_0.0.sroa.speculated.i.i.i, i64 40), !noalias !29
unreachable
_ZN4core3num6bignum8Big32x403add17hd2197a50c071fcf3E.exit: ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i", %bb9.i, %bb14.i
%sz.0.i57 = phi i64 [ %109, %bb14.i ], [ %_0.0.sroa.speculated.i.i.i, %bb9.i ], [ %_0.0.sroa.speculated.i.i.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i" ]
store i64 %sz.0.i57, i64* %86, align 8, !noalias !29
%110 = load i64, i64* %66, align 8, !alias.scope !35, !noalias !38
%111 = icmp uge i64 %sz.0.i57, %110
%_0.0.sroa.speculated.i.i.i59 = select i1 %111, i64 %sz.0.i57, i64 %110
%112 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i64 0, i32 2, i64 0
%113 = icmp ugt i64 %_0.0.sroa.speculated.i.i.i59, 40
br i1 %113, label %bb4.i.i.i3.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i60"
bb4.i.i.i3.i: ; preds = %_ZN4core3num6bignum8Big32x403add17hd2197a50c071fcf3E.exit
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %_0.0.sroa.speculated.i.i.i59, i64 40), !noalias !40
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i60": ; preds = %_ZN4core3num6bignum8Big32x403add17hd2197a50c071fcf3E.exit
%114 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i59
%115 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_116, i64 0, i32 2, i64 0
%116 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_116, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i59
br label %bb5.i.i
bb5.i.i: ; preds = %bb24.i.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i60"
%self.sroa.4.0.i.i = phi i32* [ %114, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i60" ], [ %self.sroa.4.1.i.i, %bb24.i.i ]
%other1.sroa.4.0.i.i = phi i32* [ %116, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i60" ], [ %other1.sroa.4.1.i.i, %bb24.i.i ]
%117 = icmp eq i32* %self.sroa.4.0.i.i, %112
br i1 %117, label %bb6.i.i, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i": ; preds = %bb5.i.i
%118 = getelementptr inbounds i32, i32* %self.sroa.4.0.i.i, i64 -1
%119 = load i32, i32* %118, align 4, !alias.scope !43, !noalias !48
br label %bb6.i.i
bb6.i.i: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i", %bb5.i.i
%self.sroa.4.1.i.i = phi i32* [ %112, %bb5.i.i ], [ %118, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i" ]
%_0.sroa.3.0.i.i.i.i82.i.i = phi i32 [ 0, %bb5.i.i ], [ %119, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i" ]
%_0.sroa.0.0.i.i.i.i83.i.i = phi i64 [ 0, %bb5.i.i ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i" ]
%120 = icmp eq i32* %other1.sroa.4.0.i.i, %115
br i1 %120, label %bb8.i.i, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i": ; preds = %bb6.i.i
%121 = getelementptr inbounds i32, i32* %other1.sroa.4.0.i.i, i64 -1
%122 = load i32, i32* %121, align 4, !alias.scope !52, !noalias !57
br label %bb8.i.i
bb8.i.i: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i", %bb6.i.i
%other1.sroa.4.1.i.i = phi i32* [ %115, %bb6.i.i ], [ %121, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i" ]
%_0.sroa.3.0.i.i.i.i.i.i = phi i32 [ 0, %bb6.i.i ], [ %122, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i" ]
%_0.sroa.0.0.i.i.i.i.i.i = phi i1 [ true, %bb6.i.i ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i" ]
%cond.i.i = icmp eq i64 %_0.sroa.0.0.i.i.i.i83.i.i, 0
br i1 %cond.i.i, label %bb14.i.i, label %bb15.i.i
bb14.i.i: ; preds = %bb8.i.i
%not.cond14.i.i = xor i1 %_0.sroa.0.0.i.i.i.i.i.i, true
%..i.i = sext i1 %not.cond14.i.i to i8
br label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit"
bb15.i.i: ; preds = %bb8.i.i
br i1 %_0.sroa.0.0.i.i.i.i.i.i, label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit.thread", label %bb24.i.i
"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit.thread": ; preds = %bb15.i.i
call void @llvm.lifetime.end(i64 168, i8* nonnull %84)
br label %bb45
bb24.i.i: ; preds = %bb15.i.i
%123 = icmp eq i32 %_0.sroa.3.0.i.i.i.i82.i.i, %_0.sroa.3.0.i.i.i.i.i.i
br i1 %123, label %bb5.i.i, label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit.loopexit"
"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit.loopexit": ; preds = %bb24.i.i
%124 = icmp ult i32 %_0.sroa.3.0.i.i.i.i82.i.i, %_0.sroa.3.0.i.i.i.i.i.i
%..i.i.i.le = select i1 %124, i8 -1, i8 1
br label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit"
"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit": ; preds = %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit.loopexit", %bb14.i.i
%_0.0.i.i = phi i8 [ %..i.i, %bb14.i.i ], [ %..i.i.i.le, %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit.loopexit" ]
%125 = icmp slt i8 %_0.0.i.i, %19
call void @llvm.lifetime.end(i64 168, i8* nonnull %84)
br i1 %125, label %bb44, label %bb45
bb44: ; preds = %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit"
%126 = add i16 %30, 1
br label %bb49
bb45: ; preds = %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit.thread", %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit"
%127 = icmp ugt i64 %85, 40
br i1 %127, label %bb4.i.i.i.i61, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i62"
bb4.i.i.i.i61: ; preds = %bb45
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %85, i64 40), !noalias !58
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i62": ; preds = %bb45
%128 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %85
%129 = icmp eq i64 %85, 0
br i1 %129, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit74, label %bb6.lr.ph.i63
bb6.lr.ph.i63: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i62"
%130 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 0
%131 = shl i64 %85, 2
%132 = add i64 %131, -4
%133 = lshr exact i64 %132, 2
%134 = add nuw nsw i64 %133, 1
%xtraiter1192 = and i64 %134, 3
%lcmp.mod1193 = icmp eq i64 %xtraiter1192, 0
br i1 %lcmp.mod1193, label %bb6.i69.prol.loopexit, label %bb6.i69.prol.preheader
bb6.i69.prol.preheader: ; preds = %bb6.lr.ph.i63
br label %bb6.i69.prol
bb6.i69.prol: ; preds = %bb6.i69.prol, %bb6.i69.prol.preheader
%carry.020.i66.prol = phi i64 [ 0, %bb6.i69.prol.preheader ], [ %140, %bb6.i69.prol ]
%iter.sroa.0.019.i67.prol = phi i32* [ %130, %bb6.i69.prol.preheader ], [ %135, %bb6.i69.prol ]
%prol.iter1194 = phi i64 [ %xtraiter1192, %bb6.i69.prol.preheader ], [ %prol.iter1194.sub, %bb6.i69.prol ]
%135 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i67.prol, i64 1
%136 = load i32, i32* %iter.sroa.0.019.i67.prol, align 4
%137 = zext i32 %136 to i64
%138 = mul nuw nsw i64 %137, 10
%139 = add nuw nsw i64 %138, %carry.020.i66.prol
%140 = lshr i64 %139, 32
%abi_cast.sroa.4.0.extract.trunc.i68.prol = trunc i64 %139 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i68.prol, i32* %iter.sroa.0.019.i67.prol, align 4
%prol.iter1194.sub = add i64 %prol.iter1194, -1
%prol.iter1194.cmp = icmp eq i64 %prol.iter1194.sub, 0
br i1 %prol.iter1194.cmp, label %bb6.i69.prol.loopexit.unr-lcssa, label %bb6.i69.prol, !llvm.loop !61
bb6.i69.prol.loopexit.unr-lcssa: ; preds = %bb6.i69.prol
br label %bb6.i69.prol.loopexit
bb6.i69.prol.loopexit: ; preds = %bb6.lr.ph.i63, %bb6.i69.prol.loopexit.unr-lcssa
%.lcssa1167.unr = phi i64 [ undef, %bb6.lr.ph.i63 ], [ %140, %bb6.i69.prol.loopexit.unr-lcssa ]
%carry.020.i66.unr = phi i64 [ 0, %bb6.lr.ph.i63 ], [ %140, %bb6.i69.prol.loopexit.unr-lcssa ]
%iter.sroa.0.019.i67.unr = phi i32* [ %130, %bb6.lr.ph.i63 ], [ %135, %bb6.i69.prol.loopexit.unr-lcssa ]
%141 = icmp ult i64 %132, 12
br i1 %141, label %bb5.i65, label %bb6.lr.ph.i63.new
bb6.lr.ph.i63.new: ; preds = %bb6.i69.prol.loopexit
br label %bb6.i69
bb5.i65.unr-lcssa: ; preds = %bb6.i69
br label %bb5.i65
bb5.i65: ; preds = %bb6.i69.prol.loopexit, %bb5.i65.unr-lcssa
%.lcssa1167 = phi i64 [ %.lcssa1167.unr, %bb6.i69.prol.loopexit ], [ %166, %bb5.i65.unr-lcssa ]
%abi_cast.sroa.0.0.extract.trunc.i64 = trunc i64 %.lcssa1167 to i32
%142 = icmp eq i32 %abi_cast.sroa.0.0.extract.trunc.i64, 0
br i1 %142, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit74, label %bb8.i70
bb6.i69: ; preds = %bb6.i69, %bb6.lr.ph.i63.new
%carry.020.i66 = phi i64 [ %carry.020.i66.unr, %bb6.lr.ph.i63.new ], [ %166, %bb6.i69 ]
%iter.sroa.0.019.i67 = phi i32* [ %iter.sroa.0.019.i67.unr, %bb6.lr.ph.i63.new ], [ %161, %bb6.i69 ]
%143 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i67, i64 1
%144 = load i32, i32* %iter.sroa.0.019.i67, align 4
%145 = zext i32 %144 to i64
%146 = mul nuw nsw i64 %145, 10
%147 = add nuw nsw i64 %146, %carry.020.i66
%148 = lshr i64 %147, 32
%abi_cast.sroa.4.0.extract.trunc.i68 = trunc i64 %147 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i68, i32* %iter.sroa.0.019.i67, align 4
%149 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i67, i64 2
%150 = load i32, i32* %143, align 4
%151 = zext i32 %150 to i64
%152 = mul nuw nsw i64 %151, 10
%153 = add nuw nsw i64 %152, %148
%154 = lshr i64 %153, 32
%abi_cast.sroa.4.0.extract.trunc.i68.1 = trunc i64 %153 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i68.1, i32* %143, align 4
%155 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i67, i64 3
%156 = load i32, i32* %149, align 4
%157 = zext i32 %156 to i64
%158 = mul nuw nsw i64 %157, 10
%159 = add nuw nsw i64 %158, %154
%160 = lshr i64 %159, 32
%abi_cast.sroa.4.0.extract.trunc.i68.2 = trunc i64 %159 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i68.2, i32* %149, align 4
%161 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i67, i64 4
%162 = load i32, i32* %155, align 4
%163 = zext i32 %162 to i64
%164 = mul nuw nsw i64 %163, 10
%165 = add nuw nsw i64 %164, %160
%166 = lshr i64 %165, 32
%abi_cast.sroa.4.0.extract.trunc.i68.3 = trunc i64 %165 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i68.3, i32* %155, align 4
%167 = icmp eq i32* %161, %128
br i1 %167, label %bb5.i65.unr-lcssa, label %bb6.i69
bb8.i70: ; preds = %bb5.i65
%168 = icmp ult i64 %85, 40
br i1 %168, label %bb10.i71, label %panic.i73, !prof !5
bb10.i71: ; preds = %bb8.i70
store i32 %abi_cast.sroa.0.0.extract.trunc.i64, i32* %128, align 4
%169 = add i64 %85, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit74
panic.i73: ; preds = %bb8.i70
call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %85, i64 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit74: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i62", %bb5.i65, %bb10.i71
%sz.0.i72 = phi i64 [ %169, %bb10.i71 ], [ %85, %bb5.i65 ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i62" ]
store i64 %sz.0.i72, i64* %39, align 8
%170 = load i64, i64* %49, align 8
%171 = icmp ugt i64 %170, 40
br i1 %171, label %bb4.i.i.i.i75, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i76"
bb4.i.i.i.i75: ; preds = %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit74
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %170, i64 40), !noalias !62
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i76": ; preds = %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit74
%172 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %minus, i64 0, i32 2, i64 %170
%173 = icmp eq i64 %170, 0
br i1 %173, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit88, label %bb6.lr.ph.i77
bb6.lr.ph.i77: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i76"
%174 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %minus, i64 0, i32 2, i64 0
%175 = shl i64 %170, 2
%176 = add i64 %175, -4
%177 = lshr exact i64 %176, 2
%178 = add nuw nsw i64 %177, 1
%xtraiter1189 = and i64 %178, 3
%lcmp.mod1190 = icmp eq i64 %xtraiter1189, 0
br i1 %lcmp.mod1190, label %bb6.i83.prol.loopexit, label %bb6.i83.prol.preheader
bb6.i83.prol.preheader: ; preds = %bb6.lr.ph.i77
br label %bb6.i83.prol
bb6.i83.prol: ; preds = %bb6.i83.prol, %bb6.i83.prol.preheader
%carry.020.i80.prol = phi i64 [ 0, %bb6.i83.prol.preheader ], [ %184, %bb6.i83.prol ]
%iter.sroa.0.019.i81.prol = phi i32* [ %174, %bb6.i83.prol.preheader ], [ %179, %bb6.i83.prol ]
%prol.iter1191 = phi i64 [ %xtraiter1189, %bb6.i83.prol.preheader ], [ %prol.iter1191.sub, %bb6.i83.prol ]
%179 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i81.prol, i64 1
%180 = load i32, i32* %iter.sroa.0.019.i81.prol, align 4
%181 = zext i32 %180 to i64
%182 = mul nuw nsw i64 %181, 10
%183 = add nuw nsw i64 %182, %carry.020.i80.prol
%184 = lshr i64 %183, 32
%abi_cast.sroa.4.0.extract.trunc.i82.prol = trunc i64 %183 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i82.prol, i32* %iter.sroa.0.019.i81.prol, align 4
%prol.iter1191.sub = add i64 %prol.iter1191, -1
%prol.iter1191.cmp = icmp eq i64 %prol.iter1191.sub, 0
br i1 %prol.iter1191.cmp, label %bb6.i83.prol.loopexit.unr-lcssa, label %bb6.i83.prol, !llvm.loop !65
bb6.i83.prol.loopexit.unr-lcssa: ; preds = %bb6.i83.prol
br label %bb6.i83.prol.loopexit
bb6.i83.prol.loopexit: ; preds = %bb6.lr.ph.i77, %bb6.i83.prol.loopexit.unr-lcssa
%.lcssa1166.unr = phi i64 [ undef, %bb6.lr.ph.i77 ], [ %184, %bb6.i83.prol.loopexit.unr-lcssa ]
%carry.020.i80.unr = phi i64 [ 0, %bb6.lr.ph.i77 ], [ %184, %bb6.i83.prol.loopexit.unr-lcssa ]
%iter.sroa.0.019.i81.unr = phi i32* [ %174, %bb6.lr.ph.i77 ], [ %179, %bb6.i83.prol.loopexit.unr-lcssa ]
%185 = icmp ult i64 %176, 12
br i1 %185, label %bb5.i79, label %bb6.lr.ph.i77.new
bb6.lr.ph.i77.new: ; preds = %bb6.i83.prol.loopexit
br label %bb6.i83
bb5.i79.unr-lcssa: ; preds = %bb6.i83
br label %bb5.i79
bb5.i79: ; preds = %bb6.i83.prol.loopexit, %bb5.i79.unr-lcssa
%.lcssa1166 = phi i64 [ %.lcssa1166.unr, %bb6.i83.prol.loopexit ], [ %210, %bb5.i79.unr-lcssa ]
%abi_cast.sroa.0.0.extract.trunc.i78 = trunc i64 %.lcssa1166 to i32
%186 = icmp eq i32 %abi_cast.sroa.0.0.extract.trunc.i78, 0
br i1 %186, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit88, label %bb8.i84
bb6.i83: ; preds = %bb6.i83, %bb6.lr.ph.i77.new
%carry.020.i80 = phi i64 [ %carry.020.i80.unr, %bb6.lr.ph.i77.new ], [ %210, %bb6.i83 ]
%iter.sroa.0.019.i81 = phi i32* [ %iter.sroa.0.019.i81.unr, %bb6.lr.ph.i77.new ], [ %205, %bb6.i83 ]
%187 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i81, i64 1
%188 = load i32, i32* %iter.sroa.0.019.i81, align 4
%189 = zext i32 %188 to i64
%190 = mul nuw nsw i64 %189, 10
%191 = add nuw nsw i64 %190, %carry.020.i80
%192 = lshr i64 %191, 32
%abi_cast.sroa.4.0.extract.trunc.i82 = trunc i64 %191 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i82, i32* %iter.sroa.0.019.i81, align 4
%193 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i81, i64 2
%194 = load i32, i32* %187, align 4
%195 = zext i32 %194 to i64
%196 = mul nuw nsw i64 %195, 10
%197 = add nuw nsw i64 %196, %192
%198 = lshr i64 %197, 32
%abi_cast.sroa.4.0.extract.trunc.i82.1 = trunc i64 %197 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i82.1, i32* %187, align 4
%199 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i81, i64 3
%200 = load i32, i32* %193, align 4
%201 = zext i32 %200 to i64
%202 = mul nuw nsw i64 %201, 10
%203 = add nuw nsw i64 %202, %198
%204 = lshr i64 %203, 32
%abi_cast.sroa.4.0.extract.trunc.i82.2 = trunc i64 %203 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i82.2, i32* %193, align 4
%205 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i81, i64 4
%206 = load i32, i32* %199, align 4
%207 = zext i32 %206 to i64
%208 = mul nuw nsw i64 %207, 10
%209 = add nuw nsw i64 %208, %204
%210 = lshr i64 %209, 32
%abi_cast.sroa.4.0.extract.trunc.i82.3 = trunc i64 %209 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i82.3, i32* %199, align 4
%211 = icmp eq i32* %205, %172
br i1 %211, label %bb5.i79.unr-lcssa, label %bb6.i83
bb8.i84: ; preds = %bb5.i79
%212 = icmp ult i64 %170, 40
br i1 %212, label %bb10.i85, label %panic.i87, !prof !5
bb10.i85: ; preds = %bb8.i84
store i32 %abi_cast.sroa.0.0.extract.trunc.i78, i32* %172, align 4
%213 = add i64 %170, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit88
panic.i87: ; preds = %bb8.i84
call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %170, i64 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit88: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i76", %bb5.i79, %bb10.i85
%sz.0.i86 = phi i64 [ %213, %bb10.i85 ], [ %170, %bb5.i79 ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i76" ]
store i64 %sz.0.i86, i64* %49, align 8
%214 = load i64, i64* %59, align 8
%215 = icmp ugt i64 %214, 40
br i1 %215, label %bb4.i.i.i.i89, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i90"
bb4.i.i.i.i89: ; preds = %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit88
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %214, i64 40), !noalias !66
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i90": ; preds = %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit88
%216 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %plus, i64 0, i32 2, i64 %214
%217 = icmp eq i64 %214, 0
br i1 %217, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit102, label %bb6.lr.ph.i91
bb6.lr.ph.i91: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i90"
%218 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %plus, i64 0, i32 2, i64 0
%219 = shl i64 %214, 2
%220 = add i64 %219, -4
%221 = lshr exact i64 %220, 2
%222 = add nuw nsw i64 %221, 1
%xtraiter1186 = and i64 %222, 3
%lcmp.mod1187 = icmp eq i64 %xtraiter1186, 0
br i1 %lcmp.mod1187, label %bb6.i97.prol.loopexit, label %bb6.i97.prol.preheader
bb6.i97.prol.preheader: ; preds = %bb6.lr.ph.i91
br label %bb6.i97.prol
bb6.i97.prol: ; preds = %bb6.i97.prol, %bb6.i97.prol.preheader
%carry.020.i94.prol = phi i64 [ 0, %bb6.i97.prol.preheader ], [ %228, %bb6.i97.prol ]
%iter.sroa.0.019.i95.prol = phi i32* [ %218, %bb6.i97.prol.preheader ], [ %223, %bb6.i97.prol ]
%prol.iter1188 = phi i64 [ %xtraiter1186, %bb6.i97.prol.preheader ], [ %prol.iter1188.sub, %bb6.i97.prol ]
%223 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i95.prol, i64 1
%224 = load i32, i32* %iter.sroa.0.019.i95.prol, align 4
%225 = zext i32 %224 to i64
%226 = mul nuw nsw i64 %225, 10
%227 = add nuw nsw i64 %226, %carry.020.i94.prol
%228 = lshr i64 %227, 32
%abi_cast.sroa.4.0.extract.trunc.i96.prol = trunc i64 %227 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i96.prol, i32* %iter.sroa.0.019.i95.prol, align 4
%prol.iter1188.sub = add i64 %prol.iter1188, -1
%prol.iter1188.cmp = icmp eq i64 %prol.iter1188.sub, 0
br i1 %prol.iter1188.cmp, label %bb6.i97.prol.loopexit.unr-lcssa, label %bb6.i97.prol, !llvm.loop !69
bb6.i97.prol.loopexit.unr-lcssa: ; preds = %bb6.i97.prol
br label %bb6.i97.prol.loopexit
bb6.i97.prol.loopexit: ; preds = %bb6.lr.ph.i91, %bb6.i97.prol.loopexit.unr-lcssa
%.lcssa1165.unr = phi i64 [ undef, %bb6.lr.ph.i91 ], [ %228, %bb6.i97.prol.loopexit.unr-lcssa ]
%carry.020.i94.unr = phi i64 [ 0, %bb6.lr.ph.i91 ], [ %228, %bb6.i97.prol.loopexit.unr-lcssa ]
%iter.sroa.0.019.i95.unr = phi i32* [ %218, %bb6.lr.ph.i91 ], [ %223, %bb6.i97.prol.loopexit.unr-lcssa ]
%229 = icmp ult i64 %220, 12
br i1 %229, label %bb5.i93, label %bb6.lr.ph.i91.new
bb6.lr.ph.i91.new: ; preds = %bb6.i97.prol.loopexit
br label %bb6.i97
bb5.i93.unr-lcssa: ; preds = %bb6.i97
br label %bb5.i93
bb5.i93: ; preds = %bb6.i97.prol.loopexit, %bb5.i93.unr-lcssa
%.lcssa1165 = phi i64 [ %.lcssa1165.unr, %bb6.i97.prol.loopexit ], [ %254, %bb5.i93.unr-lcssa ]
%abi_cast.sroa.0.0.extract.trunc.i92 = trunc i64 %.lcssa1165 to i32
%230 = icmp eq i32 %abi_cast.sroa.0.0.extract.trunc.i92, 0
br i1 %230, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit102, label %bb8.i98
bb6.i97: ; preds = %bb6.i97, %bb6.lr.ph.i91.new
%carry.020.i94 = phi i64 [ %carry.020.i94.unr, %bb6.lr.ph.i91.new ], [ %254, %bb6.i97 ]
%iter.sroa.0.019.i95 = phi i32* [ %iter.sroa.0.019.i95.unr, %bb6.lr.ph.i91.new ], [ %249, %bb6.i97 ]
%231 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i95, i64 1
%232 = load i32, i32* %iter.sroa.0.019.i95, align 4
%233 = zext i32 %232 to i64
%234 = mul nuw nsw i64 %233, 10
%235 = add nuw nsw i64 %234, %carry.020.i94
%236 = lshr i64 %235, 32
%abi_cast.sroa.4.0.extract.trunc.i96 = trunc i64 %235 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i96, i32* %iter.sroa.0.019.i95, align 4
%237 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i95, i64 2
%238 = load i32, i32* %231, align 4
%239 = zext i32 %238 to i64
%240 = mul nuw nsw i64 %239, 10
%241 = add nuw nsw i64 %240, %236
%242 = lshr i64 %241, 32
%abi_cast.sroa.4.0.extract.trunc.i96.1 = trunc i64 %241 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i96.1, i32* %231, align 4
%243 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i95, i64 3
%244 = load i32, i32* %237, align 4
%245 = zext i32 %244 to i64
%246 = mul nuw nsw i64 %245, 10
%247 = add nuw nsw i64 %246, %242
%248 = lshr i64 %247, 32
%abi_cast.sroa.4.0.extract.trunc.i96.2 = trunc i64 %247 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i96.2, i32* %237, align 4
%249 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i95, i64 4
%250 = load i32, i32* %243, align 4
%251 = zext i32 %250 to i64
%252 = mul nuw nsw i64 %251, 10
%253 = add nuw nsw i64 %252, %248
%254 = lshr i64 %253, 32
%abi_cast.sroa.4.0.extract.trunc.i96.3 = trunc i64 %253 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i96.3, i32* %243, align 4
%255 = icmp eq i32* %249, %216
br i1 %255, label %bb5.i93.unr-lcssa, label %bb6.i97
bb8.i98: ; preds = %bb5.i93
%256 = icmp ult i64 %214, 40
br i1 %256, label %bb10.i99, label %panic.i101, !prof !5
bb10.i99: ; preds = %bb8.i98
store i32 %abi_cast.sroa.0.0.extract.trunc.i92, i32* %216, align 4
%257 = add i64 %214, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit102
panic.i101: ; preds = %bb8.i98
call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %214, i64 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit102: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i90", %bb5.i93, %bb10.i99
%sz.0.i100 = phi i64 [ %257, %bb10.i99 ], [ %214, %bb5.i93 ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i90" ]
store i64 %sz.0.i100, i64* %59, align 8
%.pre = load i64, i64* %66, align 8, !alias.scope !70, !noalias !73
br label %bb49
bb49: ; preds = %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit102, %bb44
%258 = phi i64 [ %110, %bb44 ], [ %.pre, %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit102 ]
%k.0 = phi i16 [ %126, %bb44 ], [ %30, %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit102 ]
%259 = bitcast %"num::bignum::Big32x40"* %scale2 to i8*
call void @llvm.lifetime.start(i64 168, i8* nonnull %259)
%260 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale2, i64 0, i32 0
store i64 %258, i64* %260, align 8, !alias.scope !73, !noalias !70
%261 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale2, i64 0, i32 2
%262 = bitcast [40 x i32]* %261 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %262, i8* %68, i64 160, i32 8, i1 false) #16, !alias.scope !75
%263 = call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h1cf2bd21d8443b3bE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %scale2, i64 1)
%264 = bitcast %"num::bignum::Big32x40"* %scale4 to i8*
call void @llvm.lifetime.start(i64 168, i8* nonnull %264)
%265 = load i64, i64* %66, align 8, !alias.scope !76, !noalias !79
%266 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale4, i64 0, i32 0
store i64 %265, i64* %266, align 8, !alias.scope !79, !noalias !76
%267 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale4, i64 0, i32 2
%268 = bitcast [40 x i32]* %267 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %268, i8* %68, i64 160, i32 8, i1 false) #16, !alias.scope !81
%269 = call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h1cf2bd21d8443b3bE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %scale4, i64 2)
%270 = bitcast %"num::bignum::Big32x40"* %scale8 to i8*
call void @llvm.lifetime.start(i64 168, i8* nonnull %270)
%271 = load i64, i64* %66, align 8, !alias.scope !82, !noalias !85
%272 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale8, i64 0, i32 0
store i64 %271, i64* %272, align 8, !alias.scope !85, !noalias !82
%273 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale8, i64 0, i32 2
%274 = bitcast [40 x i32]* %273 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %274, i8* %68, i64 160, i32 8, i1 false) #16, !alias.scope !87
%275 = call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h1cf2bd21d8443b3bE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %scale8, i64 3)
%276 = load i64, i64* %39, align 8, !alias.scope !88, !noalias !95
%277 = load i64, i64* %272, align 8, !alias.scope !105, !noalias !106
%278 = icmp uge i64 %277, %276
%_0.0.sroa.speculated.i.i.i.i.i.i390 = select i1 %278, i64 %277, i64 %276
%279 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 0
%280 = icmp ugt i64 %_0.0.sroa.speculated.i.i.i.i.i.i390, 40
br i1 %280, label %bb4.i.i.i3.i.i.i.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i.i.lr.ph"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i.i.lr.ph": ; preds = %bb49
%281 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale8, i64 0, i32 2, i64 0
%282 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale4, i64 0, i32 2, i64 0
%283 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale2, i64 0, i32 2, i64 0
%284 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %minus, i64 0, i32 2, i64 0
%285 = bitcast %"num::bignum::Big32x40"* %_175 to i8*
%286 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_175, i64 0, i32 0
%287 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_175, i64 0, i32 2
%288 = bitcast [40 x i32]* %287 to i8*
%289 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_175, i64 0, i32 2, i64 0
%290 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %plus, i64 0, i32 2, i64 0
br label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i.i"
bb4.i.i.i3.i.i.i.i.loopexit: ; preds = %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit
br label %bb4.i.i.i3.i.i.i.i
bb4.i.i.i3.i.i.i.i: ; preds = %bb4.i.i.i3.i.i.i.i.loopexit, %bb49
%_0.0.sroa.speculated.i.i.i.i.i.i.lcssa = phi i64 [ %_0.0.sroa.speculated.i.i.i.i.i.i390, %bb49 ], [ %_0.0.sroa.speculated.i.i.i.i.i.i, %bb4.i.i.i3.i.i.i.i.loopexit ]
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %_0.0.sroa.speculated.i.i.i.i.i.i.lcssa, i64 40), !noalias !107
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i.i": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i.i.lr.ph", %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit
%_0.0.sroa.speculated.i.i.i.i.i.i392 = phi i64 [ %_0.0.sroa.speculated.i.i.i.i.i.i390, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i.i.lr.ph" ], [ %_0.0.sroa.speculated.i.i.i.i.i.i, %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit ]
%291 = phi i64 [ %276, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i.i.lr.ph" ], [ %592, %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit ]
%i.0391 = phi i64 [ 0, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i.i.lr.ph" ], [ %415, %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit ]
%292 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i.i.i.i392
%293 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale8, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i.i.i.i392
br label %bb5.i.i.i.i.i
bb5.i.i.i.i.i: ; preds = %bb24.i.i.i.i.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i.i"
%self.sroa.4.0.i.i.i.i.i = phi i32* [ %292, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i.i" ], [ %self.sroa.4.1.i.i.i.i.i, %bb24.i.i.i.i.i ]
%other1.sroa.4.0.i.i.i.i.i = phi i32* [ %293, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i.i" ], [ %other1.sroa.4.1.i.i.i.i.i, %bb24.i.i.i.i.i ]
%294 = icmp eq i32* %self.sroa.4.0.i.i.i.i.i, %279
br i1 %294, label %bb6.i.i.i.i.i, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i.i": ; preds = %bb5.i.i.i.i.i
%295 = getelementptr inbounds i32, i32* %self.sroa.4.0.i.i.i.i.i, i64 -1
%296 = load i32, i32* %295, align 4, !alias.scope !110, !noalias !115
br label %bb6.i.i.i.i.i
bb6.i.i.i.i.i: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i.i", %bb5.i.i.i.i.i
%self.sroa.4.1.i.i.i.i.i = phi i32* [ %279, %bb5.i.i.i.i.i ], [ %295, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i.i" ]
%_0.sroa.3.0.i.i.i.i82.i.i.i.i.i = phi i32 [ 0, %bb5.i.i.i.i.i ], [ %296, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i.i" ]
%_0.sroa.0.0.i.i.i.i83.i.i.i.i.i = phi i64 [ 0, %bb5.i.i.i.i.i ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i.i" ]
%297 = icmp eq i32* %other1.sroa.4.0.i.i.i.i.i, %281
br i1 %297, label %bb8.i.i.i.i.i, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i.i": ; preds = %bb6.i.i.i.i.i
%298 = getelementptr inbounds i32, i32* %other1.sroa.4.0.i.i.i.i.i, i64 -1
%299 = load i32, i32* %298, align 4, !alias.scope !119, !noalias !124
br label %bb8.i.i.i.i.i
bb8.i.i.i.i.i: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i.i", %bb6.i.i.i.i.i
%other1.sroa.4.1.i.i.i.i.i = phi i32* [ %281, %bb6.i.i.i.i.i ], [ %298, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i.i" ]
%_0.sroa.3.0.i.i.i.i.i.i.i.i.i = phi i32 [ 0, %bb6.i.i.i.i.i ], [ %299, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i.i" ]
%_0.sroa.0.0.i.i.i.i.i.i.i.i.i = phi i1 [ true, %bb6.i.i.i.i.i ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i.i" ]
%cond.i.i.i.i.i = icmp eq i64 %_0.sroa.0.0.i.i.i.i83.i.i.i.i.i, 0
br i1 %cond.i.i.i.i.i, label %bb14.i.i.i.i.i, label %bb15.i.i.i.i.i
bb14.i.i.i.i.i: ; preds = %bb8.i.i.i.i.i
%not.cond14.i.i.i.i.i = xor i1 %_0.sroa.0.0.i.i.i.i.i.i.i.i.i, true
%..i.i.i.i.i103 = sext i1 %not.cond14.i.i.i.i.i to i64
br label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.i
bb15.i.i.i.i.i: ; preds = %bb8.i.i.i.i.i
br i1 %_0.sroa.0.0.i.i.i.i.i.i.i.i.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.loopexit", label %bb24.i.i.i.i.i
bb24.i.i.i.i.i: ; preds = %bb15.i.i.i.i.i
%300 = icmp eq i32 %_0.sroa.3.0.i.i.i.i82.i.i.i.i.i, %_0.sroa.3.0.i.i.i.i.i.i.i.i.i
br i1 %300, label %bb5.i.i.i.i.i, label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.loopexit.i
_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.loopexit.i: ; preds = %bb24.i.i.i.i.i
%301 = icmp ult i32 %_0.sroa.3.0.i.i.i.i82.i.i.i.i.i, %_0.sroa.3.0.i.i.i.i.i.i.i.i.i
%..i.i.i.i.i.le.i = select i1 %301, i64 255, i64 1
br label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.i
_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.i: ; preds = %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.loopexit.i, %bb14.i.i.i.i.i
%_0.0.i.i.i.i.i = phi i64 [ %..i.i.i.i.i103, %bb14.i.i.i.i.i ], [ %..i.i.i.i.i.le.i, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.loopexit.i ]
%abi_cast.sroa.4.0.extract.shift.i.i = shl i64 %_0.0.i.i.i.i.i, 56
%sext.i.i = ashr exact i64 %abi_cast.sroa.4.0.extract.shift.i.i, 56
%switch.i.i = icmp ult i64 %sext.i.i, 2
br i1 %switch.i.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i", label %bb5.i104
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.loopexit": ; preds = %bb15.i.i.i.i.i
br label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.loopexit", %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.i
%.idx.i.i = shl nuw i64 %_0.0.sroa.speculated.i.i.i.i.i.i392, 2
%302 = sdiv i64 %.idx.i.i, 4
%.idx.off.i.i = or i64 %.idx.i.i, 3
%303 = icmp ult i64 %.idx.off.i.i, 7
br i1 %303, label %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit.i, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.i.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.i.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.i"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.i": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.i.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.i"
%noborrow.050.i.i = phi i32 [ %316, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.i" ], [ 1, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.i.preheader" ]
%iter.sroa.8.049.i.i = phi i64 [ %306, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.i" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.i.preheader" ]
%304 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %iter.sroa.8.049.i.i
%305 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale8, i64 0, i32 2, i64 %iter.sroa.8.049.i.i
%306 = add nuw i64 %iter.sroa.8.049.i.i, 1
%307 = load i32, i32* %304, align 4, !noalias !125
%308 = load i32, i32* %305, align 4, !alias.scope !128, !noalias !129
%309 = xor i32 %308, -1
%310 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %307, i32 %309) #16
%311 = extractvalue { i32, i1 } %310, 0
%312 = extractvalue { i32, i1 } %310, 1
%313 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %311, i32 %noborrow.050.i.i) #16
%314 = extractvalue { i32, i1 } %313, 0
%315 = extractvalue { i32, i1 } %313, 1
%brmerge.i.i.i = or i1 %312, %315
store i32 %314, i32* %304, align 4, !noalias !125
%316 = zext i1 %brmerge.i.i.i to i32
%317 = icmp ult i64 %306, %302
br i1 %317, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.i", label %bb9.i.i
bb9.i.i: ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.i"
br i1 %brmerge.i.i.i, label %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit.i, label %bb12.i.i
bb12.i.i: ; preds = %bb9.i.i
call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num6bignum8Big32x403sub14_MSG_FILE_LINE17he6988b9083a66661E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*)), !noalias !130
unreachable
_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit.i: ; preds = %bb9.i.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i"
store i64 %_0.0.sroa.speculated.i.i.i.i.i.i392, i64* %39, align 8, !noalias !125
br label %bb5.i104
bb5.i104: ; preds = %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit.i, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.i
%318 = phi i64 [ %_0.0.sroa.speculated.i.i.i.i.i.i392, %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit.i ], [ %291, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.i ]
%d.0.i = phi i8 [ 8, %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit.i ], [ 0, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.i ]
%319 = load i64, i64* %266, align 8, !alias.scope !131, !noalias !138
%320 = icmp uge i64 %319, %318
%_0.0.sroa.speculated.i.i.i.i.i5.i = select i1 %320, i64 %319, i64 %318
%321 = icmp ugt i64 %_0.0.sroa.speculated.i.i.i.i.i5.i, 40
br i1 %321, label %bb4.i.i.i3.i.i.i6.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i7.i"
bb4.i.i.i3.i.i.i6.i: ; preds = %bb5.i104
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %_0.0.sroa.speculated.i.i.i.i.i5.i, i64 40), !noalias !142
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i7.i": ; preds = %bb5.i104
%322 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i.i.i5.i
%323 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale4, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i.i.i5.i
br label %bb5.i.i.i.i10.i
bb5.i.i.i.i10.i: ; preds = %bb24.i.i.i.i27.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i7.i"
%self.sroa.4.0.i.i.i.i8.i = phi i32* [ %322, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i7.i" ], [ %self.sroa.4.1.i.i.i.i12.i, %bb24.i.i.i.i27.i ]
%other1.sroa.4.0.i.i.i.i9.i = phi i32* [ %323, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i7.i" ], [ %other1.sroa.4.1.i.i.i.i17.i, %bb24.i.i.i.i27.i ]
%324 = icmp eq i32* %self.sroa.4.0.i.i.i.i8.i, %279
br i1 %324, label %bb6.i.i.i.i15.i, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i11.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i11.i": ; preds = %bb5.i.i.i.i10.i
%325 = getelementptr inbounds i32, i32* %self.sroa.4.0.i.i.i.i8.i, i64 -1
%326 = load i32, i32* %325, align 4, !alias.scope !145, !noalias !150
br label %bb6.i.i.i.i15.i
bb6.i.i.i.i15.i: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i11.i", %bb5.i.i.i.i10.i
%self.sroa.4.1.i.i.i.i12.i = phi i32* [ %279, %bb5.i.i.i.i10.i ], [ %325, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i11.i" ]
%_0.sroa.3.0.i.i.i.i82.i.i.i.i13.i = phi i32 [ 0, %bb5.i.i.i.i10.i ], [ %326, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i11.i" ]
%_0.sroa.0.0.i.i.i.i83.i.i.i.i14.i = phi i64 [ 0, %bb5.i.i.i.i10.i ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i11.i" ]
%327 = icmp eq i32* %other1.sroa.4.0.i.i.i.i9.i, %282
br i1 %327, label %bb8.i.i.i.i21.i, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i16.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i16.i": ; preds = %bb6.i.i.i.i15.i
%328 = getelementptr inbounds i32, i32* %other1.sroa.4.0.i.i.i.i9.i, i64 -1
%329 = load i32, i32* %328, align 4, !alias.scope !154, !noalias !159
br label %bb8.i.i.i.i21.i
bb8.i.i.i.i21.i: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i16.i", %bb6.i.i.i.i15.i
%other1.sroa.4.1.i.i.i.i17.i = phi i32* [ %282, %bb6.i.i.i.i15.i ], [ %328, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i16.i" ]
%_0.sroa.3.0.i.i.i.i.i.i.i.i18.i = phi i32 [ 0, %bb6.i.i.i.i15.i ], [ %329, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i16.i" ]
%_0.sroa.0.0.i.i.i.i.i.i.i.i19.i = phi i1 [ true, %bb6.i.i.i.i15.i ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i16.i" ]
%cond.i.i.i.i20.i = icmp eq i64 %_0.sroa.0.0.i.i.i.i83.i.i.i.i14.i, 0
br i1 %cond.i.i.i.i20.i, label %bb14.i.i.i.i24.i, label %bb15.i.i.i.i25.i
bb14.i.i.i.i24.i: ; preds = %bb8.i.i.i.i21.i
%not.cond14.i.i.i.i22.i = xor i1 %_0.sroa.0.0.i.i.i.i.i.i.i.i19.i, true
%..i.i.i.i23.i = sext i1 %not.cond14.i.i.i.i22.i to i64
br label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit32.i
bb15.i.i.i.i25.i: ; preds = %bb8.i.i.i.i21.i
br i1 %_0.sroa.0.0.i.i.i.i.i.i.i.i19.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i37.i.loopexit", label %bb24.i.i.i.i27.i
bb24.i.i.i.i27.i: ; preds = %bb15.i.i.i.i25.i
%330 = icmp eq i32 %_0.sroa.3.0.i.i.i.i82.i.i.i.i13.i, %_0.sroa.3.0.i.i.i.i.i.i.i.i18.i
br i1 %330, label %bb5.i.i.i.i10.i, label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit32.loopexit.i
_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit32.loopexit.i: ; preds = %bb24.i.i.i.i27.i
%331 = icmp ult i32 %_0.sroa.3.0.i.i.i.i82.i.i.i.i13.i, %_0.sroa.3.0.i.i.i.i.i.i.i.i18.i
%..i.i.i.i.i26.le.i = select i1 %331, i64 255, i64 1
br label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit32.i
_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit32.i: ; preds = %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit32.loopexit.i, %bb14.i.i.i.i24.i
%_0.0.i.i.i.i28.i = phi i64 [ %..i.i.i.i23.i, %bb14.i.i.i.i24.i ], [ %..i.i.i.i.i26.le.i, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit32.loopexit.i ]
%abi_cast.sroa.4.0.extract.shift.i29.i = shl i64 %_0.0.i.i.i.i28.i, 56
%sext.i30.i = ashr exact i64 %abi_cast.sroa.4.0.extract.shift.i29.i, 56
%switch.i31.i = icmp ult i64 %sext.i30.i, 2
br i1 %switch.i31.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i37.i", label %bb10.i105
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i37.i.loopexit": ; preds = %bb15.i.i.i.i25.i
br label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i37.i"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i37.i": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i37.i.loopexit", %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit32.i
%.idx.i35.i = shl nuw i64 %_0.0.sroa.speculated.i.i.i.i.i5.i, 2
%332 = sdiv i64 %.idx.i35.i, 4
%.idx.off.i36.i = or i64 %.idx.i35.i, 3
%333 = icmp ult i64 %.idx.off.i36.i, 7
br i1 %333, label %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit44.i, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i41.i.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i41.i.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i37.i"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i41.i"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i41.i": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i41.i.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i41.i"
%noborrow.050.i38.i = phi i32 [ %346, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i41.i" ], [ 1, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i41.i.preheader" ]
%iter.sroa.8.049.i39.i = phi i64 [ %336, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i41.i" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i41.i.preheader" ]
%334 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %iter.sroa.8.049.i39.i
%335 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale4, i64 0, i32 2, i64 %iter.sroa.8.049.i39.i
%336 = add nuw i64 %iter.sroa.8.049.i39.i, 1
%337 = load i32, i32* %334, align 4, !noalias !160
%338 = load i32, i32* %335, align 4, !alias.scope !163, !noalias !164
%339 = xor i32 %338, -1
%340 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %337, i32 %339) #16
%341 = extractvalue { i32, i1 } %340, 0
%342 = extractvalue { i32, i1 } %340, 1
%343 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %341, i32 %noborrow.050.i38.i) #16
%344 = extractvalue { i32, i1 } %343, 0
%345 = extractvalue { i32, i1 } %343, 1
%brmerge.i.i40.i = or i1 %342, %345
store i32 %344, i32* %334, align 4, !noalias !160
%346 = zext i1 %brmerge.i.i40.i to i32
%347 = icmp ult i64 %336, %332
br i1 %347, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i41.i", label %bb9.i42.i
bb9.i42.i: ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i41.i"
br i1 %brmerge.i.i40.i, label %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit44.i, label %bb12.i43.i
bb12.i43.i: ; preds = %bb9.i42.i
call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num6bignum8Big32x403sub14_MSG_FILE_LINE17he6988b9083a66661E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*)), !noalias !165
unreachable
_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit44.i: ; preds = %bb9.i42.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i37.i"
store i64 %_0.0.sroa.speculated.i.i.i.i.i5.i, i64* %39, align 8, !noalias !160
%348 = or i8 %d.0.i, 4
br label %bb10.i105
bb10.i105: ; preds = %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit44.i, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit32.i
%349 = phi i64 [ %_0.0.sroa.speculated.i.i.i.i.i5.i, %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit44.i ], [ %318, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit32.i ]
%d.1.i = phi i8 [ %348, %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit44.i ], [ %d.0.i, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit32.i ]
%350 = load i64, i64* %260, align 8, !alias.scope !166, !noalias !173
%351 = icmp uge i64 %350, %349
%_0.0.sroa.speculated.i.i.i.i.i45.i = select i1 %351, i64 %350, i64 %349
%352 = icmp ugt i64 %_0.0.sroa.speculated.i.i.i.i.i45.i, 40
br i1 %352, label %bb4.i.i.i3.i.i.i46.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i47.i"
bb4.i.i.i3.i.i.i46.i: ; preds = %bb10.i105
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %_0.0.sroa.speculated.i.i.i.i.i45.i, i64 40), !noalias !177
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i47.i": ; preds = %bb10.i105
%353 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i.i.i45.i
%354 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale2, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i.i.i45.i
br label %bb5.i.i.i.i50.i
bb5.i.i.i.i50.i: ; preds = %bb24.i.i.i.i67.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i47.i"
%self.sroa.4.0.i.i.i.i48.i = phi i32* [ %353, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i47.i" ], [ %self.sroa.4.1.i.i.i.i52.i, %bb24.i.i.i.i67.i ]
%other1.sroa.4.0.i.i.i.i49.i = phi i32* [ %354, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i47.i" ], [ %other1.sroa.4.1.i.i.i.i57.i, %bb24.i.i.i.i67.i ]
%355 = icmp eq i32* %self.sroa.4.0.i.i.i.i48.i, %279
br i1 %355, label %bb6.i.i.i.i55.i, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i51.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i51.i": ; preds = %bb5.i.i.i.i50.i
%356 = getelementptr inbounds i32, i32* %self.sroa.4.0.i.i.i.i48.i, i64 -1
%357 = load i32, i32* %356, align 4, !alias.scope !180, !noalias !185
br label %bb6.i.i.i.i55.i
bb6.i.i.i.i55.i: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i51.i", %bb5.i.i.i.i50.i
%self.sroa.4.1.i.i.i.i52.i = phi i32* [ %279, %bb5.i.i.i.i50.i ], [ %356, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i51.i" ]
%_0.sroa.3.0.i.i.i.i82.i.i.i.i53.i = phi i32 [ 0, %bb5.i.i.i.i50.i ], [ %357, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i51.i" ]
%_0.sroa.0.0.i.i.i.i83.i.i.i.i54.i = phi i64 [ 0, %bb5.i.i.i.i50.i ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i51.i" ]
%358 = icmp eq i32* %other1.sroa.4.0.i.i.i.i49.i, %283
br i1 %358, label %bb8.i.i.i.i61.i, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i56.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i56.i": ; preds = %bb6.i.i.i.i55.i
%359 = getelementptr inbounds i32, i32* %other1.sroa.4.0.i.i.i.i49.i, i64 -1
%360 = load i32, i32* %359, align 4, !alias.scope !189, !noalias !194
br label %bb8.i.i.i.i61.i
bb8.i.i.i.i61.i: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i56.i", %bb6.i.i.i.i55.i
%other1.sroa.4.1.i.i.i.i57.i = phi i32* [ %283, %bb6.i.i.i.i55.i ], [ %359, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i56.i" ]
%_0.sroa.3.0.i.i.i.i.i.i.i.i58.i = phi i32 [ 0, %bb6.i.i.i.i55.i ], [ %360, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i56.i" ]
%_0.sroa.0.0.i.i.i.i.i.i.i.i59.i = phi i1 [ true, %bb6.i.i.i.i55.i ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i56.i" ]
%cond.i.i.i.i60.i = icmp eq i64 %_0.sroa.0.0.i.i.i.i83.i.i.i.i54.i, 0
br i1 %cond.i.i.i.i60.i, label %bb14.i.i.i.i64.i, label %bb15.i.i.i.i65.i
bb14.i.i.i.i64.i: ; preds = %bb8.i.i.i.i61.i
%not.cond14.i.i.i.i62.i = xor i1 %_0.sroa.0.0.i.i.i.i.i.i.i.i59.i, true
%..i.i.i.i63.i = sext i1 %not.cond14.i.i.i.i62.i to i64
br label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit72.i
bb15.i.i.i.i65.i: ; preds = %bb8.i.i.i.i61.i
br i1 %_0.sroa.0.0.i.i.i.i.i.i.i.i59.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i77.i.loopexit", label %bb24.i.i.i.i67.i
bb24.i.i.i.i67.i: ; preds = %bb15.i.i.i.i65.i
%361 = icmp eq i32 %_0.sroa.3.0.i.i.i.i82.i.i.i.i53.i, %_0.sroa.3.0.i.i.i.i.i.i.i.i58.i
br i1 %361, label %bb5.i.i.i.i50.i, label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit72.loopexit.i
_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit72.loopexit.i: ; preds = %bb24.i.i.i.i67.i
%362 = icmp ult i32 %_0.sroa.3.0.i.i.i.i82.i.i.i.i53.i, %_0.sroa.3.0.i.i.i.i.i.i.i.i58.i
%..i.i.i.i.i66.le.i = select i1 %362, i64 255, i64 1
br label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit72.i
_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit72.i: ; preds = %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit72.loopexit.i, %bb14.i.i.i.i64.i
%_0.0.i.i.i.i68.i = phi i64 [ %..i.i.i.i63.i, %bb14.i.i.i.i64.i ], [ %..i.i.i.i.i66.le.i, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit72.loopexit.i ]
%abi_cast.sroa.4.0.extract.shift.i69.i = shl i64 %_0.0.i.i.i.i68.i, 56
%sext.i70.i = ashr exact i64 %abi_cast.sroa.4.0.extract.shift.i69.i, 56
%switch.i71.i = icmp ult i64 %sext.i70.i, 2
br i1 %switch.i71.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i77.i", label %bb15.i
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i77.i.loopexit": ; preds = %bb15.i.i.i.i65.i
br label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i77.i"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i77.i": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i77.i.loopexit", %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit72.i
%.idx.i75.i = shl nuw i64 %_0.0.sroa.speculated.i.i.i.i.i45.i, 2
%363 = sdiv i64 %.idx.i75.i, 4
%.idx.off.i76.i = or i64 %.idx.i75.i, 3
%364 = icmp ult i64 %.idx.off.i76.i, 7
br i1 %364, label %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit84.i, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i81.i.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i81.i.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i77.i"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i81.i"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i81.i": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i81.i.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i81.i"
%noborrow.050.i78.i = phi i32 [ %377, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i81.i" ], [ 1, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i81.i.preheader" ]
%iter.sroa.8.049.i79.i = phi i64 [ %367, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i81.i" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i81.i.preheader" ]
%365 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %iter.sroa.8.049.i79.i
%366 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale2, i64 0, i32 2, i64 %iter.sroa.8.049.i79.i
%367 = add nuw i64 %iter.sroa.8.049.i79.i, 1
%368 = load i32, i32* %365, align 4, !noalias !195
%369 = load i32, i32* %366, align 4, !alias.scope !198, !noalias !199
%370 = xor i32 %369, -1
%371 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %368, i32 %370) #16
%372 = extractvalue { i32, i1 } %371, 0
%373 = extractvalue { i32, i1 } %371, 1
%374 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %372, i32 %noborrow.050.i78.i) #16
%375 = extractvalue { i32, i1 } %374, 0
%376 = extractvalue { i32, i1 } %374, 1
%brmerge.i.i80.i = or i1 %373, %376
store i32 %375, i32* %365, align 4, !noalias !195
%377 = zext i1 %brmerge.i.i80.i to i32
%378 = icmp ult i64 %367, %363
br i1 %378, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i81.i", label %bb9.i82.i
bb9.i82.i: ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i81.i"
br i1 %brmerge.i.i80.i, label %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit84.i, label %bb12.i83.i
bb12.i83.i: ; preds = %bb9.i82.i
call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num6bignum8Big32x403sub14_MSG_FILE_LINE17he6988b9083a66661E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*)), !noalias !200
unreachable
_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit84.i: ; preds = %bb9.i82.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i77.i"
store i64 %_0.0.sroa.speculated.i.i.i.i.i45.i, i64* %39, align 8, !noalias !195
%379 = add nsw i8 %d.1.i, 2
br label %bb15.i
bb15.i: ; preds = %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit84.i, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit72.i
%380 = phi i64 [ %_0.0.sroa.speculated.i.i.i.i.i45.i, %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit84.i ], [ %349, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit72.i ]
%d.2.i = phi i8 [ %379, %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit84.i ], [ %d.1.i, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit72.i ]
%381 = load i64, i64* %66, align 8, !alias.scope !201, !noalias !208
%382 = icmp uge i64 %381, %380
%_0.0.sroa.speculated.i.i.i.i.i85.i = select i1 %382, i64 %381, i64 %380
%383 = icmp ugt i64 %_0.0.sroa.speculated.i.i.i.i.i85.i, 40
br i1 %383, label %bb4.i.i.i3.i.i.i86.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i87.i"
bb4.i.i.i3.i.i.i86.i: ; preds = %bb15.i
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %_0.0.sroa.speculated.i.i.i.i.i85.i, i64 40), !noalias !212
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i87.i": ; preds = %bb15.i
%384 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i.i.i85.i
%385 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i.i.i85.i
br label %bb5.i.i.i.i90.i
bb5.i.i.i.i90.i: ; preds = %bb24.i.i.i.i107.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i87.i"
%self.sroa.4.0.i.i.i.i88.i = phi i32* [ %384, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i87.i" ], [ %self.sroa.4.1.i.i.i.i92.i, %bb24.i.i.i.i107.i ]
%other1.sroa.4.0.i.i.i.i89.i = phi i32* [ %385, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i87.i" ], [ %other1.sroa.4.1.i.i.i.i97.i, %bb24.i.i.i.i107.i ]
%386 = icmp eq i32* %self.sroa.4.0.i.i.i.i88.i, %279
br i1 %386, label %bb6.i.i.i.i95.i, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i91.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i91.i": ; preds = %bb5.i.i.i.i90.i
%387 = getelementptr inbounds i32, i32* %self.sroa.4.0.i.i.i.i88.i, i64 -1
%388 = load i32, i32* %387, align 4, !alias.scope !215, !noalias !220
br label %bb6.i.i.i.i95.i
bb6.i.i.i.i95.i: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i91.i", %bb5.i.i.i.i90.i
%self.sroa.4.1.i.i.i.i92.i = phi i32* [ %279, %bb5.i.i.i.i90.i ], [ %387, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i91.i" ]
%_0.sroa.3.0.i.i.i.i82.i.i.i.i93.i = phi i32 [ 0, %bb5.i.i.i.i90.i ], [ %388, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i91.i" ]
%_0.sroa.0.0.i.i.i.i83.i.i.i.i94.i = phi i64 [ 0, %bb5.i.i.i.i90.i ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i91.i" ]
%389 = icmp eq i32* %other1.sroa.4.0.i.i.i.i89.i, %112
br i1 %389, label %bb8.i.i.i.i101.i, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i96.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i96.i": ; preds = %bb6.i.i.i.i95.i
%390 = getelementptr inbounds i32, i32* %other1.sroa.4.0.i.i.i.i89.i, i64 -1
%391 = load i32, i32* %390, align 4, !alias.scope !224, !noalias !229
br label %bb8.i.i.i.i101.i
bb8.i.i.i.i101.i: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i96.i", %bb6.i.i.i.i95.i
%other1.sroa.4.1.i.i.i.i97.i = phi i32* [ %112, %bb6.i.i.i.i95.i ], [ %390, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i96.i" ]
%_0.sroa.3.0.i.i.i.i.i.i.i.i98.i = phi i32 [ 0, %bb6.i.i.i.i95.i ], [ %391, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i96.i" ]
%_0.sroa.0.0.i.i.i.i.i.i.i.i99.i = phi i1 [ true, %bb6.i.i.i.i95.i ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i96.i" ]
%cond.i.i.i.i100.i = icmp eq i64 %_0.sroa.0.0.i.i.i.i83.i.i.i.i94.i, 0
br i1 %cond.i.i.i.i100.i, label %bb14.i.i.i.i104.i, label %bb15.i.i.i.i105.i
bb14.i.i.i.i104.i: ; preds = %bb8.i.i.i.i101.i
%not.cond14.i.i.i.i102.i = xor i1 %_0.sroa.0.0.i.i.i.i.i.i.i.i99.i, true
%..i.i.i.i103.i = sext i1 %not.cond14.i.i.i.i102.i to i64
br label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit112.i
bb15.i.i.i.i105.i: ; preds = %bb8.i.i.i.i101.i
br i1 %_0.sroa.0.0.i.i.i.i.i.i.i.i99.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i117.i.loopexit", label %bb24.i.i.i.i107.i
bb24.i.i.i.i107.i: ; preds = %bb15.i.i.i.i105.i
%392 = icmp eq i32 %_0.sroa.3.0.i.i.i.i82.i.i.i.i93.i, %_0.sroa.3.0.i.i.i.i.i.i.i.i98.i
br i1 %392, label %bb5.i.i.i.i90.i, label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit112.loopexit.i
_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit112.loopexit.i: ; preds = %bb24.i.i.i.i107.i
%393 = icmp ult i32 %_0.sroa.3.0.i.i.i.i82.i.i.i.i93.i, %_0.sroa.3.0.i.i.i.i.i.i.i.i98.i
%..i.i.i.i.i106.le.i = select i1 %393, i64 255, i64 1
br label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit112.i
_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit112.i: ; preds = %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit112.loopexit.i, %bb14.i.i.i.i104.i
%_0.0.i.i.i.i108.i = phi i64 [ %..i.i.i.i103.i, %bb14.i.i.i.i104.i ], [ %..i.i.i.i.i106.le.i, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit112.loopexit.i ]
%abi_cast.sroa.4.0.extract.shift.i109.i = shl i64 %_0.0.i.i.i.i108.i, 56
%sext.i110.i = ashr exact i64 %abi_cast.sroa.4.0.extract.shift.i109.i, 56
%switch.i111.i = icmp ult i64 %sext.i110.i, 2
br i1 %switch.i111.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i117.i", label %_ZN4core3num7flt2dec8strategy6dragon15div_rem_upto_1617h727601a82fdbd392E.exit
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i117.i.loopexit": ; preds = %bb15.i.i.i.i105.i
br label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i117.i"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i117.i": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i117.i.loopexit", %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit112.i
%.idx.i115.i = shl nuw i64 %_0.0.sroa.speculated.i.i.i.i.i85.i, 2
%394 = sdiv i64 %.idx.i115.i, 4
%.idx.off.i116.i = or i64 %.idx.i115.i, 3
%395 = icmp ult i64 %.idx.off.i116.i, 7
br i1 %395, label %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit124.i, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i121.i.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i121.i.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i117.i"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i121.i"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i121.i": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i121.i.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i121.i"
%noborrow.050.i118.i = phi i32 [ %408, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i121.i" ], [ 1, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i121.i.preheader" ]
%iter.sroa.8.049.i119.i = phi i64 [ %398, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i121.i" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i121.i.preheader" ]
%396 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %iter.sroa.8.049.i119.i
%397 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i64 0, i32 2, i64 %iter.sroa.8.049.i119.i
%398 = add nuw i64 %iter.sroa.8.049.i119.i, 1
%399 = load i32, i32* %396, align 4, !noalias !230
%400 = load i32, i32* %397, align 4, !alias.scope !233, !noalias !234
%401 = xor i32 %400, -1
%402 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %399, i32 %401) #16
%403 = extractvalue { i32, i1 } %402, 0
%404 = extractvalue { i32, i1 } %402, 1
%405 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %403, i32 %noborrow.050.i118.i) #16
%406 = extractvalue { i32, i1 } %405, 0
%407 = extractvalue { i32, i1 } %405, 1
%brmerge.i.i120.i = or i1 %404, %407
store i32 %406, i32* %396, align 4, !noalias !230
%408 = zext i1 %brmerge.i.i120.i to i32
%409 = icmp ult i64 %398, %394
br i1 %409, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i121.i", label %bb9.i122.i
bb9.i122.i: ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i121.i"
br i1 %brmerge.i.i120.i, label %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit124.i, label %bb12.i123.i
bb12.i123.i: ; preds = %bb9.i122.i
call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num6bignum8Big32x403sub14_MSG_FILE_LINE17he6988b9083a66661E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*)), !noalias !235
unreachable
_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit124.i: ; preds = %bb9.i122.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i117.i"
store i64 %_0.0.sroa.speculated.i.i.i.i.i85.i, i64* %39, align 8, !noalias !230
%410 = add nsw i8 %d.2.i, 1
br label %_ZN4core3num7flt2dec8strategy6dragon15div_rem_upto_1617h727601a82fdbd392E.exit
_ZN4core3num7flt2dec8strategy6dragon15div_rem_upto_1617h727601a82fdbd392E.exit: ; preds = %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit112.i, %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit124.i
%411 = phi i64 [ %_0.0.sroa.speculated.i.i.i.i.i85.i, %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit124.i ], [ %380, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit112.i ]
%d.3.i = phi i8 [ %410, %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit124.i ], [ %d.2.i, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit112.i ]
%412 = icmp ult i64 %i.0391, %3
br i1 %412, label %bb58, label %panic, !prof !5
bb58: ; preds = %_ZN4core3num7flt2dec8strategy6dragon15div_rem_upto_1617h727601a82fdbd392E.exit
%413 = getelementptr inbounds i8, i8* %2, i64 %i.0391
%414 = add i8 %d.3.i, 48
store i8 %414, i8* %413, align 1
%415 = add i64 %i.0391, 1
%416 = load i64, i64* %49, align 8, !alias.scope !236, !noalias !239
%417 = icmp uge i64 %416, %411
%_0.0.sroa.speculated.i.i.i106 = select i1 %417, i64 %416, i64 %411
%418 = icmp ugt i64 %_0.0.sroa.speculated.i.i.i106, 40
br i1 %418, label %bb4.i.i.i3.i107, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i108"
bb4.i.i.i3.i107: ; preds = %bb58
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %_0.0.sroa.speculated.i.i.i106, i64 40), !noalias !241
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i108": ; preds = %bb58
%419 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i106
%420 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %minus, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i106
br label %bb5.i.i111
bb5.i.i111: ; preds = %bb24.i.i128, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i108"
%self.sroa.4.0.i.i109 = phi i32* [ %419, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i108" ], [ %self.sroa.4.1.i.i113, %bb24.i.i128 ]
%other1.sroa.4.0.i.i110 = phi i32* [ %420, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i108" ], [ %other1.sroa.4.1.i.i118, %bb24.i.i128 ]
%421 = icmp eq i32* %self.sroa.4.0.i.i109, %279
br i1 %421, label %bb6.i.i116, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i112"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i112": ; preds = %bb5.i.i111
%422 = getelementptr inbounds i32, i32* %self.sroa.4.0.i.i109, i64 -1
%423 = load i32, i32* %422, align 4, !alias.scope !244, !noalias !249
br label %bb6.i.i116
bb6.i.i116: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i112", %bb5.i.i111
%self.sroa.4.1.i.i113 = phi i32* [ %279, %bb5.i.i111 ], [ %422, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i112" ]
%_0.sroa.3.0.i.i.i.i82.i.i114 = phi i32 [ 0, %bb5.i.i111 ], [ %423, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i112" ]
%_0.sroa.0.0.i.i.i.i83.i.i115 = phi i64 [ 0, %bb5.i.i111 ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i112" ]
%424 = icmp eq i32* %other1.sroa.4.0.i.i110, %284
br i1 %424, label %bb8.i.i122, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i117"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i117": ; preds = %bb6.i.i116
%425 = getelementptr inbounds i32, i32* %other1.sroa.4.0.i.i110, i64 -1
%426 = load i32, i32* %425, align 4, !alias.scope !253, !noalias !258
br label %bb8.i.i122
bb8.i.i122: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i117", %bb6.i.i116
%other1.sroa.4.1.i.i118 = phi i32* [ %284, %bb6.i.i116 ], [ %425, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i117" ]
%_0.sroa.3.0.i.i.i.i.i.i119 = phi i32 [ 0, %bb6.i.i116 ], [ %426, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i117" ]
%_0.sroa.0.0.i.i.i.i.i.i120 = phi i1 [ true, %bb6.i.i116 ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i117" ]
%cond.i.i121 = icmp eq i64 %_0.sroa.0.0.i.i.i.i83.i.i115, 0
br i1 %cond.i.i121, label %bb14.i.i125, label %bb15.i.i126
bb14.i.i125: ; preds = %bb8.i.i122
%not.cond14.i.i123 = xor i1 %_0.sroa.0.0.i.i.i.i.i.i120, true
%..i.i124 = sext i1 %not.cond14.i.i123 to i8
br label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit130"
bb15.i.i126: ; preds = %bb8.i.i122
br i1 %_0.sroa.0.0.i.i.i.i.i.i120, label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit130.loopexit", label %bb24.i.i128
bb24.i.i128: ; preds = %bb15.i.i126
%427 = icmp eq i32 %_0.sroa.3.0.i.i.i.i82.i.i114, %_0.sroa.3.0.i.i.i.i.i.i119
%428 = icmp ult i32 %_0.sroa.3.0.i.i.i.i82.i.i114, %_0.sroa.3.0.i.i.i.i.i.i119
%..i.i.i127 = select i1 %428, i8 -1, i8 1
br i1 %427, label %bb5.i.i111, label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit130.loopexit"
"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit130.loopexit": ; preds = %bb24.i.i128, %bb15.i.i126
%_0.0.i.i129.ph = phi i8 [ %..i.i.i127, %bb24.i.i128 ], [ 1, %bb15.i.i126 ]
br label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit130"
"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit130": ; preds = %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit130.loopexit", %bb14.i.i125
%_0.0.i.i129 = phi i8 [ %..i.i124, %bb14.i.i125 ], [ %_0.0.i.i129.ph, %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit130.loopexit" ]
%429 = icmp slt i8 %_0.0.i.i129, %19
call void @llvm.lifetime.start(i64 168, i8* nonnull %285)
store i64 %411, i64* %286, align 8, !alias.scope !259, !noalias !262
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %288, i8* %41, i64 160, i32 8, i1 false) #16, !alias.scope !264
%430 = load i64, i64* %59, align 8, !alias.scope !265
%431 = icmp uge i64 %430, %411
%_0.0.sroa.speculated.i.i.i131 = select i1 %431, i64 %430, i64 %411
%432 = icmp ugt i64 %_0.0.sroa.speculated.i.i.i131, 40
br i1 %432, label %bb4.i.i.i.i132, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i135"
bb4.i.i.i.i132: ; preds = %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit130"
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %_0.0.sroa.speculated.i.i.i131, i64 40), !noalias !268
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i135": ; preds = %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit130"
%.idx.i133 = shl nuw i64 %_0.0.sroa.speculated.i.i.i131, 2
%433 = sdiv i64 %.idx.i133, 4
%.idx.off.i134 = or i64 %.idx.i133, 3
%434 = icmp ult i64 %.idx.off.i134, 7
br i1 %434, label %_ZN4core3num6bignum8Big32x403add17hd2197a50c071fcf3E.exit146, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i139.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i139.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i135"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i139"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i139": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i139.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i139"
%carry.055.i136 = phi i32 [ %446, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i139" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i139.preheader" ]
%iter.sroa.8.054.i137 = phi i64 [ %437, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i139" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i139.preheader" ]
%435 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_175, i64 0, i32 2, i64 %iter.sroa.8.054.i137
%436 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %plus, i64 0, i32 2, i64 %iter.sroa.8.054.i137
%437 = add nuw i64 %iter.sroa.8.054.i137, 1
%438 = load i32, i32* %435, align 4, !noalias !265
%439 = load i32, i32* %436, align 4, !alias.scope !265
%440 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %438, i32 %439) #16
%441 = extractvalue { i32, i1 } %440, 0
%442 = extractvalue { i32, i1 } %440, 1
%443 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %441, i32 %carry.055.i136) #16
%444 = extractvalue { i32, i1 } %443, 0
%445 = extractvalue { i32, i1 } %443, 1
%brmerge.i.i138 = or i1 %442, %445
store i32 %444, i32* %435, align 4, !noalias !265
%446 = zext i1 %brmerge.i.i138 to i32
%447 = icmp ult i64 %437, %433
br i1 %447, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i139", label %bb9.i140
bb9.i140: ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i139"
br i1 %brmerge.i.i138, label %bb12.i141, label %_ZN4core3num6bignum8Big32x403add17hd2197a50c071fcf3E.exit146
bb12.i141: ; preds = %bb9.i140
%448 = icmp ult i64 %_0.0.sroa.speculated.i.i.i131, 40
br i1 %448, label %bb14.i142, label %panic.i145, !prof !5
bb14.i142: ; preds = %bb12.i141
%449 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_175, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i131
store i32 1, i32* %449, align 4, !noalias !265
%450 = add i64 %_0.0.sroa.speculated.i.i.i131, 1
br label %_ZN4core3num6bignum8Big32x403add17hd2197a50c071fcf3E.exit146
panic.i145: ; preds = %bb12.i141
call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4F to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %_0.0.sroa.speculated.i.i.i131, i64 40), !noalias !265
unreachable
_ZN4core3num6bignum8Big32x403add17hd2197a50c071fcf3E.exit146: ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i135", %bb9.i140, %bb14.i142
%sz.0.i143 = phi i64 [ %450, %bb14.i142 ], [ %_0.0.sroa.speculated.i.i.i131, %bb9.i140 ], [ %_0.0.sroa.speculated.i.i.i131, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i135" ]
store i64 %sz.0.i143, i64* %286, align 8, !noalias !265
%451 = icmp uge i64 %sz.0.i143, %381
%_0.0.sroa.speculated.i.i.i147 = select i1 %451, i64 %sz.0.i143, i64 %381
%452 = icmp ugt i64 %_0.0.sroa.speculated.i.i.i147, 40
br i1 %452, label %bb4.i.i.i3.i148, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i149"
bb4.i.i.i3.i148: ; preds = %_ZN4core3num6bignum8Big32x403add17hd2197a50c071fcf3E.exit146
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %_0.0.sroa.speculated.i.i.i147, i64 40), !noalias !271
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i149": ; preds = %_ZN4core3num6bignum8Big32x403add17hd2197a50c071fcf3E.exit146
%453 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i147
%454 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_175, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i147
br label %bb5.i.i152
bb5.i.i152: ; preds = %bb24.i.i169, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i149"
%self.sroa.4.0.i.i150 = phi i32* [ %453, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i149" ], [ %self.sroa.4.1.i.i154, %bb24.i.i169 ]
%other1.sroa.4.0.i.i151 = phi i32* [ %454, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i149" ], [ %other1.sroa.4.1.i.i159, %bb24.i.i169 ]
%455 = icmp eq i32* %self.sroa.4.0.i.i150, %112
br i1 %455, label %bb6.i.i157, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i153"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i153": ; preds = %bb5.i.i152
%456 = getelementptr inbounds i32, i32* %self.sroa.4.0.i.i150, i64 -1
%457 = load i32, i32* %456, align 4, !alias.scope !274, !noalias !281
br label %bb6.i.i157
bb6.i.i157: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i153", %bb5.i.i152
%self.sroa.4.1.i.i154 = phi i32* [ %112, %bb5.i.i152 ], [ %456, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i153" ]
%_0.sroa.3.0.i.i.i.i82.i.i155 = phi i32 [ 0, %bb5.i.i152 ], [ %457, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i153" ]
%_0.sroa.0.0.i.i.i.i83.i.i156 = phi i64 [ 0, %bb5.i.i152 ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i153" ]
%458 = icmp eq i32* %other1.sroa.4.0.i.i151, %289
br i1 %458, label %bb8.i.i163, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i158"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i158": ; preds = %bb6.i.i157
%459 = getelementptr inbounds i32, i32* %other1.sroa.4.0.i.i151, i64 -1
%460 = load i32, i32* %459, align 4, !alias.scope !286, !noalias !291
br label %bb8.i.i163
bb8.i.i163: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i158", %bb6.i.i157
%other1.sroa.4.1.i.i159 = phi i32* [ %289, %bb6.i.i157 ], [ %459, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i158" ]
%_0.sroa.3.0.i.i.i.i.i.i160 = phi i32 [ 0, %bb6.i.i157 ], [ %460, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i158" ]
%_0.sroa.0.0.i.i.i.i.i.i161 = phi i1 [ true, %bb6.i.i157 ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i158" ]
%cond.i.i162 = icmp eq i64 %_0.sroa.0.0.i.i.i.i83.i.i156, 0
br i1 %cond.i.i162, label %bb14.i.i166, label %bb15.i.i167
bb14.i.i166: ; preds = %bb8.i.i163
%not.cond14.i.i164 = xor i1 %_0.sroa.0.0.i.i.i.i.i.i161, true
%..i.i165 = sext i1 %not.cond14.i.i164 to i8
br label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit171"
bb15.i.i167: ; preds = %bb8.i.i163
br i1 %_0.sroa.0.0.i.i.i.i.i.i161, label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit171.loopexit", label %bb24.i.i169
bb24.i.i169: ; preds = %bb15.i.i167
%461 = icmp eq i32 %_0.sroa.3.0.i.i.i.i82.i.i155, %_0.sroa.3.0.i.i.i.i.i.i160
%462 = icmp ult i32 %_0.sroa.3.0.i.i.i.i82.i.i155, %_0.sroa.3.0.i.i.i.i.i.i160
%..i.i.i168 = select i1 %462, i8 -1, i8 1
br i1 %461, label %bb5.i.i152, label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit171.loopexit"
"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit171.loopexit": ; preds = %bb24.i.i169, %bb15.i.i167
%_0.0.i.i170.ph = phi i8 [ %..i.i.i168, %bb24.i.i169 ], [ 1, %bb15.i.i167 ]
br label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit171"
"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit171": ; preds = %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit171.loopexit", %bb14.i.i166
%_0.0.i.i170 = phi i8 [ %..i.i165, %bb14.i.i166 ], [ %_0.0.i.i170.ph, %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit171.loopexit" ]
%463 = icmp slt i8 %_0.0.i.i170, %19
call void @llvm.lifetime.end(i64 168, i8* nonnull %285)
%.15 = or i1 %429, %463
br i1 %.15, label %bb69, label %bb70
bb69: ; preds = %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit171"
br i1 %463, label %bb76, label %bb91
bb70: ; preds = %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit171"
%464 = icmp ugt i64 %411, 40
br i1 %464, label %bb4.i.i.i.i172, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i173"
bb4.i.i.i.i172: ; preds = %bb70
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %411, i64 40), !noalias !292
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i173": ; preds = %bb70
%465 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %411
%466 = icmp eq i64 %411, 0
br i1 %466, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit185, label %bb6.i180.preheader
bb6.i180.preheader: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i173"
%467 = shl i64 %411, 2
%468 = add i64 %467, -4
%469 = lshr exact i64 %468, 2
%470 = add nuw nsw i64 %469, 1
%xtraiter = and i64 %470, 3
%lcmp.mod = icmp eq i64 %xtraiter, 0
br i1 %lcmp.mod, label %bb6.i180.prol.loopexit, label %bb6.i180.prol.preheader
bb6.i180.prol.preheader: ; preds = %bb6.i180.preheader
br label %bb6.i180.prol
bb6.i180.prol: ; preds = %bb6.i180.prol, %bb6.i180.prol.preheader
%carry.020.i177.prol = phi i64 [ %476, %bb6.i180.prol ], [ 0, %bb6.i180.prol.preheader ]
%iter.sroa.0.019.i178.prol = phi i32* [ %471, %bb6.i180.prol ], [ %279, %bb6.i180.prol.preheader ]
%prol.iter = phi i64 [ %prol.iter.sub, %bb6.i180.prol ], [ %xtraiter, %bb6.i180.prol.preheader ]
%471 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i178.prol, i64 1
%472 = load i32, i32* %iter.sroa.0.019.i178.prol, align 4
%473 = zext i32 %472 to i64
%474 = mul nuw nsw i64 %473, 10
%475 = add nuw nsw i64 %474, %carry.020.i177.prol
%476 = lshr i64 %475, 32
%abi_cast.sroa.4.0.extract.trunc.i179.prol = trunc i64 %475 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i179.prol, i32* %iter.sroa.0.019.i178.prol, align 4
%prol.iter.sub = add i64 %prol.iter, -1
%prol.iter.cmp = icmp eq i64 %prol.iter.sub, 0
br i1 %prol.iter.cmp, label %bb6.i180.prol.loopexit.unr-lcssa, label %bb6.i180.prol, !llvm.loop !295
bb6.i180.prol.loopexit.unr-lcssa: ; preds = %bb6.i180.prol
br label %bb6.i180.prol.loopexit
bb6.i180.prol.loopexit: ; preds = %bb6.i180.preheader, %bb6.i180.prol.loopexit.unr-lcssa
%.lcssa.unr = phi i64 [ undef, %bb6.i180.preheader ], [ %476, %bb6.i180.prol.loopexit.unr-lcssa ]
%carry.020.i177.unr = phi i64 [ 0, %bb6.i180.preheader ], [ %476, %bb6.i180.prol.loopexit.unr-lcssa ]
%iter.sroa.0.019.i178.unr = phi i32* [ %279, %bb6.i180.preheader ], [ %471, %bb6.i180.prol.loopexit.unr-lcssa ]
%477 = icmp ult i64 %468, 12
br i1 %477, label %bb5.i176, label %bb6.i180.preheader.new
bb6.i180.preheader.new: ; preds = %bb6.i180.prol.loopexit
br label %bb6.i180
bb5.i176.unr-lcssa: ; preds = %bb6.i180
br label %bb5.i176
bb5.i176: ; preds = %bb6.i180.prol.loopexit, %bb5.i176.unr-lcssa
%.lcssa = phi i64 [ %.lcssa.unr, %bb6.i180.prol.loopexit ], [ %502, %bb5.i176.unr-lcssa ]
%abi_cast.sroa.0.0.extract.trunc.i175 = trunc i64 %.lcssa to i32
%478 = icmp eq i32 %abi_cast.sroa.0.0.extract.trunc.i175, 0
br i1 %478, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit185, label %bb8.i181
bb6.i180: ; preds = %bb6.i180, %bb6.i180.preheader.new
%carry.020.i177 = phi i64 [ %carry.020.i177.unr, %bb6.i180.preheader.new ], [ %502, %bb6.i180 ]
%iter.sroa.0.019.i178 = phi i32* [ %iter.sroa.0.019.i178.unr, %bb6.i180.preheader.new ], [ %497, %bb6.i180 ]
%479 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i178, i64 1
%480 = load i32, i32* %iter.sroa.0.019.i178, align 4
%481 = zext i32 %480 to i64
%482 = mul nuw nsw i64 %481, 10
%483 = add nuw nsw i64 %482, %carry.020.i177
%484 = lshr i64 %483, 32
%abi_cast.sroa.4.0.extract.trunc.i179 = trunc i64 %483 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i179, i32* %iter.sroa.0.019.i178, align 4
%485 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i178, i64 2
%486 = load i32, i32* %479, align 4
%487 = zext i32 %486 to i64
%488 = mul nuw nsw i64 %487, 10
%489 = add nuw nsw i64 %488, %484
%490 = lshr i64 %489, 32
%abi_cast.sroa.4.0.extract.trunc.i179.1 = trunc i64 %489 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i179.1, i32* %479, align 4
%491 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i178, i64 3
%492 = load i32, i32* %485, align 4
%493 = zext i32 %492 to i64
%494 = mul nuw nsw i64 %493, 10
%495 = add nuw nsw i64 %494, %490
%496 = lshr i64 %495, 32
%abi_cast.sroa.4.0.extract.trunc.i179.2 = trunc i64 %495 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i179.2, i32* %485, align 4
%497 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i178, i64 4
%498 = load i32, i32* %491, align 4
%499 = zext i32 %498 to i64
%500 = mul nuw nsw i64 %499, 10
%501 = add nuw nsw i64 %500, %496
%502 = lshr i64 %501, 32
%abi_cast.sroa.4.0.extract.trunc.i179.3 = trunc i64 %501 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i179.3, i32* %491, align 4
%503 = icmp eq i32* %497, %465
br i1 %503, label %bb5.i176.unr-lcssa, label %bb6.i180
bb8.i181: ; preds = %bb5.i176
%504 = icmp ult i64 %411, 40
br i1 %504, label %bb10.i182, label %panic.i184, !prof !5
bb10.i182: ; preds = %bb8.i181
store i32 %abi_cast.sroa.0.0.extract.trunc.i175, i32* %465, align 4
%505 = add i64 %411, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit185
panic.i184: ; preds = %bb8.i181
call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %411, i64 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit185: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i173", %bb5.i176, %bb10.i182
%sz.0.i183 = phi i64 [ %505, %bb10.i182 ], [ %411, %bb5.i176 ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i173" ]
store i64 %sz.0.i183, i64* %39, align 8
%506 = load i64, i64* %49, align 8
%507 = icmp ugt i64 %506, 40
br i1 %507, label %bb4.i.i.i.i42, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i43"
bb4.i.i.i.i42: ; preds = %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit185
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %506, i64 40), !noalias !296
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i43": ; preds = %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit185
%508 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %minus, i64 0, i32 2, i64 %506
%509 = icmp eq i64 %506, 0
br i1 %509, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit55, label %bb6.i50.preheader
bb6.i50.preheader: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i43"
%510 = shl i64 %506, 2
%511 = add i64 %510, -4
%512 = lshr exact i64 %511, 2
%513 = add nuw nsw i64 %512, 1
%xtraiter1180 = and i64 %513, 3
%lcmp.mod1181 = icmp eq i64 %xtraiter1180, 0
br i1 %lcmp.mod1181, label %bb6.i50.prol.loopexit, label %bb6.i50.prol.preheader
bb6.i50.prol.preheader: ; preds = %bb6.i50.preheader
br label %bb6.i50.prol
bb6.i50.prol: ; preds = %bb6.i50.prol, %bb6.i50.prol.preheader
%carry.020.i47.prol = phi i64 [ %519, %bb6.i50.prol ], [ 0, %bb6.i50.prol.preheader ]
%iter.sroa.0.019.i48.prol = phi i32* [ %514, %bb6.i50.prol ], [ %284, %bb6.i50.prol.preheader ]
%prol.iter1182 = phi i64 [ %prol.iter1182.sub, %bb6.i50.prol ], [ %xtraiter1180, %bb6.i50.prol.preheader ]
%514 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i48.prol, i64 1
%515 = load i32, i32* %iter.sroa.0.019.i48.prol, align 4
%516 = zext i32 %515 to i64
%517 = mul nuw nsw i64 %516, 10
%518 = add nuw nsw i64 %517, %carry.020.i47.prol
%519 = lshr i64 %518, 32
%abi_cast.sroa.4.0.extract.trunc.i49.prol = trunc i64 %518 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i49.prol, i32* %iter.sroa.0.019.i48.prol, align 4
%prol.iter1182.sub = add i64 %prol.iter1182, -1
%prol.iter1182.cmp = icmp eq i64 %prol.iter1182.sub, 0
br i1 %prol.iter1182.cmp, label %bb6.i50.prol.loopexit.unr-lcssa, label %bb6.i50.prol, !llvm.loop !299
bb6.i50.prol.loopexit.unr-lcssa: ; preds = %bb6.i50.prol
br label %bb6.i50.prol.loopexit
bb6.i50.prol.loopexit: ; preds = %bb6.i50.preheader, %bb6.i50.prol.loopexit.unr-lcssa
%.lcssa1014.unr = phi i64 [ undef, %bb6.i50.preheader ], [ %519, %bb6.i50.prol.loopexit.unr-lcssa ]
%carry.020.i47.unr = phi i64 [ 0, %bb6.i50.preheader ], [ %519, %bb6.i50.prol.loopexit.unr-lcssa ]
%iter.sroa.0.019.i48.unr = phi i32* [ %284, %bb6.i50.preheader ], [ %514, %bb6.i50.prol.loopexit.unr-lcssa ]
%520 = icmp ult i64 %511, 12
br i1 %520, label %bb5.i46, label %bb6.i50.preheader.new
bb6.i50.preheader.new: ; preds = %bb6.i50.prol.loopexit
br label %bb6.i50
bb5.i46.unr-lcssa: ; preds = %bb6.i50
br label %bb5.i46
bb5.i46: ; preds = %bb6.i50.prol.loopexit, %bb5.i46.unr-lcssa
%.lcssa1014 = phi i64 [ %.lcssa1014.unr, %bb6.i50.prol.loopexit ], [ %545, %bb5.i46.unr-lcssa ]
%abi_cast.sroa.0.0.extract.trunc.i45 = trunc i64 %.lcssa1014 to i32
%521 = icmp eq i32 %abi_cast.sroa.0.0.extract.trunc.i45, 0
br i1 %521, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit55, label %bb8.i51
bb6.i50: ; preds = %bb6.i50, %bb6.i50.preheader.new
%carry.020.i47 = phi i64 [ %carry.020.i47.unr, %bb6.i50.preheader.new ], [ %545, %bb6.i50 ]
%iter.sroa.0.019.i48 = phi i32* [ %iter.sroa.0.019.i48.unr, %bb6.i50.preheader.new ], [ %540, %bb6.i50 ]
%522 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i48, i64 1
%523 = load i32, i32* %iter.sroa.0.019.i48, align 4
%524 = zext i32 %523 to i64
%525 = mul nuw nsw i64 %524, 10
%526 = add nuw nsw i64 %525, %carry.020.i47
%527 = lshr i64 %526, 32
%abi_cast.sroa.4.0.extract.trunc.i49 = trunc i64 %526 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i49, i32* %iter.sroa.0.019.i48, align 4
%528 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i48, i64 2
%529 = load i32, i32* %522, align 4
%530 = zext i32 %529 to i64
%531 = mul nuw nsw i64 %530, 10
%532 = add nuw nsw i64 %531, %527
%533 = lshr i64 %532, 32
%abi_cast.sroa.4.0.extract.trunc.i49.1 = trunc i64 %532 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i49.1, i32* %522, align 4
%534 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i48, i64 3
%535 = load i32, i32* %528, align 4
%536 = zext i32 %535 to i64
%537 = mul nuw nsw i64 %536, 10
%538 = add nuw nsw i64 %537, %533
%539 = lshr i64 %538, 32
%abi_cast.sroa.4.0.extract.trunc.i49.2 = trunc i64 %538 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i49.2, i32* %528, align 4
%540 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i48, i64 4
%541 = load i32, i32* %534, align 4
%542 = zext i32 %541 to i64
%543 = mul nuw nsw i64 %542, 10
%544 = add nuw nsw i64 %543, %539
%545 = lshr i64 %544, 32
%abi_cast.sroa.4.0.extract.trunc.i49.3 = trunc i64 %544 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i49.3, i32* %534, align 4
%546 = icmp eq i32* %540, %508
br i1 %546, label %bb5.i46.unr-lcssa, label %bb6.i50
bb8.i51: ; preds = %bb5.i46
%547 = icmp ult i64 %506, 40
br i1 %547, label %bb10.i52, label %panic.i54, !prof !5
bb10.i52: ; preds = %bb8.i51
store i32 %abi_cast.sroa.0.0.extract.trunc.i45, i32* %508, align 4
%548 = add i64 %506, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit55
panic.i54: ; preds = %bb8.i51
call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %506, i64 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit55: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i43", %bb5.i46, %bb10.i52
%sz.0.i53 = phi i64 [ %548, %bb10.i52 ], [ %506, %bb5.i46 ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i43" ]
store i64 %sz.0.i53, i64* %49, align 8
%549 = load i64, i64* %59, align 8
%550 = icmp ugt i64 %549, 40
br i1 %550, label %bb4.i.i.i.i, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i"
bb4.i.i.i.i: ; preds = %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit55
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %549, i64 40), !noalias !300
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i": ; preds = %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit55
%551 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %plus, i64 0, i32 2, i64 %549
%552 = icmp eq i64 %549, 0
br i1 %552, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit, label %bb6.i.preheader
bb6.i.preheader: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i"
%553 = shl i64 %549, 2
%554 = add i64 %553, -4
%555 = lshr exact i64 %554, 2
%556 = add nuw nsw i64 %555, 1
%xtraiter1183 = and i64 %556, 3
%lcmp.mod1184 = icmp eq i64 %xtraiter1183, 0
br i1 %lcmp.mod1184, label %bb6.i.prol.loopexit, label %bb6.i.prol.preheader
bb6.i.prol.preheader: ; preds = %bb6.i.preheader
br label %bb6.i.prol
bb6.i.prol: ; preds = %bb6.i.prol, %bb6.i.prol.preheader
%carry.020.i.prol = phi i64 [ %562, %bb6.i.prol ], [ 0, %bb6.i.prol.preheader ]
%iter.sroa.0.019.i.prol = phi i32* [ %557, %bb6.i.prol ], [ %290, %bb6.i.prol.preheader ]
%prol.iter1185 = phi i64 [ %prol.iter1185.sub, %bb6.i.prol ], [ %xtraiter1183, %bb6.i.prol.preheader ]
%557 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i.prol, i64 1
%558 = load i32, i32* %iter.sroa.0.019.i.prol, align 4
%559 = zext i32 %558 to i64
%560 = mul nuw nsw i64 %559, 10
%561 = add nuw nsw i64 %560, %carry.020.i.prol
%562 = lshr i64 %561, 32
%abi_cast.sroa.4.0.extract.trunc.i.prol = trunc i64 %561 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i.prol, i32* %iter.sroa.0.019.i.prol, align 4
%prol.iter1185.sub = add i64 %prol.iter1185, -1
%prol.iter1185.cmp = icmp eq i64 %prol.iter1185.sub, 0
br i1 %prol.iter1185.cmp, label %bb6.i.prol.loopexit.unr-lcssa, label %bb6.i.prol, !llvm.loop !303
bb6.i.prol.loopexit.unr-lcssa: ; preds = %bb6.i.prol
br label %bb6.i.prol.loopexit
bb6.i.prol.loopexit: ; preds = %bb6.i.preheader, %bb6.i.prol.loopexit.unr-lcssa
%.lcssa1015.unr = phi i64 [ undef, %bb6.i.preheader ], [ %562, %bb6.i.prol.loopexit.unr-lcssa ]
%carry.020.i.unr = phi i64 [ 0, %bb6.i.preheader ], [ %562, %bb6.i.prol.loopexit.unr-lcssa ]
%iter.sroa.0.019.i.unr = phi i32* [ %290, %bb6.i.preheader ], [ %557, %bb6.i.prol.loopexit.unr-lcssa ]
%563 = icmp ult i64 %554, 12
br i1 %563, label %bb5.i, label %bb6.i.preheader.new
bb6.i.preheader.new: ; preds = %bb6.i.prol.loopexit
br label %bb6.i
bb5.i.unr-lcssa: ; preds = %bb6.i
br label %bb5.i
bb5.i: ; preds = %bb6.i.prol.loopexit, %bb5.i.unr-lcssa
%.lcssa1015 = phi i64 [ %.lcssa1015.unr, %bb6.i.prol.loopexit ], [ %588, %bb5.i.unr-lcssa ]
%abi_cast.sroa.0.0.extract.trunc.i = trunc i64 %.lcssa1015 to i32
%564 = icmp eq i32 %abi_cast.sroa.0.0.extract.trunc.i, 0
br i1 %564, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit, label %bb8.i
bb6.i: ; preds = %bb6.i, %bb6.i.preheader.new
%carry.020.i = phi i64 [ %carry.020.i.unr, %bb6.i.preheader.new ], [ %588, %bb6.i ]
%iter.sroa.0.019.i = phi i32* [ %iter.sroa.0.019.i.unr, %bb6.i.preheader.new ], [ %583, %bb6.i ]
%565 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i, i64 1
%566 = load i32, i32* %iter.sroa.0.019.i, align 4
%567 = zext i32 %566 to i64
%568 = mul nuw nsw i64 %567, 10
%569 = add nuw nsw i64 %568, %carry.020.i
%570 = lshr i64 %569, 32
%abi_cast.sroa.4.0.extract.trunc.i = trunc i64 %569 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i, i32* %iter.sroa.0.019.i, align 4
%571 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i, i64 2
%572 = load i32, i32* %565, align 4
%573 = zext i32 %572 to i64
%574 = mul nuw nsw i64 %573, 10
%575 = add nuw nsw i64 %574, %570
%576 = lshr i64 %575, 32
%abi_cast.sroa.4.0.extract.trunc.i.1 = trunc i64 %575 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i.1, i32* %565, align 4
%577 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i, i64 3
%578 = load i32, i32* %571, align 4
%579 = zext i32 %578 to i64
%580 = mul nuw nsw i64 %579, 10
%581 = add nuw nsw i64 %580, %576
%582 = lshr i64 %581, 32
%abi_cast.sroa.4.0.extract.trunc.i.2 = trunc i64 %581 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i.2, i32* %571, align 4
%583 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i, i64 4
%584 = load i32, i32* %577, align 4
%585 = zext i32 %584 to i64
%586 = mul nuw nsw i64 %585, 10
%587 = add nuw nsw i64 %586, %582
%588 = lshr i64 %587, 32
%abi_cast.sroa.4.0.extract.trunc.i.3 = trunc i64 %587 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i.3, i32* %577, align 4
%589 = icmp eq i32* %583, %551
br i1 %589, label %bb5.i.unr-lcssa, label %bb6.i
bb8.i: ; preds = %bb5.i
%590 = icmp ult i64 %549, 40
br i1 %590, label %bb10.i, label %panic.i, !prof !5
bb10.i: ; preds = %bb8.i
store i32 %abi_cast.sroa.0.0.extract.trunc.i, i32* %551, align 4
%591 = add i64 %549, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit
panic.i: ; preds = %bb8.i
call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %549, i64 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i", %bb5.i, %bb10.i
%sz.0.i = phi i64 [ %591, %bb10.i ], [ %549, %bb5.i ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i" ]
store i64 %sz.0.i, i64* %59, align 8
%592 = load i64, i64* %39, align 8, !alias.scope !88, !noalias !95
%593 = load i64, i64* %272, align 8, !alias.scope !105, !noalias !106
%594 = icmp uge i64 %593, %592
%_0.0.sroa.speculated.i.i.i.i.i.i = select i1 %594, i64 %593, i64 %592
%595 = icmp ugt i64 %_0.0.sroa.speculated.i.i.i.i.i.i, 40
br i1 %595, label %bb4.i.i.i3.i.i.i.i.loopexit, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i.i"
bb76: ; preds = %bb69
br i1 %429, label %bb80, label %bb84
bb80: ; preds = %bb76
%596 = call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h1cf2bd21d8443b3bE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %mant, i64 1)
%597 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %596, i64 0, i32 0
%598 = load i64, i64* %597, align 8, !alias.scope !304, !noalias !311
%599 = load i64, i64* %66, align 8, !alias.scope !311, !noalias !304
%600 = icmp uge i64 %599, %598
%_0.0.sroa.speculated.i.i.i.i.i = select i1 %600, i64 %599, i64 %598
%601 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %596, i64 0, i32 2, i64 0
%602 = icmp ugt i64 %_0.0.sroa.speculated.i.i.i.i.i, 40
br i1 %602, label %bb4.i.i.i3.i.i.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i"
bb4.i.i.i3.i.i.i: ; preds = %bb80
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %_0.0.sroa.speculated.i.i.i.i.i, i64 40), !noalias !315
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i": ; preds = %bb80
%603 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %596, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i.i.i
%604 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i.i.i
br label %bb5.i.i.i.i
bb5.i.i.i.i: ; preds = %bb24.i.i.i.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i"
%self.sroa.4.0.i.i.i.i = phi i32* [ %603, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i" ], [ %self.sroa.4.1.i.i.i.i, %bb24.i.i.i.i ]
%other1.sroa.4.0.i.i.i.i = phi i32* [ %604, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i" ], [ %other1.sroa.4.1.i.i.i.i, %bb24.i.i.i.i ]
%605 = icmp eq i32* %self.sroa.4.0.i.i.i.i, %601
br i1 %605, label %bb6.i.i.i.i, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i": ; preds = %bb5.i.i.i.i
%606 = getelementptr inbounds i32, i32* %self.sroa.4.0.i.i.i.i, i64 -1
%607 = load i32, i32* %606, align 4, !alias.scope !318, !noalias !323
br label %bb6.i.i.i.i
bb6.i.i.i.i: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i", %bb5.i.i.i.i
%self.sroa.4.1.i.i.i.i = phi i32* [ %601, %bb5.i.i.i.i ], [ %606, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i" ]
%_0.sroa.3.0.i.i.i.i82.i.i.i.i = phi i32 [ 0, %bb5.i.i.i.i ], [ %607, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i" ]
%_0.sroa.0.0.i.i.i.i83.i.i.i.i = phi i64 [ 0, %bb5.i.i.i.i ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i" ]
%608 = icmp eq i32* %other1.sroa.4.0.i.i.i.i, %112
br i1 %608, label %bb8.i.i.i.i, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i": ; preds = %bb6.i.i.i.i
%609 = getelementptr inbounds i32, i32* %other1.sroa.4.0.i.i.i.i, i64 -1
%610 = load i32, i32* %609, align 4, !alias.scope !327, !noalias !332
br label %bb8.i.i.i.i
bb8.i.i.i.i: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i", %bb6.i.i.i.i
%other1.sroa.4.1.i.i.i.i = phi i32* [ %112, %bb6.i.i.i.i ], [ %609, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i" ]
%_0.sroa.3.0.i.i.i.i.i.i.i.i = phi i32 [ 0, %bb6.i.i.i.i ], [ %610, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i" ]
%_0.sroa.0.0.i.i.i.i.i.i.i.i = phi i1 [ true, %bb6.i.i.i.i ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i" ]
%cond.i.i.i.i = icmp eq i64 %_0.sroa.0.0.i.i.i.i83.i.i.i.i, 0
br i1 %cond.i.i.i.i, label %bb14.i.i.i.i, label %bb15.i.i.i.i
bb14.i.i.i.i: ; preds = %bb8.i.i.i.i
%not.cond14.i.i.i.i = xor i1 %_0.sroa.0.0.i.i.i.i.i.i.i.i, true
%..i.i.i.i = sext i1 %not.cond14.i.i.i.i to i64
br label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit
bb15.i.i.i.i: ; preds = %bb8.i.i.i.i
br i1 %_0.sroa.0.0.i.i.i.i.i.i.i.i, label %bb84.loopexit, label %bb24.i.i.i.i
bb24.i.i.i.i: ; preds = %bb15.i.i.i.i
%611 = icmp eq i32 %_0.sroa.3.0.i.i.i.i82.i.i.i.i, %_0.sroa.3.0.i.i.i.i.i.i.i.i
br i1 %611, label %bb5.i.i.i.i, label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.loopexit
_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.loopexit: ; preds = %bb24.i.i.i.i
%612 = icmp ult i32 %_0.sroa.3.0.i.i.i.i82.i.i.i.i, %_0.sroa.3.0.i.i.i.i.i.i.i.i
%..i.i.i.i.i.le = select i1 %612, i64 255, i64 1
br label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit
_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit: ; preds = %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.loopexit, %bb14.i.i.i.i
%_0.0.i.i.i.i = phi i64 [ %..i.i.i.i, %bb14.i.i.i.i ], [ %..i.i.i.i.i.le, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.loopexit ]
%abi_cast.sroa.4.0.extract.shift.i = shl i64 %_0.0.i.i.i.i, 56
%sext.i = ashr exact i64 %abi_cast.sroa.4.0.extract.shift.i, 56
%switch.i = icmp ult i64 %sext.i, 2
br i1 %switch.i, label %bb84, label %bb91
bb84.loopexit: ; preds = %bb15.i.i.i.i
br label %bb84
bb84: ; preds = %bb84.loopexit, %bb76, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit
%613 = call i16 @_ZN4core3num7flt2dec8round_up17h879a47796abb3549E(i8* nonnull %2, i64 %3, i64 %415)
%abi_cast.sroa.4.0.extract.shift = lshr i16 %613, 8
%abi_cast.sroa.4.0.extract.trunc = trunc i16 %abi_cast.sroa.4.0.extract.shift to i8
%614 = and i16 %613, 255
%cond = icmp eq i16 %614, 1
br i1 %cond, label %bb88, label %bb91
bb88: ; preds = %bb84
%615 = icmp ult i64 %415, %3
br i1 %615, label %bb90, label %panic1, !prof !5
bb90: ; preds = %bb88
%616 = getelementptr inbounds i8, i8* %2, i64 %415
store i8 %abi_cast.sroa.4.0.extract.trunc, i8* %616, align 1
%617 = add i64 %i.0391, 2
%618 = add i16 %k.0, 1
br label %bb91
bb91: ; preds = %bb69, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit, %bb90, %bb84
%i.2 = phi i64 [ %617, %bb90 ], [ %415, %bb84 ], [ %415, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit ], [ %415, %bb69 ]
%k.2 = phi i16 [ %618, %bb90 ], [ %k.0, %bb84 ], [ %k.0, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit ], [ %k.0, %bb69 ]
%619 = getelementptr inbounds { i64, [0 x i8], i16, [6 x i8] }, { i64, [0 x i8], i16, [6 x i8] }* %0, i64 0, i32 0
store i64 %i.2, i64* %619, align 8
%620 = getelementptr inbounds { i64, [0 x i8], i16, [6 x i8] }, { i64, [0 x i8], i16, [6 x i8] }* %0, i64 0, i32 2
store i16 %k.2, i16* %620, align 8
call void @llvm.lifetime.end(i64 168, i8* nonnull %270)
call void @llvm.lifetime.end(i64 168, i8* nonnull %264)
call void @llvm.lifetime.end(i64 168, i8* nonnull %259)
call void @llvm.lifetime.end(i64 168, i8* nonnull %62)
call void @llvm.lifetime.end(i64 168, i8* nonnull %52)
call void @llvm.lifetime.end(i64 168, i8* nonnull %42)
call void @llvm.lifetime.end(i64 168, i8* nonnull %31)
ret void
panic: ; preds = %_ZN4core3num7flt2dec8strategy6dragon15div_rem_upto_1617h727601a82fdbd392E.exit
call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.3 to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %i.0391, i64 %3)
unreachable
panic1: ; preds = %bb88
call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4 to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %415, i64 %3)
unreachable
}
; Function Attrs: uwtable
define void @_ZN4core3num7flt2dec8strategy6dragon12format_exact17h915638fd5b738bf0E({ i64, [0 x i8], i16, [6 x i8] }* noalias nocapture sret dereferenceable(16), %"num::flt2dec::decoder::Decoded"* noalias nocapture readonly dereferenceable(32), i8* nonnull, i64, i16) unnamed_addr #2 personality i32 (...)* @rust_eh_personality {
start:
%base.i = alloca [40 x i32], align 4
%scale8 = alloca %"num::bignum::Big32x40", align 8
%scale4 = alloca %"num::bignum::Big32x40", align 8
%scale2 = alloca %"num::bignum::Big32x40", align 8
%_83 = alloca %"num::bignum::Big32x40", align 8
%scale = alloca %"num::bignum::Big32x40", align 8
%mant = alloca %"num::bignum::Big32x40", align 8
%5 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i64 0, i32 0
%6 = load i64, i64* %5, align 8
%7 = icmp eq i64 %6, 0
br i1 %7, label %bb1, label %bb2
bb1: ; preds = %start
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE17ha445c8f94623a688E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb2: ; preds = %start
%8 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i64 0, i32 2
%9 = load i64, i64* %8, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %bb3, label %bb4
bb3: ; preds = %bb2
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE17hc27d4d0aab357fbeE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb4: ; preds = %bb2
%11 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i64 0, i32 4
%12 = load i64, i64* %11, align 8
%13 = icmp eq i64 %12, 0
br i1 %13, label %bb5, label %bb6
bb5: ; preds = %bb4
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE17h776fea105bc781ffE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb6: ; preds = %bb4
%14 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %6, i64 %12) #16
%15 = extractvalue { i64, i1 } %14, 1
br i1 %15, label %bb9, label %bb10
bb9: ; preds = %bb6
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE17h143886f7836e23eaE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb10: ; preds = %bb6
%16 = tail call { i64, i1 } @llvm.usub.with.overflow.i64(i64 %6, i64 %9) #16
%17 = extractvalue { i64, i1 } %16, 1
br i1 %17, label %bb13, label %bb3.i44.preheader
bb13: ; preds = %bb10
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE17h69216136c606a806E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb3.i44.preheader: ; preds = %bb10
%18 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i64 0, i32 6
%19 = load i16, i16* %18, align 2
%20 = add i64 %6, -1
%21 = tail call i64 @llvm.ctlz.i64(i64 %20, i1 false) #16
%22 = sub nsw i64 64, %21
%23 = sext i16 %19 to i64
%24 = add nsw i64 %22, %23
%25 = mul nsw i64 %24, 1292913986
%26 = lshr i64 %25, 32
%27 = trunc i64 %26 to i16
%28 = bitcast %"num::bignum::Big32x40"* %mant to i8*
call void @llvm.lifetime.start(i64 168, i8* nonnull %28)
%29 = bitcast [40 x i32]* %base.i to i8*
call void @llvm.lifetime.start(i64 160, i8* nonnull %29), !noalias !333
call void @llvm.memset.p0i8.i64(i8* nonnull %29, i8 0, i64 160, i32 4, i1 false), !noalias !333
br label %bb3.i44
bb3.i44: ; preds = %bb3.i44.preheader, %bb4.i
%v.011.i = phi i64 [ %33, %bb4.i ], [ %6, %bb3.i44.preheader ]
%sz.010.i = phi i64 [ %34, %bb4.i ], [ 0, %bb3.i44.preheader ]
%30 = icmp ult i64 %sz.010.i, 40
br i1 %30, label %bb4.i, label %panic.i, !prof !5
bb4.i: ; preds = %bb3.i44
%31 = getelementptr inbounds [40 x i32], [40 x i32]* %base.i, i64 0, i64 %sz.010.i
%32 = trunc i64 %v.011.i to i32
store i32 %32, i32* %31, align 4, !noalias !333
%33 = lshr i64 %v.011.i, 32
%34 = add nuw nsw i64 %sz.010.i, 1
%35 = icmp eq i64 %33, 0
br i1 %35, label %_ZN4core3num6bignum8Big32x408from_u6417h7ac65617bdfe7160E.exit, label %bb3.i44
panic.i: ; preds = %bb3.i44
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4B to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %sz.010.i, i64 40), !noalias !333
unreachable
_ZN4core3num6bignum8Big32x408from_u6417h7ac65617bdfe7160E.exit: ; preds = %bb4.i
%36 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 0
store i64 %34, i64* %36, align 8, !alias.scope !333
%37 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2
%38 = bitcast [40 x i32]* %37 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %38, i8* nonnull %29, i64 160, i32 4, i1 false)
call void @llvm.lifetime.end(i64 160, i8* nonnull %29), !noalias !333
%39 = bitcast %"num::bignum::Big32x40"* %scale to i8*
call void @llvm.lifetime.start(i64 168, i8* nonnull %39)
call void @llvm.lifetime.start(i64 160, i8* nonnull %29) #16, !noalias !336
%40 = getelementptr inbounds [40 x i32], [40 x i32]* %base.i, i64 0, i64 0
%41 = getelementptr inbounds [40 x i32], [40 x i32]* %base.i, i64 0, i64 1
%42 = bitcast i32* %41 to i8*
call void @llvm.memset.p0i8.i64(i8* nonnull %42, i8 0, i64 156, i32 4, i1 false) #16, !noalias !336
store i32 1, i32* %40, align 4, !noalias !336
%43 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i64 0, i32 0
store i64 1, i64* %43, align 8, !alias.scope !336
%44 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i64 0, i32 2
%45 = bitcast [40 x i32]* %44 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %45, i8* nonnull %29, i64 160, i32 4, i1 false) #16
call void @llvm.lifetime.end(i64 160, i8* nonnull %29) #16, !noalias !336
%46 = icmp slt i16 %19, 0
br i1 %46, label %bb18, label %bb19
bb18: ; preds = %_ZN4core3num6bignum8Big32x408from_u6417h7ac65617bdfe7160E.exit
%47 = sub i16 0, %19
%48 = sext i16 %47 to i64
%49 = call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h1cf2bd21d8443b3bE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %scale, i64 %48)
br label %bb22
bb19: ; preds = %_ZN4core3num6bignum8Big32x408from_u6417h7ac65617bdfe7160E.exit
%50 = call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h1cf2bd21d8443b3bE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %mant, i64 %23)
br label %bb22
bb22: ; preds = %bb19, %bb18
%51 = icmp sgt i16 %27, -1
br i1 %51, label %bb23, label %bb24
bb23: ; preds = %bb22
%sext286 = shl i64 %26, 48
%52 = ashr exact i64 %sext286, 48
%53 = call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num7flt2dec8strategy6dragon9mul_pow1017hb60ad3477bd5a2b3E(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %scale, i64 %52)
br label %bb27
bb24: ; preds = %bb22
%54 = sub nsw i64 0, %26
%sext = shl i64 %54, 48
%55 = ashr exact i64 %sext, 48
%56 = call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num7flt2dec8strategy6dragon9mul_pow1017hb60ad3477bd5a2b3E(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %mant, i64 %55)
br label %bb27
bb27: ; preds = %bb24, %bb23
%57 = bitcast %"num::bignum::Big32x40"* %_83 to i8*
call void @llvm.lifetime.start(i64 168, i8* nonnull %57)
%58 = load i64, i64* %43, align 8, !alias.scope !339, !noalias !342
%59 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_83, i64 0, i32 0
store i64 %58, i64* %59, align 8, !alias.scope !342, !noalias !339
%60 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_83, i64 0, i32 2
%61 = bitcast [40 x i32]* %60 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %61, i8* %45, i64 160, i32 8, i1 false) #16, !alias.scope !344
%62 = icmp ugt i64 %3, 9
%63 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_83, i64 0, i32 2, i64 0
br i1 %62, label %bb2.i.i.preheader, label %bb7.i
bb2.i.i.preheader: ; preds = %bb27
%64 = icmp ugt i64 %58, 40
br i1 %64, label %bb4.i.i.i.i.i, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i.i.preheader"
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i.i.preheader": ; preds = %bb2.i.i.preheader
br label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i.i"
bb4.i.i.i.i.i.loopexit: ; preds = %_ZN4core3num6bignum8Big32x4013div_rem_small17h6ef0cfeb0b66e0b7E.exit.i.bb2.i.i_crit_edge
br label %bb4.i.i.i.i.i
bb4.i.i.i.i.i: ; preds = %bb4.i.i.i.i.i.loopexit, %bb2.i.i.preheader
%.lcssa665 = phi i64 [ %58, %bb2.i.i.preheader ], [ %.pre, %bb4.i.i.i.i.i.loopexit ]
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %.lcssa665, i64 40), !noalias !345
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i.i": ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i.i.preheader", %_ZN4core3num6bignum8Big32x4013div_rem_small17h6ef0cfeb0b66e0b7E.exit.i.bb2.i.i_crit_edge
%n.020.i669 = phi i64 [ %92, %_ZN4core3num6bignum8Big32x4013div_rem_small17h6ef0cfeb0b66e0b7E.exit.i.bb2.i.i_crit_edge ], [ %3, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i.i.preheader" ]
%65 = phi i64 [ %.pre, %_ZN4core3num6bignum8Big32x4013div_rem_small17h6ef0cfeb0b66e0b7E.exit.i.bb2.i.i_crit_edge ], [ %58, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i.i.preheader" ]
%66 = icmp eq i64 %65, 0
br i1 %66, label %_ZN4core3num6bignum8Big32x4013div_rem_small17h6ef0cfeb0b66e0b7E.exit.i, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i.i": ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i.i"
%67 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_83, i64 0, i32 2, i64 %65
%68 = shl i64 %65, 2
%69 = add i64 %68, -4
%70 = lshr exact i64 %69, 2
%71 = and i64 %70, 1
%lcmp.mod770 = icmp eq i64 %71, 0
br i1 %lcmp.mod770, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i.prol.preheader", label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i.prol.loopexit.unr-lcssa"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i.prol.preheader": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i.i"
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i.prol"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i.prol": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i.prol.preheader"
%72 = getelementptr inbounds i32, i32* %67, i64 -1
%73 = load i32, i32* %72, align 4, !noalias !350
%div771 = udiv i32 %73, 1000000000
%74 = urem i32 %73, 1000000000
%75 = zext i32 %74 to i64
store i32 %div771, i32* %72, align 4, !noalias !350
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i.prol.loopexit.unr-lcssa"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i.prol.loopexit.unr-lcssa": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i.i", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i.prol"
%borrow.034.i.i.unr.ph = phi i64 [ %75, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i.prol" ], [ 0, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i.i" ]
%iter.sroa.4.033.i.i.unr.ph = phi i32* [ %72, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i.prol" ], [ %67, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i.i" ]
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i.prol.loopexit"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i.prol.loopexit": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i.prol.loopexit.unr-lcssa"
%76 = icmp eq i64 %70, 0
br i1 %76, label %_ZN4core3num6bignum8Big32x4013div_rem_small17h6ef0cfeb0b66e0b7E.exit.i.loopexit, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i.i.new"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i.i.new": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i.prol.loopexit"
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i.i.new"
%borrow.034.i.i = phi i64 [ %borrow.034.i.i.unr.ph, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i.i.new" ], [ %90, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i" ]
%iter.sroa.4.033.i.i = phi i32* [ %iter.sroa.4.033.i.i.unr.ph, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i.i.new" ], [ %84, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i" ]
%77 = getelementptr inbounds i32, i32* %iter.sroa.4.033.i.i, i64 -1
%78 = load i32, i32* %77, align 4, !noalias !350
%79 = shl nuw nsw i64 %borrow.034.i.i, 32
%80 = zext i32 %78 to i64
%81 = or i64 %80, %79
%82 = udiv i64 %81, 1000000000
%83 = urem i64 %81, 1000000000
%abi_cast.sroa.0.0.extract.trunc.i.i = trunc i64 %82 to i32
store i32 %abi_cast.sroa.0.0.extract.trunc.i.i, i32* %77, align 4, !noalias !350
%84 = getelementptr inbounds i32, i32* %iter.sroa.4.033.i.i, i64 -2
%85 = load i32, i32* %84, align 4, !noalias !350
%86 = shl nuw nsw i64 %83, 32
%87 = zext i32 %85 to i64
%88 = or i64 %87, %86
%89 = udiv i64 %88, 1000000000
%90 = urem i64 %88, 1000000000
%abi_cast.sroa.0.0.extract.trunc.i.i.1 = trunc i64 %89 to i32
store i32 %abi_cast.sroa.0.0.extract.trunc.i.i.1, i32* %84, align 4, !noalias !350
%91 = icmp eq i32* %84, %63
br i1 %91, label %_ZN4core3num6bignum8Big32x4013div_rem_small17h6ef0cfeb0b66e0b7E.exit.i.loopexit.unr-lcssa, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i"
_ZN4core3num6bignum8Big32x4013div_rem_small17h6ef0cfeb0b66e0b7E.exit.i.loopexit.unr-lcssa: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i"
br label %_ZN4core3num6bignum8Big32x4013div_rem_small17h6ef0cfeb0b66e0b7E.exit.i.loopexit
_ZN4core3num6bignum8Big32x4013div_rem_small17h6ef0cfeb0b66e0b7E.exit.i.loopexit: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i.i.prol.loopexit", %_ZN4core3num6bignum8Big32x4013div_rem_small17h6ef0cfeb0b66e0b7E.exit.i.loopexit.unr-lcssa
br label %_ZN4core3num6bignum8Big32x4013div_rem_small17h6ef0cfeb0b66e0b7E.exit.i
_ZN4core3num6bignum8Big32x4013div_rem_small17h6ef0cfeb0b66e0b7E.exit.i: ; preds = %_ZN4core3num6bignum8Big32x4013div_rem_small17h6ef0cfeb0b66e0b7E.exit.i.loopexit, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i.i"
%92 = add i64 %n.020.i669, -9
%93 = icmp ugt i64 %92, 9
%.pre = load i64, i64* %59, align 8
br i1 %93, label %_ZN4core3num6bignum8Big32x4013div_rem_small17h6ef0cfeb0b66e0b7E.exit.i.bb2.i.i_crit_edge, label %bb7.i.loopexit
_ZN4core3num6bignum8Big32x4013div_rem_small17h6ef0cfeb0b66e0b7E.exit.i.bb2.i.i_crit_edge: ; preds = %_ZN4core3num6bignum8Big32x4013div_rem_small17h6ef0cfeb0b66e0b7E.exit.i
%94 = icmp ugt i64 %.pre, 40
br i1 %94, label %bb4.i.i.i.i.i.loopexit, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i.i"
bb7.i.loopexit: ; preds = %_ZN4core3num6bignum8Big32x4013div_rem_small17h6ef0cfeb0b66e0b7E.exit.i
br label %bb7.i
bb7.i: ; preds = %bb7.i.loopexit, %bb27
%95 = phi i64 [ %58, %bb27 ], [ %.pre, %bb7.i.loopexit ]
%n.0.lcssa.i = phi i64 [ %3, %bb27 ], [ %92, %bb7.i.loopexit ]
%96 = getelementptr inbounds [10 x i32], [10 x i32]* @_ZN4core3num7flt2dec8strategy6dragon8TWOPOW1017h6c98a5ff94e6485fE, i64 0, i64 %n.0.lcssa.i
%97 = load i32, i32* %96, align 4
%98 = icmp ugt i64 %95, 40
br i1 %98, label %bb4.i.i.i.i8.i, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i9.i"
bb4.i.i.i.i8.i: ; preds = %bb7.i
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %95, i64 40), !noalias !351
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i9.i": ; preds = %bb7.i
%99 = icmp eq i64 %95, 0
br i1 %99, label %_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h93cb3cd3567279b2E.exit, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i10.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i10.i": ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i9.i"
%100 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_83, i64 0, i32 2, i64 %95
%101 = zext i32 %97 to i64
%102 = shl i64 %95, 2
%103 = add i64 %102, -4
%104 = lshr exact i64 %103, 2
%105 = and i64 %104, 1
%lcmp.mod768 = icmp eq i64 %105, 0
br i1 %lcmp.mod768, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i14.i.prol.preheader", label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i14.i.prol.loopexit"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i14.i.prol.preheader": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i10.i"
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i14.i.prol"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i14.i.prol": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i14.i.prol.preheader"
%106 = getelementptr inbounds i32, i32* %100, i64 -1
%107 = load i32, i32* %106, align 4, !noalias !356
%div = udiv i32 %107, %97
%108 = urem i32 %107, %97
%109 = zext i32 %108 to i64
store i32 %div, i32* %106, align 4, !noalias !356
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i14.i.prol.loopexit"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i14.i.prol.loopexit": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i14.i.prol", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i10.i"
%borrow.034.i11.i.unr = phi i64 [ 0, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i10.i" ], [ %109, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i14.i.prol" ]
%iter.sroa.4.033.i12.i.unr = phi i32* [ %100, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i10.i" ], [ %106, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i14.i.prol" ]
%110 = icmp eq i64 %104, 0
br i1 %110, label %_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h93cb3cd3567279b2E.exit.loopexit, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i10.i.new"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i10.i.new": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i14.i.prol.loopexit"
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i14.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i14.i": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i14.i", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i10.i.new"
%borrow.034.i11.i = phi i64 [ %borrow.034.i11.i.unr, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i10.i.new" ], [ %124, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i14.i" ]
%iter.sroa.4.033.i12.i = phi i32* [ %iter.sroa.4.033.i12.i.unr, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.lr.ph.i10.i.new" ], [ %118, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i14.i" ]
%111 = getelementptr inbounds i32, i32* %iter.sroa.4.033.i12.i, i64 -1
%112 = load i32, i32* %111, align 4, !noalias !356
%113 = shl i64 %borrow.034.i11.i, 32
%114 = zext i32 %112 to i64
%115 = or i64 %114, %113
%116 = udiv i64 %115, %101
%117 = urem i64 %115, %101
%abi_cast.sroa.0.0.extract.trunc.i13.i = trunc i64 %116 to i32
store i32 %abi_cast.sroa.0.0.extract.trunc.i13.i, i32* %111, align 4, !noalias !356
%118 = getelementptr inbounds i32, i32* %iter.sroa.4.033.i12.i, i64 -2
%119 = load i32, i32* %118, align 4, !noalias !356
%120 = shl nuw i64 %117, 32
%121 = zext i32 %119 to i64
%122 = or i64 %121, %120
%123 = udiv i64 %122, %101
%124 = urem i64 %122, %101
%abi_cast.sroa.0.0.extract.trunc.i13.i.1 = trunc i64 %123 to i32
store i32 %abi_cast.sroa.0.0.extract.trunc.i13.i.1, i32* %118, align 4, !noalias !356
%125 = icmp eq i32* %118, %63
br i1 %125, label %_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h93cb3cd3567279b2E.exit.loopexit.unr-lcssa, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i14.i"
_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h93cb3cd3567279b2E.exit.loopexit.unr-lcssa: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i14.i"
br label %_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h93cb3cd3567279b2E.exit.loopexit
_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h93cb3cd3567279b2E.exit.loopexit: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h6476b8b1df2c494dE.exit.i14.i.prol.loopexit", %_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h93cb3cd3567279b2E.exit.loopexit.unr-lcssa
%.pre486 = load i64, i64* %59, align 8, !noalias !357
br label %_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h93cb3cd3567279b2E.exit
_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h93cb3cd3567279b2E.exit: ; preds = %_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h93cb3cd3567279b2E.exit.loopexit, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i9.i"
%126 = phi i64 [ %.pre486, %_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h93cb3cd3567279b2E.exit.loopexit ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i9.i" ]
%127 = load i64, i64* %36, align 8, !alias.scope !357
%128 = icmp uge i64 %127, %126
%_0.0.sroa.speculated.i.i.i61 = select i1 %128, i64 %127, i64 %126
%129 = icmp ugt i64 %_0.0.sroa.speculated.i.i.i61, 40
br i1 %129, label %bb4.i.i.i.i62, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i63"
bb4.i.i.i.i62: ; preds = %_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h93cb3cd3567279b2E.exit
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %_0.0.sroa.speculated.i.i.i61, i64 40), !noalias !360
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i63": ; preds = %_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h93cb3cd3567279b2E.exit
%.idx.i = shl nuw i64 %_0.0.sroa.speculated.i.i.i61, 2
%130 = sdiv i64 %.idx.i, 4
%.idx.off.i = or i64 %.idx.i, 3
%131 = icmp ult i64 %.idx.off.i, 7
br i1 %131, label %_ZN4core3num6bignum8Big32x403add17hd2197a50c071fcf3E.exit, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i63"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i"
%carry.055.i = phi i32 [ %143, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.preheader" ]
%iter.sroa.8.054.i = phi i64 [ %134, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i.preheader" ]
%132 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_83, i64 0, i32 2, i64 %iter.sroa.8.054.i
%133 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %iter.sroa.8.054.i
%134 = add nuw i64 %iter.sroa.8.054.i, 1
%135 = load i32, i32* %132, align 4, !noalias !357
%136 = load i32, i32* %133, align 4, !alias.scope !357
%137 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %135, i32 %136) #16
%138 = extractvalue { i32, i1 } %137, 0
%139 = extractvalue { i32, i1 } %137, 1
%140 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %138, i32 %carry.055.i) #16
%141 = extractvalue { i32, i1 } %140, 0
%142 = extractvalue { i32, i1 } %140, 1
%brmerge.i.i = or i1 %139, %142
store i32 %141, i32* %132, align 4, !noalias !357
%143 = zext i1 %brmerge.i.i to i32
%144 = icmp ult i64 %134, %130
br i1 %144, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i", label %bb9.i
bb9.i: ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i"
br i1 %brmerge.i.i, label %bb12.i, label %_ZN4core3num6bignum8Big32x403add17hd2197a50c071fcf3E.exit
bb12.i: ; preds = %bb9.i
%145 = icmp ult i64 %_0.0.sroa.speculated.i.i.i61, 40
br i1 %145, label %bb14.i, label %panic.i65, !prof !5
bb14.i: ; preds = %bb12.i
%146 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_83, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i61
store i32 1, i32* %146, align 4, !noalias !357
%147 = add i64 %_0.0.sroa.speculated.i.i.i61, 1
br label %_ZN4core3num6bignum8Big32x403add17hd2197a50c071fcf3E.exit
panic.i65: ; preds = %bb12.i
call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4F to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %_0.0.sroa.speculated.i.i.i61, i64 40), !noalias !357
unreachable
_ZN4core3num6bignum8Big32x403add17hd2197a50c071fcf3E.exit: ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i63", %bb9.i, %bb14.i
%sz.0.i64 = phi i64 [ %147, %bb14.i ], [ %_0.0.sroa.speculated.i.i.i61, %bb9.i ], [ %_0.0.sroa.speculated.i.i.i61, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i63" ]
store i64 %sz.0.i64, i64* %59, align 8, !noalias !357
%148 = load i64, i64* %43, align 8, !alias.scope !363, !noalias !370
%149 = icmp uge i64 %148, %sz.0.i64
%_0.0.sroa.speculated.i.i.i.i.i = select i1 %149, i64 %148, i64 %sz.0.i64
%150 = icmp ugt i64 %_0.0.sroa.speculated.i.i.i.i.i, 40
br i1 %150, label %bb4.i.i.i3.i.i.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i"
bb4.i.i.i3.i.i.i: ; preds = %_ZN4core3num6bignum8Big32x403add17hd2197a50c071fcf3E.exit
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %_0.0.sroa.speculated.i.i.i.i.i, i64 40), !noalias !374
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i": ; preds = %_ZN4core3num6bignum8Big32x403add17hd2197a50c071fcf3E.exit
%151 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_83, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i.i.i
%152 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i64 0, i32 2, i64 0
%153 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i.i.i
br label %bb5.i.i.i.i
bb5.i.i.i.i: ; preds = %bb24.i.i.i.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i"
%self.sroa.4.0.i.i.i.i = phi i32* [ %151, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i" ], [ %self.sroa.4.1.i.i.i.i, %bb24.i.i.i.i ]
%other1.sroa.4.0.i.i.i.i = phi i32* [ %153, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i" ], [ %other1.sroa.4.1.i.i.i.i, %bb24.i.i.i.i ]
%154 = icmp eq i32* %self.sroa.4.0.i.i.i.i, %63
br i1 %154, label %bb6.i.i.i.i, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i": ; preds = %bb5.i.i.i.i
%155 = getelementptr inbounds i32, i32* %self.sroa.4.0.i.i.i.i, i64 -1
%156 = load i32, i32* %155, align 4, !alias.scope !377, !noalias !382
br label %bb6.i.i.i.i
bb6.i.i.i.i: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i", %bb5.i.i.i.i
%self.sroa.4.1.i.i.i.i = phi i32* [ %63, %bb5.i.i.i.i ], [ %155, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i" ]
%_0.sroa.3.0.i.i.i.i82.i.i.i.i = phi i32 [ 0, %bb5.i.i.i.i ], [ %156, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i" ]
%_0.sroa.0.0.i.i.i.i83.i.i.i.i = phi i64 [ 0, %bb5.i.i.i.i ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i" ]
%157 = icmp eq i32* %other1.sroa.4.0.i.i.i.i, %152
br i1 %157, label %bb8.i.i.i.i, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i": ; preds = %bb6.i.i.i.i
%158 = getelementptr inbounds i32, i32* %other1.sroa.4.0.i.i.i.i, i64 -1
%159 = load i32, i32* %158, align 4, !alias.scope !386, !noalias !391
br label %bb8.i.i.i.i
bb8.i.i.i.i: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i", %bb6.i.i.i.i
%other1.sroa.4.1.i.i.i.i = phi i32* [ %152, %bb6.i.i.i.i ], [ %158, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i" ]
%_0.sroa.3.0.i.i.i.i.i.i.i.i = phi i32 [ 0, %bb6.i.i.i.i ], [ %159, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i" ]
%_0.sroa.0.0.i.i.i.i.i.i.i.i = phi i1 [ true, %bb6.i.i.i.i ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i" ]
%cond.i.i.i.i = icmp eq i64 %_0.sroa.0.0.i.i.i.i83.i.i.i.i, 0
br i1 %cond.i.i.i.i, label %bb14.i.i.i.i, label %bb15.i.i.i.i
bb14.i.i.i.i: ; preds = %bb8.i.i.i.i
%not.cond14.i.i.i.i = xor i1 %_0.sroa.0.0.i.i.i.i.i.i.i.i, true
%..i.i.i.i = sext i1 %not.cond14.i.i.i.i to i64
br label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit
bb15.i.i.i.i: ; preds = %bb8.i.i.i.i
br i1 %_0.sroa.0.0.i.i.i.i.i.i.i.i, label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.thread, label %bb24.i.i.i.i
_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.thread: ; preds = %bb15.i.i.i.i
call void @llvm.lifetime.end(i64 168, i8* nonnull %57)
br label %bb33
bb24.i.i.i.i: ; preds = %bb15.i.i.i.i
%160 = icmp eq i32 %_0.sroa.3.0.i.i.i.i82.i.i.i.i, %_0.sroa.3.0.i.i.i.i.i.i.i.i
br i1 %160, label %bb5.i.i.i.i, label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.loopexit
_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.loopexit: ; preds = %bb24.i.i.i.i
%161 = icmp ult i32 %_0.sroa.3.0.i.i.i.i82.i.i.i.i, %_0.sroa.3.0.i.i.i.i.i.i.i.i
%..i.i.i.i.i.le = select i1 %161, i64 255, i64 1
br label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit
_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit: ; preds = %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.loopexit, %bb14.i.i.i.i
%_0.0.i.i.i.i = phi i64 [ %..i.i.i.i, %bb14.i.i.i.i ], [ %..i.i.i.i.i.le, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.loopexit ]
%abi_cast.sroa.4.0.extract.shift.i = shl i64 %_0.0.i.i.i.i, 56
%sext.i = ashr exact i64 %abi_cast.sroa.4.0.extract.shift.i, 56
%switch.i = icmp ult i64 %sext.i, 2
call void @llvm.lifetime.end(i64 168, i8* nonnull %57)
br i1 %switch.i, label %bb33, label %bb34
bb33: ; preds = %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit.thread, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit
%162 = add i16 %27, 1
br label %bb36
bb34: ; preds = %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit
%163 = icmp ugt i64 %127, 40
br i1 %163, label %bb4.i.i.i.i67, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i68"
bb4.i.i.i.i67: ; preds = %bb34
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %127, i64 40), !noalias !392
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i68": ; preds = %bb34
%164 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %127
%165 = icmp eq i64 %127, 0
br i1 %165, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit80, label %bb6.lr.ph.i69
bb6.lr.ph.i69: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i68"
%166 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 0
%167 = shl i64 %127, 2
%168 = add i64 %167, -4
%169 = lshr exact i64 %168, 2
%170 = add nuw nsw i64 %169, 1
%xtraiter764 = and i64 %170, 3
%lcmp.mod765 = icmp eq i64 %xtraiter764, 0
br i1 %lcmp.mod765, label %bb6.i75.prol.loopexit, label %bb6.i75.prol.preheader
bb6.i75.prol.preheader: ; preds = %bb6.lr.ph.i69
br label %bb6.i75.prol
bb6.i75.prol: ; preds = %bb6.i75.prol, %bb6.i75.prol.preheader
%carry.020.i72.prol = phi i64 [ 0, %bb6.i75.prol.preheader ], [ %176, %bb6.i75.prol ]
%iter.sroa.0.019.i73.prol = phi i32* [ %166, %bb6.i75.prol.preheader ], [ %171, %bb6.i75.prol ]
%prol.iter766 = phi i64 [ %xtraiter764, %bb6.i75.prol.preheader ], [ %prol.iter766.sub, %bb6.i75.prol ]
%171 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i73.prol, i64 1
%172 = load i32, i32* %iter.sroa.0.019.i73.prol, align 4
%173 = zext i32 %172 to i64
%174 = mul nuw nsw i64 %173, 10
%175 = add nuw nsw i64 %174, %carry.020.i72.prol
%176 = lshr i64 %175, 32
%abi_cast.sroa.4.0.extract.trunc.i74.prol = trunc i64 %175 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i74.prol, i32* %iter.sroa.0.019.i73.prol, align 4
%prol.iter766.sub = add i64 %prol.iter766, -1
%prol.iter766.cmp = icmp eq i64 %prol.iter766.sub, 0
br i1 %prol.iter766.cmp, label %bb6.i75.prol.loopexit.unr-lcssa, label %bb6.i75.prol, !llvm.loop !395
bb6.i75.prol.loopexit.unr-lcssa: ; preds = %bb6.i75.prol
br label %bb6.i75.prol.loopexit
bb6.i75.prol.loopexit: ; preds = %bb6.lr.ph.i69, %bb6.i75.prol.loopexit.unr-lcssa
%.lcssa749.unr = phi i64 [ undef, %bb6.lr.ph.i69 ], [ %176, %bb6.i75.prol.loopexit.unr-lcssa ]
%carry.020.i72.unr = phi i64 [ 0, %bb6.lr.ph.i69 ], [ %176, %bb6.i75.prol.loopexit.unr-lcssa ]
%iter.sroa.0.019.i73.unr = phi i32* [ %166, %bb6.lr.ph.i69 ], [ %171, %bb6.i75.prol.loopexit.unr-lcssa ]
%177 = icmp ult i64 %168, 12
br i1 %177, label %bb5.i71, label %bb6.lr.ph.i69.new
bb6.lr.ph.i69.new: ; preds = %bb6.i75.prol.loopexit
br label %bb6.i75
bb5.i71.unr-lcssa: ; preds = %bb6.i75
br label %bb5.i71
bb5.i71: ; preds = %bb6.i75.prol.loopexit, %bb5.i71.unr-lcssa
%.lcssa749 = phi i64 [ %.lcssa749.unr, %bb6.i75.prol.loopexit ], [ %202, %bb5.i71.unr-lcssa ]
%abi_cast.sroa.0.0.extract.trunc.i70 = trunc i64 %.lcssa749 to i32
%178 = icmp eq i32 %abi_cast.sroa.0.0.extract.trunc.i70, 0
br i1 %178, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit80, label %bb8.i76
bb6.i75: ; preds = %bb6.i75, %bb6.lr.ph.i69.new
%carry.020.i72 = phi i64 [ %carry.020.i72.unr, %bb6.lr.ph.i69.new ], [ %202, %bb6.i75 ]
%iter.sroa.0.019.i73 = phi i32* [ %iter.sroa.0.019.i73.unr, %bb6.lr.ph.i69.new ], [ %197, %bb6.i75 ]
%179 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i73, i64 1
%180 = load i32, i32* %iter.sroa.0.019.i73, align 4
%181 = zext i32 %180 to i64
%182 = mul nuw nsw i64 %181, 10
%183 = add nuw nsw i64 %182, %carry.020.i72
%184 = lshr i64 %183, 32
%abi_cast.sroa.4.0.extract.trunc.i74 = trunc i64 %183 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i74, i32* %iter.sroa.0.019.i73, align 4
%185 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i73, i64 2
%186 = load i32, i32* %179, align 4
%187 = zext i32 %186 to i64
%188 = mul nuw nsw i64 %187, 10
%189 = add nuw nsw i64 %188, %184
%190 = lshr i64 %189, 32
%abi_cast.sroa.4.0.extract.trunc.i74.1 = trunc i64 %189 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i74.1, i32* %179, align 4
%191 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i73, i64 3
%192 = load i32, i32* %185, align 4
%193 = zext i32 %192 to i64
%194 = mul nuw nsw i64 %193, 10
%195 = add nuw nsw i64 %194, %190
%196 = lshr i64 %195, 32
%abi_cast.sroa.4.0.extract.trunc.i74.2 = trunc i64 %195 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i74.2, i32* %185, align 4
%197 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i73, i64 4
%198 = load i32, i32* %191, align 4
%199 = zext i32 %198 to i64
%200 = mul nuw nsw i64 %199, 10
%201 = add nuw nsw i64 %200, %196
%202 = lshr i64 %201, 32
%abi_cast.sroa.4.0.extract.trunc.i74.3 = trunc i64 %201 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i74.3, i32* %191, align 4
%203 = icmp eq i32* %197, %164
br i1 %203, label %bb5.i71.unr-lcssa, label %bb6.i75
bb8.i76: ; preds = %bb5.i71
%204 = icmp ult i64 %127, 40
br i1 %204, label %bb10.i77, label %panic.i79, !prof !5
bb10.i77: ; preds = %bb8.i76
store i32 %abi_cast.sroa.0.0.extract.trunc.i70, i32* %164, align 4
%205 = add i64 %127, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit80
panic.i79: ; preds = %bb8.i76
call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %127, i64 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit80: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i68", %bb5.i71, %bb10.i77
%sz.0.i78 = phi i64 [ %205, %bb10.i77 ], [ %127, %bb5.i71 ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i68" ]
store i64 %sz.0.i78, i64* %36, align 8
br label %bb36
bb36: ; preds = %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit80, %bb33
%k.0 = phi i16 [ %162, %bb33 ], [ %27, %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit80 ]
%206 = icmp slt i16 %k.0, %4
br i1 %206, label %bb90, label %bb38
bb38: ; preds = %bb36
%207 = sext i16 %k.0 to i64
%208 = sext i16 %4 to i64
%209 = sub nsw i64 %207, %208
%210 = icmp ult i64 %209, %3
%211 = sub i16 %k.0, %4
%212 = sext i16 %211 to i64
%len.0 = select i1 %210, i64 %212, i64 %3
%213 = icmp eq i64 %len.0, 0
br i1 %213, label %bb90, label %bb57.lr.ph
bb57.lr.ph: ; preds = %bb38
%214 = bitcast %"num::bignum::Big32x40"* %scale2 to i8*
call void @llvm.lifetime.start(i64 168, i8* nonnull %214)
%215 = load i64, i64* %43, align 8, !alias.scope !396, !noalias !399
%216 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale2, i64 0, i32 0
store i64 %215, i64* %216, align 8, !alias.scope !399, !noalias !396
%217 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale2, i64 0, i32 2
%218 = bitcast [40 x i32]* %217 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %218, i8* %45, i64 160, i32 8, i1 false) #16, !alias.scope !401
%219 = call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h1cf2bd21d8443b3bE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %scale2, i64 1)
%220 = bitcast %"num::bignum::Big32x40"* %scale4 to i8*
call void @llvm.lifetime.start(i64 168, i8* nonnull %220)
%221 = load i64, i64* %43, align 8, !alias.scope !402, !noalias !405
%222 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale4, i64 0, i32 0
store i64 %221, i64* %222, align 8, !alias.scope !405, !noalias !402
%223 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale4, i64 0, i32 2
%224 = bitcast [40 x i32]* %223 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %224, i8* %45, i64 160, i32 8, i1 false) #16, !alias.scope !407
%225 = call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h1cf2bd21d8443b3bE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %scale4, i64 2)
%226 = bitcast %"num::bignum::Big32x40"* %scale8 to i8*
call void @llvm.lifetime.start(i64 168, i8* nonnull %226)
%227 = load i64, i64* %43, align 8, !alias.scope !408, !noalias !411
%228 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale8, i64 0, i32 0
store i64 %227, i64* %228, align 8, !alias.scope !411, !noalias !408
%229 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale8, i64 0, i32 2
%230 = bitcast [40 x i32]* %229 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %230, i8* %45, i64 160, i32 8, i1 false) #16, !alias.scope !413
%231 = call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h1cf2bd21d8443b3bE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %scale8, i64 3)
%232 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 0
%233 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale8, i64 0, i32 2, i64 0
%234 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale4, i64 0, i32 2, i64 0
%235 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale2, i64 0, i32 2, i64 0
br label %bb57
bb56: ; preds = %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit60
call void @llvm.lifetime.end(i64 168, i8* nonnull %226)
call void @llvm.lifetime.end(i64 168, i8* nonnull %220)
call void @llvm.lifetime.end(i64 168, i8* nonnull %214)
br label %bb90
bb57: ; preds = %bb57.lr.ph, %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit60
%iter.sroa.0.0375 = phi i64 [ 0, %bb57.lr.ph ], [ %236, %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit60 ]
%236 = add nuw i64 %iter.sroa.0.0375, 1
%237 = call zeroext i1 @_ZN4core3num6bignum8Big32x407is_zero17hed02ce6e8b5662d9E(%"num::bignum::Big32x40"* noalias nonnull readonly dereferenceable(168) %mant)
br i1 %237, label %bb2.i.i121, label %bb60
bb2.i.i121: ; preds = %bb57
%238 = icmp ugt i64 %len.0, %3
br i1 %238, label %bb4.i.i, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h12c913eaba7698c9E.exit"
bb4.i.i: ; preds = %bb2.i.i121
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %len.0, i64 %3), !noalias !414
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h12c913eaba7698c9E.exit": ; preds = %bb2.i.i121
%239 = sub i64 %len.0, %iter.sroa.0.0375
%240 = icmp eq i64 %239, 0
br i1 %240, label %bb65, label %bb66.preheader
bb66.preheader: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h12c913eaba7698c9E.exit"
%241 = getelementptr inbounds i8, i8* %2, i64 %iter.sroa.0.0375
call void @llvm.memset.p0i8.i64(i8* %241, i8 48, i64 %239, i32 1, i1 false)
br label %bb65
bb60: ; preds = %bb57
%242 = load i64, i64* %36, align 8, !alias.scope !419, !noalias !426
%243 = load i64, i64* %228, align 8, !alias.scope !426, !noalias !419
%244 = icmp uge i64 %243, %242
%_0.0.sroa.speculated.i.i.i.i.i122 = select i1 %244, i64 %243, i64 %242
%245 = icmp ugt i64 %_0.0.sroa.speculated.i.i.i.i.i122, 40
br i1 %245, label %bb4.i.i.i3.i.i.i123, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i124"
bb4.i.i.i3.i.i.i123: ; preds = %bb60
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %_0.0.sroa.speculated.i.i.i.i.i122, i64 40), !noalias !430
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i124": ; preds = %bb60
%246 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i.i.i122
%247 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale8, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i.i.i122
br label %bb5.i.i.i.i127
bb5.i.i.i.i127: ; preds = %bb24.i.i.i.i144, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i124"
%self.sroa.4.0.i.i.i.i125 = phi i32* [ %246, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i124" ], [ %self.sroa.4.1.i.i.i.i129, %bb24.i.i.i.i144 ]
%other1.sroa.4.0.i.i.i.i126 = phi i32* [ %247, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i124" ], [ %other1.sroa.4.1.i.i.i.i134, %bb24.i.i.i.i144 ]
%248 = icmp eq i32* %self.sroa.4.0.i.i.i.i125, %232
br i1 %248, label %bb6.i.i.i.i132, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i128"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i128": ; preds = %bb5.i.i.i.i127
%249 = getelementptr inbounds i32, i32* %self.sroa.4.0.i.i.i.i125, i64 -1
%250 = load i32, i32* %249, align 4, !alias.scope !433, !noalias !438
br label %bb6.i.i.i.i132
bb6.i.i.i.i132: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i128", %bb5.i.i.i.i127
%self.sroa.4.1.i.i.i.i129 = phi i32* [ %232, %bb5.i.i.i.i127 ], [ %249, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i128" ]
%_0.sroa.3.0.i.i.i.i82.i.i.i.i130 = phi i32 [ 0, %bb5.i.i.i.i127 ], [ %250, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i128" ]
%_0.sroa.0.0.i.i.i.i83.i.i.i.i131 = phi i64 [ 0, %bb5.i.i.i.i127 ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i128" ]
%251 = icmp eq i32* %other1.sroa.4.0.i.i.i.i126, %233
br i1 %251, label %bb8.i.i.i.i138, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i133"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i133": ; preds = %bb6.i.i.i.i132
%252 = getelementptr inbounds i32, i32* %other1.sroa.4.0.i.i.i.i126, i64 -1
%253 = load i32, i32* %252, align 4, !alias.scope !442, !noalias !447
br label %bb8.i.i.i.i138
bb8.i.i.i.i138: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i133", %bb6.i.i.i.i132
%other1.sroa.4.1.i.i.i.i134 = phi i32* [ %233, %bb6.i.i.i.i132 ], [ %252, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i133" ]
%_0.sroa.3.0.i.i.i.i.i.i.i.i135 = phi i32 [ 0, %bb6.i.i.i.i132 ], [ %253, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i133" ]
%_0.sroa.0.0.i.i.i.i.i.i.i.i136 = phi i1 [ true, %bb6.i.i.i.i132 ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i133" ]
%cond.i.i.i.i137 = icmp eq i64 %_0.sroa.0.0.i.i.i.i83.i.i.i.i131, 0
br i1 %cond.i.i.i.i137, label %bb14.i.i.i.i141, label %bb15.i.i.i.i142
bb14.i.i.i.i141: ; preds = %bb8.i.i.i.i138
%not.cond14.i.i.i.i139 = xor i1 %_0.sroa.0.0.i.i.i.i.i.i.i.i136, true
%..i.i.i.i140 = sext i1 %not.cond14.i.i.i.i139 to i64
br label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit150
bb15.i.i.i.i142: ; preds = %bb8.i.i.i.i138
br i1 %_0.sroa.0.0.i.i.i.i.i.i.i.i136, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i168.loopexit", label %bb24.i.i.i.i144
bb24.i.i.i.i144: ; preds = %bb15.i.i.i.i142
%254 = icmp eq i32 %_0.sroa.3.0.i.i.i.i82.i.i.i.i130, %_0.sroa.3.0.i.i.i.i.i.i.i.i135
br i1 %254, label %bb5.i.i.i.i127, label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit150.loopexit
_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit150.loopexit: ; preds = %bb24.i.i.i.i144
%255 = icmp ult i32 %_0.sroa.3.0.i.i.i.i82.i.i.i.i130, %_0.sroa.3.0.i.i.i.i.i.i.i.i135
%..i.i.i.i.i143.le = select i1 %255, i64 255, i64 1
br label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit150
_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit150: ; preds = %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit150.loopexit, %bb14.i.i.i.i141
%_0.0.i.i.i.i145 = phi i64 [ %..i.i.i.i140, %bb14.i.i.i.i141 ], [ %..i.i.i.i.i143.le, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit150.loopexit ]
%abi_cast.sroa.4.0.extract.shift.i146 = shl i64 %_0.0.i.i.i.i145, 56
%sext.i147 = ashr exact i64 %abi_cast.sroa.4.0.extract.shift.i146, 56
%switch.i148 = icmp ult i64 %sext.i147, 2
br i1 %switch.i148, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i168", label %bb72
bb65: ; preds = %bb66.preheader, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h12c913eaba7698c9E.exit"
%256 = getelementptr inbounds { i64, [0 x i8], i16, [6 x i8] }, { i64, [0 x i8], i16, [6 x i8] }* %0, i64 0, i32 0
store i64 %len.0, i64* %256, align 8
%257 = getelementptr inbounds { i64, [0 x i8], i16, [6 x i8] }, { i64, [0 x i8], i16, [6 x i8] }* %0, i64 0, i32 2
store i16 %k.0, i16* %257, align 8
call void @llvm.lifetime.end(i64 168, i8* nonnull %226)
call void @llvm.lifetime.end(i64 168, i8* nonnull %220)
call void @llvm.lifetime.end(i64 168, i8* nonnull %214)
call void @llvm.lifetime.end(i64 168, i8* nonnull %39)
call void @llvm.lifetime.end(i64 168, i8* nonnull %28)
br label %bb67
bb67: ; preds = %bb123, %bb65
ret void
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i168.loopexit": ; preds = %bb15.i.i.i.i142
br label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i168"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i168": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i168.loopexit", %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit150
%.idx.i166 = shl nuw i64 %_0.0.sroa.speculated.i.i.i.i.i122, 2
%258 = sdiv i64 %.idx.i166, 4
%.idx.off.i167 = or i64 %.idx.i166, 3
%259 = icmp ult i64 %.idx.off.i167, 7
br i1 %259, label %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit175, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i172.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i172.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i168"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i172"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i172": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i172.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i172"
%noborrow.050.i169 = phi i32 [ %272, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i172" ], [ 1, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i172.preheader" ]
%iter.sroa.8.049.i170 = phi i64 [ %262, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i172" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i172.preheader" ]
%260 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %iter.sroa.8.049.i170
%261 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale8, i64 0, i32 2, i64 %iter.sroa.8.049.i170
%262 = add nuw i64 %iter.sroa.8.049.i170, 1
%263 = load i32, i32* %260, align 4, !noalias !448
%264 = load i32, i32* %261, align 4, !alias.scope !448
%265 = xor i32 %264, -1
%266 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %263, i32 %265) #16
%267 = extractvalue { i32, i1 } %266, 0
%268 = extractvalue { i32, i1 } %266, 1
%269 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %267, i32 %noborrow.050.i169) #16
%270 = extractvalue { i32, i1 } %269, 0
%271 = extractvalue { i32, i1 } %269, 1
%brmerge.i.i171 = or i1 %268, %271
store i32 %270, i32* %260, align 4, !noalias !448
%272 = zext i1 %brmerge.i.i171 to i32
%273 = icmp ult i64 %262, %258
br i1 %273, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i172", label %bb9.i173
bb9.i173: ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i172"
br i1 %brmerge.i.i171, label %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit175, label %bb12.i174
bb12.i174: ; preds = %bb9.i173
call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num6bignum8Big32x403sub14_MSG_FILE_LINE17he6988b9083a66661E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*)), !noalias !448
unreachable
_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit175: ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i168", %bb9.i173
store i64 %_0.0.sroa.speculated.i.i.i.i.i122, i64* %36, align 8, !noalias !448
br label %bb72
bb72: ; preds = %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit150, %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit175
%274 = phi i64 [ %_0.0.sroa.speculated.i.i.i.i.i122, %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit175 ], [ %242, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit150 ]
%d.0 = phi i8 [ 8, %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit175 ], [ 0, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit150 ]
%275 = load i64, i64* %222, align 8, !alias.scope !451, !noalias !458
%276 = icmp uge i64 %275, %274
%_0.0.sroa.speculated.i.i.i.i.i176 = select i1 %276, i64 %275, i64 %274
%277 = icmp ugt i64 %_0.0.sroa.speculated.i.i.i.i.i176, 40
br i1 %277, label %bb4.i.i.i3.i.i.i177, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i178"
bb4.i.i.i3.i.i.i177: ; preds = %bb72
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %_0.0.sroa.speculated.i.i.i.i.i176, i64 40), !noalias !462
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i178": ; preds = %bb72
%278 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i.i.i176
%279 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale4, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i.i.i176
br label %bb5.i.i.i.i181
bb5.i.i.i.i181: ; preds = %bb24.i.i.i.i198, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i178"
%self.sroa.4.0.i.i.i.i179 = phi i32* [ %278, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i178" ], [ %self.sroa.4.1.i.i.i.i183, %bb24.i.i.i.i198 ]
%other1.sroa.4.0.i.i.i.i180 = phi i32* [ %279, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i178" ], [ %other1.sroa.4.1.i.i.i.i188, %bb24.i.i.i.i198 ]
%280 = icmp eq i32* %self.sroa.4.0.i.i.i.i179, %232
br i1 %280, label %bb6.i.i.i.i186, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i182"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i182": ; preds = %bb5.i.i.i.i181
%281 = getelementptr inbounds i32, i32* %self.sroa.4.0.i.i.i.i179, i64 -1
%282 = load i32, i32* %281, align 4, !alias.scope !465, !noalias !470
br label %bb6.i.i.i.i186
bb6.i.i.i.i186: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i182", %bb5.i.i.i.i181
%self.sroa.4.1.i.i.i.i183 = phi i32* [ %232, %bb5.i.i.i.i181 ], [ %281, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i182" ]
%_0.sroa.3.0.i.i.i.i82.i.i.i.i184 = phi i32 [ 0, %bb5.i.i.i.i181 ], [ %282, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i182" ]
%_0.sroa.0.0.i.i.i.i83.i.i.i.i185 = phi i64 [ 0, %bb5.i.i.i.i181 ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i182" ]
%283 = icmp eq i32* %other1.sroa.4.0.i.i.i.i180, %234
br i1 %283, label %bb8.i.i.i.i192, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i187"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i187": ; preds = %bb6.i.i.i.i186
%284 = getelementptr inbounds i32, i32* %other1.sroa.4.0.i.i.i.i180, i64 -1
%285 = load i32, i32* %284, align 4, !alias.scope !474, !noalias !479
br label %bb8.i.i.i.i192
bb8.i.i.i.i192: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i187", %bb6.i.i.i.i186
%other1.sroa.4.1.i.i.i.i188 = phi i32* [ %234, %bb6.i.i.i.i186 ], [ %284, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i187" ]
%_0.sroa.3.0.i.i.i.i.i.i.i.i189 = phi i32 [ 0, %bb6.i.i.i.i186 ], [ %285, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i187" ]
%_0.sroa.0.0.i.i.i.i.i.i.i.i190 = phi i1 [ true, %bb6.i.i.i.i186 ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i187" ]
%cond.i.i.i.i191 = icmp eq i64 %_0.sroa.0.0.i.i.i.i83.i.i.i.i185, 0
br i1 %cond.i.i.i.i191, label %bb14.i.i.i.i195, label %bb15.i.i.i.i196
bb14.i.i.i.i195: ; preds = %bb8.i.i.i.i192
%not.cond14.i.i.i.i193 = xor i1 %_0.sroa.0.0.i.i.i.i.i.i.i.i190, true
%..i.i.i.i194 = sext i1 %not.cond14.i.i.i.i193 to i64
br label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit204
bb15.i.i.i.i196: ; preds = %bb8.i.i.i.i192
br i1 %_0.sroa.0.0.i.i.i.i.i.i.i.i190, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i209.loopexit", label %bb24.i.i.i.i198
bb24.i.i.i.i198: ; preds = %bb15.i.i.i.i196
%286 = icmp eq i32 %_0.sroa.3.0.i.i.i.i82.i.i.i.i184, %_0.sroa.3.0.i.i.i.i.i.i.i.i189
br i1 %286, label %bb5.i.i.i.i181, label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit204.loopexit
_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit204.loopexit: ; preds = %bb24.i.i.i.i198
%287 = icmp ult i32 %_0.sroa.3.0.i.i.i.i82.i.i.i.i184, %_0.sroa.3.0.i.i.i.i.i.i.i.i189
%..i.i.i.i.i197.le = select i1 %287, i64 255, i64 1
br label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit204
_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit204: ; preds = %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit204.loopexit, %bb14.i.i.i.i195
%_0.0.i.i.i.i199 = phi i64 [ %..i.i.i.i194, %bb14.i.i.i.i195 ], [ %..i.i.i.i.i197.le, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit204.loopexit ]
%abi_cast.sroa.4.0.extract.shift.i200 = shl i64 %_0.0.i.i.i.i199, 56
%sext.i201 = ashr exact i64 %abi_cast.sroa.4.0.extract.shift.i200, 56
%switch.i202 = icmp ult i64 %sext.i201, 2
br i1 %switch.i202, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i209", label %bb77
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i209.loopexit": ; preds = %bb15.i.i.i.i196
br label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i209"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i209": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i209.loopexit", %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit204
%.idx.i207 = shl nuw i64 %_0.0.sroa.speculated.i.i.i.i.i176, 2
%288 = sdiv i64 %.idx.i207, 4
%.idx.off.i208 = or i64 %.idx.i207, 3
%289 = icmp ult i64 %.idx.off.i208, 7
br i1 %289, label %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit216, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i213.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i213.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i209"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i213"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i213": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i213.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i213"
%noborrow.050.i210 = phi i32 [ %302, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i213" ], [ 1, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i213.preheader" ]
%iter.sroa.8.049.i211 = phi i64 [ %292, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i213" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i213.preheader" ]
%290 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %iter.sroa.8.049.i211
%291 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale4, i64 0, i32 2, i64 %iter.sroa.8.049.i211
%292 = add nuw i64 %iter.sroa.8.049.i211, 1
%293 = load i32, i32* %290, align 4, !noalias !480
%294 = load i32, i32* %291, align 4, !alias.scope !480
%295 = xor i32 %294, -1
%296 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %293, i32 %295) #16
%297 = extractvalue { i32, i1 } %296, 0
%298 = extractvalue { i32, i1 } %296, 1
%299 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %297, i32 %noborrow.050.i210) #16
%300 = extractvalue { i32, i1 } %299, 0
%301 = extractvalue { i32, i1 } %299, 1
%brmerge.i.i212 = or i1 %298, %301
store i32 %300, i32* %290, align 4, !noalias !480
%302 = zext i1 %brmerge.i.i212 to i32
%303 = icmp ult i64 %292, %288
br i1 %303, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i213", label %bb9.i214
bb9.i214: ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i213"
br i1 %brmerge.i.i212, label %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit216, label %bb12.i215
bb12.i215: ; preds = %bb9.i214
call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num6bignum8Big32x403sub14_MSG_FILE_LINE17he6988b9083a66661E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*)), !noalias !480
unreachable
_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit216: ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i209", %bb9.i214
store i64 %_0.0.sroa.speculated.i.i.i.i.i176, i64* %36, align 8, !noalias !480
%304 = or i8 %d.0, 4
br label %bb77
bb77: ; preds = %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit204, %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit216
%305 = phi i64 [ %_0.0.sroa.speculated.i.i.i.i.i176, %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit216 ], [ %274, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit204 ]
%d.1 = phi i8 [ %304, %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit216 ], [ %d.0, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit204 ]
%306 = load i64, i64* %216, align 8, !alias.scope !483, !noalias !490
%307 = icmp uge i64 %306, %305
%_0.0.sroa.speculated.i.i.i.i.i217 = select i1 %307, i64 %306, i64 %305
%308 = icmp ugt i64 %_0.0.sroa.speculated.i.i.i.i.i217, 40
br i1 %308, label %bb4.i.i.i3.i.i.i218, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i219"
bb4.i.i.i3.i.i.i218: ; preds = %bb77
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %_0.0.sroa.speculated.i.i.i.i.i217, i64 40), !noalias !494
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i219": ; preds = %bb77
%309 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i.i.i217
%310 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale2, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i.i.i217
br label %bb5.i.i.i.i222
bb5.i.i.i.i222: ; preds = %bb24.i.i.i.i239, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i219"
%self.sroa.4.0.i.i.i.i220 = phi i32* [ %309, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i219" ], [ %self.sroa.4.1.i.i.i.i224, %bb24.i.i.i.i239 ]
%other1.sroa.4.0.i.i.i.i221 = phi i32* [ %310, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i219" ], [ %other1.sroa.4.1.i.i.i.i229, %bb24.i.i.i.i239 ]
%311 = icmp eq i32* %self.sroa.4.0.i.i.i.i220, %232
br i1 %311, label %bb6.i.i.i.i227, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i223"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i223": ; preds = %bb5.i.i.i.i222
%312 = getelementptr inbounds i32, i32* %self.sroa.4.0.i.i.i.i220, i64 -1
%313 = load i32, i32* %312, align 4, !alias.scope !497, !noalias !502
br label %bb6.i.i.i.i227
bb6.i.i.i.i227: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i223", %bb5.i.i.i.i222
%self.sroa.4.1.i.i.i.i224 = phi i32* [ %232, %bb5.i.i.i.i222 ], [ %312, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i223" ]
%_0.sroa.3.0.i.i.i.i82.i.i.i.i225 = phi i32 [ 0, %bb5.i.i.i.i222 ], [ %313, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i223" ]
%_0.sroa.0.0.i.i.i.i83.i.i.i.i226 = phi i64 [ 0, %bb5.i.i.i.i222 ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i223" ]
%314 = icmp eq i32* %other1.sroa.4.0.i.i.i.i221, %235
br i1 %314, label %bb8.i.i.i.i233, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i228"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i228": ; preds = %bb6.i.i.i.i227
%315 = getelementptr inbounds i32, i32* %other1.sroa.4.0.i.i.i.i221, i64 -1
%316 = load i32, i32* %315, align 4, !alias.scope !506, !noalias !511
br label %bb8.i.i.i.i233
bb8.i.i.i.i233: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i228", %bb6.i.i.i.i227
%other1.sroa.4.1.i.i.i.i229 = phi i32* [ %235, %bb6.i.i.i.i227 ], [ %315, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i228" ]
%_0.sroa.3.0.i.i.i.i.i.i.i.i230 = phi i32 [ 0, %bb6.i.i.i.i227 ], [ %316, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i228" ]
%_0.sroa.0.0.i.i.i.i.i.i.i.i231 = phi i1 [ true, %bb6.i.i.i.i227 ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i228" ]
%cond.i.i.i.i232 = icmp eq i64 %_0.sroa.0.0.i.i.i.i83.i.i.i.i226, 0
br i1 %cond.i.i.i.i232, label %bb14.i.i.i.i236, label %bb15.i.i.i.i237
bb14.i.i.i.i236: ; preds = %bb8.i.i.i.i233
%not.cond14.i.i.i.i234 = xor i1 %_0.sroa.0.0.i.i.i.i.i.i.i.i231, true
%..i.i.i.i235 = sext i1 %not.cond14.i.i.i.i234 to i64
br label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit245
bb15.i.i.i.i237: ; preds = %bb8.i.i.i.i233
br i1 %_0.sroa.0.0.i.i.i.i.i.i.i.i231, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i156.loopexit", label %bb24.i.i.i.i239
bb24.i.i.i.i239: ; preds = %bb15.i.i.i.i237
%317 = icmp eq i32 %_0.sroa.3.0.i.i.i.i82.i.i.i.i225, %_0.sroa.3.0.i.i.i.i.i.i.i.i230
br i1 %317, label %bb5.i.i.i.i222, label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit245.loopexit
_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit245.loopexit: ; preds = %bb24.i.i.i.i239
%318 = icmp ult i32 %_0.sroa.3.0.i.i.i.i82.i.i.i.i225, %_0.sroa.3.0.i.i.i.i.i.i.i.i230
%..i.i.i.i.i238.le = select i1 %318, i64 255, i64 1
br label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit245
_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit245: ; preds = %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit245.loopexit, %bb14.i.i.i.i236
%_0.0.i.i.i.i240 = phi i64 [ %..i.i.i.i235, %bb14.i.i.i.i236 ], [ %..i.i.i.i.i238.le, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit245.loopexit ]
%abi_cast.sroa.4.0.extract.shift.i241 = shl i64 %_0.0.i.i.i.i240, 56
%sext.i242 = ashr exact i64 %abi_cast.sroa.4.0.extract.shift.i241, 56
%switch.i243 = icmp ult i64 %sext.i242, 2
br i1 %switch.i243, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i156", label %bb82
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i156.loopexit": ; preds = %bb15.i.i.i.i237
br label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i156"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i156": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i156.loopexit", %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit245
%.idx.i154 = shl nuw i64 %_0.0.sroa.speculated.i.i.i.i.i217, 2
%319 = sdiv i64 %.idx.i154, 4
%.idx.off.i155 = or i64 %.idx.i154, 3
%320 = icmp ult i64 %.idx.off.i155, 7
br i1 %320, label %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit163, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i160.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i160.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i156"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i160"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i160": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i160.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i160"
%noborrow.050.i157 = phi i32 [ %333, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i160" ], [ 1, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i160.preheader" ]
%iter.sroa.8.049.i158 = phi i64 [ %323, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i160" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i160.preheader" ]
%321 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %iter.sroa.8.049.i158
%322 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale2, i64 0, i32 2, i64 %iter.sroa.8.049.i158
%323 = add nuw i64 %iter.sroa.8.049.i158, 1
%324 = load i32, i32* %321, align 4, !noalias !512
%325 = load i32, i32* %322, align 4, !alias.scope !512
%326 = xor i32 %325, -1
%327 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %324, i32 %326) #16
%328 = extractvalue { i32, i1 } %327, 0
%329 = extractvalue { i32, i1 } %327, 1
%330 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %328, i32 %noborrow.050.i157) #16
%331 = extractvalue { i32, i1 } %330, 0
%332 = extractvalue { i32, i1 } %330, 1
%brmerge.i.i159 = or i1 %329, %332
store i32 %331, i32* %321, align 4, !noalias !512
%333 = zext i1 %brmerge.i.i159 to i32
%334 = icmp ult i64 %323, %319
br i1 %334, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i160", label %bb9.i161
bb9.i161: ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i160"
br i1 %brmerge.i.i159, label %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit163, label %bb12.i162
bb12.i162: ; preds = %bb9.i161
call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num6bignum8Big32x403sub14_MSG_FILE_LINE17he6988b9083a66661E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*)), !noalias !512
unreachable
_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit163: ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i156", %bb9.i161
store i64 %_0.0.sroa.speculated.i.i.i.i.i217, i64* %36, align 8, !noalias !512
%335 = add nsw i8 %d.1, 2
br label %bb82
bb82: ; preds = %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit245, %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit163
%336 = phi i64 [ %_0.0.sroa.speculated.i.i.i.i.i217, %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit163 ], [ %305, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit245 ]
%d.2 = phi i8 [ %335, %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit163 ], [ %d.1, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit245 ]
%337 = load i64, i64* %43, align 8, !alias.scope !515, !noalias !522
%338 = icmp uge i64 %337, %336
%_0.0.sroa.speculated.i.i.i.i.i92 = select i1 %338, i64 %337, i64 %336
%339 = icmp ugt i64 %_0.0.sroa.speculated.i.i.i.i.i92, 40
br i1 %339, label %bb4.i.i.i3.i.i.i93, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i94"
bb4.i.i.i3.i.i.i93: ; preds = %bb82
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %_0.0.sroa.speculated.i.i.i.i.i92, i64 40), !noalias !526
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i94": ; preds = %bb82
%340 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i.i.i92
%341 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i.i.i92
br label %bb5.i.i.i.i97
bb5.i.i.i.i97: ; preds = %bb24.i.i.i.i114, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i94"
%self.sroa.4.0.i.i.i.i95 = phi i32* [ %340, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i94" ], [ %self.sroa.4.1.i.i.i.i99, %bb24.i.i.i.i114 ]
%other1.sroa.4.0.i.i.i.i96 = phi i32* [ %341, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i.i.i94" ], [ %other1.sroa.4.1.i.i.i.i104, %bb24.i.i.i.i114 ]
%342 = icmp eq i32* %self.sroa.4.0.i.i.i.i95, %232
br i1 %342, label %bb6.i.i.i.i102, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i98"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i98": ; preds = %bb5.i.i.i.i97
%343 = getelementptr inbounds i32, i32* %self.sroa.4.0.i.i.i.i95, i64 -1
%344 = load i32, i32* %343, align 4, !alias.scope !529, !noalias !534
br label %bb6.i.i.i.i102
bb6.i.i.i.i102: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i98", %bb5.i.i.i.i97
%self.sroa.4.1.i.i.i.i99 = phi i32* [ %232, %bb5.i.i.i.i97 ], [ %343, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i98" ]
%_0.sroa.3.0.i.i.i.i82.i.i.i.i100 = phi i32 [ 0, %bb5.i.i.i.i97 ], [ %344, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i98" ]
%_0.sroa.0.0.i.i.i.i83.i.i.i.i101 = phi i64 [ 0, %bb5.i.i.i.i97 ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i.i.i98" ]
%345 = icmp eq i32* %other1.sroa.4.0.i.i.i.i96, %152
br i1 %345, label %bb8.i.i.i.i108, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i103"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i103": ; preds = %bb6.i.i.i.i102
%346 = getelementptr inbounds i32, i32* %other1.sroa.4.0.i.i.i.i96, i64 -1
%347 = load i32, i32* %346, align 4, !alias.scope !538, !noalias !543
br label %bb8.i.i.i.i108
bb8.i.i.i.i108: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i103", %bb6.i.i.i.i102
%other1.sroa.4.1.i.i.i.i104 = phi i32* [ %152, %bb6.i.i.i.i102 ], [ %346, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i103" ]
%_0.sroa.3.0.i.i.i.i.i.i.i.i105 = phi i32 [ 0, %bb6.i.i.i.i102 ], [ %347, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i103" ]
%_0.sroa.0.0.i.i.i.i.i.i.i.i106 = phi i1 [ true, %bb6.i.i.i.i102 ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i.i.i103" ]
%cond.i.i.i.i107 = icmp eq i64 %_0.sroa.0.0.i.i.i.i83.i.i.i.i101, 0
br i1 %cond.i.i.i.i107, label %bb14.i.i.i.i111, label %bb15.i.i.i.i112
bb14.i.i.i.i111: ; preds = %bb8.i.i.i.i108
%not.cond14.i.i.i.i109 = xor i1 %_0.sroa.0.0.i.i.i.i.i.i.i.i106, true
%..i.i.i.i110 = sext i1 %not.cond14.i.i.i.i109 to i64
br label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit120
bb15.i.i.i.i112: ; preds = %bb8.i.i.i.i108
br i1 %_0.sroa.0.0.i.i.i.i.i.i.i.i106, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i85.loopexit", label %bb24.i.i.i.i114
bb24.i.i.i.i114: ; preds = %bb15.i.i.i.i112
%348 = icmp eq i32 %_0.sroa.3.0.i.i.i.i82.i.i.i.i100, %_0.sroa.3.0.i.i.i.i.i.i.i.i105
br i1 %348, label %bb5.i.i.i.i97, label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit120.loopexit
_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit120.loopexit: ; preds = %bb24.i.i.i.i114
%349 = icmp ult i32 %_0.sroa.3.0.i.i.i.i82.i.i.i.i100, %_0.sroa.3.0.i.i.i.i.i.i.i.i105
%..i.i.i.i.i113.le = select i1 %349, i64 255, i64 1
br label %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit120
_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit120: ; preds = %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit120.loopexit, %bb14.i.i.i.i111
%_0.0.i.i.i.i115 = phi i64 [ %..i.i.i.i110, %bb14.i.i.i.i111 ], [ %..i.i.i.i.i113.le, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit120.loopexit ]
%abi_cast.sroa.4.0.extract.shift.i116 = shl i64 %_0.0.i.i.i.i115, 56
%sext.i117 = ashr exact i64 %abi_cast.sroa.4.0.extract.shift.i116, 56
%switch.i118 = icmp ult i64 %sext.i117, 2
br i1 %switch.i118, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i85", label %bb87
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i85.loopexit": ; preds = %bb15.i.i.i.i112
br label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i85"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i85": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i85.loopexit", %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit120
%.idx.i83 = shl nuw i64 %_0.0.sroa.speculated.i.i.i.i.i92, 2
%350 = sdiv i64 %.idx.i83, 4
%.idx.off.i84 = or i64 %.idx.i83, 3
%351 = icmp ult i64 %.idx.off.i84, 7
br i1 %351, label %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i87.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i87.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i85"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i87"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i87": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i87.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i87"
%noborrow.050.i = phi i32 [ %364, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i87" ], [ 1, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i87.preheader" ]
%iter.sroa.8.049.i = phi i64 [ %354, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i87" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i87.preheader" ]
%352 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %iter.sroa.8.049.i
%353 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i64 0, i32 2, i64 %iter.sroa.8.049.i
%354 = add nuw i64 %iter.sroa.8.049.i, 1
%355 = load i32, i32* %352, align 4, !noalias !544
%356 = load i32, i32* %353, align 4, !alias.scope !544
%357 = xor i32 %356, -1
%358 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %355, i32 %357) #16
%359 = extractvalue { i32, i1 } %358, 0
%360 = extractvalue { i32, i1 } %358, 1
%361 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %359, i32 %noborrow.050.i) #16
%362 = extractvalue { i32, i1 } %361, 0
%363 = extractvalue { i32, i1 } %361, 1
%brmerge.i.i86 = or i1 %360, %363
store i32 %362, i32* %352, align 4, !noalias !544
%364 = zext i1 %brmerge.i.i86 to i32
%365 = icmp ult i64 %354, %350
br i1 %365, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i87", label %bb9.i88
bb9.i88: ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h3a96887137148a42E.exit.i87"
br i1 %brmerge.i.i86, label %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit, label %bb12.i89
bb12.i89: ; preds = %bb9.i88
call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num6bignum8Big32x403sub14_MSG_FILE_LINE17he6988b9083a66661E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*)), !noalias !544
unreachable
_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit: ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i85", %bb9.i88
store i64 %_0.0.sroa.speculated.i.i.i.i.i92, i64* %36, align 8, !noalias !544
%366 = add nsw i8 %d.2, 1
br label %bb87
bb87: ; preds = %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit120, %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit
%367 = phi i64 [ %_0.0.sroa.speculated.i.i.i.i.i92, %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit ], [ %336, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit120 ]
%d.3 = phi i8 [ %366, %_ZN4core3num6bignum8Big32x403sub17h16e3d6a4cae19f58E.exit ], [ %d.2, %_ZN4core3cmp10PartialOrd2ge17h10ae6e36c54f588cE.exit120 ]
%368 = icmp ult i64 %iter.sroa.0.0375, %3
br i1 %368, label %bb88, label %panic, !prof !5
bb88: ; preds = %bb87
%369 = getelementptr inbounds i8, i8* %2, i64 %iter.sroa.0.0375
%370 = add i8 %d.3, 48
store i8 %370, i8* %369, align 1
%371 = icmp ugt i64 %367, 40
br i1 %371, label %bb4.i.i.i.i47, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i48"
bb4.i.i.i.i47: ; preds = %bb88
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %367, i64 40), !noalias !547
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i48": ; preds = %bb88
%372 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %367
%373 = icmp eq i64 %367, 0
br i1 %373, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit60, label %bb6.i55.preheader
bb6.i55.preheader: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i48"
%374 = shl i64 %367, 2
%375 = add i64 %374, -4
%376 = lshr exact i64 %375, 2
%377 = add nuw nsw i64 %376, 1
%xtraiter761 = and i64 %377, 3
%lcmp.mod762 = icmp eq i64 %xtraiter761, 0
br i1 %lcmp.mod762, label %bb6.i55.prol.loopexit, label %bb6.i55.prol.preheader
bb6.i55.prol.preheader: ; preds = %bb6.i55.preheader
br label %bb6.i55.prol
bb6.i55.prol: ; preds = %bb6.i55.prol, %bb6.i55.prol.preheader
%carry.020.i52.prol = phi i64 [ %383, %bb6.i55.prol ], [ 0, %bb6.i55.prol.preheader ]
%iter.sroa.0.019.i53.prol = phi i32* [ %378, %bb6.i55.prol ], [ %232, %bb6.i55.prol.preheader ]
%prol.iter763 = phi i64 [ %prol.iter763.sub, %bb6.i55.prol ], [ %xtraiter761, %bb6.i55.prol.preheader ]
%378 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i53.prol, i64 1
%379 = load i32, i32* %iter.sroa.0.019.i53.prol, align 4
%380 = zext i32 %379 to i64
%381 = mul nuw nsw i64 %380, 10
%382 = add nuw nsw i64 %381, %carry.020.i52.prol
%383 = lshr i64 %382, 32
%abi_cast.sroa.4.0.extract.trunc.i54.prol = trunc i64 %382 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i54.prol, i32* %iter.sroa.0.019.i53.prol, align 4
%prol.iter763.sub = add i64 %prol.iter763, -1
%prol.iter763.cmp = icmp eq i64 %prol.iter763.sub, 0
br i1 %prol.iter763.cmp, label %bb6.i55.prol.loopexit.unr-lcssa, label %bb6.i55.prol, !llvm.loop !550
bb6.i55.prol.loopexit.unr-lcssa: ; preds = %bb6.i55.prol
br label %bb6.i55.prol.loopexit
bb6.i55.prol.loopexit: ; preds = %bb6.i55.preheader, %bb6.i55.prol.loopexit.unr-lcssa
%.lcssa700.unr = phi i64 [ undef, %bb6.i55.preheader ], [ %383, %bb6.i55.prol.loopexit.unr-lcssa ]
%carry.020.i52.unr = phi i64 [ 0, %bb6.i55.preheader ], [ %383, %bb6.i55.prol.loopexit.unr-lcssa ]
%iter.sroa.0.019.i53.unr = phi i32* [ %232, %bb6.i55.preheader ], [ %378, %bb6.i55.prol.loopexit.unr-lcssa ]
%384 = icmp ult i64 %375, 12
br i1 %384, label %bb5.i51, label %bb6.i55.preheader.new
bb6.i55.preheader.new: ; preds = %bb6.i55.prol.loopexit
br label %bb6.i55
bb5.i51.unr-lcssa: ; preds = %bb6.i55
br label %bb5.i51
bb5.i51: ; preds = %bb6.i55.prol.loopexit, %bb5.i51.unr-lcssa
%.lcssa700 = phi i64 [ %.lcssa700.unr, %bb6.i55.prol.loopexit ], [ %409, %bb5.i51.unr-lcssa ]
%abi_cast.sroa.0.0.extract.trunc.i50 = trunc i64 %.lcssa700 to i32
%385 = icmp eq i32 %abi_cast.sroa.0.0.extract.trunc.i50, 0
br i1 %385, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit60, label %bb8.i56
bb6.i55: ; preds = %bb6.i55, %bb6.i55.preheader.new
%carry.020.i52 = phi i64 [ %carry.020.i52.unr, %bb6.i55.preheader.new ], [ %409, %bb6.i55 ]
%iter.sroa.0.019.i53 = phi i32* [ %iter.sroa.0.019.i53.unr, %bb6.i55.preheader.new ], [ %404, %bb6.i55 ]
%386 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i53, i64 1
%387 = load i32, i32* %iter.sroa.0.019.i53, align 4
%388 = zext i32 %387 to i64
%389 = mul nuw nsw i64 %388, 10
%390 = add nuw nsw i64 %389, %carry.020.i52
%391 = lshr i64 %390, 32
%abi_cast.sroa.4.0.extract.trunc.i54 = trunc i64 %390 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i54, i32* %iter.sroa.0.019.i53, align 4
%392 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i53, i64 2
%393 = load i32, i32* %386, align 4
%394 = zext i32 %393 to i64
%395 = mul nuw nsw i64 %394, 10
%396 = add nuw nsw i64 %395, %391
%397 = lshr i64 %396, 32
%abi_cast.sroa.4.0.extract.trunc.i54.1 = trunc i64 %396 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i54.1, i32* %386, align 4
%398 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i53, i64 3
%399 = load i32, i32* %392, align 4
%400 = zext i32 %399 to i64
%401 = mul nuw nsw i64 %400, 10
%402 = add nuw nsw i64 %401, %397
%403 = lshr i64 %402, 32
%abi_cast.sroa.4.0.extract.trunc.i54.2 = trunc i64 %402 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i54.2, i32* %392, align 4
%404 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i53, i64 4
%405 = load i32, i32* %398, align 4
%406 = zext i32 %405 to i64
%407 = mul nuw nsw i64 %406, 10
%408 = add nuw nsw i64 %407, %403
%409 = lshr i64 %408, 32
%abi_cast.sroa.4.0.extract.trunc.i54.3 = trunc i64 %408 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i54.3, i32* %398, align 4
%410 = icmp eq i32* %404, %372
br i1 %410, label %bb5.i51.unr-lcssa, label %bb6.i55
bb8.i56: ; preds = %bb5.i51
%411 = icmp ult i64 %367, 40
br i1 %411, label %bb10.i57, label %panic.i59, !prof !5
bb10.i57: ; preds = %bb8.i56
store i32 %abi_cast.sroa.0.0.extract.trunc.i50, i32* %372, align 4
%412 = add i64 %367, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit60
panic.i59: ; preds = %bb8.i56
call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %367, i64 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit60: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i48", %bb5.i51, %bb10.i57
%sz.0.i58 = phi i64 [ %412, %bb10.i57 ], [ %367, %bb5.i51 ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i48" ]
store i64 %sz.0.i58, i64* %36, align 8
%413 = icmp ugt i64 %len.0, %236
br i1 %413, label %bb57, label %bb56
bb90: ; preds = %bb36, %bb38, %bb56
%414 = phi i1 [ true, %bb38 ], [ false, %bb56 ], [ true, %bb36 ]
%len.0269 = phi i64 [ 0, %bb38 ], [ %len.0, %bb56 ], [ 0, %bb36 ]
%415 = load i64, i64* %43, align 8
%416 = icmp ugt i64 %415, 40
br i1 %416, label %bb4.i.i.i.i, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i"
bb4.i.i.i.i: ; preds = %bb90
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %415, i64 40), !noalias !551
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i": ; preds = %bb90
%417 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i64 0, i32 2, i64 %415
%418 = icmp eq i64 %415, 0
br i1 %418, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit, label %bb6.i.preheader
bb6.i.preheader: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i"
%419 = shl i64 %415, 2
%420 = add i64 %419, -4
%421 = lshr exact i64 %420, 2
%422 = add nuw nsw i64 %421, 1
%xtraiter = and i64 %422, 3
%lcmp.mod = icmp eq i64 %xtraiter, 0
br i1 %lcmp.mod, label %bb6.i.prol.loopexit, label %bb6.i.prol.preheader
bb6.i.prol.preheader: ; preds = %bb6.i.preheader
br label %bb6.i.prol
bb6.i.prol: ; preds = %bb6.i.prol, %bb6.i.prol.preheader
%carry.020.i.prol = phi i64 [ %428, %bb6.i.prol ], [ 0, %bb6.i.prol.preheader ]
%iter.sroa.0.019.i.prol = phi i32* [ %423, %bb6.i.prol ], [ %152, %bb6.i.prol.preheader ]
%prol.iter = phi i64 [ %prol.iter.sub, %bb6.i.prol ], [ %xtraiter, %bb6.i.prol.preheader ]
%423 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i.prol, i64 1
%424 = load i32, i32* %iter.sroa.0.019.i.prol, align 4
%425 = zext i32 %424 to i64
%426 = mul nuw nsw i64 %425, 5
%427 = add nuw nsw i64 %426, %carry.020.i.prol
%428 = lshr i64 %427, 32
%abi_cast.sroa.4.0.extract.trunc.i.prol = trunc i64 %427 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i.prol, i32* %iter.sroa.0.019.i.prol, align 4
%prol.iter.sub = add i64 %prol.iter, -1
%prol.iter.cmp = icmp eq i64 %prol.iter.sub, 0
br i1 %prol.iter.cmp, label %bb6.i.prol.loopexit.unr-lcssa, label %bb6.i.prol, !llvm.loop !554
bb6.i.prol.loopexit.unr-lcssa: ; preds = %bb6.i.prol
br label %bb6.i.prol.loopexit
bb6.i.prol.loopexit: ; preds = %bb6.i.preheader, %bb6.i.prol.loopexit.unr-lcssa
%.lcssa.unr = phi i64 [ undef, %bb6.i.preheader ], [ %428, %bb6.i.prol.loopexit.unr-lcssa ]
%carry.020.i.unr = phi i64 [ 0, %bb6.i.preheader ], [ %428, %bb6.i.prol.loopexit.unr-lcssa ]
%iter.sroa.0.019.i.unr = phi i32* [ %152, %bb6.i.preheader ], [ %423, %bb6.i.prol.loopexit.unr-lcssa ]
%429 = icmp ult i64 %420, 12
br i1 %429, label %bb5.i, label %bb6.i.preheader.new
bb6.i.preheader.new: ; preds = %bb6.i.prol.loopexit
br label %bb6.i
bb5.i.unr-lcssa: ; preds = %bb6.i
br label %bb5.i
bb5.i: ; preds = %bb6.i.prol.loopexit, %bb5.i.unr-lcssa
%.lcssa = phi i64 [ %.lcssa.unr, %bb6.i.prol.loopexit ], [ %454, %bb5.i.unr-lcssa ]
%abi_cast.sroa.0.0.extract.trunc.i = trunc i64 %.lcssa to i32
%430 = icmp eq i32 %abi_cast.sroa.0.0.extract.trunc.i, 0
br i1 %430, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit, label %bb8.i
bb6.i: ; preds = %bb6.i, %bb6.i.preheader.new
%carry.020.i = phi i64 [ %carry.020.i.unr, %bb6.i.preheader.new ], [ %454, %bb6.i ]
%iter.sroa.0.019.i = phi i32* [ %iter.sroa.0.019.i.unr, %bb6.i.preheader.new ], [ %449, %bb6.i ]
%431 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i, i64 1
%432 = load i32, i32* %iter.sroa.0.019.i, align 4
%433 = zext i32 %432 to i64
%434 = mul nuw nsw i64 %433, 5
%435 = add nuw nsw i64 %434, %carry.020.i
%436 = lshr i64 %435, 32
%abi_cast.sroa.4.0.extract.trunc.i = trunc i64 %435 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i, i32* %iter.sroa.0.019.i, align 4
%437 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i, i64 2
%438 = load i32, i32* %431, align 4
%439 = zext i32 %438 to i64
%440 = mul nuw nsw i64 %439, 5
%441 = add nuw nsw i64 %440, %436
%442 = lshr i64 %441, 32
%abi_cast.sroa.4.0.extract.trunc.i.1 = trunc i64 %441 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i.1, i32* %431, align 4
%443 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i, i64 3
%444 = load i32, i32* %437, align 4
%445 = zext i32 %444 to i64
%446 = mul nuw nsw i64 %445, 5
%447 = add nuw nsw i64 %446, %442
%448 = lshr i64 %447, 32
%abi_cast.sroa.4.0.extract.trunc.i.2 = trunc i64 %447 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i.2, i32* %437, align 4
%449 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i, i64 4
%450 = load i32, i32* %443, align 4
%451 = zext i32 %450 to i64
%452 = mul nuw nsw i64 %451, 5
%453 = add nuw nsw i64 %452, %448
%454 = lshr i64 %453, 32
%abi_cast.sroa.4.0.extract.trunc.i.3 = trunc i64 %453 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i.3, i32* %443, align 4
%455 = icmp eq i32* %449, %417
br i1 %455, label %bb5.i.unr-lcssa, label %bb6.i
bb8.i: ; preds = %bb5.i
%456 = icmp ult i64 %415, 40
br i1 %456, label %bb10.i, label %panic.i46, !prof !5
bb10.i: ; preds = %bb8.i
store i32 %abi_cast.sroa.0.0.extract.trunc.i, i32* %417, align 4
%457 = add i64 %415, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit
panic.i46: ; preds = %bb8.i
call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %415, i64 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i", %bb5.i, %bb10.i
%sz.0.i = phi i64 [ %457, %bb10.i ], [ %415, %bb5.i ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i" ]
store i64 %sz.0.i, i64* %43, align 8
%458 = load i64, i64* %36, align 8, !alias.scope !555, !noalias !558
%459 = icmp uge i64 %sz.0.i, %458
%_0.0.sroa.speculated.i.i.i = select i1 %459, i64 %sz.0.i, i64 %458
%460 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 0
%461 = icmp ugt i64 %_0.0.sroa.speculated.i.i.i, 40
br i1 %461, label %bb4.i.i.i3.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i"
bb4.i.i.i3.i: ; preds = %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %_0.0.sroa.speculated.i.i.i, i64 40), !noalias !560
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i": ; preds = %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit
%462 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i
%463 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i64 0, i32 2, i64 %_0.0.sroa.speculated.i.i.i
br label %bb5.i.i
bb5.i.i: ; preds = %bb24.i.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i"
%self.sroa.4.0.i.i = phi i32* [ %462, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i" ], [ %self.sroa.4.1.i.i, %bb24.i.i ]
%other1.sroa.4.0.i.i = phi i32* [ %463, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hdd50ffc14edd7e42E.exit.i" ], [ %other1.sroa.4.1.i.i, %bb24.i.i ]
%464 = icmp eq i32* %self.sroa.4.0.i.i, %460
br i1 %464, label %bb6.i.i, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i": ; preds = %bb5.i.i
%465 = getelementptr inbounds i32, i32* %self.sroa.4.0.i.i, i64 -1
%466 = load i32, i32* %465, align 4, !alias.scope !563, !noalias !568
br label %bb6.i.i
bb6.i.i: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i", %bb5.i.i
%self.sroa.4.1.i.i = phi i32* [ %460, %bb5.i.i ], [ %465, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i" ]
%_0.sroa.3.0.i.i.i.i82.i.i = phi i32 [ 0, %bb5.i.i ], [ %466, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i" ]
%_0.sroa.0.0.i.i.i.i83.i.i = phi i64 [ 0, %bb5.i.i ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i81.i.i" ]
%467 = icmp eq i32* %other1.sroa.4.0.i.i, %152
br i1 %467, label %bb8.i.i, label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i": ; preds = %bb6.i.i
%468 = getelementptr inbounds i32, i32* %other1.sroa.4.0.i.i, i64 -1
%469 = load i32, i32* %468, align 4, !alias.scope !572, !noalias !577
br label %bb8.i.i
bb8.i.i: ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i", %bb6.i.i
%other1.sroa.4.1.i.i = phi i32* [ %152, %bb6.i.i ], [ %468, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i" ]
%_0.sroa.3.0.i.i.i.i.i.i = phi i32 [ 0, %bb6.i.i ], [ %469, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i" ]
%_0.sroa.0.0.i.i.i.i.i.i = phi i1 [ true, %bb6.i.i ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hc6eb51fd6062d99aE.exit.i.i.i.i" ]
%cond.i.i = icmp eq i64 %_0.sroa.0.0.i.i.i.i83.i.i, 0
br i1 %cond.i.i, label %bb95, label %bb15.i.i
bb15.i.i: ; preds = %bb8.i.i
br i1 %_0.sroa.0.0.i.i.i.i.i.i, label %bb108.loopexit, label %bb24.i.i
bb24.i.i: ; preds = %bb15.i.i
%470 = icmp eq i32 %_0.sroa.3.0.i.i.i.i82.i.i, %_0.sroa.3.0.i.i.i.i.i.i
br i1 %470, label %bb5.i.i, label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit"
"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit": ; preds = %bb24.i.i
%not. = icmp ult i32 %_0.sroa.3.0.i.i.i.i82.i.i, %_0.sroa.3.0.i.i.i.i.i.i
br i1 %not., label %bb123, label %bb108
bb95: ; preds = %bb8.i.i
br i1 %_0.sroa.0.0.i.i.i.i.i.i, label %bb100, label %bb123
bb100: ; preds = %bb95
br i1 %414, label %bb108, label %bb105
bb105: ; preds = %bb100
%471 = add i64 %len.0269, -1
%472 = icmp ult i64 %471, %3
br i1 %472, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h7a62d2ec0ded76ceE.exit", label %panic.i.i, !prof !5
panic.i.i: ; preds = %bb105
call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.2d to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %471, i64 %3), !noalias !578
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h7a62d2ec0ded76ceE.exit": ; preds = %bb105
%473 = getelementptr inbounds i8, i8* %2, i64 %471
%474 = load i8, i8* %473, align 1
%475 = and i8 %474, 1
%not.285 = icmp eq i8 %475, 0
br i1 %not.285, label %bb123, label %bb108
bb108.loopexit: ; preds = %bb15.i.i
br label %bb108
bb108: ; preds = %bb108.loopexit, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h7a62d2ec0ded76ceE.exit", %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit", %bb100
%476 = call i16 @_ZN4core3num7flt2dec8round_up17h879a47796abb3549E(i8* nonnull %2, i64 %3, i64 %len.0269)
%abi_cast.sroa.4.0.extract.shift = lshr i16 %476, 8
%abi_cast.sroa.4.0.extract.trunc = trunc i16 %abi_cast.sroa.4.0.extract.shift to i8
%477 = and i16 %476, 255
%cond = icmp eq i16 %477, 1
br i1 %cond, label %bb112, label %bb123
bb112: ; preds = %bb108
%478 = add i16 %k.0, 1
%479 = icmp sgt i16 %478, %4
%480 = icmp ult i64 %len.0269, %3
%or.cond = and i1 %479, %480
br i1 %or.cond, label %bb121, label %bb123
bb121: ; preds = %bb112
%481 = getelementptr inbounds i8, i8* %2, i64 %len.0269
store i8 %abi_cast.sroa.4.0.extract.trunc, i8* %481, align 1
%482 = add i64 %len.0269, 1
br label %bb123
bb123: ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h7a62d2ec0ded76ceE.exit", %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit", %bb112, %bb95, %bb121, %bb108
%len.3 = phi i64 [ %len.0269, %bb108 ], [ %482, %bb121 ], [ %len.0269, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h7a62d2ec0ded76ceE.exit" ], [ %len.0269, %bb95 ], [ %len.0269, %bb112 ], [ %len.0269, %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit" ]
%k.2 = phi i16 [ %k.0, %bb108 ], [ %478, %bb121 ], [ %k.0, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h7a62d2ec0ded76ceE.exit" ], [ %k.0, %bb95 ], [ %478, %bb112 ], [ %k.0, %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17h8d0dc39d812a770bE.exit" ]
%483 = getelementptr inbounds { i64, [0 x i8], i16, [6 x i8] }, { i64, [0 x i8], i16, [6 x i8] }* %0, i64 0, i32 0
store i64 %len.3, i64* %483, align 8
%484 = getelementptr inbounds { i64, [0 x i8], i16, [6 x i8] }, { i64, [0 x i8], i16, [6 x i8] }* %0, i64 0, i32 2
store i16 %k.2, i16* %484, align 8
call void @llvm.lifetime.end(i64 168, i8* nonnull %39)
call void @llvm.lifetime.end(i64 168, i8* nonnull %28)
br label %bb67
panic: ; preds = %bb87
call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.5 to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %iter.sroa.0.0375, i64 %3)
unreachable
}
; Function Attrs: uwtable
define void @_ZN4core3num7flt2dec8strategy5grisu12cached_power17h22d28164b741da7eE({ i16, [6 x i8], %"num::diy_float::Fp", [0 x i8] }* noalias nocapture sret dereferenceable(24), i16, i16) unnamed_addr #2 {
start:
%3 = sext i16 %2 to i32
%4 = mul nsw i32 %3, 80
%5 = add i32 %4, 86960
%6 = sdiv i32 %5, 2126
%7 = sext i32 %6 to i64
%8 = icmp ult i32 %6, 81
br i1 %8, label %bb4, label %panic1, !prof !5
bb4: ; preds = %start
%9 = getelementptr inbounds [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }], [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]* bitcast ({ { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] } }* @_ZN4core3num7flt2dec8strategy5grisu12CACHED_POW1017hbb880931a269811cE to [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]*), i64 0, i64 %7, i32 0
%10 = load i64, i64* %9, align 8
%11 = getelementptr inbounds [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }], [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]* bitcast ({ { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] } }* @_ZN4core3num7flt2dec8strategy5grisu12CACHED_POW1017hbb880931a269811cE to [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]*), i64 0, i64 %7, i32 2
%12 = load i16, i16* %11, align 8
%13 = getelementptr inbounds [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }], [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]* bitcast ({ { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] } }* @_ZN4core3num7flt2dec8strategy5grisu12CACHED_POW1017hbb880931a269811cE to [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]*), i64 0, i64 %7, i32 4
%14 = load i16, i16* %13, align 2
%15 = getelementptr inbounds { i16, [6 x i8], %"num::diy_float::Fp", [0 x i8] }, { i16, [6 x i8], %"num::diy_float::Fp", [0 x i8] }* %0, i64 0, i32 0
store i16 %14, i16* %15, align 8
%16 = getelementptr inbounds { i16, [6 x i8], %"num::diy_float::Fp", [0 x i8] }, { i16, [6 x i8], %"num::diy_float::Fp", [0 x i8] }* %0, i64 0, i32 2, i32 0
store i64 %10, i64* %16, align 8
%17 = getelementptr inbounds { i16, [6 x i8], %"num::diy_float::Fp", [0 x i8] }, { i16, [6 x i8], %"num::diy_float::Fp", [0 x i8] }* %0, i64 0, i32 2, i32 2
store i16 %12, i16* %17, align 8
ret void
panic1: ; preds = %start
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.c to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %7, i64 81)
unreachable
}
; Function Attrs: norecurse nounwind readnone uwtable
define i64 @_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17hb10a64f90a64eeefE(i32) unnamed_addr #0 {
start:
%1 = icmp ult i32 %0, 10000
br i1 %1, label %bb1, label %bb2
bb1: ; preds = %start
%2 = icmp ult i32 %0, 100
br i1 %2, label %bb3, label %bb4
bb2: ; preds = %start
%3 = icmp ult i32 %0, 1000000
br i1 %3, label %bb12, label %bb13
bb3: ; preds = %bb1
%4 = icmp ult i32 %0, 10
%not. = xor i1 %4, true
%.sink2 = zext i1 %not. to i64
%.sink = select i1 %4, i64 4294967296, i64 42949672960
br label %bb27
bb4: ; preds = %bb1
%5 = icmp ult i32 %0, 1000
%.sink5 = select i1 %5, i64 2, i64 3
%.sink3 = select i1 %5, i64 429496729600, i64 4294967296000
br label %bb27
bb12: ; preds = %bb2
%6 = icmp ult i32 %0, 100000
%.sink9 = select i1 %6, i64 4, i64 5
%.sink7 = select i1 %6, i64 42949672960000, i64 429496729600000
br label %bb27
bb13: ; preds = %bb2
%7 = icmp ult i32 %0, 100000000
br i1 %7, label %bb17, label %bb18
bb17: ; preds = %bb13
%8 = icmp ult i32 %0, 10000000
%.sink12 = select i1 %8, i64 6, i64 7
%.sink10 = select i1 %8, i64 4294967296000000, i64 42949672960000000
br label %bb27
bb18: ; preds = %bb13
%9 = icmp ult i32 %0, 1000000000
%.sink15 = select i1 %9, i64 8, i64 9
%.sink13 = select i1 %9, i64 429496729600000000, i64 4294967296000000000
br label %bb27
bb27: ; preds = %bb12, %bb18, %bb17, %bb3, %bb4
%.sink9.sink = phi i64 [ %.sink9, %bb12 ], [ %.sink15, %bb18 ], [ %.sink12, %bb17 ], [ %.sink2, %bb3 ], [ %.sink5, %bb4 ]
%.sink13.sink.sink.sink = phi i64 [ %.sink7, %bb12 ], [ %.sink13, %bb18 ], [ %.sink10, %bb17 ], [ %.sink, %bb3 ], [ %.sink3, %bb4 ]
%_0.sroa.0.0.insert.insert = or i64 %.sink13.sink.sink.sink, %.sink9.sink
ret i64 %_0.sroa.0.0.insert.insert
}
; Function Attrs: uwtable
define void @_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt17ha1d9a3cc51e644c7E(%"option::Option<(usize, i16)>"* noalias nocapture sret dereferenceable(24), %"num::flt2dec::decoder::Decoded"* noalias nocapture readonly dereferenceable(32), i8* nonnull, i64) unnamed_addr #2 personality i32 (...)* @rust_eh_personality {
start:
%_31.i67 = alloca %"fmt::Arguments", align 8
%right_val.i68 = alloca i64*, align 8
%left_val.i69 = alloca i64*, align 8
%_19.i70 = alloca i64, align 8
%_36.i = alloca [2 x %"fmt::ArgumentV1"], align 8
%_31.i = alloca %"fmt::Arguments", align 8
%right_val.i = alloca i64*, align 8
%left_val.i = alloca i64*, align 8
%_19.i = alloca i64, align 8
%_74 = alloca %"num::diy_float::Fp", align 8
%_66 = alloca %"num::diy_float::Fp", align 8
%4 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i64 0, i32 0
%5 = load i64, i64* %4, align 8
%6 = icmp eq i64 %5, 0
br i1 %6, label %bb1, label %bb2
bb1: ; preds = %start
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17h080c88a7226b45d5E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb2: ; preds = %start
%7 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i64 0, i32 2
%8 = load i64, i64* %7, align 8
%9 = icmp eq i64 %8, 0
br i1 %9, label %bb3, label %bb4
bb3: ; preds = %bb2
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17hf33bde18075a3235E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb4: ; preds = %bb2
%10 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i64 0, i32 4
%11 = load i64, i64* %10, align 8
%12 = icmp eq i64 %11, 0
br i1 %12, label %bb5, label %bb6
bb5: ; preds = %bb4
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17hc7d0a8da67eccedcE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb6: ; preds = %bb4
%13 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %5, i64 %11) #16
%14 = extractvalue { i64, i1 } %13, 1
br i1 %14, label %bb9, label %bb10
bb9: ; preds = %bb6
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17h8db95e0f4e90f938E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb10: ; preds = %bb6
%15 = tail call { i64, i1 } @llvm.usub.with.overflow.i64(i64 %5, i64 %8) #16
%16 = extractvalue { i64, i1 } %15, 1
br i1 %16, label %bb13, label %bb14
bb13: ; preds = %bb10
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17h854b02c68656b31aE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb14: ; preds = %bb10
%17 = icmp ult i64 %3, 17
br i1 %17, label %bb16, label %bb17
bb16: ; preds = %bb14
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17h7fcf8694fb79431fE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb17: ; preds = %bb14
%18 = add i64 %11, %5
%19 = icmp ugt i64 %18, 2305843009213693951
br i1 %19, label %bb18, label %bb19
bb18: ; preds = %bb17
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17h31be4e43f7df40abE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb19: ; preds = %bb17
%20 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i64 0, i32 6
%21 = load i16, i16* %20, align 2
%22 = icmp ult i64 %18, 4294967296
%23 = shl i64 %18, 32
%24 = add i16 %21, -32
%e.0.i = select i1 %22, i16 %24, i16 %21
%f.0.i = select i1 %22, i64 %23, i64 %18
%25 = icmp ult i64 %f.0.i, 281474976710656
%26 = shl i64 %f.0.i, 16
%27 = add i16 %e.0.i, -16
%e.1.i = select i1 %25, i16 %27, i16 %e.0.i
%f.1.i = select i1 %25, i64 %26, i64 %f.0.i
%28 = icmp ult i64 %f.1.i, 72057594037927936
%29 = shl i64 %f.1.i, 8
%30 = add i16 %e.1.i, -8
%e.2.i = select i1 %28, i16 %30, i16 %e.1.i
%f.2.i = select i1 %28, i64 %29, i64 %f.1.i
%31 = icmp ult i64 %f.2.i, 1152921504606846976
%32 = shl i64 %f.2.i, 4
%33 = add i16 %e.2.i, -4
%e.3.i = select i1 %31, i16 %33, i16 %e.2.i
%f.3.i = select i1 %31, i64 %32, i64 %f.2.i
%34 = icmp ult i64 %f.3.i, 4611686018427387904
%35 = shl i64 %f.3.i, 2
%36 = add i16 %e.3.i, -2
%e.4.i = select i1 %34, i16 %36, i16 %e.3.i
%f.4.i = select i1 %34, i64 %35, i64 %f.3.i
%f.4.lobit.i = ashr i64 %f.4.i, 63
%37 = trunc i64 %f.4.lobit.i to i16
%.not.i = xor i16 %37, -1
%e.5.i = add i16 %e.4.i, %.not.i
%f.4.lobit21.i = lshr i64 %f.4.i, 63
%f.4.lobit21.not.i = xor i64 %f.4.lobit21.i, 1
%f.5.i = shl i64 %f.4.i, %f.4.lobit21.not.i
%38 = bitcast %"num::diy_float::Fp"* %_66 to i8*
call void @llvm.lifetime.start(i64 16, i8* nonnull %38)
%39 = sub i64 %5, %8
%40 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %_66, i64 0, i32 0
store i64 %39, i64* %40, align 8
%41 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %_66, i64 0, i32 2
store i16 %21, i16* %41, align 8
%42 = sub i16 %21, %e.5.i
%43 = icmp slt i16 %42, 0
br i1 %43, label %bb1.i, label %bb2.i64
bb1.i: ; preds = %bb19
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num9diy_float2Fp12normalize_to14_MSG_FILE_LINE17h2f2c83a59b92ffc4E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*)), !noalias !583
unreachable
bb2.i64: ; preds = %bb19
%44 = bitcast i64* %_19.i to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %44), !noalias !586
%45 = and i16 %42, 63
%46 = zext i16 %45 to i64
%47 = shl i64 %39, %46
%48 = lshr i64 %47, %46
store i64 %48, i64* %_19.i, align 8, !noalias !586
%49 = bitcast i64** %left_val.i to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %49), !noalias !586
store i64* %_19.i, i64** %left_val.i, align 8, !noalias !586
%50 = bitcast i64** %right_val.i to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %50), !noalias !586
store i64* %40, i64** %right_val.i, align 8, !noalias !586
%51 = icmp eq i64 %48, %39
br i1 %51, label %bb2.i72, label %bb3.i65
bb3.i65: ; preds = %bb2.i64
%52 = bitcast %"fmt::Arguments"* %_31.i to i8*
call void @llvm.lifetime.start(i64 48, i8* nonnull %52), !noalias !586
%53 = bitcast [2 x %"fmt::ArgumentV1"]* %_36.i to i8*
call void @llvm.lifetime.start(i64 32, i8* nonnull %53), !noalias !586
%54 = ptrtoint i64** %left_val.i to i64
%55 = ptrtoint i64** %right_val.i to i64
%56 = bitcast [2 x %"fmt::ArgumentV1"]* %_36.i to i64*
store i64 %54, i64* %56, align 8, !noalias !586
%57 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36.i, i64 0, i64 0, i32 2
%58 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %57 to i64*
store i64 ptrtoint (i8 (i64**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h4bdf30265ff44dd6E" to i64), i64* %58, align 8, !noalias !586
%59 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36.i, i64 0, i64 1
%60 = bitcast %"fmt::ArgumentV1"* %59 to i64*
store i64 %55, i64* %60, align 8, !noalias !586
%61 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36.i, i64 0, i64 1, i32 2
%62 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %61 to i64*
store i64 ptrtoint (i8 (i64**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h4bdf30265ff44dd6E" to i64), i64* %62, align 8, !noalias !586
%63 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36.i, i64 0, i64 0
%64 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31.i, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.3x, i64 0, i64 0), %str_slice** %64, align 8, !alias.scope !588, !noalias !591
%65 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31.i, i64 0, i32 0, i32 1
store i64 3, i64* %65, align 8, !alias.scope !588, !noalias !591
%_6.sroa.0.0..sroa_idx.i.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31.i, i64 0, i32 2, i32 0, i32 0
store %"fmt::rt::v1::Argument"* null, %"fmt::rt::v1::Argument"** %_6.sroa.0.0..sroa_idx.i.i, align 8, !alias.scope !588, !noalias !591
%66 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31.i, i64 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %63, %"fmt::ArgumentV1"** %66, align 8, !alias.scope !588, !noalias !591
%67 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31.i, i64 0, i32 4, i32 1
store i64 2, i64* %67, align 8, !alias.scope !588, !noalias !591
call void @_ZN4core9panicking9panic_fmt17hcc78ce34a0090adfE(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %_31.i, { %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @_ZN4core3num9diy_float2Fp12normalize_to10_FILE_LINE17h8c3fc481ef3ad19aE to { %str_slice, [0 x i8], i32, [4 x i8] }*)), !noalias !583
unreachable
bb2.i72: ; preds = %bb2.i64
call void @llvm.lifetime.end(i64 8, i8* nonnull %50), !noalias !586
call void @llvm.lifetime.end(i64 8, i8* nonnull %49), !noalias !586
call void @llvm.lifetime.end(i64 8, i8* nonnull %44), !noalias !586
call void @llvm.lifetime.end(i64 16, i8* nonnull %38)
%68 = bitcast %"num::diy_float::Fp"* %_74 to i8*
call void @llvm.lifetime.start(i64 16, i8* nonnull %68)
%69 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %_74, i64 0, i32 0
store i64 %5, i64* %69, align 8
%70 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %_74, i64 0, i32 2
store i16 %21, i16* %70, align 8
%71 = bitcast i64* %_19.i70 to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %71), !noalias !594
%72 = shl i64 %5, %46
%73 = lshr i64 %72, %46
store i64 %73, i64* %_19.i70, align 8, !noalias !594
%74 = bitcast i64** %left_val.i69 to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %74), !noalias !594
store i64* %_19.i70, i64** %left_val.i69, align 8, !noalias !594
%75 = bitcast i64** %right_val.i68 to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %75), !noalias !594
store i64* %69, i64** %right_val.i68, align 8, !noalias !594
%76 = icmp eq i64 %73, %5
br i1 %76, label %_ZN4core3num9diy_float2Fp12normalize_to17h26f99aa0f555e1f5E.exit75, label %bb3.i74
bb3.i74: ; preds = %bb2.i72
%77 = bitcast %"fmt::Arguments"* %_31.i67 to i8*
call void @llvm.lifetime.start(i64 48, i8* nonnull %77), !noalias !594
%78 = bitcast [2 x %"fmt::ArgumentV1"]* %_36.i to i8*
call void @llvm.lifetime.start(i64 32, i8* nonnull %78), !noalias !594
%79 = ptrtoint i64** %left_val.i69 to i64
%80 = ptrtoint i64** %right_val.i68 to i64
%81 = bitcast [2 x %"fmt::ArgumentV1"]* %_36.i to i64*
store i64 %79, i64* %81, align 8, !noalias !594
%82 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36.i, i64 0, i64 0, i32 2
%83 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %82 to i64*
store i64 ptrtoint (i8 (i64**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h4bdf30265ff44dd6E" to i64), i64* %83, align 8, !noalias !594
%84 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36.i, i64 0, i64 1
%85 = bitcast %"fmt::ArgumentV1"* %84 to i64*
store i64 %80, i64* %85, align 8, !noalias !594
%86 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36.i, i64 0, i64 1, i32 2
%87 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %86 to i64*
store i64 ptrtoint (i8 (i64**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h4bdf30265ff44dd6E" to i64), i64* %87, align 8, !noalias !594
%88 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36.i, i64 0, i64 0
%89 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31.i67, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.3x, i64 0, i64 0), %str_slice** %89, align 8, !alias.scope !598, !noalias !601
%90 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31.i67, i64 0, i32 0, i32 1
store i64 3, i64* %90, align 8, !alias.scope !598, !noalias !601
%_6.sroa.0.0..sroa_idx.i.i73 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31.i67, i64 0, i32 2, i32 0, i32 0
store %"fmt::rt::v1::Argument"* null, %"fmt::rt::v1::Argument"** %_6.sroa.0.0..sroa_idx.i.i73, align 8, !alias.scope !598, !noalias !601
%91 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31.i67, i64 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %88, %"fmt::ArgumentV1"** %91, align 8, !alias.scope !598, !noalias !601
%92 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31.i67, i64 0, i32 4, i32 1
store i64 2, i64* %92, align 8, !alias.scope !598, !noalias !601
call void @_ZN4core9panicking9panic_fmt17hcc78ce34a0090adfE(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %_31.i67, { %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @_ZN4core3num9diy_float2Fp12normalize_to10_FILE_LINE17h8c3fc481ef3ad19aE to { %str_slice, [0 x i8], i32, [4 x i8] }*)), !noalias !604
unreachable
_ZN4core3num9diy_float2Fp12normalize_to17h26f99aa0f555e1f5E.exit75: ; preds = %bb2.i72
call void @llvm.lifetime.end(i64 8, i8* nonnull %75), !noalias !594
call void @llvm.lifetime.end(i64 8, i8* nonnull %74), !noalias !594
call void @llvm.lifetime.end(i64 8, i8* nonnull %71), !noalias !594
call void @llvm.lifetime.end(i64 16, i8* nonnull %68)
%93 = sub i16 -96, %e.5.i
%94 = sext i16 %93 to i32
%95 = mul nsw i32 %94, 80
%96 = add i32 %95, 86960
%97 = sdiv i32 %96, 2126
%98 = sext i32 %97 to i64
%99 = icmp ult i32 %97, 81
br i1 %99, label %_ZN4core3num7flt2dec8strategy5grisu12cached_power17h22d28164b741da7eE.exit, label %panic1.i, !prof !5
panic1.i: ; preds = %_ZN4core3num9diy_float2Fp12normalize_to17h26f99aa0f555e1f5E.exit75
call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.c to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %98, i64 81), !noalias !605
unreachable
_ZN4core3num7flt2dec8strategy5grisu12cached_power17h22d28164b741da7eE.exit: ; preds = %_ZN4core3num9diy_float2Fp12normalize_to17h26f99aa0f555e1f5E.exit75
%100 = getelementptr inbounds [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }], [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]* bitcast ({ { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] } }* @_ZN4core3num7flt2dec8strategy5grisu12CACHED_POW1017hbb880931a269811cE to [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]*), i64 0, i64 %98, i32 0
%101 = load i64, i64* %100, align 8, !noalias !605
%102 = getelementptr inbounds [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }], [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]* bitcast ({ { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] } }* @_ZN4core3num7flt2dec8strategy5grisu12CACHED_POW1017hbb880931a269811cE to [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]*), i64 0, i64 %98, i32 2
%103 = load i16, i16* %102, align 8, !noalias !605
%104 = getelementptr inbounds [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }], [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]* bitcast ({ { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] } }* @_ZN4core3num7flt2dec8strategy5grisu12CACHED_POW1017hbb880931a269811cE to [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]*), i64 0, i64 %98, i32 4
%105 = load i16, i16* %104, align 2, !noalias !605
%106 = lshr i64 %f.5.i, 32
%107 = and i64 %f.5.i, 4294967295
%108 = lshr i64 %101, 32
%109 = and i64 %101, 4294967295
%110 = mul nuw i64 %108, %106
%111 = mul nuw i64 %108, %107
%112 = mul nuw i64 %109, %106
%113 = mul nuw i64 %109, %107
%114 = lshr i64 %113, 32
%115 = and i64 %112, 4294967295
%116 = and i64 %111, 4294967295
%117 = add nuw nsw i64 %115, 2147483648
%118 = add nuw nsw i64 %117, %114
%119 = add nuw nsw i64 %118, %116
%120 = lshr i64 %112, 32
%121 = lshr i64 %111, 32
%122 = lshr i64 %119, 32
%123 = add i16 %e.5.i, %103
%124 = lshr i64 %47, 32
%125 = and i64 %47, 4294967295
%126 = mul nuw i64 %108, %124
%127 = mul nuw i64 %108, %125
%128 = mul nuw i64 %109, %124
%129 = mul nuw i64 %109, %125
%130 = lshr i64 %129, 32
%131 = and i64 %128, 4294967295
%132 = and i64 %127, 4294967295
%133 = add nuw nsw i64 %131, 2147483648
%134 = add nuw nsw i64 %133, %130
%135 = add nuw nsw i64 %134, %132
%136 = lshr i64 %128, 32
%137 = lshr i64 %127, 32
%138 = lshr i64 %135, 32
%139 = lshr i64 %72, 32
%140 = and i64 %72, 4294967295
%141 = mul nuw i64 %108, %139
%142 = mul nuw i64 %108, %140
%143 = mul nuw i64 %109, %139
%144 = mul nuw i64 %109, %140
%145 = lshr i64 %144, 32
%146 = and i64 %143, 4294967295
%147 = and i64 %142, 4294967295
%148 = add nuw nsw i64 %146, 2147483648
%149 = add nuw nsw i64 %148, %145
%150 = add nuw nsw i64 %149, %147
%151 = lshr i64 %143, 32
%152 = add i64 %151, %141
%153 = lshr i64 %142, 32
%154 = add i64 %152, %153
%155 = lshr i64 %150, 32
%156 = add i64 %154, %155
%157 = add i64 %110, 1
%158 = add i64 %157, %120
%159 = add i64 %158, %121
%160 = add i64 %159, %122
%161 = sub i16 0, %123
%162 = and i16 %161, 63
%163 = zext i16 %162 to i64
%164 = lshr i64 %160, %163
%165 = trunc i64 %164 to i32
%166 = shl i64 1, %163
%167 = add i64 %166, -1
%168 = and i64 %160, %167
%169 = icmp ult i32 %165, 10000
br i1 %169, label %bb1.i78, label %bb2.i79
bb1.i78: ; preds = %_ZN4core3num7flt2dec8strategy5grisu12cached_power17h22d28164b741da7eE.exit
%170 = icmp ult i32 %165, 100
br i1 %170, label %bb3.i81, label %bb4.i
bb2.i79: ; preds = %_ZN4core3num7flt2dec8strategy5grisu12cached_power17h22d28164b741da7eE.exit
%171 = icmp ult i32 %165, 1000000
br i1 %171, label %bb12.i, label %bb13.i
bb3.i81: ; preds = %bb1.i78
%172 = icmp ult i32 %165, 10
%not..i80 = xor i1 %172, true
%.sink2.i = zext i1 %not..i80 to i64
%.sink.i = select i1 %172, i32 1, i32 10
br label %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17hb10a64f90a64eeefE.exit
bb4.i: ; preds = %bb1.i78
%173 = icmp ult i32 %165, 1000
%.sink5.i = select i1 %173, i64 2, i64 3
%.sink3.i = select i1 %173, i32 100, i32 1000
br label %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17hb10a64f90a64eeefE.exit
bb12.i: ; preds = %bb2.i79
%174 = icmp ult i32 %165, 100000
%.sink9.i = select i1 %174, i64 4, i64 5
%.sink7.i = select i1 %174, i32 10000, i32 100000
br label %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17hb10a64f90a64eeefE.exit
bb13.i: ; preds = %bb2.i79
%175 = icmp ult i32 %165, 100000000
br i1 %175, label %bb17.i, label %bb18.i82
bb17.i: ; preds = %bb13.i
%176 = icmp ult i32 %165, 10000000
%.sink12.i = select i1 %176, i64 6, i64 7
%.sink10.i = select i1 %176, i32 1000000, i32 10000000
br label %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17hb10a64f90a64eeefE.exit
bb18.i82: ; preds = %bb13.i
%177 = icmp ult i32 %165, 1000000000
%.sink15.i = select i1 %177, i64 8, i64 9
%.sink13.i = select i1 %177, i32 100000000, i32 1000000000
br label %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17hb10a64f90a64eeefE.exit
_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17hb10a64f90a64eeefE.exit: ; preds = %bb3.i81, %bb4.i, %bb12.i, %bb17.i, %bb18.i82
%.sink9.sink.i = phi i64 [ %.sink9.i, %bb12.i ], [ %.sink15.i, %bb18.i82 ], [ %.sink12.i, %bb17.i ], [ %.sink2.i, %bb3.i81 ], [ %.sink5.i, %bb4.i ]
%.sink13.sink.sink.sink.i = phi i32 [ %.sink7.i, %bb12.i ], [ %.sink13.i, %bb18.i82 ], [ %.sink10.i, %bb17.i ], [ %.sink.i, %bb3.i81 ], [ %.sink3.i, %bb4.i ]
%178 = trunc i64 %.sink9.sink.i to i16
%179 = sub i16 %178, %105
%180 = add i16 %179, 1
%.neg120 = sub i64 1, %126
%.neg121 = sub i64 %.neg120, %136
%.neg123 = sub i64 %.neg121, %137
%.neg124 = sub i64 %.neg123, %138
%181 = add i64 %.neg124, %160
%182 = and i64 %181, %167
br label %bb30
bb30: ; preds = %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17hb10a64f90a64eeefE.exit, %bb37
%i.0148 = phi i64 [ 0, %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17hb10a64f90a64eeefE.exit ], [ %189, %bb37 ]
%ten_kappa.0147 = phi i32 [ %.sink13.sink.sink.sink.i, %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17hb10a64f90a64eeefE.exit ], [ %226, %bb37 ]
%remainder.0146 = phi i32 [ %165, %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17hb10a64f90a64eeefE.exit ], [ %183, %bb37 ]
%183 = urem i32 %remainder.0146, %ten_kappa.0147
%184 = icmp ult i64 %i.0148, %3
br i1 %184, label %bb31, label %panic6, !prof !5
bb31: ; preds = %bb30
%185 = udiv i32 %remainder.0146, %ten_kappa.0147
%186 = trunc i32 %185 to i8
%187 = getelementptr inbounds i8, i8* %2, i64 %i.0148
%188 = add i8 %186, 48
store i8 %188, i8* %187, align 1
%189 = add nuw nsw i64 %i.0148, 1
%190 = zext i32 %183 to i64
%191 = shl i64 %190, %163
%192 = add i64 %191, %168
%193 = icmp ugt i64 %181, %192
br i1 %193, label %bb32, label %bb33
bb32: ; preds = %bb31
%194 = zext i32 %ten_kappa.0147 to i64
%195 = shl i64 %194, %163
%196 = icmp ugt i64 %189, %3
br i1 %196, label %bb4.i.i.i76, label %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h2a93ee6537774a89E.exit.i44"
bb4.i.i.i76: ; preds = %bb32
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %189, i64 %3), !noalias !608
unreachable
"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h2a93ee6537774a89E.exit.i44": ; preds = %bb32
%197 = sub i64 %160, %156
%198 = add i64 %197, 1
%199 = add i64 %197, -1
%200 = icmp ule i64 %199, %192
%201 = sub i64 %181, %192
%202 = icmp ult i64 %201, %195
%or.cond24.i43 = or i1 %200, %202
br i1 %or.cond24.i43, label %bb9.i48, label %bb10.i50.preheader
bb10.i50.preheader: ; preds = %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h2a93ee6537774a89E.exit.i44"
br label %bb10.i50
bb9.i48.loopexit: ; preds = %bb18.i52, %bb20.i54
%plus1w.0.lcssa.i45.ph = phi i64 [ %205, %bb20.i54 ], [ %plus1w.025.i49, %bb18.i52 ]
%.lcssa.i46.ph = phi i1 [ %212, %bb20.i54 ], [ false, %bb18.i52 ]
br label %bb9.i48
bb9.i48: ; preds = %bb9.i48.loopexit, %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h2a93ee6537774a89E.exit.i44"
%plus1w.0.lcssa.i45 = phi i64 [ %192, %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h2a93ee6537774a89E.exit.i44" ], [ %plus1w.0.lcssa.i45.ph, %bb9.i48.loopexit ]
%.lcssa.i46 = phi i1 [ %202, %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h2a93ee6537774a89E.exit.i44" ], [ %.lcssa.i46.ph, %bb9.i48.loopexit ]
%203 = icmp ule i64 %198, %plus1w.0.lcssa.i45
%or.cond21.i47 = or i1 %203, %.lcssa.i46
br i1 %or.cond21.i47, label %bb22.i55, label %bb23.i56
bb10.i50: ; preds = %bb10.i50.preheader, %bb20.i54
%204 = phi i8 [ %209, %bb20.i54 ], [ %188, %bb10.i50.preheader ]
%plus1w.025.i49 = phi i64 [ %205, %bb20.i54 ], [ %192, %bb10.i50.preheader ]
%205 = add i64 %plus1w.025.i49, %195
%206 = icmp ult i64 %205, %199
br i1 %206, label %bb20.i54, label %bb18.i52
bb18.i52: ; preds = %bb10.i50
%207 = sub i64 %199, %plus1w.025.i49
%208 = sub i64 %205, %199
%not..i51 = icmp ult i64 %207, %208
br i1 %not..i51, label %bb9.i48.loopexit, label %bb20.i54
bb20.i54: ; preds = %bb18.i52, %bb10.i50
%209 = add i8 %204, -1
store i8 %209, i8* %187, align 1, !noalias !611
%210 = icmp uge i64 %205, %199
%211 = sub i64 %181, %205
%212 = icmp ult i64 %211, %195
%or.cond.i53 = or i1 %210, %212
br i1 %or.cond.i53, label %bb9.i48.loopexit, label %bb10.i50
bb22.i55: ; preds = %bb31.i58, %bb9.i48
%213 = icmp ult i64 %plus1w.0.lcssa.i45, 2
%214 = add i64 %181, -4
%215 = icmp ugt i64 %plus1w.0.lcssa.i45, %214
%or.cond = or i1 %213, %215
%216 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 0
br i1 %or.cond, label %bb37.i60, label %bb40.i62
bb23.i56: ; preds = %bb9.i48
%217 = add i64 %plus1w.0.lcssa.i45, %195
%218 = icmp ult i64 %217, %198
br i1 %218, label %bb33.i59, label %bb31.i58
bb31.i58: ; preds = %bb23.i56
%219 = sub i64 %198, %plus1w.0.lcssa.i45
%220 = sub i64 %217, %198
%not.23.i57 = icmp ult i64 %219, %220
br i1 %not.23.i57, label %bb22.i55, label %bb33.i59
bb33.i59: ; preds = %bb31.i58, %bb23.i56
%221 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 0
store i64 0, i64* %221, align 8, !alias.scope !611
br label %bb36
bb37.i60: ; preds = %bb22.i55
store i64 0, i64* %216, align 8, !alias.scope !611
br label %bb36
bb40.i62: ; preds = %bb22.i55
store i64 1, i64* %216, align 8, !alias.scope !611
%222 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 2, i64 0
store i64 %189, i64* %222, align 8, !alias.scope !611
%223 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 2, i64 1
%224 = bitcast i64* %223 to i16*
store i16 %180, i16* %224, align 8, !alias.scope !611
br label %bb36
bb33: ; preds = %bb31
%225 = icmp ugt i64 %189, %.sink9.sink.i
br i1 %225, label %bb40.preheader, label %bb37
bb40.preheader: ; preds = %bb33
br label %bb40
bb36: ; preds = %bb40.i, %bb37.i, %bb33.i, %bb40.i62, %bb37.i60, %bb33.i59
ret void
bb37: ; preds = %bb33
%226 = udiv i32 %ten_kappa.0147, 10
%227 = icmp ult i32 %ten_kappa.0147, 10
br i1 %227, label %panic, label %bb30, !prof !614
bb40: ; preds = %bb40.preheader, %bb41
%threshold.0 = phi i64 [ %229, %bb41 ], [ %182, %bb40.preheader ]
%remainder1.0 = phi i64 [ %231, %bb41 ], [ %168, %bb40.preheader ]
%ulp.0 = phi i64 [ %230, %bb41 ], [ 1, %bb40.preheader ]
%i.1 = phi i64 [ %237, %bb41 ], [ %189, %bb40.preheader ]
%228 = mul i64 %remainder1.0, 10
%229 = mul i64 %threshold.0, 10
%230 = mul i64 %ulp.0, 10
%231 = and i64 %228, %167
%232 = icmp ult i64 %i.1, %3
br i1 %232, label %bb41, label %panic7, !prof !5
bb41: ; preds = %bb40
%233 = lshr i64 %228, %163
%234 = trunc i64 %233 to i8
%235 = getelementptr inbounds i8, i8* %2, i64 %i.1
%236 = add i8 %234, 48
store i8 %236, i8* %235, align 1
%237 = add i64 %i.1, 1
%238 = icmp ugt i64 %229, %231
br i1 %238, label %bb42, label %bb40
bb42: ; preds = %bb41
%239 = icmp ugt i64 %237, %3
br i1 %239, label %bb4.i.i.i, label %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h2a93ee6537774a89E.exit.i"
bb4.i.i.i: ; preds = %bb42
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %237, i64 %3), !noalias !615
unreachable
"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h2a93ee6537774a89E.exit.i": ; preds = %bb42
%240 = sub i64 %160, %156
%241 = mul i64 %230, %240
%242 = add i64 %241, %230
%243 = sub i64 %241, %230
%244 = icmp ule i64 %243, %231
%245 = sub i64 %229, %231
%246 = icmp ult i64 %245, %166
%or.cond24.i = or i1 %246, %244
br i1 %or.cond24.i, label %bb9.i, label %bb10.i.preheader
bb10.i.preheader: ; preds = %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h2a93ee6537774a89E.exit.i"
br label %bb10.i
bb9.i.loopexit: ; preds = %bb18.i, %bb20.i
%plus1w.0.lcssa.i.ph = phi i64 [ %249, %bb20.i ], [ %plus1w.025.i, %bb18.i ]
%.lcssa.i.ph = phi i1 [ %256, %bb20.i ], [ false, %bb18.i ]
br label %bb9.i
bb9.i: ; preds = %bb9.i.loopexit, %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h2a93ee6537774a89E.exit.i"
%plus1w.0.lcssa.i = phi i64 [ %231, %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h2a93ee6537774a89E.exit.i" ], [ %plus1w.0.lcssa.i.ph, %bb9.i.loopexit ]
%.lcssa.i = phi i1 [ %246, %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h2a93ee6537774a89E.exit.i" ], [ %.lcssa.i.ph, %bb9.i.loopexit ]
%247 = icmp ule i64 %242, %plus1w.0.lcssa.i
%or.cond21.i = or i1 %247, %.lcssa.i
br i1 %or.cond21.i, label %bb22.i, label %bb23.i
bb10.i: ; preds = %bb10.i.preheader, %bb20.i
%248 = phi i8 [ %253, %bb20.i ], [ %236, %bb10.i.preheader ]
%plus1w.025.i = phi i64 [ %249, %bb20.i ], [ %231, %bb10.i.preheader ]
%249 = add i64 %plus1w.025.i, %166
%250 = icmp ult i64 %249, %243
br i1 %250, label %bb20.i, label %bb18.i
bb18.i: ; preds = %bb10.i
%251 = sub i64 %243, %plus1w.025.i
%252 = sub i64 %249, %243
%not..i = icmp ult i64 %251, %252
br i1 %not..i, label %bb9.i.loopexit, label %bb20.i
bb20.i: ; preds = %bb18.i, %bb10.i
%253 = add i8 %248, -1
store i8 %253, i8* %235, align 1, !noalias !618
%254 = icmp uge i64 %249, %243
%255 = sub i64 %229, %249
%256 = icmp ult i64 %255, %166
%or.cond.i = or i1 %254, %256
br i1 %or.cond.i, label %bb9.i.loopexit, label %bb10.i
bb22.i: ; preds = %bb31.i, %bb9.i
%257 = mul i64 %ulp.0, 20
%258 = icmp ugt i64 %257, %plus1w.0.lcssa.i
br i1 %258, label %bb37.i, label %bb38.i
bb23.i: ; preds = %bb9.i
%259 = add i64 %plus1w.0.lcssa.i, %166
%260 = icmp ult i64 %259, %242
br i1 %260, label %bb33.i, label %bb31.i
bb31.i: ; preds = %bb23.i
%261 = sub i64 %242, %plus1w.0.lcssa.i
%262 = sub i64 %259, %242
%not.23.i = icmp ult i64 %261, %262
br i1 %not.23.i, label %bb22.i, label %bb33.i
bb33.i: ; preds = %bb31.i, %bb23.i
%263 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 0
store i64 0, i64* %263, align 8, !alias.scope !618
br label %bb36
bb37.i: ; preds = %bb38.i, %bb22.i
%264 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 0
store i64 0, i64* %264, align 8, !alias.scope !618
br label %bb36
bb38.i: ; preds = %bb22.i
%265 = mul i64 %ulp.0, -40
%266 = add i64 %265, %229
%267 = icmp ugt i64 %plus1w.0.lcssa.i, %266
br i1 %267, label %bb37.i, label %bb40.i
bb40.i: ; preds = %bb38.i
%268 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 0
store i64 1, i64* %268, align 8, !alias.scope !618
%269 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 2, i64 0
store i64 %237, i64* %269, align 8, !alias.scope !618
%270 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 2, i64 1
%271 = bitcast i64* %270 to i16*
store i16 %180, i16* %271, align 8, !alias.scope !618
br label %bb36
panic: ; preds = %bb37
call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32 }* @panic_loc.e to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
panic6: ; preds = %bb30
call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.h to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %i.0148, i64 %3)
unreachable
panic7: ; preds = %bb40
call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.i to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %i.1, i64 %3)
unreachable
}
; Function Attrs: uwtable
define void @_ZN4core3num7flt2dec8strategy5grisu15format_shortest17h2c0092e4c0028526E({ i64, [0 x i8], i16, [6 x i8] }* noalias nocapture sret dereferenceable(16), %"num::flt2dec::decoder::Decoded"* noalias nocapture readonly dereferenceable(32), i8* nonnull, i64) unnamed_addr #2 {
start:
%_5 = alloca %"option::Option<(usize, i16)>", align 8
%4 = bitcast %"option::Option<(usize, i16)>"* %_5 to i8*
call void @llvm.lifetime.start(i64 24, i8* nonnull %4)
call void @_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt17ha1d9a3cc51e644c7E(%"option::Option<(usize, i16)>"* noalias nocapture nonnull sret dereferenceable(24) %_5, %"num::flt2dec::decoder::Decoded"* noalias nonnull readonly dereferenceable(32) %1, i8* nonnull %2, i64 %3)
%5 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %_5, i64 0, i32 0
%6 = load i64, i64* %5, align 8, !range !621
%cond = icmp eq i64 %6, 0
br i1 %cond, label %bb2, label %bb3
bb2: ; preds = %start
tail call void @_ZN4core3num7flt2dec8strategy6dragon15format_shortest17h651d3ae832a9ed27E({ i64, [0 x i8], i16, [6 x i8] }* noalias nocapture nonnull sret dereferenceable(16) %0, %"num::flt2dec::decoder::Decoded"* noalias nonnull readonly dereferenceable(32) %1, i8* nonnull %2, i64 %3)
br label %bb4
bb3: ; preds = %start
%7 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %_5, i64 0, i32 2, i64 0
%8 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %_5, i64 0, i32 2, i64 1
%9 = bitcast i64* %8 to i16*
%10 = load i64, i64* %7, align 8
%11 = load i16, i16* %9, align 8
%12 = getelementptr inbounds { i64, [0 x i8], i16, [6 x i8] }, { i64, [0 x i8], i16, [6 x i8] }* %0, i64 0, i32 0
store i64 %10, i64* %12, align 8
%13 = getelementptr inbounds { i64, [0 x i8], i16, [6 x i8] }, { i64, [0 x i8], i16, [6 x i8] }* %0, i64 0, i32 2
store i16 %11, i16* %13, align 8
br label %bb4
bb4: ; preds = %bb2, %bb3
call void @llvm.lifetime.end(i64 24, i8* nonnull %4)
ret void
}
; Function Attrs: uwtable
define void @_ZN4core3num7flt2dec8strategy5grisu16format_exact_opt17h59c04905b53a0edaE(%"option::Option<(usize, i16)>"* noalias nocapture sret dereferenceable(24), %"num::flt2dec::decoder::Decoded"* noalias nocapture readonly dereferenceable(32), i8* nonnull, i64, i16) unnamed_addr #2 {
start:
%5 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i64 0, i32 0
%6 = load i64, i64* %5, align 8
%7 = icmp eq i64 %6, 0
br i1 %7, label %bb1, label %bb2
bb1: ; preds = %start
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec8strategy5grisu16format_exact_opt14_MSG_FILE_LINE17h6a93c40b8bf77ee9E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb2: ; preds = %start
%8 = icmp ugt i64 %6, 2305843009213693951
br i1 %8, label %bb3, label %bb4
bb3: ; preds = %bb2
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec8strategy5grisu16format_exact_opt14_MSG_FILE_LINE17h38a127c36993cbbaE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb4: ; preds = %bb2
%9 = icmp eq i64 %3, 0
br i1 %9, label %bb6, label %bb7
bb6: ; preds = %bb4
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec8strategy5grisu16format_exact_opt14_MSG_FILE_LINE17h2ad745e254868d40E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb7: ; preds = %bb4
%10 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i64 0, i32 6
%11 = load i16, i16* %10, align 2
%12 = icmp ult i64 %6, 4294967296
%13 = shl i64 %6, 32
%14 = add i16 %11, -32
%e.0.i = select i1 %12, i16 %14, i16 %11
%f.0.i = select i1 %12, i64 %13, i64 %6
%15 = icmp ult i64 %f.0.i, 281474976710656
%16 = shl i64 %f.0.i, 16
%17 = add i16 %e.0.i, -16
%e.1.i = select i1 %15, i16 %17, i16 %e.0.i
%f.1.i = select i1 %15, i64 %16, i64 %f.0.i
%18 = icmp ult i64 %f.1.i, 72057594037927936
%19 = shl i64 %f.1.i, 8
%20 = add i16 %e.1.i, -8
%e.2.i = select i1 %18, i16 %20, i16 %e.1.i
%f.2.i = select i1 %18, i64 %19, i64 %f.1.i
%21 = icmp ult i64 %f.2.i, 1152921504606846976
%22 = shl i64 %f.2.i, 4
%23 = add i16 %e.2.i, -4
%e.3.i = select i1 %21, i16 %23, i16 %e.2.i
%f.3.i = select i1 %21, i64 %22, i64 %f.2.i
%24 = icmp ult i64 %f.3.i, 4611686018427387904
%25 = shl i64 %f.3.i, 2
%26 = add i16 %e.3.i, -2
%e.4.i = select i1 %24, i16 %26, i16 %e.3.i
%f.4.i = select i1 %24, i64 %25, i64 %f.3.i
%f.4.lobit.i = ashr i64 %f.4.i, 63
%27 = trunc i64 %f.4.lobit.i to i16
%.not.i = xor i16 %27, -1
%e.5.i = add i16 %e.4.i, %.not.i
%f.4.lobit21.i = lshr i64 %f.4.i, 63
%f.4.lobit21.not.i = xor i64 %f.4.lobit21.i, 1
%f.5.i = shl i64 %f.4.i, %f.4.lobit21.not.i
%28 = sub i16 -96, %e.5.i
%29 = sext i16 %28 to i32
%30 = mul nsw i32 %29, 80
%31 = add i32 %30, 86960
%32 = sdiv i32 %31, 2126
%33 = sext i32 %32 to i64
%34 = icmp ult i32 %32, 81
br i1 %34, label %_ZN4core3num7flt2dec8strategy5grisu12cached_power17h22d28164b741da7eE.exit, label %panic1.i, !prof !5
panic1.i: ; preds = %bb7
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.c to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %33, i64 81), !noalias !622
unreachable
_ZN4core3num7flt2dec8strategy5grisu12cached_power17h22d28164b741da7eE.exit: ; preds = %bb7
%35 = getelementptr inbounds [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }], [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]* bitcast ({ { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] } }* @_ZN4core3num7flt2dec8strategy5grisu12CACHED_POW1017hbb880931a269811cE to [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]*), i64 0, i64 %33, i32 0
%36 = load i64, i64* %35, align 8, !noalias !622
%37 = getelementptr inbounds [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }], [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]* bitcast ({ { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] } }* @_ZN4core3num7flt2dec8strategy5grisu12CACHED_POW1017hbb880931a269811cE to [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]*), i64 0, i64 %33, i32 2
%38 = load i16, i16* %37, align 8, !noalias !622
%39 = getelementptr inbounds [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }], [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]* bitcast ({ { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] }, { i64, i16, i16, [4 x i8] } }* @_ZN4core3num7flt2dec8strategy5grisu12CACHED_POW1017hbb880931a269811cE to [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]*), i64 0, i64 %33, i32 4
%40 = load i16, i16* %39, align 2, !noalias !622
%41 = lshr i64 %f.5.i, 32
%42 = and i64 %f.5.i, 4294967295
%43 = lshr i64 %36, 32
%44 = and i64 %36, 4294967295
%45 = mul nuw i64 %43, %41
%46 = mul nuw i64 %43, %42
%47 = mul nuw i64 %44, %41
%48 = mul nuw i64 %44, %42
%49 = lshr i64 %48, 32
%50 = and i64 %47, 4294967295
%51 = and i64 %46, 4294967295
%52 = add nuw nsw i64 %50, 2147483648
%53 = add nuw nsw i64 %52, %49
%54 = add nuw nsw i64 %53, %51
%55 = lshr i64 %47, 32
%56 = add i64 %55, %45
%57 = lshr i64 %46, 32
%58 = add i64 %56, %57
%59 = lshr i64 %54, 32
%60 = add i64 %58, %59
%61 = add i16 %e.5.i, 64
%62 = add i16 %61, %38
%63 = sub i16 0, %62
%64 = sext i16 %63 to i64
%65 = and i64 %64, 63
%66 = lshr i64 %60, %65
%67 = trunc i64 %66 to i32
%68 = shl i64 1, %65
%69 = add i64 %68, -1
%70 = and i64 %60, %69
%71 = icmp ult i32 %67, 10000
br i1 %71, label %bb1.i, label %bb2.i
bb1.i: ; preds = %_ZN4core3num7flt2dec8strategy5grisu12cached_power17h22d28164b741da7eE.exit
%72 = icmp ult i32 %67, 100
br i1 %72, label %bb3.i, label %bb4.i
bb2.i: ; preds = %_ZN4core3num7flt2dec8strategy5grisu12cached_power17h22d28164b741da7eE.exit
%73 = icmp ult i32 %67, 1000000
br i1 %73, label %bb12.i, label %bb13.i
bb3.i: ; preds = %bb1.i
%74 = icmp ult i32 %67, 10
%not..i = xor i1 %74, true
%.sink2.i = zext i1 %not..i to i64
%.sink.i = select i1 %74, i64 1, i64 10
br label %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17hb10a64f90a64eeefE.exit
bb4.i: ; preds = %bb1.i
%75 = icmp ult i32 %67, 1000
%.sink5.i = select i1 %75, i64 2, i64 3
%.sink3.i = select i1 %75, i64 100, i64 1000
br label %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17hb10a64f90a64eeefE.exit
bb12.i: ; preds = %bb2.i
%76 = icmp ult i32 %67, 100000
%.sink9.i = select i1 %76, i64 4, i64 5
%.sink7.i = select i1 %76, i64 10000, i64 100000
br label %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17hb10a64f90a64eeefE.exit
bb13.i: ; preds = %bb2.i
%77 = icmp ult i32 %67, 100000000
br i1 %77, label %bb17.i, label %bb18.i
bb17.i: ; preds = %bb13.i
%78 = icmp ult i32 %67, 10000000
%.sink12.i = select i1 %78, i64 6, i64 7
%.sink10.i = select i1 %78, i64 1000000, i64 10000000
br label %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17hb10a64f90a64eeefE.exit
bb18.i: ; preds = %bb13.i
%79 = icmp ult i32 %67, 1000000000
%.sink15.i = select i1 %79, i64 8, i64 9
%.sink13.i = select i1 %79, i64 100000000, i64 1000000000
br label %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17hb10a64f90a64eeefE.exit
_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17hb10a64f90a64eeefE.exit: ; preds = %bb3.i, %bb4.i, %bb12.i, %bb17.i, %bb18.i
%.sink9.sink.i = phi i64 [ %.sink9.i, %bb12.i ], [ %.sink15.i, %bb18.i ], [ %.sink12.i, %bb17.i ], [ %.sink2.i, %bb3.i ], [ %.sink5.i, %bb4.i ]
%.sink13.sink.sink.sink.i = phi i64 [ %.sink7.i, %bb12.i ], [ %.sink13.i, %bb18.i ], [ %.sink10.i, %bb17.i ], [ %.sink.i, %bb3.i ], [ %.sink3.i, %bb4.i ]
%80 = trunc i64 %.sink9.sink.i to i16
%81 = sub i16 %80, %40
%82 = add i16 %81, 1
%83 = icmp sgt i16 %82, %4
br i1 %83, label %bb13, label %bb14
bb13: ; preds = %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17hb10a64f90a64eeefE.exit
%abi_cast.sroa.5.0.extract.trunc = trunc i64 %.sink13.sink.sink.sink.i to i32
%84 = sext i16 %82 to i64
%85 = sext i16 %4 to i64
%86 = sub nsw i64 %84, %85
%87 = icmp ult i64 %86, %3
%88 = sub i16 %82, %4
%89 = sext i16 %88 to i64
%len.0 = select i1 %87, i64 %89, i64 %3
%90 = icmp eq i32 %abi_cast.sroa.5.0.extract.trunc, 0
br i1 %90, label %panic, label %bb24.preheader, !prof !614
bb24.preheader: ; preds = %bb13
br label %bb24
bb14: ; preds = %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17hb10a64f90a64eeefE.exit
%91 = udiv i64 %60, 10
%92 = shl i64 %.sink13.sink.sink.sink.i, %65
%93 = icmp ugt i64 %92, %68
br i1 %93, label %bb2.i62, label %bb1.i61
bb1.i61: ; preds = %bb14
%94 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 0
store i64 0, i64* %94, align 8, !alias.scope !625
br label %bb16
bb2.i62: ; preds = %bb14
%95 = sub i64 %92, %68
%96 = icmp ugt i64 %95, %68
br i1 %96, label %bb6.i65, label %bb5.i64
bb5.i64: ; preds = %bb2.i62
%97 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 0
store i64 0, i64* %97, align 8, !alias.scope !625
br label %bb16
bb6.i65: ; preds = %bb2.i62
%98 = sub i64 %92, %91
%99 = icmp ugt i64 %98, %91
br i1 %99, label %bb9.i67, label %bb8.i66
bb8.i66: ; preds = %bb9.i67, %bb6.i65
%100 = icmp ugt i64 %91, %68
br i1 %100, label %bb15.i70, label %bb14.i69
bb9.i67: ; preds = %bb6.i65
%101 = shl nuw nsw i64 %91, 1
%102 = sub i64 %92, %101
%103 = shl i64 %68, 1
%104 = icmp ult i64 %102, %103
br i1 %104, label %bb8.i66, label %bb11.i68
bb11.i68: ; preds = %bb9.i67
%105 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 0
store i64 1, i64* %105, align 8, !alias.scope !625
%106 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 2, i64 0
store i64 0, i64* %106, align 8, !alias.scope !625
%107 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 2, i64 1
%108 = bitcast i64* %107 to i16*
store i16 %82, i16* %108, align 8, !alias.scope !625
br label %bb16
bb14.i69: ; preds = %bb15.i70, %bb8.i66
%109 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 0
store i64 0, i64* %109, align 8, !alias.scope !625
br label %bb16
bb15.i70: ; preds = %bb8.i66
%110 = sub i64 %91, %68
%111 = sub i64 %92, %110
%112 = icmp ugt i64 %111, %110
br i1 %112, label %bb14.i69, label %bb17.i74
bb17.i74: ; preds = %bb15.i70
%113 = tail call i16 @_ZN4core3num7flt2dec8round_up17h879a47796abb3549E(i8* nonnull %2, i64 %3, i64 0), !noalias !625
%abi_cast.sroa.4.0.extract.shift.i71 = lshr i16 %113, 8
%abi_cast.sroa.4.0.extract.trunc.i72 = trunc i16 %abi_cast.sroa.4.0.extract.shift.i71 to i8
%114 = and i16 %113, 255
%cond.i73 = icmp eq i16 %114, 1
br i1 %cond.i73, label %bb21.i76, label %bb22.i79
bb21.i76: ; preds = %bb17.i74
%115 = add i16 %81, 2
%116 = icmp sgt i16 %115, %4
br i1 %116, label %bb30.i80, label %bb22.i79
bb22.i79: ; preds = %bb30.i80, %bb21.i76, %bb17.i74
%exp.0.i77 = phi i16 [ %82, %bb17.i74 ], [ %115, %bb30.i80 ], [ %115, %bb21.i76 ]
%len.0.i78 = phi i64 [ 0, %bb17.i74 ], [ 1, %bb30.i80 ], [ 0, %bb21.i76 ]
%117 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 0
store i64 1, i64* %117, align 8, !alias.scope !625
%118 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 2, i64 0
store i64 %len.0.i78, i64* %118, align 8, !alias.scope !625
%119 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 2, i64 1
%120 = bitcast i64* %119 to i16*
store i16 %exp.0.i77, i16* %120, align 8, !alias.scope !625
br label %bb16
bb30.i80: ; preds = %bb21.i76
store i8 %abi_cast.sroa.4.0.extract.trunc.i72, i8* %2, align 1, !noalias !625
br label %bb22.i79
bb16: ; preds = %bb22.i, %bb14.i, %bb11.i, %bb5.i, %bb1.i36, %bb22.i58, %bb14.i48, %bb11.i47, %bb5.i43, %bb1.i40, %bb22.i79, %bb14.i69, %bb11.i68, %bb5.i64, %bb1.i61, %bb34
ret void
bb24: ; preds = %bb24.preheader, %bb30
%i.0117 = phi i64 [ %127, %bb30 ], [ 0, %bb24.preheader ]
%ten_kappa.0116 = phi i32 [ %166, %bb30 ], [ %abi_cast.sroa.5.0.extract.trunc, %bb24.preheader ]
%remainder.0115 = phi i32 [ %121, %bb30 ], [ %67, %bb24.preheader ]
%121 = urem i32 %remainder.0115, %ten_kappa.0116
%122 = icmp ult i64 %i.0117, %3
br i1 %122, label %bb25, label %panic4, !prof !5
bb25: ; preds = %bb24
%123 = udiv i32 %remainder.0115, %ten_kappa.0116
%124 = trunc i32 %123 to i8
%125 = getelementptr inbounds i8, i8* %2, i64 %i.0117
%126 = add i8 %124, 48
store i8 %126, i8* %125, align 1
%127 = add nuw nsw i64 %i.0117, 1
%128 = icmp eq i64 %127, %len.0
br i1 %128, label %bb26, label %bb27
bb26: ; preds = %bb25
%129 = zext i32 %121 to i64
%130 = shl i64 %129, %65
%131 = add i64 %130, %70
%132 = zext i32 %ten_kappa.0116 to i64
%133 = shl i64 %132, %65
%134 = icmp ugt i64 %133, %68
br i1 %134, label %bb2.i41, label %bb1.i40
bb1.i40: ; preds = %bb26
%135 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 0
store i64 0, i64* %135, align 8, !alias.scope !628
br label %bb16
bb2.i41: ; preds = %bb26
%136 = sub i64 %133, %68
%137 = icmp ugt i64 %136, %68
br i1 %137, label %bb6.i44, label %bb5.i43
bb5.i43: ; preds = %bb2.i41
%138 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 0
store i64 0, i64* %138, align 8, !alias.scope !628
br label %bb16
bb6.i44: ; preds = %bb2.i41
%139 = sub i64 %133, %131
%140 = icmp ugt i64 %139, %131
br i1 %140, label %bb9.i46, label %bb8.i45
bb8.i45: ; preds = %bb9.i46, %bb6.i44
%141 = icmp ugt i64 %131, %68
br i1 %141, label %bb15.i49, label %bb14.i48
bb9.i46: ; preds = %bb6.i44
%142 = shl i64 %131, 1
%143 = sub i64 %133, %142
%144 = shl i64 %68, 1
%145 = icmp ult i64 %143, %144
br i1 %145, label %bb8.i45, label %bb11.i47
bb11.i47: ; preds = %bb9.i46
%146 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 0
store i64 1, i64* %146, align 8, !alias.scope !628
%147 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 2, i64 0
store i64 %len.0, i64* %147, align 8, !alias.scope !628
%148 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 2, i64 1
%149 = bitcast i64* %148 to i16*
store i16 %82, i16* %149, align 8, !alias.scope !628
br label %bb16
bb14.i48: ; preds = %bb15.i49, %bb8.i45
%150 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 0
store i64 0, i64* %150, align 8, !alias.scope !628
br label %bb16
bb15.i49: ; preds = %bb8.i45
%151 = sub i64 %131, %68
%152 = sub i64 %133, %151
%153 = icmp ugt i64 %152, %151
br i1 %153, label %bb14.i48, label %bb17.i53
bb17.i53: ; preds = %bb15.i49
%154 = tail call i16 @_ZN4core3num7flt2dec8round_up17h879a47796abb3549E(i8* nonnull %2, i64 %3, i64 %len.0), !noalias !628
%abi_cast.sroa.4.0.extract.shift.i50 = lshr i16 %154, 8
%abi_cast.sroa.4.0.extract.trunc.i51 = trunc i16 %abi_cast.sroa.4.0.extract.shift.i50 to i8
%155 = and i16 %154, 255
%cond.i52 = icmp eq i16 %155, 1
br i1 %cond.i52, label %bb21.i55, label %bb22.i58
bb21.i55: ; preds = %bb17.i53
%156 = add i16 %81, 2
%157 = icmp sgt i16 %156, %4
%158 = icmp ult i64 %len.0, %3
%or.cond.i54 = and i1 %157, %158
br i1 %or.cond.i54, label %bb30.i59, label %bb22.i58
bb22.i58: ; preds = %bb30.i59, %bb21.i55, %bb17.i53
%exp.0.i56 = phi i16 [ %82, %bb17.i53 ], [ %156, %bb30.i59 ], [ %156, %bb21.i55 ]
%len.0.i57 = phi i64 [ %len.0, %bb17.i53 ], [ %164, %bb30.i59 ], [ %len.0, %bb21.i55 ]
%159 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 0
store i64 1, i64* %159, align 8, !alias.scope !628
%160 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 2, i64 0
store i64 %len.0.i57, i64* %160, align 8, !alias.scope !628
%161 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 2, i64 1
%162 = bitcast i64* %161 to i16*
store i16 %exp.0.i56, i16* %162, align 8, !alias.scope !628
br label %bb16
bb30.i59: ; preds = %bb21.i55
%163 = getelementptr inbounds i8, i8* %2, i64 %len.0
store i8 %abi_cast.sroa.4.0.extract.trunc.i51, i8* %163, align 1, !noalias !628
%164 = add i64 %len.0, 1
br label %bb22.i58
bb27: ; preds = %bb25
%165 = icmp ugt i64 %127, %.sink9.sink.i
br i1 %165, label %bb31, label %bb30
bb30: ; preds = %bb27
%166 = udiv i32 %ten_kappa.0116, 10
%167 = icmp ult i32 %ten_kappa.0116, 10
br i1 %167, label %panic.loopexit, label %bb24, !prof !614
bb31: ; preds = %bb27
%168 = add nsw i64 %64, 63
%169 = and i64 %168, 63
%170 = shl i64 1, %169
br label %bb33
bb33: ; preds = %bb36, %bb31
%remainder1.0 = phi i64 [ %70, %bb31 ], [ %175, %bb36 ]
%i.1 = phi i64 [ %127, %bb31 ], [ %181, %bb36 ]
%err.0 = phi i64 [ 1, %bb31 ], [ %174, %bb36 ]
%171 = icmp ult i64 %err.0, %170
br i1 %171, label %bb35, label %bb34
bb34: ; preds = %bb33
%172 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 0
store i64 0, i64* %172, align 8
br label %bb16
bb35: ; preds = %bb33
%173 = mul i64 %remainder1.0, 10
%174 = mul i64 %err.0, 10
%175 = and i64 %173, %69
%176 = icmp ult i64 %i.1, %3
br i1 %176, label %bb36, label %panic5, !prof !5
bb36: ; preds = %bb35
%177 = lshr i64 %173, %65
%178 = trunc i64 %177 to i8
%179 = getelementptr inbounds i8, i8* %2, i64 %i.1
%180 = add i8 %178, 48
store i8 %180, i8* %179, align 1
%181 = add i64 %i.1, 1
%182 = icmp eq i64 %181, %len.0
br i1 %182, label %bb37, label %bb33
bb37: ; preds = %bb36
%183 = icmp ugt i64 %68, %174
br i1 %183, label %bb2.i37, label %bb1.i36
bb1.i36: ; preds = %bb37
%184 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 0
store i64 0, i64* %184, align 8, !alias.scope !631
br label %bb16
bb2.i37: ; preds = %bb37
%185 = sub i64 %68, %174
%186 = icmp ugt i64 %185, %174
br i1 %186, label %bb6.i, label %bb5.i
bb5.i: ; preds = %bb2.i37
%187 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 0
store i64 0, i64* %187, align 8, !alias.scope !631
br label %bb16
bb6.i: ; preds = %bb2.i37
%188 = sub i64 %68, %175
%189 = icmp ugt i64 %188, %175
br i1 %189, label %bb9.i, label %bb8.i
bb8.i: ; preds = %bb9.i, %bb6.i
%190 = icmp ugt i64 %175, %174
br i1 %190, label %bb15.i, label %bb14.i
bb9.i: ; preds = %bb6.i
%191 = shl i64 %175, 1
%192 = sub i64 %68, %191
%193 = mul i64 %err.0, 20
%194 = icmp ult i64 %192, %193
br i1 %194, label %bb8.i, label %bb11.i
bb11.i: ; preds = %bb9.i
%195 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 0
store i64 1, i64* %195, align 8, !alias.scope !631
%196 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 2, i64 0
store i64 %len.0, i64* %196, align 8, !alias.scope !631
%197 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 2, i64 1
%198 = bitcast i64* %197 to i16*
store i16 %82, i16* %198, align 8, !alias.scope !631
br label %bb16
bb14.i: ; preds = %bb15.i, %bb8.i
%199 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 0
store i64 0, i64* %199, align 8, !alias.scope !631
br label %bb16
bb15.i: ; preds = %bb8.i
%200 = sub i64 %175, %174
%201 = sub i64 %68, %200
%202 = icmp ugt i64 %201, %200
br i1 %202, label %bb14.i, label %bb17.i39
bb17.i39: ; preds = %bb15.i
%203 = tail call i16 @_ZN4core3num7flt2dec8round_up17h879a47796abb3549E(i8* nonnull %2, i64 %3, i64 %len.0), !noalias !631
%abi_cast.sroa.4.0.extract.shift.i = lshr i16 %203, 8
%abi_cast.sroa.4.0.extract.trunc.i = trunc i16 %abi_cast.sroa.4.0.extract.shift.i to i8
%204 = and i16 %203, 255
%cond.i = icmp eq i16 %204, 1
br i1 %cond.i, label %bb21.i, label %bb22.i
bb21.i: ; preds = %bb17.i39
%205 = add i16 %81, 2
%206 = icmp sgt i16 %205, %4
%207 = icmp ult i64 %len.0, %3
%or.cond.i = and i1 %206, %207
br i1 %or.cond.i, label %bb30.i, label %bb22.i
bb22.i: ; preds = %bb30.i, %bb21.i, %bb17.i39
%exp.0.i = phi i16 [ %82, %bb17.i39 ], [ %205, %bb30.i ], [ %205, %bb21.i ]
%len.0.i = phi i64 [ %len.0, %bb17.i39 ], [ %213, %bb30.i ], [ %len.0, %bb21.i ]
%208 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 0
store i64 1, i64* %208, align 8, !alias.scope !631
%209 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 2, i64 0
store i64 %len.0.i, i64* %209, align 8, !alias.scope !631
%210 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i64 0, i32 2, i64 1
%211 = bitcast i64* %210 to i16*
store i16 %exp.0.i, i16* %211, align 8, !alias.scope !631
br label %bb16
bb30.i: ; preds = %bb21.i
%212 = getelementptr inbounds i8, i8* %2, i64 %len.0
store i8 %abi_cast.sroa.4.0.extract.trunc.i, i8* %212, align 1, !noalias !631
%213 = add i64 %len.0, 1
br label %bb22.i
panic.loopexit: ; preds = %bb30
br label %panic
panic: ; preds = %panic.loopexit, %bb13
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32 }* @panic_loc.j to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
panic4: ; preds = %bb24
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.l to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %i.0117, i64 %3)
unreachable
panic5: ; preds = %bb35
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.m to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %i.1, i64 %3)
unreachable
}
; Function Attrs: uwtable
define void @_ZN4core3num7flt2dec8strategy5grisu12format_exact17h25aa26367678b0ffE({ i64, [0 x i8], i16, [6 x i8] }* noalias nocapture sret dereferenceable(16), %"num::flt2dec::decoder::Decoded"* noalias nocapture readonly dereferenceable(32), i8* nonnull, i64, i16) unnamed_addr #2 {
start:
%_7 = alloca %"option::Option<(usize, i16)>", align 8
%5 = bitcast %"option::Option<(usize, i16)>"* %_7 to i8*
call void @llvm.lifetime.start(i64 24, i8* nonnull %5)
call void @_ZN4core3num7flt2dec8strategy5grisu16format_exact_opt17h59c04905b53a0edaE(%"option::Option<(usize, i16)>"* noalias nocapture nonnull sret dereferenceable(24) %_7, %"num::flt2dec::decoder::Decoded"* noalias nonnull readonly dereferenceable(32) %1, i8* nonnull %2, i64 %3, i16 %4)
%6 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %_7, i64 0, i32 0
%7 = load i64, i64* %6, align 8, !range !621
%cond = icmp eq i64 %7, 0
br i1 %cond, label %bb2, label %bb3
bb2: ; preds = %start
tail call void @_ZN4core3num7flt2dec8strategy6dragon12format_exact17h915638fd5b738bf0E({ i64, [0 x i8], i16, [6 x i8] }* noalias nocapture nonnull sret dereferenceable(16) %0, %"num::flt2dec::decoder::Decoded"* noalias nonnull readonly dereferenceable(32) %1, i8* nonnull %2, i64 %3, i16 %4)
br label %bb4
bb3: ; preds = %start
%8 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %_7, i64 0, i32 2, i64 0
%9 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %_7, i64 0, i32 2, i64 1
%10 = bitcast i64* %9 to i16*
%11 = load i64, i64* %8, align 8
%12 = load i16, i16* %10, align 8
%13 = getelementptr inbounds { i64, [0 x i8], i16, [6 x i8] }, { i64, [0 x i8], i16, [6 x i8] }* %0, i64 0, i32 0
store i64 %11, i64* %13, align 8
%14 = getelementptr inbounds { i64, [0 x i8], i16, [6 x i8] }, { i64, [0 x i8], i16, [6 x i8] }* %0, i64 0, i32 2
store i16 %12, i16* %14, align 8
br label %bb4
bb4: ; preds = %bb2, %bb3
call void @llvm.lifetime.end(i64 24, i8* nonnull %5)
ret void
}
; Function Attrs: uwtable
define i16 @_ZN4core3num7flt2dec8round_up17h879a47796abb3549E(i8* nonnull, i64, i64) unnamed_addr #2 personality i32 (...)* @rust_eh_personality {
start:
%3 = icmp ugt i64 %2, %1
br i1 %3, label %bb4.i.i.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hf894b9917a59ca04E.exit"
bb4.i.i.i: ; preds = %start
tail call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %2, i64 %1), !noalias !634
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hf894b9917a59ca04E.exit": ; preds = %start
%4 = getelementptr inbounds i8, i8* %0, i64 %2
%5 = ptrtoint i8* %0 to i64
br label %bb6.i.i
bb6.i.i: ; preds = %bb55.i.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hf894b9917a59ca04E.exit"
%6 = phi i8* [ %4, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hf894b9917a59ca04E.exit" ], [ %22, %bb55.i.i ]
%g.sroa.0.0.i.i = phi i64 [ %2, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hf894b9917a59ca04E.exit" ], [ %23, %bb55.i.i ]
%7 = ptrtoint i8* %6 to i64
%8 = sub i64 %7, %5
%9 = icmp ugt i64 %8, 3
br i1 %9, label %bb14.i.i, label %bb61.i.i.preheader
bb61.i.i.preheader: ; preds = %bb6.i.i
br label %bb61.i.i
bb14.i.i: ; preds = %bb6.i.i
%10 = getelementptr inbounds i8, i8* %6, i64 -1
%11 = add i64 %g.sroa.0.0.i.i, -1
%12 = load i8, i8* %10, align 1, !alias.scope !637, !noalias !642
%13 = icmp eq i8 %12, 57
br i1 %13, label %bb31.i.i, label %bb7.loopexit70
bb31.i.i: ; preds = %bb14.i.i
%14 = getelementptr inbounds i8, i8* %6, i64 -2
%15 = add i64 %g.sroa.0.0.i.i, -2
%16 = load i8, i8* %14, align 1, !alias.scope !649, !noalias !654
%17 = icmp eq i8 %16, 57
br i1 %17, label %bb43.i.i, label %bb7.loopexit70
bb43.i.i: ; preds = %bb31.i.i
%18 = getelementptr inbounds i8, i8* %6, i64 -3
%19 = add i64 %g.sroa.0.0.i.i, -3
%20 = load i8, i8* %18, align 1, !alias.scope !656, !noalias !661
%21 = icmp eq i8 %20, 57
br i1 %21, label %bb55.i.i, label %bb7.loopexit70
bb55.i.i: ; preds = %bb43.i.i
%22 = getelementptr inbounds i8, i8* %6, i64 -4
%23 = add i64 %g.sroa.0.0.i.i, -4
%24 = load i8, i8* %22, align 1, !alias.scope !663, !noalias !668
%25 = icmp eq i8 %24, 57
br i1 %25, label %bb6.i.i, label %bb7.loopexit70
bb61.i.i: ; preds = %bb61.i.i.preheader, %bb70.i.i
%26 = phi i8* [ %28, %bb70.i.i ], [ %6, %bb61.i.i.preheader ]
%g.sroa.0.1.i.i = phi i64 [ %29, %bb70.i.i ], [ %g.sroa.0.0.i.i, %bb61.i.i.preheader ]
%27 = icmp eq i8* %26, %0
br i1 %27, label %bb6, label %bb70.i.i
bb70.i.i: ; preds = %bb61.i.i
%28 = getelementptr inbounds i8, i8* %26, i64 -1
%29 = add i64 %g.sroa.0.1.i.i, -1
%30 = load i8, i8* %28, align 1, !alias.scope !670, !noalias !675
%31 = icmp eq i8 %30, 57
br i1 %31, label %bb61.i.i, label %bb7.loopexit
bb4: ; preds = %bb6
%32 = icmp eq i64 %1, 0
br i1 %32, label %panic3, label %bb16, !prof !614
bb6: ; preds = %bb61.i.i
%33 = icmp eq i64 %2, 0
br i1 %33, label %bb8, label %bb4
bb7.loopexit: ; preds = %bb70.i.i
br label %bb7
bb7.loopexit70: ; preds = %bb14.i.i, %bb31.i.i, %bb43.i.i, %bb55.i.i
%.sink.i.ph.ph = phi i64 [ %23, %bb55.i.i ], [ %19, %bb43.i.i ], [ %15, %bb31.i.i ], [ %11, %bb14.i.i ]
br label %bb7
bb7: ; preds = %bb7.loopexit70, %bb7.loopexit
%.sink.i.ph = phi i64 [ %29, %bb7.loopexit ], [ %.sink.i.ph.ph, %bb7.loopexit70 ]
%34 = icmp ult i64 %.sink.i.ph, %1
br i1 %34, label %bb9, label %panic, !prof !5
bb8.loopexit: ; preds = %bb15
br label %bb8
bb8.loopexit69: ; preds = %bb22
br label %bb8
bb8: ; preds = %bb8.loopexit69, %bb8.loopexit, %bb16, %bb9, %bb6
%_0.sroa.4.0 = phi i16 [ 12544, %bb6 ], [ 0, %bb9 ], [ 12288, %bb16 ], [ 0, %bb8.loopexit ], [ 12288, %bb8.loopexit69 ]
%_0.sroa.0.0 = phi i16 [ 1, %bb6 ], [ 0, %bb9 ], [ 1, %bb16 ], [ 0, %bb8.loopexit ], [ 1, %bb8.loopexit69 ]
%_0.sroa.0.0.insert.insert = or i16 %_0.sroa.0.0, %_0.sroa.4.0
ret i16 %_0.sroa.0.0.insert.insert
bb9: ; preds = %bb7
%35 = getelementptr inbounds i8, i8* %0, i64 %.sink.i.ph
%36 = load i8, i8* %35, align 1
%37 = add i8 %36, 1
store i8 %37, i8* %35, align 1
%iter.sroa.0.045 = add i64 %.sink.i.ph, 1
%38 = icmp ult i64 %iter.sroa.0.045, %2
br i1 %38, label %bb14.preheader, label %bb8
bb14.preheader: ; preds = %bb9
br label %bb14
bb14: ; preds = %bb14.preheader, %bb15
%iter.sroa.0.046 = phi i64 [ %iter.sroa.0.0, %bb15 ], [ %iter.sroa.0.045, %bb14.preheader ]
%39 = icmp ult i64 %iter.sroa.0.046, %1
br i1 %39, label %bb15, label %panic2, !prof !5
bb15: ; preds = %bb14
%40 = getelementptr inbounds i8, i8* %0, i64 %iter.sroa.0.046
store i8 48, i8* %40, align 1
%iter.sroa.0.0 = add i64 %iter.sroa.0.046, 1
%41 = icmp ult i64 %iter.sroa.0.0, %2
br i1 %41, label %bb14, label %bb8.loopexit
bb16: ; preds = %bb4
store i8 49, i8* %0, align 1
%42 = icmp ugt i64 %2, 1
br i1 %42, label %bb21.preheader, label %bb8
bb21.preheader: ; preds = %bb16
br label %bb21
bb21: ; preds = %bb21.preheader, %bb22
%iter1.sroa.0.047 = phi i64 [ %44, %bb22 ], [ 1, %bb21.preheader ]
%43 = icmp ult i64 %iter1.sroa.0.047, %1
br i1 %43, label %bb22, label %panic6, !prof !5
bb22: ; preds = %bb21
%44 = add nuw i64 %iter1.sroa.0.047, 1
%45 = getelementptr inbounds i8, i8* %0, i64 %iter1.sroa.0.047
store i8 48, i8* %45, align 1
%46 = icmp ult i64 %44, %2
br i1 %46, label %bb21, label %bb8.loopexit69
panic: ; preds = %bb7
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.p to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %.sink.i.ph, i64 %1)
unreachable
panic2: ; preds = %bb14
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.q to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %iter.sroa.0.046, i64 %1)
unreachable
panic3: ; preds = %bb4
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.r to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 0, i64 0)
unreachable
panic6: ; preds = %bb21
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.s to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %iter1.sroa.0.047, i64 %1)
unreachable
}
; Function Attrs: norecurse nounwind readonly uwtable
define i64 @_ZN4core3num7flt2dec4Part3len17h57240b1f0240c8a2E(%"num::flt2dec::Part"* noalias nocapture readonly dereferenceable(24)) unnamed_addr #3 {
start:
%1 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %0, i64 0, i32 0
%2 = load i16, i16* %1, align 2, !range !677
%trunc = trunc i16 %2 to i2
switch i2 %trunc, label %bb3 [
i2 0, label %bb1
i2 1, label %bb2
]
bb1: ; preds = %start
%3 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %0, i64 0, i32 2, i64 0
%4 = load i64, i64* %3, align 8
br label %bb4
bb2: ; preds = %start
%5 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %0, i64 0, i32 1, i64 0
%6 = load i16, i16* %5, align 2
%7 = icmp ult i16 %6, 1000
br i1 %7, label %bb5, label %bb6
bb3: ; preds = %start
%8 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %0, i64 0, i32 2, i64 1
%9 = load i64, i64* %8, align 8
br label %bb4
bb4: ; preds = %bb8, %bb5, %bb6, %bb1, %bb3
%_0.0 = phi i64 [ %9, %bb3 ], [ %4, %bb1 ], [ %., %bb6 ], [ 1, %bb5 ], [ %.1, %bb8 ]
ret i64 %_0.0
bb5: ; preds = %bb2
%10 = icmp ult i16 %6, 10
br i1 %10, label %bb4, label %bb8
bb6: ; preds = %bb2
%11 = icmp ult i16 %6, 10000
%. = select i1 %11, i64 4, i64 5
br label %bb4
bb8: ; preds = %bb5
%12 = icmp ult i16 %6, 100
%.1 = select i1 %12, i64 2, i64 3
br label %bb4
}
; Function Attrs: uwtable
define void @_ZN4core3num7flt2dec4Part5write17hce22ab25bf0bb5e3E(%"option::Option<usize>"* noalias nocapture sret dereferenceable(16), %"num::flt2dec::Part"* noalias nocapture readonly dereferenceable(24), i8* nonnull, i64) unnamed_addr #2 {
start:
%4 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %1, i64 0, i32 0
%5 = load i16, i16* %4, align 2, !range !677, !alias.scope !678
%trunc.i = trunc i16 %5 to i2
switch i2 %trunc.i, label %bb3.i [
i2 0, label %bb1.i
i2 1, label %bb2.i
]
bb1.i: ; preds = %start
%6 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %1, i64 0, i32 2, i64 0
%7 = load i64, i64* %6, align 8, !alias.scope !678
br label %_ZN4core3num7flt2dec4Part3len17h57240b1f0240c8a2E.exit
bb2.i: ; preds = %start
%8 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %1, i64 0, i32 1, i64 0
%9 = load i16, i16* %8, align 2, !alias.scope !678
%10 = icmp ult i16 %9, 1000
br i1 %10, label %bb5.i, label %bb6.i
bb3.i: ; preds = %start
%11 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %1, i64 0, i32 2, i64 1
%12 = load i64, i64* %11, align 8, !alias.scope !678
br label %_ZN4core3num7flt2dec4Part3len17h57240b1f0240c8a2E.exit
bb5.i: ; preds = %bb2.i
%13 = icmp ult i16 %9, 10
br i1 %13, label %_ZN4core3num7flt2dec4Part3len17h57240b1f0240c8a2E.exit, label %bb8.i
bb6.i: ; preds = %bb2.i
%14 = icmp ult i16 %9, 10000
%..i = select i1 %14, i64 4, i64 5
br label %_ZN4core3num7flt2dec4Part3len17h57240b1f0240c8a2E.exit
bb8.i: ; preds = %bb5.i
%15 = icmp ult i16 %9, 100
%.1.i = select i1 %15, i64 2, i64 3
br label %_ZN4core3num7flt2dec4Part3len17h57240b1f0240c8a2E.exit
_ZN4core3num7flt2dec4Part3len17h57240b1f0240c8a2E.exit: ; preds = %bb1.i, %bb3.i, %bb5.i, %bb6.i, %bb8.i
%_0.0.i = phi i64 [ %12, %bb3.i ], [ %7, %bb1.i ], [ %..i, %bb6.i ], [ 1, %bb5.i ], [ %.1.i, %bb8.i ]
%16 = icmp ugt i64 %_0.0.i, %3
br i1 %16, label %bb4, label %bb3
bb3: ; preds = %_ZN4core3num7flt2dec4Part3len17h57240b1f0240c8a2E.exit
switch i2 %trunc.i, label %bb7 [
i2 0, label %bb5
i2 1, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h7d0624bc93b5eea6E.exit19"
]
bb4: ; preds = %_ZN4core3num7flt2dec4Part3len17h57240b1f0240c8a2E.exit
%17 = getelementptr inbounds %"option::Option<usize>", %"option::Option<usize>"* %0, i64 0, i32 0
store i64 0, i64* %17, align 8
br label %bb28
bb5: ; preds = %bb3
%18 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %1, i64 0, i32 2, i64 0
%19 = load i64, i64* %18, align 8
%20 = icmp ugt i64 %19, %3
br i1 %20, label %bb4.i.i.i16, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h7d0624bc93b5eea6E.exit17"
bb4.i.i.i16: ; preds = %bb5
tail call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %19, i64 %3), !noalias !681
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h7d0624bc93b5eea6E.exit17": ; preds = %bb5
%21 = icmp eq i64 %19, 0
br i1 %21, label %bb8, label %bb14.preheader
bb14.preheader: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h7d0624bc93b5eea6E.exit17"
call void @llvm.memset.p0i8.i64(i8* nonnull %2, i8 48, i64 %19, i32 1, i1 false)
br label %bb8
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h7d0624bc93b5eea6E.exit19": ; preds = %bb3
%22 = icmp eq i64 %_0.0.i, 0
br i1 %22, label %bb8, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.preheader"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.preheader": ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h7d0624bc93b5eea6E.exit19"
%23 = getelementptr inbounds i8, i8* %2, i64 %_0.0.i
%24 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %1, i64 0, i32 1, i64 0
%25 = load i16, i16* %24, align 2
%xtraiter = and i64 %_0.0.i, 1
%lcmp.mod = icmp eq i64 %xtraiter, 0
br i1 %lcmp.mod, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.prol.loopexit", label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.prol.preheader"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.prol.preheader": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.preheader"
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.prol"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.prol": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.prol.preheader"
%26 = getelementptr inbounds i8, i8* %23, i64 -1
%27 = urem i16 %25, 10
%28 = trunc i16 %27 to i8
%29 = or i8 %28, 48
store i8 %29, i8* %26, align 1
%30 = udiv i16 %25, 10
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.prol.loopexit"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.prol.loopexit": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.preheader", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.prol"
%v.052.unr = phi i16 [ %25, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.preheader" ], [ %30, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.prol" ]
%iter1.sroa.4.051.unr = phi i8* [ %23, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.preheader" ], [ %26, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.prol" ]
%31 = icmp eq i64 %_0.0.i, 1
br i1 %31, label %bb8.loopexit, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.preheader.new"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.preheader.new": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.prol.loopexit"
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit"
bb7: ; preds = %bb3
%32 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %1, i64 0, i32 2, i64 1
%33 = load i64, i64* %32, align 8
%34 = icmp ugt i64 %33, %3
br i1 %34, label %bb4.i.i.i, label %"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$15copy_from_slice17h5b8178fdd174d293E.exit"
bb4.i.i.i: ; preds = %bb7
tail call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %33, i64 %3), !noalias !684
unreachable
"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$15copy_from_slice17h5b8178fdd174d293E.exit": ; preds = %bb7
%35 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %1, i64 0, i32 2
%36 = bitcast [2 x i64]* %35 to i8**
%37 = load i8*, i8** %36, align 8, !nonnull !687
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull %2, i8* nonnull %37, i64 %33, i32 1, i1 false)
br label %bb8
bb8.loopexit.unr-lcssa: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit"
br label %bb8.loopexit
bb8.loopexit: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.prol.loopexit", %bb8.loopexit.unr-lcssa
br label %bb8
bb8: ; preds = %bb8.loopexit, %bb14.preheader, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h7d0624bc93b5eea6E.exit19", %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h7d0624bc93b5eea6E.exit17", %"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$15copy_from_slice17h5b8178fdd174d293E.exit"
%38 = getelementptr inbounds %"option::Option<usize>", %"option::Option<usize>"* %0, i64 0, i32 0
store i64 1, i64* %38, align 8
%39 = getelementptr inbounds %"option::Option<usize>", %"option::Option<usize>"* %0, i64 0, i32 2, i64 0
store i64 %_0.0.i, i64* %39, align 8
br label %bb28
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.preheader.new"
%v.052 = phi i16 [ %v.052.unr, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.preheader.new" ], [ %49, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit" ]
%iter1.sroa.4.051 = phi i8* [ %iter1.sroa.4.051.unr, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit.preheader.new" ], [ %45, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit" ]
%40 = getelementptr inbounds i8, i8* %iter1.sroa.4.051, i64 -1
%41 = urem i16 %v.052, 10
%42 = trunc i16 %41 to i8
%43 = or i8 %42, 48
store i8 %43, i8* %40, align 1
%44 = udiv i16 %v.052, 10
%45 = getelementptr inbounds i8, i8* %iter1.sroa.4.051, i64 -2
%46 = urem i16 %44, 10
%47 = trunc i16 %46 to i8
%48 = or i8 %47, 48
store i8 %48, i8* %45, align 1
%49 = udiv i16 %v.052, 100
%50 = icmp eq i8* %45, %2
br i1 %50, label %bb8.loopexit.unr-lcssa, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf97cb8ff52fc4a87E.exit"
bb28: ; preds = %bb4, %bb8
ret void
}
; Function Attrs: nounwind readonly uwtable
define i64 @_ZN4core3num7flt2dec9Formatted3len17h70279b6d71ac0a04E(%"num::flt2dec::Formatted"* noalias nocapture readonly dereferenceable(32)) unnamed_addr #4 {
start:
%1 = getelementptr inbounds %"num::flt2dec::Formatted", %"num::flt2dec::Formatted"* %0, i64 0, i32 0, i32 1
%2 = load i64, i64* %1, align 8
%3 = getelementptr inbounds %"num::flt2dec::Formatted", %"num::flt2dec::Formatted"* %0, i64 0, i32 2, i32 0
%4 = load %"num::flt2dec::Part"*, %"num::flt2dec::Part"** %3, align 8, !nonnull !687
%5 = getelementptr inbounds %"num::flt2dec::Formatted", %"num::flt2dec::Formatted"* %0, i64 0, i32 2, i32 1
%6 = load i64, i64* %5, align 8
%7 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 %6
%8 = icmp eq i64 %6, 0
br i1 %8, label %bb5, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h1db07692489a3cdaE.exit.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h1db07692489a3cdaE.exit.preheader": ; preds = %start
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h1db07692489a3cdaE.exit"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h1db07692489a3cdaE.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h1db07692489a3cdaE.exit.preheader", %_ZN4core3num7flt2dec4Part3len17h57240b1f0240c8a2E.exit
%len.013 = phi i64 [ %22, %_ZN4core3num7flt2dec4Part3len17h57240b1f0240c8a2E.exit ], [ %2, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h1db07692489a3cdaE.exit.preheader" ]
%iter.sroa.0.012 = phi %"num::flt2dec::Part"* [ %9, %_ZN4core3num7flt2dec4Part3len17h57240b1f0240c8a2E.exit ], [ %4, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h1db07692489a3cdaE.exit.preheader" ]
%9 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %iter.sroa.0.012, i64 1
%10 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %iter.sroa.0.012, i64 0, i32 0
%11 = load i16, i16* %10, align 2, !range !677, !alias.scope !688
%trunc.i = trunc i16 %11 to i2
switch i2 %trunc.i, label %bb3.i [
i2 0, label %bb1.i
i2 1, label %bb2.i
]
bb5.loopexit: ; preds = %_ZN4core3num7flt2dec4Part3len17h57240b1f0240c8a2E.exit
br label %bb5
bb5: ; preds = %bb5.loopexit, %start
%len.0.lcssa = phi i64 [ %2, %start ], [ %22, %bb5.loopexit ]
ret i64 %len.0.lcssa
bb1.i: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h1db07692489a3cdaE.exit"
%12 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %iter.sroa.0.012, i64 0, i32 2, i64 0
%13 = load i64, i64* %12, align 8, !alias.scope !688
br label %_ZN4core3num7flt2dec4Part3len17h57240b1f0240c8a2E.exit
bb2.i: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h1db07692489a3cdaE.exit"
%14 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %iter.sroa.0.012, i64 0, i32 1, i64 0
%15 = load i16, i16* %14, align 2, !alias.scope !688
%16 = icmp ult i16 %15, 1000
br i1 %16, label %bb5.i, label %bb6.i
bb3.i: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h1db07692489a3cdaE.exit"
%17 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %iter.sroa.0.012, i64 0, i32 2, i64 1
%18 = load i64, i64* %17, align 8, !alias.scope !688
br label %_ZN4core3num7flt2dec4Part3len17h57240b1f0240c8a2E.exit
bb5.i: ; preds = %bb2.i
%19 = icmp ult i16 %15, 10
br i1 %19, label %_ZN4core3num7flt2dec4Part3len17h57240b1f0240c8a2E.exit, label %bb8.i
bb6.i: ; preds = %bb2.i
%20 = icmp ult i16 %15, 10000
%..i = select i1 %20, i64 4, i64 5
br label %_ZN4core3num7flt2dec4Part3len17h57240b1f0240c8a2E.exit
bb8.i: ; preds = %bb5.i
%21 = icmp ult i16 %15, 100
%.1.i = select i1 %21, i64 2, i64 3
br label %_ZN4core3num7flt2dec4Part3len17h57240b1f0240c8a2E.exit
_ZN4core3num7flt2dec4Part3len17h57240b1f0240c8a2E.exit: ; preds = %bb1.i, %bb3.i, %bb5.i, %bb6.i, %bb8.i
%_0.0.i = phi i64 [ %18, %bb3.i ], [ %13, %bb1.i ], [ %..i, %bb6.i ], [ 1, %bb5.i ], [ %.1.i, %bb8.i ]
%22 = add i64 %_0.0.i, %len.013
%23 = icmp eq %"num::flt2dec::Part"* %9, %7
br i1 %23, label %bb5.loopexit, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h1db07692489a3cdaE.exit"
}
; Function Attrs: uwtable
define void @_ZN4core3num7flt2dec9Formatted5write17h7533dd792662be08E(%"option::Option<usize>"* noalias nocapture sret dereferenceable(16), %"num::flt2dec::Formatted"* noalias nocapture readonly dereferenceable(32), i8* nonnull, i64) unnamed_addr #2 {
start:
%_37 = alloca %"option::Option<usize>", align 8
%4 = getelementptr inbounds %"num::flt2dec::Formatted", %"num::flt2dec::Formatted"* %1, i64 0, i32 0, i32 1
%5 = load i64, i64* %4, align 8
%6 = icmp ugt i64 %5, %3
br i1 %6, label %bb3, label %"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$15copy_from_slice17h5b8178fdd174d293E.exit"
bb3: ; preds = %start
%7 = getelementptr inbounds %"option::Option<usize>", %"option::Option<usize>"* %0, i64 0, i32 0
store i64 0, i64* %7, align 8
br label %bb5
"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$15copy_from_slice17h5b8178fdd174d293E.exit": ; preds = %start
%8 = getelementptr inbounds %"num::flt2dec::Formatted", %"num::flt2dec::Formatted"* %1, i64 0, i32 0, i32 0
%9 = load i8*, i8** %8, align 8, !nonnull !687
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull %2, i8* nonnull %9, i64 %5, i32 1, i1 false)
%10 = getelementptr inbounds %"num::flt2dec::Formatted", %"num::flt2dec::Formatted"* %1, i64 0, i32 2, i32 0
%11 = load %"num::flt2dec::Part"*, %"num::flt2dec::Part"** %10, align 8, !nonnull !687
%12 = getelementptr inbounds %"num::flt2dec::Formatted", %"num::flt2dec::Formatted"* %1, i64 0, i32 2, i32 1
%13 = load i64, i64* %12, align 8
%14 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %11, i64 %13
%15 = icmp eq i64 %13, 0
br i1 %15, label %bb14, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h1db07692489a3cdaE.exit.lr.ph"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h1db07692489a3cdaE.exit.lr.ph": ; preds = %"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$15copy_from_slice17h5b8178fdd174d293E.exit"
%16 = bitcast %"option::Option<usize>"* %_37 to i8*
%17 = getelementptr inbounds %"option::Option<usize>", %"option::Option<usize>"* %_37, i64 0, i32 0
%18 = getelementptr inbounds %"option::Option<usize>", %"option::Option<usize>"* %_37, i64 0, i32 2, i64 0
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h1db07692489a3cdaE.exit"
bb5: ; preds = %bb3, %bb18, %bb14
ret void
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h1db07692489a3cdaE.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h1db07692489a3cdaE.exit.lr.ph", %bb19
%written.024 = phi i64 [ %5, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h1db07692489a3cdaE.exit.lr.ph" ], [ %28, %bb19 ]
%iter.sroa.0.023 = phi %"num::flt2dec::Part"* [ %11, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h1db07692489a3cdaE.exit.lr.ph" ], [ %19, %bb19 ]
%19 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %iter.sroa.0.023, i64 1
call void @llvm.lifetime.start(i64 16, i8* nonnull %16)
%20 = icmp ugt i64 %written.024, %3
br i1 %20, label %bb1.i.i.i, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h2484e2a09a5e3f8dE.exit"
bb14.loopexit: ; preds = %bb19
br label %bb14
bb14: ; preds = %bb14.loopexit, %"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$15copy_from_slice17h5b8178fdd174d293E.exit"
%written.0.lcssa = phi i64 [ %5, %"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$15copy_from_slice17h5b8178fdd174d293E.exit" ], [ %28, %bb14.loopexit ]
%21 = getelementptr inbounds %"option::Option<usize>", %"option::Option<usize>"* %0, i64 0, i32 0
store i64 1, i64* %21, align 8
%22 = getelementptr inbounds %"option::Option<usize>", %"option::Option<usize>"* %0, i64 0, i32 2, i64 0
store i64 %written.0.lcssa, i64* %22, align 8
br label %bb5
bb1.i.i.i: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h1db07692489a3cdaE.exit"
tail call void @_ZN4core5slice22slice_index_order_fail17h35681c1841226ae9E(i64 %written.024, i64 %3), !noalias !691
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h2484e2a09a5e3f8dE.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h1db07692489a3cdaE.exit"
%23 = getelementptr inbounds i8, i8* %2, i64 %written.024
%24 = sub i64 %3, %written.024
call void @_ZN4core3num7flt2dec4Part5write17hce22ab25bf0bb5e3E(%"option::Option<usize>"* noalias nocapture nonnull sret dereferenceable(16) %_37, %"num::flt2dec::Part"* noalias readonly dereferenceable(24) %iter.sroa.0.023, i8* nonnull %23, i64 %24)
%25 = load i64, i64* %17, align 8, !range !621
%cond1 = icmp eq i64 %25, 0
br i1 %cond1, label %bb18, label %bb19
bb18: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h2484e2a09a5e3f8dE.exit"
%26 = getelementptr inbounds %"option::Option<usize>", %"option::Option<usize>"* %0, i64 0, i32 0
store i64 0, i64* %26, align 8
call void @llvm.lifetime.end(i64 16, i8* nonnull %16)
br label %bb5
bb19: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h2484e2a09a5e3f8dE.exit"
%27 = load i64, i64* %18, align 8
%28 = add i64 %27, %written.024
call void @llvm.lifetime.end(i64 16, i8* nonnull %16)
%29 = icmp eq %"num::flt2dec::Part"* %19, %14
br i1 %29, label %bb14.loopexit, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h1db07692489a3cdaE.exit"
}
; Function Attrs: uwtable
define { %"num::flt2dec::Part"*, i64 } @_ZN4core3num7flt2dec17digits_to_dec_str17h8097aeced362d901E(i8* noalias nonnull readonly, i64, i16, i64, %"num::flt2dec::Part"* nonnull, i64) unnamed_addr #2 {
start:
%6 = icmp eq i64 %1, 0
br i1 %6, label %bb2, label %bb4
bb2: ; preds = %start
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec17digits_to_dec_str14_MSG_FILE_LINE17he46ea409bfe52b3aE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb4: ; preds = %start
%7 = load i8, i8* %0, align 1
%8 = icmp ult i8 %7, 49
br i1 %8, label %bb5, label %bb6
bb5: ; preds = %bb4
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec17digits_to_dec_str14_MSG_FILE_LINE17h969cf0460267ed13E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb6: ; preds = %bb4
%9 = icmp ult i64 %5, 4
br i1 %9, label %bb8, label %bb9
bb8: ; preds = %bb6
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec17digits_to_dec_str14_MSG_FILE_LINE17h6e3030c15e33ee38E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb9: ; preds = %bb6
%10 = icmp slt i16 %2, 1
%11 = sext i16 %2 to i64
br i1 %10, label %bb14, label %bb11
bb11: ; preds = %bb9
%12 = icmp ult i64 %11, %1
%13 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 0, i32 0
store i16 2, i16* %13, align 2
%14 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 0, i32 2
%15 = bitcast [2 x i64]* %14 to i8**
store i8* %0, i8** %15, align 8
%16 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 0, i32 2, i64 1
br i1 %12, label %bb35, label %bb46
bb14: ; preds = %bb9
%17 = sub nsw i64 0, %11
%18 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 0, i32 0
store i16 2, i16* %18, align 2
%19 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 0, i32 2
%20 = bitcast [2 x i64]* %19 to i8**
store i8* getelementptr inbounds ([2 x i8], [2 x i8]* @byte_str.u, i64 0, i64 0), i8** %20, align 8
%21 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 0, i32 2, i64 1
store i64 2, i64* %21, align 8
%22 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 1, i32 0
store i16 0, i16* %22, align 2
%23 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 1, i32 2, i64 0
store i64 %17, i64* %23, align 8
%24 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 2, i32 0
store i16 2, i16* %24, align 2
%25 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 2, i32 2
%26 = bitcast [2 x i64]* %25 to i8**
store i8* %0, i8** %26, align 8
%27 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 2, i32 2, i64 1
store i64 %1, i64* %27, align 8
%28 = icmp ugt i64 %3, %1
br i1 %28, label %bb17, label %bb55
bb17: ; preds = %bb14
%29 = sub i64 %3, %1
%30 = icmp ugt i64 %29, %17
br i1 %30, label %bb24, label %bb55
bb24: ; preds = %bb17
%31 = add i64 %29, %11
%32 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 3, i32 0
store i16 0, i16* %32, align 2
%33 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 3, i32 2, i64 0
store i64 %31, i64* %33, align 8
br label %bb55
bb35: ; preds = %bb11
store i64 %11, i64* %16, align 8
%34 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 1, i32 0
store i16 2, i16* %34, align 2
%35 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 1, i32 2
%36 = bitcast [2 x i64]* %35 to i8**
store i8* getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.A, i64 0, i64 0), i8** %36, align 8
%37 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 1, i32 2, i64 1
store i64 1, i64* %37, align 8
%38 = getelementptr inbounds i8, i8* %0, i64 %11
%39 = sub i64 %1, %11
%40 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 2, i32 0
store i16 2, i16* %40, align 2
%41 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 2, i32 2
%42 = bitcast [2 x i64]* %41 to i8**
store i8* %38, i8** %42, align 8
%43 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 2, i32 2, i64 1
store i64 %39, i64* %43, align 8
%44 = icmp ult i64 %39, %3
br i1 %44, label %bb40, label %bb55
bb40: ; preds = %bb35
%45 = sub i64 %11, %1
%46 = add i64 %45, %3
%47 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 3, i32 0
store i16 0, i16* %47, align 2
%48 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 3, i32 2, i64 0
store i64 %46, i64* %48, align 8
br label %bb55
bb46: ; preds = %bb11
store i64 %1, i64* %16, align 8
%49 = sub i64 %11, %1
%50 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 1, i32 0
store i16 0, i16* %50, align 2
%51 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 1, i32 2, i64 0
store i64 %49, i64* %51, align 8
%52 = icmp eq i64 %3, 0
br i1 %52, label %bb55, label %bb50
bb50: ; preds = %bb46
%53 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 2, i32 0
store i16 2, i16* %53, align 2
%54 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 2, i32 2
%55 = bitcast [2 x i64]* %54 to i8**
store i8* getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.A, i64 0, i64 0), i8** %55, align 8
%56 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 2, i32 2, i64 1
store i64 1, i64* %56, align 8
%57 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 3, i32 0
store i16 0, i16* %57, align 2
%58 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i64 3, i32 2, i64 0
store i64 %3, i64* %58, align 8
br label %bb55
bb55: ; preds = %bb24, %bb17, %bb14, %bb46, %bb35, %bb40, %bb50
%.sink = phi i64 [ 4, %bb40 ], [ 4, %bb50 ], [ 3, %bb35 ], [ 2, %bb46 ], [ 4, %bb24 ], [ 3, %bb17 ], [ 3, %bb14 ]
%59 = icmp ugt i64 %.sink, %5
br i1 %59, label %bb4.i.i.i28, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h335ea9d42b409f3fE.exit"
bb4.i.i.i28: ; preds = %bb55
tail call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %.sink, i64 %5), !noalias !694
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h335ea9d42b409f3fE.exit": ; preds = %bb55
%60 = insertvalue { %"num::flt2dec::Part"*, i64 } undef, %"num::flt2dec::Part"* %4, 0
%61 = insertvalue { %"num::flt2dec::Part"*, i64 } %60, i64 %.sink, 1
ret { %"num::flt2dec::Part"*, i64 } %61
}
; Function Attrs: uwtable
define { %"num::flt2dec::Part"*, i64 } @_ZN4core3num7flt2dec17digits_to_exp_str17h545598f16225e58bE(i8* noalias nonnull readonly, i64, i16, i64, i1 zeroext, %"num::flt2dec::Part"* nonnull, i64) unnamed_addr #2 {
start:
%7 = icmp eq i64 %1, 0
br i1 %7, label %bb2, label %bb4
bb2: ; preds = %start
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec17digits_to_exp_str14_MSG_FILE_LINE17hf370fda7da123c2fE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb4: ; preds = %start
%8 = load i8, i8* %0, align 1
%9 = icmp ult i8 %8, 49
br i1 %9, label %bb5, label %bb6
bb5: ; preds = %bb4
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec17digits_to_exp_str14_MSG_FILE_LINE17hfb09a232cc400edbE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb6: ; preds = %bb4
%10 = icmp ult i64 %6, 6
br i1 %10, label %bb8, label %bb11
bb8: ; preds = %bb6
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7flt2dec17digits_to_exp_str14_MSG_FILE_LINE17hc79c2089b42598faE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb11: ; preds = %bb6
%11 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i64 0, i32 0
store i16 2, i16* %11, align 2
%12 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i64 0, i32 2
%13 = bitcast [2 x i64]* %12 to i8**
store i8* %0, i8** %13, align 8
%14 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i64 0, i32 2, i64 1
store i64 1, i64* %14, align 8
%15 = or i64 %3, %1
%16 = icmp ugt i64 %15, 1
br i1 %16, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hbcf91376e97a9125E.exit", label %bb28
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hbcf91376e97a9125E.exit": ; preds = %bb11
%17 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i64 1, i32 0
store i16 2, i16* %17, align 2
%18 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i64 1, i32 2
%19 = bitcast [2 x i64]* %18 to i8**
store i8* getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.A, i64 0, i64 0), i8** %19, align 8
%20 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i64 1, i32 2, i64 1
store i64 1, i64* %20, align 8
%21 = getelementptr inbounds i8, i8* %0, i64 1
%22 = add i64 %1, -1
%23 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i64 2, i32 0
store i16 2, i16* %23, align 2
%24 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i64 2, i32 2
%25 = bitcast [2 x i64]* %24 to i8**
store i8* %21, i8** %25, align 8
%26 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i64 2, i32 2, i64 1
store i64 %22, i64* %26, align 8
%27 = icmp ugt i64 %3, %1
br i1 %27, label %bb26, label %bb28
bb26: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hbcf91376e97a9125E.exit"
%28 = sub i64 %3, %1
%29 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i64 3, i32 0
store i16 0, i16* %29, align 2
%30 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i64 3, i32 2, i64 0
store i64 %28, i64* %30, align 8
br label %bb28
bb28: ; preds = %bb26, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hbcf91376e97a9125E.exit", %bb11
%n.0 = phi i64 [ 4, %bb26 ], [ 3, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hbcf91376e97a9125E.exit" ], [ 1, %bb11 ]
%31 = add i16 %2, -1
%32 = icmp slt i16 %2, 1
%33 = icmp ult i64 %n.0, %6
br i1 %32, label %bb29, label %bb30
bb29: ; preds = %bb28
br i1 %33, label %bb34, label %panic4, !prof !5
bb30: ; preds = %bb28
br i1 %33, label %bb39, label %panic5, !prof !5
bb34: ; preds = %bb29
%.sink = select i1 %4, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @byte_str.M, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @byte_str.N, i64 0, i64 0)
%34 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i64 %n.0, i32 0
store i16 2, i16* %34, align 2
%35 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i64 %n.0, i32 2
%36 = bitcast [2 x i64]* %35 to i8**
store i8* %.sink, i8** %36, align 8
%37 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i64 %n.0, i32 2, i64 1
store i64 2, i64* %37, align 8
%38 = sub i16 1, %2
br label %bb41
bb39: ; preds = %bb30
%.sink7 = select i1 %4, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.P, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.Q, i64 0, i64 0)
%39 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i64 %n.0, i32 0
store i16 2, i16* %39, align 2
%40 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i64 %n.0, i32 2
%41 = bitcast [2 x i64]* %40 to i8**
store i8* %.sink7, i8** %41, align 8
%42 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i64 %n.0, i32 2, i64 1
store i64 1, i64* %42, align 8
br label %bb41
bb41: ; preds = %bb39, %bb34
%.sink8.in = phi i16 [ %31, %bb39 ], [ %38, %bb34 ]
%43 = add nuw nsw i64 %n.0, 1
%44 = icmp ult i64 %43, %6
br i1 %44, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hbcf91376e97a9125E.exit36", label %panic.i.i35, !prof !5
panic.i.i35: ; preds = %bb41
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.2e to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %43, i64 %6)
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hbcf91376e97a9125E.exit36": ; preds = %bb41
%45 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i64 %43, i32 0
store i16 1, i16* %45, align 2
%46 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i64 %43, i32 1, i64 0
store i16 %.sink8.in, i16* %46, align 2
%47 = add nuw nsw i64 %n.0, 2
%48 = icmp ugt i64 %47, %6
br i1 %48, label %bb4.i.i.i37, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h335ea9d42b409f3fE.exit"
bb4.i.i.i37: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hbcf91376e97a9125E.exit36"
tail call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %47, i64 %6), !noalias !697
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h335ea9d42b409f3fE.exit": ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hbcf91376e97a9125E.exit36"
%49 = insertvalue { %"num::flt2dec::Part"*, i64 } undef, %"num::flt2dec::Part"* %5, 0
%50 = insertvalue { %"num::flt2dec::Part"*, i64 } %49, i64 %47, 1
ret { %"num::flt2dec::Part"*, i64 } %50
panic4: ; preds = %bb29
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.O to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %n.0, i64 %6)
unreachable
panic5: ; preds = %bb30
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.R to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %n.0, i64 %6)
unreachable
}
; Function Attrs: norecurse nounwind readonly uwtable
define { i8*, i64 } @_ZN4core3num7flt2dec14determine_sign17hdaa04df4a2ef9dc7E(i8, %"num::flt2dec::decoder::FullDecoded"* noalias nocapture readonly dereferenceable(40), i1 zeroext) unnamed_addr #3 {
start:
%_9.sroa.0.0..sroa_idx = getelementptr inbounds %"num::flt2dec::decoder::FullDecoded", %"num::flt2dec::decoder::FullDecoded"* %1, i64 0, i32 0
%_9.sroa.0.0.copyload = load i64, i64* %_9.sroa.0.0..sroa_idx, align 8
switch i64 %_9.sroa.0.0.copyload, label %bb8 [
i64 0, label %bb10
i64 2, label %bb9
]
bb3: ; preds = %bb9
%.sink2 = select i1 %2, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.S, i64 0, i64 0), i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i64 0, i64 0)
br label %bb10
bb4: ; preds = %bb9
br label %bb10
bb5: ; preds = %bb9
%.sink4 = select i1 %2, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.S, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.T, i64 0, i64 0)
br label %bb10
bb6: ; preds = %bb8
%.sink7 = select i1 %2, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.S, i64 0, i64 0), i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i64 0, i64 0)
br label %bb10
bb7: ; preds = %bb8
%.sink9 = select i1 %2, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.S, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.T, i64 0, i64 0)
br label %bb10
bb8: ; preds = %start
%switch = icmp ult i8 %0, 2
br i1 %switch, label %bb6, label %bb7
bb9: ; preds = %start
switch i8 %0, label %bb5 [
i8 0, label %bb10
i8 1, label %bb3
i8 2, label %bb4
]
bb10: ; preds = %bb9, %start, %bb3, %bb4, %bb5, %bb6, %bb7
%_7.sroa.0.0 = phi i8* [ %.sink7, %bb6 ], [ %.sink9, %bb7 ], [ %.sink4, %bb5 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.T, i64 0, i64 0), %bb4 ], [ %.sink2, %bb3 ], [ getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i64 0, i64 0), %start ], [ getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i64 0, i64 0), %bb9 ]
%_7.sroa.10.0.shrunk = phi i1 [ %2, %bb6 ], [ true, %bb7 ], [ true, %bb5 ], [ true, %bb4 ], [ %2, %bb3 ], [ false, %start ], [ false, %bb9 ]
%_7.sroa.10.0 = zext i1 %_7.sroa.10.0.shrunk to i64
%3 = insertvalue { i8*, i64 } undef, i8* %_7.sroa.0.0, 0
%4 = insertvalue { i8*, i64 } %3, i64 %_7.sroa.10.0, 1
ret { i8*, i64 } %4
}
; Function Attrs: norecurse nounwind readnone uwtable
define i64 @_ZN4core3num7flt2dec20estimate_max_buf_len17h53e8e639a5bfb178E(i16) unnamed_addr #0 {
start:
%1 = icmp slt i16 %0, 0
%. = select i1 %1, i64 -12, i64 5
%2 = sext i16 %0 to i64
%3 = shl nsw i64 %2, 32
%sext = mul nsw i64 %3, %.
%4 = ashr exact i64 %sext, 32
%5 = lshr i64 %4, 4
%6 = add nuw nsw i64 %5, 21
ret i64 %6
}
; Function Attrs: uwtable
define void @_ZN4core3num7dec2flt9algorithm12power_of_ten17hcd60d8bc2a1a7e90E(%"num::diy_float::Fp"* noalias nocapture sret dereferenceable(16), i16) unnamed_addr #2 {
start:
%2 = icmp slt i16 %1, -305
br i1 %2, label %bb1, label %bb2
bb1: ; preds = %start
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7dec2flt9algorithm12power_of_ten14_MSG_FILE_LINE17h3b7d76c72389c0b3E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb2: ; preds = %start
%3 = add i16 %1, 305
%4 = sext i16 %3 to i64
%5 = icmp ult i16 %3, 611
br i1 %5, label %bb4, label %panic, !prof !5
bb4: ; preds = %bb2
%6 = getelementptr inbounds { [611 x i64], [611 x i16], [2 x i8] }, { [611 x i64], [611 x i16], [2 x i8] }* @const.1o, i64 0, i32 0, i64 %4
%7 = load i64, i64* %6, align 8
%8 = getelementptr inbounds { [611 x i64], [611 x i16], [2 x i8] }, { [611 x i64], [611 x i16], [2 x i8] }* @const.1o, i64 0, i32 1, i64 %4
%9 = load i16, i16* %8, align 2
%10 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %0, i64 0, i32 0
store i64 %7, i64* %10, align 8
%11 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %0, i64 0, i32 2
store i16 %9, i16* %11, align 8
ret void
panic: ; preds = %bb2
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.1q to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %4, i64 611)
unreachable
}
; Function Attrs: uwtable
define void @_ZN4core3num7dec2flt9algorithm10make_ratio17hc4404c1273a3b09bE(%"num::bignum::Big32x40"* dereferenceable(168), %"num::bignum::Big32x40"* dereferenceable(168), i16, i16) unnamed_addr #2 personality i32 (...)* @rust_eh_personality {
start:
%4 = icmp slt i16 %2, 0
%5 = sub i16 0, %2
%_0.0.i = select i1 %4, i16 %5, i16 %2
%6 = sext i16 %_0.0.i to i64
%7 = icmp slt i16 %3, 0
%8 = sub i16 0, %3
%_0.0.i3 = select i1 %7, i16 %8, i16 %3
%9 = sext i16 %_0.0.i3 to i64
%10 = icmp sgt i16 %2, -1
%11 = icmp sgt i16 %3, -1
br i1 %10, label %bb3, label %bb4
bb3: ; preds = %start
br i1 %11, label %bb5, label %bb6
bb4: ; preds = %start
br i1 %11, label %bb14, label %bb15
bb5: ; preds = %bb3
%12 = icmp ule i64 %6, %9
%_0.0.sroa.speculated.i.i = select i1 %12, i64 %6, i64 %9
%13 = tail call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow517h32a27e26e41b74e8E(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %0, i64 %6)
%14 = sub nsw i64 %6, %_0.0.sroa.speculated.i.i
%15 = tail call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h1cf2bd21d8443b3bE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %13, i64 %14)
%16 = sub nsw i64 %9, %_0.0.sroa.speculated.i.i
%17 = tail call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h1cf2bd21d8443b3bE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %1, i64 %16)
br label %bb23
bb6: ; preds = %bb3
%18 = tail call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow517h32a27e26e41b74e8E(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %0, i64 %6)
%19 = add nsw i64 %9, %6
%20 = tail call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h1cf2bd21d8443b3bE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %18, i64 %19)
br label %bb23
bb14: ; preds = %bb4
%21 = tail call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow517h32a27e26e41b74e8E(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %1, i64 %6)
%22 = add nsw i64 %9, %6
%23 = tail call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h1cf2bd21d8443b3bE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %21, i64 %22)
br label %bb23
bb15: ; preds = %bb4
%24 = icmp ule i64 %6, %9
%_0.0.sroa.speculated.i.i4 = select i1 %24, i64 %6, i64 %9
%25 = sub nsw i64 %9, %_0.0.sroa.speculated.i.i4
%26 = tail call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h1cf2bd21d8443b3bE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %0, i64 %25)
%27 = tail call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow517h32a27e26e41b74e8E(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %1, i64 %6)
%28 = sub nsw i64 %6, %_0.0.sroa.speculated.i.i4
%29 = tail call dereferenceable(168) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h1cf2bd21d8443b3bE(%"num::bignum::Big32x40"* nonnull dereferenceable(168) %27, i64 %28)
br label %bb23
bb23: ; preds = %bb14, %bb15, %bb5, %bb6
ret void
}
; Function Attrs: uwtable
define i8 @_ZN4core3num7dec2flt3num21compare_with_half_ulp17h691ef3013c3be578E(%"num::bignum::Big32x40"* noalias nocapture readonly dereferenceable(168), i64) unnamed_addr #2 personality i32 (...)* @rust_eh_personality {
start:
%2 = icmp eq i64 %1, 0
br i1 %2, label %bb3, label %bb2
bb2: ; preds = %start
%3 = add i64 %1, -1
%4 = lshr i64 %3, 5
%5 = icmp ult i64 %3, 1280
br i1 %5, label %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit, label %panic2.i, !prof !5
panic2.i: ; preds = %bb2
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4E to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %4, i64 40), !noalias !700
unreachable
_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit: ; preds = %bb2
%6 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i64 0, i32 2, i64 %4
%7 = load i32, i32* %6, align 4, !alias.scope !700
%8 = trunc i64 %3 to i32
%9 = and i32 %8, 31
%10 = shl i32 1, %9
%11 = and i32 %7, %10
%12 = icmp eq i32 %11, 0
br i1 %12, label %bb3, label %bb10.preheader
bb10.preheader: ; preds = %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit
br label %bb10
bb3.loopexit: ; preds = %bb10, %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit4
%_0.0.ph = phi i8 [ 1, %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit4 ], [ 0, %bb10 ]
br label %bb3
bb3: ; preds = %bb3.loopexit, %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit, %start
%_0.0 = phi i8 [ -1, %start ], [ -1, %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit ], [ %_0.0.ph, %bb3.loopexit ]
ret i8 %_0.0
bb10: ; preds = %bb10.preheader, %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit4
%iter.sroa.0.0 = phi i64 [ %16, %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit4 ], [ 0, %bb10.preheader ]
%13 = icmp ult i64 %iter.sroa.0.0, %3
br i1 %13, label %bb13, label %bb3.loopexit
bb13: ; preds = %bb10
%14 = lshr i64 %iter.sroa.0.0, 5
%15 = icmp ult i64 %iter.sroa.0.0, 1280
br i1 %15, label %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit4, label %panic2.i3, !prof !5
panic2.i3: ; preds = %bb13
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4E to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %14, i64 40), !noalias !703
unreachable
_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit4: ; preds = %bb13
%16 = add nuw nsw i64 %iter.sroa.0.0, 1
%17 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i64 0, i32 2, i64 %14
%18 = load i32, i32* %17, align 4, !alias.scope !703
%19 = trunc i64 %iter.sroa.0.0 to i32
%20 = and i32 %19, 31
%21 = shl i32 1, %20
%22 = and i32 %18, %21
%23 = icmp eq i32 %22, 0
br i1 %23, label %bb10, label %bb3.loopexit
}
; Function Attrs: uwtable
define void @_ZN4core3num7dec2flt3num13digits_to_big17he7528993a8be4858E(%"num::bignum::Big32x40"* noalias nocapture sret dereferenceable(168), i8* noalias nonnull readonly, i64, i8* noalias nonnull readonly, i64) unnamed_addr #2 personality i32 (...)* @rust_eh_personality {
start:
%iter = alloca %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>", align 8
%f = alloca %"num::bignum::Big32x40", align 8
%5 = bitcast %"num::bignum::Big32x40"* %f to i8*
call void @llvm.lifetime.start(i64 168, i8* nonnull %5)
%6 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %f, i64 0, i32 0
store i64 1, i64* %6, align 8, !alias.scope !706
%base.i.sroa.0.0..sroa_idx = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %f, i64 0, i32 2, i64 0
%7 = bitcast i32* %base.i.sroa.0.0..sroa_idx to i8*
call void @llvm.memset.p0i8.i64(i8* %7, i8 0, i64 160, i32 8, i1 false)
%8 = getelementptr inbounds i8, i8* %1, i64 %2
%9 = getelementptr inbounds i8, i8* %3, i64 %4
%10 = bitcast %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>"* %iter to i8*
call void @llvm.lifetime.start(i64 40, i8* nonnull %10)
%_8.sroa.0.sroa.0.0._8.sroa.0.0..sroa_cast.sroa_idx = getelementptr inbounds %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>", %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>"* %iter, i64 0, i32 0, i32 0
store i8* %1, i8** %_8.sroa.0.sroa.0.0._8.sroa.0.0..sroa_cast.sroa_idx, align 8
%_8.sroa.0.sroa.4.0._8.sroa.0.0..sroa_cast.sroa_idx49 = getelementptr inbounds %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>", %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>"* %iter, i64 0, i32 0, i32 2
store i8* %8, i8** %_8.sroa.0.sroa.4.0._8.sroa.0.0..sroa_cast.sroa_idx49, align 8
%_8.sroa.4.0..sroa_idx30 = getelementptr inbounds %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>", %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>"* %iter, i64 0, i32 2, i32 0
store i8* %3, i8** %_8.sroa.4.0..sroa_idx30, align 8
%_8.sroa.5.0..sroa_idx32 = getelementptr inbounds %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>", %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>"* %iter, i64 0, i32 2, i32 2
store i8* %9, i8** %_8.sroa.5.0..sroa_idx32, align 8
%_8.sroa.6.0..sroa_idx = getelementptr inbounds %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>", %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>"* %iter, i64 0, i32 4
store i8 0, i8* %_8.sroa.6.0..sroa_idx, align 8
%11 = getelementptr inbounds %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>", %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>"* %iter, i64 0, i32 2
%12 = getelementptr inbounds %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>", %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>"* %iter, i64 0, i32 0
br label %bb5
bb5: ; preds = %bb5.backedge, %start
%13 = phi i64 [ %79, %bb5.backedge ], [ 1, %start ]
%14 = phi i8 [ %.pre, %bb5.backedge ], [ 0, %start ]
%trunc.i = trunc i8 %14 to i2
switch i2 %trunc.i, label %bb3.i [
i2 0, label %bb1.i
i2 1, label %bb4.i
]
bb1.i: ; preds = %bb5
%15 = load i8*, i8** %_8.sroa.0.sroa.0.0._8.sroa.0.0..sroa_cast.sroa_idx, align 8, !nonnull !687
%16 = load i8*, i8** %_8.sroa.0.sroa.4.0._8.sroa.0.0..sroa_cast.sroa_idx49, align 8, !nonnull !687
%17 = icmp eq i8* %15, %16
br i1 %17, label %bb7.i9, label %bb8
bb3.i: ; preds = %bb5
br label %bb4.i
bb4.i: ; preds = %bb5, %bb3.i
%.sink.i = phi %"slice::Iter<u8>"* [ %11, %bb3.i ], [ %12, %bb5 ]
%18 = getelementptr inbounds %"slice::Iter<u8>", %"slice::Iter<u8>"* %.sink.i, i64 0, i32 0
%19 = load i8*, i8** %18, align 8, !nonnull !687
%20 = getelementptr inbounds %"slice::Iter<u8>", %"slice::Iter<u8>"* %.sink.i, i64 0, i32 2
%21 = load i8*, i8** %20, align 8, !nonnull !687
%22 = icmp eq i8* %19, %21
br i1 %22, label %bb7, label %bb8
bb7.i9: ; preds = %bb1.i
store i8 2, i8* %_8.sroa.6.0..sroa_idx, align 8
%23 = load i8*, i8** %_8.sroa.4.0..sroa_idx30, align 8, !nonnull !687
%24 = load i8*, i8** %_8.sroa.5.0..sroa_idx32, align 8, !nonnull !687
%25 = icmp eq i8* %23, %24
br i1 %25, label %bb7, label %bb8
bb7: ; preds = %bb4.i, %bb7.i9
call void @llvm.lifetime.end(i64 40, i8* nonnull %10)
%26 = bitcast %"num::bignum::Big32x40"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull %26, i8* nonnull %5, i64 168, i32 8, i1 false)
call void @llvm.lifetime.end(i64 168, i8* nonnull %5)
ret void
bb8: ; preds = %bb4.i, %bb1.i, %bb7.i9
%.sink17.i.sink = phi i8* [ %23, %bb7.i9 ], [ %15, %bb1.i ], [ %19, %bb4.i ]
%.sink16.i.sink = phi i8** [ %_8.sroa.4.0..sroa_idx30, %bb7.i9 ], [ %_8.sroa.0.sroa.0.0._8.sroa.0.0..sroa_cast.sroa_idx, %bb1.i ], [ %18, %bb4.i ]
%27 = getelementptr inbounds i8, i8* %.sink17.i.sink, i64 1
store i8* %27, i8** %.sink16.i.sink, align 8
%28 = load i8, i8* %.sink17.i.sink, align 1
%29 = add i8 %28, -48
%30 = zext i8 %29 to i32
%31 = icmp ugt i64 %13, 40
br i1 %31, label %bb4.i.i.i.i, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i"
bb4.i.i.i.i: ; preds = %bb8
call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %13, i64 40), !noalias !709
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i": ; preds = %bb8
%32 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %f, i64 0, i32 2, i64 %13
%33 = icmp eq i64 %13, 0
br i1 %33, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit, label %bb6.i6.preheader
bb6.i6.preheader: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i"
%34 = shl i64 %13, 2
%35 = add i64 %34, -4
%36 = lshr exact i64 %35, 2
%37 = add nuw nsw i64 %36, 1
%xtraiter = and i64 %37, 3
%lcmp.mod = icmp eq i64 %xtraiter, 0
br i1 %lcmp.mod, label %bb6.i6.prol.loopexit, label %bb6.i6.prol.preheader
bb6.i6.prol.preheader: ; preds = %bb6.i6.preheader
br label %bb6.i6.prol
bb6.i6.prol: ; preds = %bb6.i6.prol, %bb6.i6.prol.preheader
%carry.020.i.prol = phi i64 [ %43, %bb6.i6.prol ], [ 0, %bb6.i6.prol.preheader ]
%iter.sroa.0.019.i.prol = phi i32* [ %38, %bb6.i6.prol ], [ %base.i.sroa.0.0..sroa_idx, %bb6.i6.prol.preheader ]
%prol.iter = phi i64 [ %prol.iter.sub, %bb6.i6.prol ], [ %xtraiter, %bb6.i6.prol.preheader ]
%38 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i.prol, i64 1
%39 = load i32, i32* %iter.sroa.0.019.i.prol, align 4
%40 = zext i32 %39 to i64
%41 = mul nuw nsw i64 %40, 10
%42 = add nuw nsw i64 %41, %carry.020.i.prol
%43 = lshr i64 %42, 32
%abi_cast.sroa.4.0.extract.trunc.i.prol = trunc i64 %42 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i.prol, i32* %iter.sroa.0.019.i.prol, align 4
%prol.iter.sub = add i64 %prol.iter, -1
%prol.iter.cmp = icmp eq i64 %prol.iter.sub, 0
br i1 %prol.iter.cmp, label %bb6.i6.prol.loopexit.unr-lcssa, label %bb6.i6.prol, !llvm.loop !712
bb6.i6.prol.loopexit.unr-lcssa: ; preds = %bb6.i6.prol
br label %bb6.i6.prol.loopexit
bb6.i6.prol.loopexit: ; preds = %bb6.i6.preheader, %bb6.i6.prol.loopexit.unr-lcssa
%.lcssa.unr = phi i64 [ undef, %bb6.i6.preheader ], [ %43, %bb6.i6.prol.loopexit.unr-lcssa ]
%carry.020.i.unr = phi i64 [ 0, %bb6.i6.preheader ], [ %43, %bb6.i6.prol.loopexit.unr-lcssa ]
%iter.sroa.0.019.i.unr = phi i32* [ %base.i.sroa.0.0..sroa_idx, %bb6.i6.preheader ], [ %38, %bb6.i6.prol.loopexit.unr-lcssa ]
%44 = icmp ult i64 %35, 12
br i1 %44, label %bb5.i5, label %bb6.i6.preheader.new
bb6.i6.preheader.new: ; preds = %bb6.i6.prol.loopexit
br label %bb6.i6
bb5.i5.unr-lcssa: ; preds = %bb6.i6
br label %bb5.i5
bb5.i5: ; preds = %bb6.i6.prol.loopexit, %bb5.i5.unr-lcssa
%.lcssa = phi i64 [ %.lcssa.unr, %bb6.i6.prol.loopexit ], [ %69, %bb5.i5.unr-lcssa ]
%abi_cast.sroa.0.0.extract.trunc.i = trunc i64 %.lcssa to i32
%45 = icmp eq i32 %abi_cast.sroa.0.0.extract.trunc.i, 0
br i1 %45, label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit, label %bb8.i
bb6.i6: ; preds = %bb6.i6, %bb6.i6.preheader.new
%carry.020.i = phi i64 [ %carry.020.i.unr, %bb6.i6.preheader.new ], [ %69, %bb6.i6 ]
%iter.sroa.0.019.i = phi i32* [ %iter.sroa.0.019.i.unr, %bb6.i6.preheader.new ], [ %64, %bb6.i6 ]
%46 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i, i64 1
%47 = load i32, i32* %iter.sroa.0.019.i, align 4
%48 = zext i32 %47 to i64
%49 = mul nuw nsw i64 %48, 10
%50 = add nuw nsw i64 %49, %carry.020.i
%51 = lshr i64 %50, 32
%abi_cast.sroa.4.0.extract.trunc.i = trunc i64 %50 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i, i32* %iter.sroa.0.019.i, align 4
%52 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i, i64 2
%53 = load i32, i32* %46, align 4
%54 = zext i32 %53 to i64
%55 = mul nuw nsw i64 %54, 10
%56 = add nuw nsw i64 %55, %51
%57 = lshr i64 %56, 32
%abi_cast.sroa.4.0.extract.trunc.i.1 = trunc i64 %56 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i.1, i32* %46, align 4
%58 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i, i64 3
%59 = load i32, i32* %52, align 4
%60 = zext i32 %59 to i64
%61 = mul nuw nsw i64 %60, 10
%62 = add nuw nsw i64 %61, %57
%63 = lshr i64 %62, 32
%abi_cast.sroa.4.0.extract.trunc.i.2 = trunc i64 %62 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i.2, i32* %52, align 4
%64 = getelementptr inbounds i32, i32* %iter.sroa.0.019.i, i64 4
%65 = load i32, i32* %58, align 4
%66 = zext i32 %65 to i64
%67 = mul nuw nsw i64 %66, 10
%68 = add nuw nsw i64 %67, %63
%69 = lshr i64 %68, 32
%abi_cast.sroa.4.0.extract.trunc.i.3 = trunc i64 %68 to i32
store i32 %abi_cast.sroa.4.0.extract.trunc.i.3, i32* %58, align 4
%70 = icmp eq i32* %64, %32
br i1 %70, label %bb5.i5.unr-lcssa, label %bb6.i6
bb8.i: ; preds = %bb5.i5
%71 = icmp ult i64 %13, 40
br i1 %71, label %bb10.i7, label %panic.i8, !prof !5
bb10.i7: ; preds = %bb8.i
store i32 %abi_cast.sroa.0.0.extract.trunc.i, i32* %32, align 4
%72 = add i64 %13, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit
panic.i8: ; preds = %bb8.i
call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %13, i64 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i", %bb5.i5, %bb10.i7
%73 = phi i64 [ %72, %bb10.i7 ], [ %13, %bb5.i5 ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hb8c600a142b5ddf4E.exit.i" ]
store i64 %73, i64* %6, align 8
%74 = load i32, i32* %base.i.sroa.0.0..sroa_idx, align 8
%75 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %74, i32 %30) #16
%76 = extractvalue { i32, i1 } %75, 0
%77 = extractvalue { i32, i1 } %75, 1
store i32 %76, i32* %base.i.sroa.0.0..sroa_idx, align 8
br i1 %77, label %bb6.i.preheader, label %bb5.i
bb6.i.preheader: ; preds = %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit
br label %bb6.i
bb5.i.loopexit: ; preds = %bb7.i
br label %bb5.i
bb5.i: ; preds = %bb5.i.loopexit, %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit
%i.0.lcssa.i = phi i64 [ 1, %_ZN4core3num6bignum8Big32x409mul_small17h65ab9f8546ed35ceE.exit ], [ %86, %bb5.i.loopexit ]
%78 = icmp ugt i64 %i.0.lcssa.i, %73
br i1 %78, label %bb10.i, label %bb5.backedge
bb5.backedge: ; preds = %bb5.i, %bb10.i
%79 = phi i64 [ %73, %bb5.i ], [ %i.0.lcssa.i, %bb10.i ]
%.pre = load i8, i8* %_8.sroa.6.0..sroa_idx, align 8, !range !713
br label %bb5
bb6.i: ; preds = %bb6.i.preheader, %bb7.i
%i.025.i = phi i64 [ %86, %bb7.i ], [ 1, %bb6.i.preheader ]
%80 = icmp ult i64 %i.025.i, 40
br i1 %80, label %bb7.i, label %panic.i, !prof !5
bb7.i: ; preds = %bb6.i
%81 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %f, i64 0, i32 2, i64 %i.025.i
%82 = load i32, i32* %81, align 4
%83 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %82, i32 1) #16
%84 = extractvalue { i32, i1 } %83, 0
%85 = extractvalue { i32, i1 } %83, 1
store i32 %84, i32* %81, align 4
%86 = add nuw nsw i64 %i.025.i, 1
br i1 %85, label %bb6.i, label %bb5.i.loopexit
bb10.i: ; preds = %bb5.i
store i64 %i.0.lcssa.i, i64* %6, align 8
br label %bb5.backedge
panic.i: ; preds = %bb6.i
call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4G to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %i.025.i, i64 40)
unreachable
}
; Function Attrs: uwtable
define i64 @_ZN4core3num7dec2flt3num6to_u6417h0615f6384189448aE(%"num::bignum::Big32x40"* noalias readonly dereferenceable(168)) unnamed_addr #2 {
start:
%1 = tail call i64 @_ZN4core3num6bignum8Big32x4010bit_length17h0dcdc318c9781017E(%"num::bignum::Big32x40"* noalias nonnull readonly dereferenceable(168) %0)
%2 = icmp ugt i64 %1, 63
br i1 %2, label %bb2, label %bb3
bb2: ; preds = %start
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7dec2flt3num6to_u6414_MSG_FILE_LINE17hb1073597c7152aacE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb3: ; preds = %start
%3 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i64 0, i32 0
%4 = load i64, i64* %3, align 8, !alias.scope !714
%5 = icmp ugt i64 %4, 40
br i1 %5, label %bb4.i.i.i.i, label %_ZN4core3num6bignum8Big32x406digits17h8552d5ee36269d2dE.exit
bb4.i.i.i.i: ; preds = %bb3
tail call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %4, i64 40), !noalias !717
unreachable
_ZN4core3num6bignum8Big32x406digits17h8552d5ee36269d2dE.exit: ; preds = %bb3
%6 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i64 0, i32 2, i64 0
%7 = icmp ult i64 %4, 2
br i1 %7, label %bb6, label %bb10
bb6: ; preds = %_ZN4core3num6bignum8Big32x406digits17h8552d5ee36269d2dE.exit
%8 = icmp eq i64 %4, 0
br i1 %8, label %panic, label %bb8, !prof !614
bb8: ; preds = %bb6
%9 = load i32, i32* %6, align 4
%10 = zext i32 %9 to i64
br label %bb11
bb10: ; preds = %_ZN4core3num6bignum8Big32x406digits17h8552d5ee36269d2dE.exit
%11 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i64 0, i32 2, i64 1
%12 = load i32, i32* %11, align 4
%13 = zext i32 %12 to i64
%14 = shl nuw i64 %13, 32
%15 = load i32, i32* %6, align 4
%16 = zext i32 %15 to i64
%17 = or i64 %14, %16
br label %bb11
bb11: ; preds = %bb10, %bb8
%_0.0 = phi i64 [ %10, %bb8 ], [ %17, %bb10 ]
ret i64 %_0.0
panic: ; preds = %bb6
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.1t to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 0, i64 0)
unreachable
}
; Function Attrs: uwtable
define i64 @_ZN4core3num7dec2flt3num8get_bits17h324876d3599b47cdE(%"num::bignum::Big32x40"* noalias nocapture readonly dereferenceable(168), i64, i64) unnamed_addr #2 personality i32 (...)* @rust_eh_personality {
start:
%3 = sub i64 %2, %1
%4 = icmp ugt i64 %3, 64
br i1 %4, label %bb1, label %bb5.preheader
bb5.preheader: ; preds = %start
%5 = icmp ugt i64 %2, %1
br i1 %5, label %bb8.preheader, label %bb7
bb8.preheader: ; preds = %bb5.preheader
br label %bb8
bb1: ; preds = %start
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7dec2flt3num8get_bits14_MSG_FILE_LINE17h12c0a0414ee16166E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb7.loopexit: ; preds = %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit
br label %bb7
bb7: ; preds = %bb7.loopexit, %bb5.preheader
%result.0.lcssa = phi i64 [ 0, %bb5.preheader ], [ %17, %bb7.loopexit ]
ret i64 %result.0.lcssa
bb8: ; preds = %bb8.preheader, %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit
%result.026 = phi i64 [ %17, %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit ], [ 0, %bb8.preheader ]
%iter.sroa.4.025 = phi i64 [ %6, %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit ], [ %2, %bb8.preheader ]
%6 = add i64 %iter.sroa.4.025, -1
%7 = lshr i64 %6, 5
%8 = icmp ult i64 %6, 1280
br i1 %8, label %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit, label %panic2.i, !prof !5
panic2.i: ; preds = %bb8
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4E to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %7, i64 40), !noalias !720
unreachable
_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit: ; preds = %bb8
%9 = shl i64 %result.026, 1
%10 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i64 0, i32 2, i64 %7
%11 = load i32, i32* %10, align 4, !alias.scope !720
%12 = trunc i64 %6 to i32
%13 = and i32 %12, 31
%14 = lshr i32 %11, %13
%15 = and i32 %14, 1
%16 = zext i32 %15 to i64
%17 = or i64 %16, %9
%18 = icmp ugt i64 %6, %1
br i1 %18, label %bb8, label %bb7.loopexit
}
; Function Attrs: norecurse nounwind uwtable
define void @_ZN4core3num7dec2flt5rawfp8Unpacked3new17h436bc2bf16760323E(%"num::dec2flt::rawfp::Unpacked"* noalias nocapture sret dereferenceable(16), i64, i16) unnamed_addr #5 {
start:
%3 = getelementptr inbounds %"num::dec2flt::rawfp::Unpacked", %"num::dec2flt::rawfp::Unpacked"* %0, i64 0, i32 0
store i64 %1, i64* %3, align 8
%4 = getelementptr inbounds %"num::dec2flt::rawfp::Unpacked", %"num::dec2flt::rawfp::Unpacked"* %0, i64 0, i32 2
store i16 %2, i16* %4, align 8
ret void
}
; Function Attrs: norecurse nounwind uwtable
define void @"_ZN59_$LT$f32$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$14integer_decode17hc9acf22b7d0186cfE"({ i64, [0 x i8], i16, [0 x i8], i8, [5 x i8] }* noalias nocapture sret dereferenceable(16), float) unnamed_addr #5 {
start:
%2 = bitcast float %1 to i32
%3 = icmp sgt i32 %2, -1
%. = select i1 %3, i8 1, i8 -1
%4 = lshr i32 %2, 23
%5 = trunc i32 %4 to i16
%6 = and i16 %5, 255
%7 = icmp eq i16 %6, 0
%8 = and i32 %2, 8388607
%9 = shl nuw nsw i32 %8, 1
%10 = or i32 %8, 8388608
%mantissa.0 = select i1 %7, i32 %9, i32 %10
%11 = add nsw i16 %6, -150
%12 = zext i32 %mantissa.0 to i64
%13 = getelementptr inbounds { i64, [0 x i8], i16, [0 x i8], i8, [5 x i8] }, { i64, [0 x i8], i16, [0 x i8], i8, [5 x i8] }* %0, i64 0, i32 0
store i64 %12, i64* %13, align 8
%14 = getelementptr inbounds { i64, [0 x i8], i16, [0 x i8], i8, [5 x i8] }, { i64, [0 x i8], i16, [0 x i8], i8, [5 x i8] }* %0, i64 0, i32 2
store i16 %11, i16* %14, align 8
%15 = getelementptr inbounds { i64, [0 x i8], i16, [0 x i8], i8, [5 x i8] }, { i64, [0 x i8], i16, [0 x i8], i8, [5 x i8] }* %0, i64 0, i32 4
store i8 %., i8* %15, align 2
ret void
}
; Function Attrs: norecurse nounwind readnone uwtable
define i64 @"_ZN59_$LT$f32$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$9transmute17h6a5e3ea398b3bad1E"(float) unnamed_addr #0 {
start:
%1 = bitcast float %0 to i32
%2 = zext i32 %1 to i64
ret i64 %2
}
; Function Attrs: uwtable
define float @"_ZN59_$LT$f32$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$9from_bits17h0c434c9acc29f5beE"(i64) unnamed_addr #2 {
start:
%1 = icmp ugt i64 %0, 4294967294
br i1 %1, label %bb1, label %bb2
bb1: ; preds = %start
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @"_ZN59_$LT$f32$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$9from_bits14_MSG_FILE_LINE17h6e14a33d7f900e24E" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb2: ; preds = %start
%2 = trunc i64 %0 to i32
%3 = bitcast i32 %2 to float
ret float %3
}
; Function Attrs: nounwind uwtable
define void @"_ZN59_$LT$f32$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$6unpack17h30589b74ea79de4fE"(%"num::dec2flt::rawfp::Unpacked"* noalias nocapture sret dereferenceable(16), float) unnamed_addr #6 {
start:
%2 = bitcast float %1 to i32
%3 = lshr i32 %2, 23
%4 = trunc i32 %3 to i16
%5 = and i16 %4, 255
%6 = icmp eq i16 %5, 0
%7 = and i32 %2, 8388607
%8 = shl nuw nsw i32 %7, 1
%9 = or i32 %7, 8388608
%mantissa.0.i = select i1 %6, i32 %8, i32 %9
%10 = add nsw i16 %5, -150
%11 = zext i32 %mantissa.0.i to i64
%12 = getelementptr inbounds %"num::dec2flt::rawfp::Unpacked", %"num::dec2flt::rawfp::Unpacked"* %0, i64 0, i32 0
store i64 %11, i64* %12, align 8, !alias.scope !723
%13 = getelementptr inbounds %"num::dec2flt::rawfp::Unpacked", %"num::dec2flt::rawfp::Unpacked"* %0, i64 0, i32 2
store i16 %10, i16* %13, align 8, !alias.scope !723
ret void
}
; Function Attrs: norecurse nounwind readnone uwtable
define float @"_ZN59_$LT$f32$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$8from_int17h9fd00679fa1a9b01E"(i64) unnamed_addr #0 {
start:
%1 = uitofp i64 %0 to float
ret float %1
}
; Function Attrs: uwtable
define float @"_ZN59_$LT$f32$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$16short_fast_pow1017h4564cea13e159b81E"(i64) unnamed_addr #2 {
start:
%1 = icmp ult i64 %0, 11
br i1 %1, label %bb1, label %panic, !prof !5
bb1: ; preds = %start
%2 = getelementptr inbounds [11 x float], [11 x float]* @const.1v, i64 0, i64 %0
%3 = load float, float* %2, align 4
ret float %3
panic: ; preds = %start
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.1x to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %0, i64 11)
unreachable
}
; Function Attrs: norecurse nounwind uwtable
define void @"_ZN59_$LT$f64$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$14integer_decode17hea76817b04fafd11E"({ i64, [0 x i8], i16, [0 x i8], i8, [5 x i8] }* noalias nocapture sret dereferenceable(16), double) unnamed_addr #5 {
start:
%2 = bitcast double %1 to i64
%3 = icmp sgt i64 %2, -1
%. = select i1 %3, i8 1, i8 -1
%4 = lshr i64 %2, 52
%5 = trunc i64 %4 to i16
%6 = and i16 %5, 2047
%7 = icmp eq i16 %6, 0
%8 = and i64 %2, 4503599627370495
%9 = shl nuw nsw i64 %8, 1
%10 = or i64 %8, 4503599627370496
%mantissa.0 = select i1 %7, i64 %9, i64 %10
%11 = add nsw i16 %6, -1075
%12 = getelementptr inbounds { i64, [0 x i8], i16, [0 x i8], i8, [5 x i8] }, { i64, [0 x i8], i16, [0 x i8], i8, [5 x i8] }* %0, i64 0, i32 0
store i64 %mantissa.0, i64* %12, align 8
%13 = getelementptr inbounds { i64, [0 x i8], i16, [0 x i8], i8, [5 x i8] }, { i64, [0 x i8], i16, [0 x i8], i8, [5 x i8] }* %0, i64 0, i32 2
store i16 %11, i16* %13, align 8
%14 = getelementptr inbounds { i64, [0 x i8], i16, [0 x i8], i8, [5 x i8] }, { i64, [0 x i8], i16, [0 x i8], i8, [5 x i8] }* %0, i64 0, i32 4
store i8 %., i8* %14, align 2
ret void
}
; Function Attrs: norecurse nounwind readnone uwtable
define i64 @"_ZN59_$LT$f64$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$9transmute17h033fbd6407639f37E"(double) unnamed_addr #0 {
start:
%1 = bitcast double %0 to i64
ret i64 %1
}
; Function Attrs: norecurse nounwind readnone uwtable
define double @"_ZN59_$LT$f64$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$9from_bits17h723de204812cf0feE"(i64) unnamed_addr #0 {
start:
%1 = bitcast i64 %0 to double
ret double %1
}
; Function Attrs: nounwind uwtable
define void @"_ZN59_$LT$f64$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$6unpack17heb54aa570e0fd2e3E"(%"num::dec2flt::rawfp::Unpacked"* noalias nocapture sret dereferenceable(16), double) unnamed_addr #6 {
start:
%2 = bitcast double %1 to i64
%3 = lshr i64 %2, 52
%4 = trunc i64 %3 to i16
%5 = and i16 %4, 2047
%6 = icmp eq i16 %5, 0
%7 = and i64 %2, 4503599627370495
%8 = shl nuw nsw i64 %7, 1
%9 = or i64 %7, 4503599627370496
%mantissa.0.i = select i1 %6, i64 %8, i64 %9
%10 = add nsw i16 %5, -1075
%11 = getelementptr inbounds %"num::dec2flt::rawfp::Unpacked", %"num::dec2flt::rawfp::Unpacked"* %0, i64 0, i32 0
store i64 %mantissa.0.i, i64* %11, align 8, !alias.scope !726
%12 = getelementptr inbounds %"num::dec2flt::rawfp::Unpacked", %"num::dec2flt::rawfp::Unpacked"* %0, i64 0, i32 2
store i16 %10, i16* %12, align 8, !alias.scope !726
ret void
}
; Function Attrs: norecurse nounwind readnone uwtable
define double @"_ZN59_$LT$f64$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$8from_int17h2f1e1524c2867665E"(i64) unnamed_addr #0 {
start:
%1 = uitofp i64 %0 to double
ret double %1
}
; Function Attrs: uwtable
define double @"_ZN59_$LT$f64$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$16short_fast_pow1017hef066a27a00ae407E"(i64) unnamed_addr #2 {
start:
%1 = icmp ult i64 %0, 23
br i1 %1, label %bb1, label %panic, !prof !5
bb1: ; preds = %start
%2 = getelementptr inbounds [23 x double], [23 x double]* @const.1y, i64 0, i64 %0
%3 = load double, double* %2, align 8
ret double %3
panic: ; preds = %start
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.1z to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %0, i64 23)
unreachable
}
; Function Attrs: uwtable
define void @_ZN4core3num7dec2flt5rawfp9big_to_fp17h6a34f664c0c1c080E(%"num::diy_float::Fp"* noalias nocapture sret dereferenceable(16), %"num::bignum::Big32x40"* noalias readonly dereferenceable(168)) unnamed_addr #2 personality i32 (...)* @rust_eh_personality {
start:
%2 = tail call i64 @_ZN4core3num6bignum8Big32x4010bit_length17h0dcdc318c9781017E(%"num::bignum::Big32x40"* noalias nonnull readonly dereferenceable(168) %1)
%3 = icmp eq i64 %2, 0
br i1 %3, label %bb2, label %bb3
bb2: ; preds = %start
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7dec2flt5rawfp9big_to_fp14_MSG_FILE_LINE17h57900dbf66d550ebE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb3: ; preds = %start
%4 = tail call { i64, i1 } @llvm.usub.with.overflow.i64(i64 %2, i64 64) #16
%5 = extractvalue { i64, i1 } %4, 1
%6 = extractvalue { i64, i1 } %4, 0
%..i = select i1 %5, i64 0, i64 %6
%7 = sub i64 %2, %..i
%8 = icmp ugt i64 %7, 64
br i1 %8, label %bb1.i, label %bb5.preheader.i
bb5.preheader.i: ; preds = %bb3
%9 = icmp ugt i64 %2, %..i
br i1 %9, label %bb8.i.preheader, label %_ZN4core3num7dec2flt3num8get_bits17h324876d3599b47cdE.exit
bb8.i.preheader: ; preds = %bb5.preheader.i
br label %bb8.i
bb1.i: ; preds = %bb3
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num7dec2flt3num8get_bits14_MSG_FILE_LINE17h12c0a0414ee16166E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*)), !noalias !729
unreachable
bb8.i: ; preds = %bb8.i.preheader, %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit.i4
%result.026.i = phi i64 [ %21, %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit.i4 ], [ 0, %bb8.i.preheader ]
%iter.sroa.4.025.i = phi i64 [ %10, %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit.i4 ], [ %2, %bb8.i.preheader ]
%10 = add i64 %iter.sroa.4.025.i, -1
%11 = lshr i64 %10, 5
%12 = icmp ult i64 %10, 1280
br i1 %12, label %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit.i4, label %panic2.i.i3, !prof !5
panic2.i.i3: ; preds = %bb8.i
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4E to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %11, i64 40), !noalias !732
unreachable
_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit.i4: ; preds = %bb8.i
%13 = shl i64 %result.026.i, 1
%14 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %1, i64 0, i32 2, i64 %11
%15 = load i32, i32* %14, align 4, !alias.scope !732
%16 = trunc i64 %10 to i32
%17 = and i32 %16, 31
%18 = lshr i32 %15, %17
%19 = and i32 %18, 1
%20 = zext i32 %19 to i64
%21 = or i64 %20, %13
%22 = icmp ugt i64 %10, %..i
br i1 %22, label %bb8.i, label %_ZN4core3num7dec2flt3num8get_bits17h324876d3599b47cdE.exit.loopexit
_ZN4core3num7dec2flt3num8get_bits17h324876d3599b47cdE.exit.loopexit: ; preds = %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit.i4
br label %_ZN4core3num7dec2flt3num8get_bits17h324876d3599b47cdE.exit
_ZN4core3num7dec2flt3num8get_bits17h324876d3599b47cdE.exit: ; preds = %_ZN4core3num7dec2flt3num8get_bits17h324876d3599b47cdE.exit.loopexit, %bb5.preheader.i
%result.0.lcssa.i = phi i64 [ 0, %bb5.preheader.i ], [ %21, %_ZN4core3num7dec2flt3num8get_bits17h324876d3599b47cdE.exit.loopexit ]
%23 = trunc i64 %..i to i16
%24 = icmp ult i64 %result.0.lcssa.i, 4294967296
%25 = shl i64 %result.0.lcssa.i, 32
%26 = add i16 %23, -32
%e.0.i5 = select i1 %24, i16 %26, i16 %23
%f.0.i6 = select i1 %24, i64 %25, i64 %result.0.lcssa.i
%27 = icmp ult i64 %f.0.i6, 281474976710656
%28 = shl i64 %f.0.i6, 16
%29 = add i16 %e.0.i5, -16
%e.1.i7 = select i1 %27, i16 %29, i16 %e.0.i5
%f.1.i8 = select i1 %27, i64 %28, i64 %f.0.i6
%30 = icmp ult i64 %f.1.i8, 72057594037927936
%31 = shl i64 %f.1.i8, 8
%32 = add i16 %e.1.i7, -8
%e.2.i9 = select i1 %30, i16 %32, i16 %e.1.i7
%f.2.i10 = select i1 %30, i64 %31, i64 %f.1.i8
%33 = icmp ult i64 %f.2.i10, 1152921504606846976
%34 = shl i64 %f.2.i10, 4
%35 = add i16 %e.2.i9, -4
%e.3.i11 = select i1 %33, i16 %35, i16 %e.2.i9
%f.3.i12 = select i1 %33, i64 %34, i64 %f.2.i10
%36 = icmp ult i64 %f.3.i12, 4611686018427387904
%37 = shl i64 %f.3.i12, 2
%38 = add i16 %e.3.i11, -2
%e.4.i13 = select i1 %36, i16 %38, i16 %e.3.i11
%f.4.i14 = select i1 %36, i64 %37, i64 %f.3.i12
%f.4.lobit.i15 = ashr i64 %f.4.i14, 63
%39 = trunc i64 %f.4.lobit.i15 to i16
%.not.i16 = xor i16 %39, -1
%e.5.i17 = add i16 %e.4.i13, %.not.i16
%f.4.lobit21.i18 = lshr i64 %f.4.i14, 63
%f.4.lobit21.not.i19 = xor i64 %f.4.lobit21.i18, 1
%f.5.i20 = shl i64 %f.4.i14, %f.4.lobit21.not.i19
%40 = icmp eq i64 %..i, 0
br i1 %40, label %bb13, label %bb2.i1
bb2.i1: ; preds = %_ZN4core3num7dec2flt3num8get_bits17h324876d3599b47cdE.exit
%41 = add i64 %..i, -1
%42 = lshr i64 %41, 5
%43 = icmp ult i64 %41, 1280
br i1 %43, label %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit.i, label %panic2.i.i, !prof !5
panic2.i.i: ; preds = %bb2.i1
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4E to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %42, i64 40), !noalias !735
unreachable
_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit.i: ; preds = %bb2.i1
%44 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %1, i64 0, i32 2, i64 %42
%45 = load i32, i32* %44, align 4, !alias.scope !735
%46 = trunc i64 %41 to i32
%47 = and i32 %46, 31
%48 = shl i32 1, %47
%49 = and i32 %45, %48
%50 = icmp eq i32 %49, 0
br i1 %50, label %bb13, label %bb10.i.preheader
bb10.i.preheader: ; preds = %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit.i
br label %bb10.i
bb10.i: ; preds = %bb10.i.preheader, %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit4.i
%iter.sroa.0.0.i = phi i64 [ %54, %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit4.i ], [ 0, %bb10.i.preheader ]
%51 = icmp ult i64 %iter.sroa.0.0.i, %41
br i1 %51, label %bb13.i, label %bb12
bb13.i: ; preds = %bb10.i
%52 = lshr i64 %iter.sroa.0.0.i, 5
%53 = icmp ult i64 %iter.sroa.0.0.i, 1280
br i1 %53, label %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit4.i, label %panic2.i3.i, !prof !5
panic2.i3.i: ; preds = %bb13.i
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4E to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 %52, i64 40), !noalias !740
unreachable
_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit4.i: ; preds = %bb13.i
%54 = add nuw nsw i64 %iter.sroa.0.0.i, 1
%55 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %1, i64 0, i32 2, i64 %52
%56 = load i32, i32* %55, align 4, !alias.scope !740
%57 = trunc i64 %iter.sroa.0.0.i to i32
%58 = and i32 %57, 31
%59 = shl i32 1, %58
%60 = and i32 %56, %59
%61 = icmp eq i32 %60, 0
br i1 %61, label %bb10.i, label %bb10.loopexit
bb10.loopexit: ; preds = %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit4.i
br label %bb10
bb10: ; preds = %bb10.loopexit, %bb12
%62 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %result.0.lcssa.i, i64 1) #16
%63 = extractvalue { i64, i1 } %62, 1
br i1 %63, label %bb15, label %bb16
bb12: ; preds = %bb10.i
%64 = and i64 %result.0.lcssa.i, 1
%65 = icmp eq i64 %64, 0
br i1 %65, label %bb13, label %bb10
bb13: ; preds = %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit.i, %_ZN4core3num7dec2flt3num8get_bits17h324876d3599b47cdE.exit, %bb12, %bb16, %bb15
%f.5.i.sink = phi i64 [ %f.5.i, %bb16 ], [ -9223372036854775808, %bb15 ], [ %f.5.i20, %bb12 ], [ %f.5.i20, %_ZN4core3num7dec2flt3num8get_bits17h324876d3599b47cdE.exit ], [ %f.5.i20, %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit.i ]
%e.5.i.sink = phi i16 [ %e.5.i, %bb16 ], [ %68, %bb15 ], [ %e.5.i17, %bb12 ], [ %e.5.i17, %_ZN4core3num7dec2flt3num8get_bits17h324876d3599b47cdE.exit ], [ %e.5.i17, %_ZN4core3num6bignum8Big32x407get_bit17h069a8f44ca64e97bE.exit.i ]
%66 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %0, i64 0, i32 0
store i64 %f.5.i.sink, i64* %66, align 8
%67 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %0, i64 0, i32 2
store i16 %e.5.i.sink, i16* %67, align 8
ret void
bb15: ; preds = %bb10
%68 = add i16 %23, 1
br label %bb13
bb16: ; preds = %bb10
%69 = extractvalue { i64, i1 } %62, 0
%70 = icmp ult i64 %69, 4294967296
%71 = shl i64 %69, 32
%e.0.i = select i1 %70, i16 %26, i16 %23
%f.0.i = select i1 %70, i64 %71, i64 %69
%72 = icmp ult i64 %f.0.i, 281474976710656
%73 = shl i64 %f.0.i, 16
%74 = add i16 %e.0.i, -16
%e.1.i = select i1 %72, i16 %74, i16 %e.0.i
%f.1.i = select i1 %72, i64 %73, i64 %f.0.i
%75 = icmp ult i64 %f.1.i, 72057594037927936
%76 = shl i64 %f.1.i, 8
%77 = add i16 %e.1.i, -8
%e.2.i = select i1 %75, i16 %77, i16 %e.1.i
%f.2.i = select i1 %75, i64 %76, i64 %f.1.i
%78 = icmp ult i64 %f.2.i, 1152921504606846976
%79 = shl i64 %f.2.i, 4
%80 = add i16 %e.2.i, -4
%e.3.i = select i1 %78, i16 %80, i16 %e.2.i
%f.3.i = select i1 %78, i64 %79, i64 %f.2.i
%81 = icmp ult i64 %f.3.i, 4611686018427387904
%82 = shl i64 %f.3.i, 2
%83 = add i16 %e.3.i, -2
%e.4.i = select i1 %81, i16 %83, i16 %e.3.i
%f.4.i = select i1 %81, i64 %82, i64 %f.3.i
%f.4.lobit.i = ashr i64 %f.4.i, 63
%84 = trunc i64 %f.4.lobit.i to i16
%.not.i = xor i16 %84, -1
%e.5.i = add i16 %e.4.i, %.not.i
%f.4.lobit21.i = lshr i64 %f.4.i, 63
%f.4.lobit21.not.i = xor i64 %f.4.lobit21.i, 1
%f.5.i = shl i64 %f.4.i, %f.4.lobit21.not.i
br label %bb13
}
; Function Attrs: norecurse nounwind uwtable
define void @_ZN4core3num7dec2flt5parse7Decimal3new17h9c7ff3516ea6afa8E(%"num::dec2flt::parse::Decimal"* noalias nocapture sret dereferenceable(40), i8* noalias nonnull readonly, i64, i8* noalias nonnull readonly, i64, i64) unnamed_addr #5 {
start:
%6 = getelementptr inbounds %"num::dec2flt::parse::Decimal", %"num::dec2flt::parse::Decimal"* %0, i64 0, i32 0, i32 0
store i8* %1, i8** %6, align 8
%7 = getelementptr inbounds %"num::dec2flt::parse::Decimal", %"num::dec2flt::parse::Decimal"* %0, i64 0, i32 0, i32 1
store i64 %2, i64* %7, align 8
%8 = getelementptr inbounds %"num::dec2flt::parse::Decimal", %"num::dec2flt::parse::Decimal"* %0, i64 0, i32 2, i32 0
store i8* %3, i8** %8, align 8
%9 = getelementptr inbounds %"num::dec2flt::parse::Decimal", %"num::dec2flt::parse::Decimal"* %0, i64 0, i32 2, i32 1
store i64 %4, i64* %9, align 8
%10 = getelementptr inbounds %"num::dec2flt::parse::Decimal", %"num::dec2flt::parse::Decimal"* %0, i64 0, i32 4
store i64 %5, i64* %10, align 8
ret void
}
; Function Attrs: uwtable
define void @_ZN4core3num7dec2flt5parse13parse_decimal17h886921e3d1bf4977E(%"num::dec2flt::parse::ParseResult"* noalias nocapture sret dereferenceable(48), i8* noalias nonnull readonly, i64) unnamed_addr #2 {
start:
%3 = icmp eq i64 %2, 0
br i1 %3, label %bb2, label %bb12.i.preheader
bb12.i.preheader: ; preds = %start
br label %bb12.i
bb2: ; preds = %start
%4 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 0
store i64 3, i64* %4, align 8
br label %bb4
bb4.i: ; preds = %bb14.i, %bb12.i
%i.0.lcssa.i = phi i64 [ %i.010.i, %bb12.i ], [ %9, %bb14.i ]
%5 = icmp ugt i64 %i.0.lcssa.i, %2
br i1 %5, label %bb4.i.i.i.i, label %_ZN4core3num7dec2flt5parse10eat_digits17h35fe1a03b1e3677aE.exit
bb4.i.i.i.i: ; preds = %bb4.i
tail call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %i.0.lcssa.i, i64 %2), !noalias !743
unreachable
bb12.i: ; preds = %bb12.i.preheader, %bb14.i
%i.010.i = phi i64 [ %9, %bb14.i ], [ 0, %bb12.i.preheader ]
%6 = getelementptr inbounds i8, i8* %1, i64 %i.010.i
%7 = load i8, i8* %6, align 1, !alias.scope !748, !noalias !750
%.off.i = add i8 %7, -48
%8 = icmp ult i8 %.off.i, 10
br i1 %8, label %bb14.i, label %bb4.i
bb14.i: ; preds = %bb12.i
%9 = add nuw i64 %i.010.i, 1
%10 = icmp ult i64 %9, %2
br i1 %10, label %bb12.i, label %bb4.i
_ZN4core3num7dec2flt5parse10eat_digits17h35fe1a03b1e3677aE.exit: ; preds = %bb4.i
%11 = getelementptr inbounds i8, i8* %1, i64 %i.0.lcssa.i
%12 = sub i64 %2, %i.0.lcssa.i
%13 = icmp eq i64 %12, 0
br i1 %13, label %bb9, label %bb13
bb4: ; preds = %bb40, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit", %bb38, %bb12, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit12", %bb9, %bb2, %bb19
ret void
bb9: ; preds = %_ZN4core3num7dec2flt5parse10eat_digits17h35fe1a03b1e3677aE.exit
%14 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 0
store i64 0, i64* %14, align 8
%_15.sroa.0.0..sroa_idx = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 2
%_15.sroa.0.0..sroa_cast28 = bitcast [5 x i64]* %_15.sroa.0.0..sroa_idx to i8**
store i8* %1, i8** %_15.sroa.0.0..sroa_cast28, align 8
%_15.sroa.4.0..sroa_idx30 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 2, i64 1
store i64 %i.0.lcssa.i, i64* %_15.sroa.4.0..sroa_idx30, align 8
%_15.sroa.5.0..sroa_idx32 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 2, i64 2
%_15.sroa.5.0..sroa_cast33 = bitcast i64* %_15.sroa.5.0..sroa_idx32 to i8**
store i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i64 0, i64 0), i8** %_15.sroa.5.0..sroa_cast33, align 8
%_15.sroa.6.0..sroa_idx35 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 2, i64 3
%15 = bitcast i64* %_15.sroa.6.0..sroa_idx35 to i8*
call void @llvm.memset.p0i8.i64(i8* %15, i8 0, i64 16, i32 8, i1 false)
br label %bb4
bb10: ; preds = %bb13, %bb13
%16 = icmp eq i64 %i.0.lcssa.i, 0
br i1 %16, label %bb19, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit12"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit23": ; preds = %bb13
%17 = getelementptr inbounds i8, i8* %11, i64 1
%18 = add i64 %12, -1
%19 = icmp eq i64 %18, 0
br i1 %19, label %_ZN4core3num7dec2flt5parse10eat_digits17h35fe1a03b1e3677aE.exit21, label %bb12.i19.preheader
bb12.i19.preheader: ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit23"
br label %bb12.i19
bb4.i14: ; preds = %bb14.i20, %bb12.i19
%i.0.lcssa.i13 = phi i64 [ %i.010.i17, %bb12.i19 ], [ %24, %bb14.i20 ]
%20 = icmp ugt i64 %i.0.lcssa.i13, %18
br i1 %20, label %bb4.i.i.i.i15, label %_ZN4core3num7dec2flt5parse10eat_digits17h35fe1a03b1e3677aE.exit21
bb4.i.i.i.i15: ; preds = %bb4.i14
tail call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %i.0.lcssa.i13, i64 %18), !noalias !751
unreachable
bb12.i19: ; preds = %bb12.i19.preheader, %bb14.i20
%i.010.i17 = phi i64 [ %24, %bb14.i20 ], [ 0, %bb12.i19.preheader ]
%21 = getelementptr inbounds i8, i8* %17, i64 %i.010.i17
%22 = load i8, i8* %21, align 1, !alias.scope !756, !noalias !758
%.off.i18 = add i8 %22, -48
%23 = icmp ult i8 %.off.i18, 10
br i1 %23, label %bb14.i20, label %bb4.i14
bb14.i20: ; preds = %bb12.i19
%24 = add nuw i64 %i.010.i17, 1
%25 = icmp ult i64 %24, %18
br i1 %25, label %bb12.i19, label %bb4.i14
_ZN4core3num7dec2flt5parse10eat_digits17h35fe1a03b1e3677aE.exit21: ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit23", %bb4.i14
%i.0.lcssa12.i16 = phi i64 [ %i.0.lcssa.i13, %bb4.i14 ], [ 0, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit23" ]
%26 = getelementptr inbounds i8, i8* %17, i64 %i.0.lcssa12.i16
%27 = sub i64 %18, %i.0.lcssa12.i16
%28 = or i64 %i.0.lcssa12.i16, %i.0.lcssa.i
%29 = icmp eq i64 %28, 0
%30 = icmp eq i64 %27, 0
br i1 %29, label %bb26, label %bb25
bb12: ; preds = %bb13
%31 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 0
store i64 3, i64* %31, align 8
br label %bb4
bb13: ; preds = %_ZN4core3num7dec2flt5parse10eat_digits17h35fe1a03b1e3677aE.exit
%32 = load i8, i8* %11, align 1
switch i8 %32, label %bb12 [
i8 101, label %bb10
i8 69, label %bb10
i8 46, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit23"
]
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit12": ; preds = %bb10
%33 = getelementptr inbounds i8, i8* %11, i64 1
%34 = add i64 %12, -1
tail call fastcc void @_ZN4core3num7dec2flt5parse9parse_exp17h01d7adad5c00562eE(%"num::dec2flt::parse::ParseResult"* noalias nocapture nonnull sret dereferenceable(48) %0, i8* noalias nonnull readonly %1, i64 %i.0.lcssa.i, i8* noalias nonnull readonly getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i64 0, i64 0), i64 0, i8* noalias nonnull readonly %33, i64 %34)
br label %bb4
bb19: ; preds = %bb10, %bb26
%35 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 0
store i64 3, i64* %35, align 8
br label %bb4
bb25: ; preds = %_ZN4core3num7dec2flt5parse10eat_digits17h35fe1a03b1e3677aE.exit21
br i1 %30, label %bb38, label %bb41
bb26: ; preds = %_ZN4core3num7dec2flt5parse10eat_digits17h35fe1a03b1e3677aE.exit21
br i1 %30, label %bb19, label %bb41
bb38: ; preds = %bb25
%36 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 0
store i64 0, i64* %36, align 8
%_52.sroa.0.0..sroa_idx = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 2
%_52.sroa.0.0..sroa_cast43 = bitcast [5 x i64]* %_52.sroa.0.0..sroa_idx to i8**
store i8* %1, i8** %_52.sroa.0.0..sroa_cast43, align 8
%_52.sroa.4.0..sroa_idx45 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 2, i64 1
store i64 %i.0.lcssa.i, i64* %_52.sroa.4.0..sroa_idx45, align 8
%_52.sroa.5.0..sroa_idx47 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 2, i64 2
%_52.sroa.5.0..sroa_cast48 = bitcast i64* %_52.sroa.5.0..sroa_idx47 to i8**
store i8* %17, i8** %_52.sroa.5.0..sroa_cast48, align 8
%_52.sroa.6.0..sroa_idx50 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 2, i64 3
store i64 %i.0.lcssa12.i16, i64* %_52.sroa.6.0..sroa_idx50, align 8
%_52.sroa.7.0..sroa_idx52 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 2, i64 4
store i64 0, i64* %_52.sroa.7.0..sroa_idx52, align 8
br label %bb4
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit": ; preds = %bb41, %bb41
%37 = getelementptr inbounds i8, i8* %26, i64 1
%38 = add i64 %27, -1
tail call fastcc void @_ZN4core3num7dec2flt5parse9parse_exp17h01d7adad5c00562eE(%"num::dec2flt::parse::ParseResult"* noalias nocapture nonnull sret dereferenceable(48) %0, i8* noalias nonnull readonly %1, i64 %i.0.lcssa.i, i8* noalias nonnull readonly %17, i64 %i.0.lcssa12.i16, i8* noalias nonnull readonly %37, i64 %38)
br label %bb4
bb40: ; preds = %bb41
%39 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 0
store i64 3, i64* %39, align 8
br label %bb4
bb41: ; preds = %bb26, %bb25
%40 = load i8, i8* %26, align 1
switch i8 %40, label %bb40 [
i8 101, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit"
i8 69, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit"
]
}
; Function Attrs: uwtable
define internal fastcc void @_ZN4core3num7dec2flt5parse9parse_exp17h01d7adad5c00562eE(%"num::dec2flt::parse::ParseResult"* noalias nocapture sret dereferenceable(48), i8* noalias nonnull readonly, i64, i8* noalias nonnull readonly, i64, i8* noalias nonnull readonly, i64) unnamed_addr #2 personality i32 (...)* @rust_eh_personality {
start:
%7 = icmp eq i64 %6, 0
br i1 %7, label %bb16, label %bb5
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit27": ; preds = %bb5
br label %bb6
bb5: ; preds = %start
%8 = load i8, i8* %5, align 1
switch i8 %8, label %bb12.i.preheader [
i8 45, label %bb6
i8 43, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit27"
]
bb12.i.preheader: ; preds = %bb6, %bb5
%_9.sroa.0.051.ph = phi i64 [ 0, %bb5 ], [ %_9.sroa.0.0, %bb6 ]
%_9.sroa.65.050.ph = phi i8* [ %5, %bb5 ], [ %_9.sroa.65.0, %bb6 ]
%_9.sroa.10.049.ph = phi i64 [ %6, %bb5 ], [ %_9.sroa.10.0, %bb6 ]
br label %bb12.i
bb6: ; preds = %bb5, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit27"
%_9.sroa.0.0 = phi i64 [ 0, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit27" ], [ 1, %bb5 ]
%_9.sroa.65.0 = getelementptr inbounds i8, i8* %5, i64 1
%_9.sroa.10.0 = add i64 %6, -1
%9 = icmp eq i64 %_9.sroa.10.0, 0
br i1 %9, label %bb16, label %bb12.i.preheader
bb4.i: ; preds = %bb14.i, %bb12.i
%i.0.lcssa.i = phi i64 [ %i.010.i, %bb12.i ], [ %14, %bb14.i ]
%10 = icmp ugt i64 %i.0.lcssa.i, %_9.sroa.10.049.ph
br i1 %10, label %bb4.i.i.i.i, label %_ZN4core3num7dec2flt5parse10eat_digits17h35fe1a03b1e3677aE.exit
bb4.i.i.i.i: ; preds = %bb4.i
tail call void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64 %i.0.lcssa.i, i64 %_9.sroa.10.049.ph), !noalias !759
unreachable
bb12.i: ; preds = %bb12.i.preheader, %bb14.i
%i.010.i = phi i64 [ %14, %bb14.i ], [ 0, %bb12.i.preheader ]
%11 = getelementptr inbounds i8, i8* %_9.sroa.65.050.ph, i64 %i.010.i
%12 = load i8, i8* %11, align 1, !alias.scope !764, !noalias !766
%.off.i = add i8 %12, -48
%13 = icmp ult i8 %.off.i, 10
br i1 %13, label %bb14.i, label %bb4.i
bb14.i: ; preds = %bb12.i
%14 = add nuw i64 %i.010.i, 1
%15 = icmp ult i64 %14, %_9.sroa.10.049.ph
br i1 %15, label %bb12.i, label %bb4.i
_ZN4core3num7dec2flt5parse10eat_digits17h35fe1a03b1e3677aE.exit: ; preds = %bb4.i
%16 = icmp eq i64 %_9.sroa.10.049.ph, %i.0.lcssa.i
br i1 %16, label %bb18.preheader, label %bb11
bb18.preheader: ; preds = %_ZN4core3num7dec2flt5parse10eat_digits17h35fe1a03b1e3677aE.exit
br label %bb18
bb11: ; preds = %_ZN4core3num7dec2flt5parse10eat_digits17h35fe1a03b1e3677aE.exit
%17 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 0
store i64 3, i64* %17, align 8
br label %bb13
bb13: ; preds = %bb11, %bb16, %bb25, %_ZN4core3num7dec2flt3num18from_str_unchecked17he42035e68b7358fbE.exit
ret void
bb16: ; preds = %bb6, %start
%18 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 0
store i64 3, i64* %18, align 8
br label %bb13
bb18: ; preds = %bb18.preheader, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit"
%number.sroa.0.0 = phi i8* [ %24, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit" ], [ %_9.sroa.65.050.ph, %bb18.preheader ]
%number.sroa.9.0 = phi i64 [ %25, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit" ], [ %_9.sroa.10.049.ph, %bb18.preheader ]
%19 = icmp eq i64 %number.sroa.9.0, 0
%not.2.i = xor i1 %19, true
%.mux.i = zext i1 %not.2.i to i8
br i1 %19, label %"_ZN70_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17ha07754eb5048174cE.exit", label %bb10.i
bb10.i: ; preds = %bb18
%20 = load i8, i8* %number.sroa.0.0, align 1, !alias.scope !767, !noalias !770
%21 = icmp eq i8 %20, 48
%.1.i = zext i1 %21 to i8
br label %"_ZN70_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17ha07754eb5048174cE.exit"
"_ZN70_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17ha07754eb5048174cE.exit": ; preds = %bb18, %bb10.i
%_0.1.i = phi i8 [ %.mux.i, %bb18 ], [ %.1.i, %bb10.i ]
%22 = icmp eq i8 %_0.1.i, 0
br i1 %22, label %bb19, label %bb22
bb19: ; preds = %"_ZN70_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17ha07754eb5048174cE.exit"
%23 = icmp ugt i64 %number.sroa.9.0, 17
br i1 %23, label %bb25, label %bb26
bb22: ; preds = %"_ZN70_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17ha07754eb5048174cE.exit"
br i1 %19, label %bb1.i.i.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit"
bb1.i.i.i: ; preds = %bb22
tail call void @_ZN4core5slice22slice_index_order_fail17h35681c1841226ae9E(i64 1, i64 0), !noalias !776
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit": ; preds = %bb22
%24 = getelementptr inbounds i8, i8* %number.sroa.0.0, i64 1
%25 = add i64 %number.sroa.9.0, -1
br label %bb18
bb25: ; preds = %bb19
%cond2 = icmp eq i64 %_9.sroa.0.051.ph, 0
%26 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 0
%.sink = select i1 %cond2, i64 1, i64 2
store i64 %.sink, i64* %26, align 8
br label %bb13
bb26: ; preds = %bb19
%27 = getelementptr inbounds i8, i8* %number.sroa.0.0, i64 %number.sroa.9.0
br i1 %19, label %_ZN4core3num7dec2flt3num18from_str_unchecked17he42035e68b7358fbE.exit, label %bb7.i.preheader
bb7.i.preheader: ; preds = %bb26
%28 = add i64 %number.sroa.9.0, -1
%xtraiter = and i64 %number.sroa.9.0, 3
%lcmp.mod = icmp eq i64 %xtraiter, 0
br i1 %lcmp.mod, label %bb7.i.prol.loopexit, label %bb7.i.prol.preheader
bb7.i.prol.preheader: ; preds = %bb7.i.preheader
br label %bb7.i.prol
bb7.i.prol: ; preds = %bb7.i.prol, %bb7.i.prol.preheader
%result.017.i.prol = phi i64 [ %34, %bb7.i.prol ], [ 0, %bb7.i.prol.preheader ]
%iter.sroa.0.016.i.prol = phi i8* [ %29, %bb7.i.prol ], [ %number.sroa.0.0, %bb7.i.prol.preheader ]
%prol.iter = phi i64 [ %prol.iter.sub, %bb7.i.prol ], [ %xtraiter, %bb7.i.prol.preheader ]
%29 = getelementptr inbounds i8, i8* %iter.sroa.0.016.i.prol, i64 1
%30 = load i8, i8* %iter.sroa.0.016.i.prol, align 1, !alias.scope !779
%31 = mul i64 %result.017.i.prol, 10
%32 = add i8 %30, -48
%33 = zext i8 %32 to i64
%34 = add i64 %33, %31
%prol.iter.sub = add i64 %prol.iter, -1
%prol.iter.cmp = icmp eq i64 %prol.iter.sub, 0
br i1 %prol.iter.cmp, label %bb7.i.prol.loopexit.unr-lcssa, label %bb7.i.prol, !llvm.loop !782
bb7.i.prol.loopexit.unr-lcssa: ; preds = %bb7.i.prol
br label %bb7.i.prol.loopexit
bb7.i.prol.loopexit: ; preds = %bb7.i.preheader, %bb7.i.prol.loopexit.unr-lcssa
%.lcssa.unr = phi i64 [ undef, %bb7.i.preheader ], [ %34, %bb7.i.prol.loopexit.unr-lcssa ]
%result.017.i.unr = phi i64 [ 0, %bb7.i.preheader ], [ %34, %bb7.i.prol.loopexit.unr-lcssa ]
%iter.sroa.0.016.i.unr = phi i8* [ %number.sroa.0.0, %bb7.i.preheader ], [ %29, %bb7.i.prol.loopexit.unr-lcssa ]
%35 = icmp ult i64 %28, 3
br i1 %35, label %_ZN4core3num7dec2flt3num18from_str_unchecked17he42035e68b7358fbE.exit.loopexit, label %bb7.i.preheader.new
bb7.i.preheader.new: ; preds = %bb7.i.prol.loopexit
br label %bb7.i
bb7.i: ; preds = %bb7.i, %bb7.i.preheader.new
%result.017.i = phi i64 [ %result.017.i.unr, %bb7.i.preheader.new ], [ %59, %bb7.i ]
%iter.sroa.0.016.i = phi i8* [ %iter.sroa.0.016.i.unr, %bb7.i.preheader.new ], [ %54, %bb7.i ]
%36 = getelementptr inbounds i8, i8* %iter.sroa.0.016.i, i64 1
%37 = load i8, i8* %iter.sroa.0.016.i, align 1, !alias.scope !779
%38 = mul i64 %result.017.i, 10
%39 = add i8 %37, -48
%40 = zext i8 %39 to i64
%41 = add i64 %40, %38
%42 = getelementptr inbounds i8, i8* %iter.sroa.0.016.i, i64 2
%43 = load i8, i8* %36, align 1, !alias.scope !779
%44 = mul i64 %41, 10
%45 = add i8 %43, -48
%46 = zext i8 %45 to i64
%47 = add i64 %46, %44
%48 = getelementptr inbounds i8, i8* %iter.sroa.0.016.i, i64 3
%49 = load i8, i8* %42, align 1, !alias.scope !779
%50 = mul i64 %47, 10
%51 = add i8 %49, -48
%52 = zext i8 %51 to i64
%53 = add i64 %52, %50
%54 = getelementptr inbounds i8, i8* %iter.sroa.0.016.i, i64 4
%55 = load i8, i8* %48, align 1, !alias.scope !779
%56 = mul i64 %53, 10
%57 = add i8 %55, -48
%58 = zext i8 %57 to i64
%59 = add i64 %58, %56
%60 = icmp eq i8* %54, %27
br i1 %60, label %_ZN4core3num7dec2flt3num18from_str_unchecked17he42035e68b7358fbE.exit.loopexit.unr-lcssa, label %bb7.i
_ZN4core3num7dec2flt3num18from_str_unchecked17he42035e68b7358fbE.exit.loopexit.unr-lcssa: ; preds = %bb7.i
br label %_ZN4core3num7dec2flt3num18from_str_unchecked17he42035e68b7358fbE.exit.loopexit
_ZN4core3num7dec2flt3num18from_str_unchecked17he42035e68b7358fbE.exit.loopexit: ; preds = %bb7.i.prol.loopexit, %_ZN4core3num7dec2flt3num18from_str_unchecked17he42035e68b7358fbE.exit.loopexit.unr-lcssa
%.lcssa = phi i64 [ %.lcssa.unr, %bb7.i.prol.loopexit ], [ %59, %_ZN4core3num7dec2flt3num18from_str_unchecked17he42035e68b7358fbE.exit.loopexit.unr-lcssa ]
br label %_ZN4core3num7dec2flt3num18from_str_unchecked17he42035e68b7358fbE.exit
_ZN4core3num7dec2flt3num18from_str_unchecked17he42035e68b7358fbE.exit: ; preds = %_ZN4core3num7dec2flt3num18from_str_unchecked17he42035e68b7358fbE.exit.loopexit, %bb26
%result.0.lcssa.i = phi i64 [ 0, %bb26 ], [ %.lcssa, %_ZN4core3num7dec2flt3num18from_str_unchecked17he42035e68b7358fbE.exit.loopexit ]
%cond1 = icmp eq i64 %_9.sroa.0.051.ph, 0
%61 = sub i64 0, %result.0.lcssa.i
%e.0 = select i1 %cond1, i64 %result.0.lcssa.i, i64 %61
%62 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 0
store i64 0, i64* %62, align 8
%_59.sroa.0.0..sroa_idx = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 2
%_59.sroa.0.0..sroa_cast34 = bitcast [5 x i64]* %_59.sroa.0.0..sroa_idx to i8**
store i8* %1, i8** %_59.sroa.0.0..sroa_cast34, align 8
%_59.sroa.4.0..sroa_idx36 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 2, i64 1
store i64 %2, i64* %_59.sroa.4.0..sroa_idx36, align 8
%_59.sroa.5.0..sroa_idx38 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 2, i64 2
%_59.sroa.5.0..sroa_cast39 = bitcast i64* %_59.sroa.5.0..sroa_idx38 to i8**
store i8* %3, i8** %_59.sroa.5.0..sroa_cast39, align 8
%_59.sroa.6.0..sroa_idx41 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 2, i64 3
store i64 %4, i64* %_59.sroa.6.0..sroa_idx41, align 8
%_59.sroa.7.0..sroa_idx43 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i64 0, i32 2, i64 4
store i64 %e.0, i64* %_59.sroa.7.0..sroa_idx43, align 8
br label %bb13
}
; Function Attrs: norecurse nounwind readonly uwtable
define %str_slice @_ZN4core3num7dec2flt15ParseFloatError13__description17h29d56b1f00a69a99E(%"num::dec2flt::ParseFloatError"* noalias nocapture readonly dereferenceable(1)) unnamed_addr #3 {
start:
%1 = getelementptr inbounds %"num::dec2flt::ParseFloatError", %"num::dec2flt::ParseFloatError"* %0, i64 0, i32 0
%2 = load i8, i8* %1, align 1, !range !10
%cond = icmp eq i8 %2, 0
%.sink2 = select i1 %cond, i8* getelementptr inbounds ([36 x i8], [36 x i8]* @str.1F, i64 0, i64 0), i8* getelementptr inbounds ([21 x i8], [21 x i8]* @str.1E, i64 0, i64 0)
%.sink = select i1 %cond, i64 36, i64 21
%3 = insertvalue %str_slice undef, i8* %.sink2, 0
%4 = insertvalue %str_slice %3, i64 %.sink, 1
ret %str_slice %4
}
; Function Attrs: uwtable
define i8 @"_ZN74_$LT$core..num..dec2flt..ParseFloatError$u20$as$u20$core..fmt..Display$GT$3fmt17h138ae9c514c91860E"(%"num::dec2flt::ParseFloatError"* noalias nocapture readonly dereferenceable(1), %"fmt::Formatter"* nocapture readonly dereferenceable(96)) unnamed_addr #2 {
start:
%2 = getelementptr inbounds %"num::dec2flt::ParseFloatError", %"num::dec2flt::ParseFloatError"* %0, i64 0, i32 0
%3 = load i8, i8* %2, align 1, !range !10, !alias.scope !783
%cond.i = icmp eq i8 %3, 0
%.sink2.i = select i1 %cond.i, i8* getelementptr inbounds ([36 x i8], [36 x i8]* @str.1F, i64 0, i64 0), i8* getelementptr inbounds ([21 x i8], [21 x i8]* @str.1E, i64 0, i64 0)
%.sink.i = select i1 %cond.i, i64 36, i64 21
%4 = tail call i8 @_ZN4core3fmt9Formatter3pad17hfc084f6039bdcf14E(%"fmt::Formatter"* nonnull dereferenceable(96) %1, i8* noalias nonnull readonly %.sink2.i, i64 %.sink.i)
ret i8 %4
}
; Function Attrs: norecurse nounwind readnone uwtable
define i8 @_ZN4core3num7dec2flt9pfe_empty17h9e4ffbd4745660d5E() unnamed_addr #0 {
start:
ret i8 0
}
; Function Attrs: norecurse nounwind readnone uwtable
define i8 @_ZN4core3num7dec2flt11pfe_invalid17h3d07967cc70d0e72E() unnamed_addr #0 {
start:
ret i8 1
}
; Function Attrs: uwtable
define void @_ZN4core3num7dec2flt12extract_sign17hcb6fd30327a65028E({ i8, [7 x i8], %str_slice, [0 x i8] }* noalias nocapture sret dereferenceable(24), i8* noalias nonnull readonly, i64) unnamed_addr #2 personality i32 (...)* @rust_eh_personality {
start:
%3 = icmp eq i64 %2, 0
br i1 %3, label %panic, label %bb2, !prof !614
bb2: ; preds = %start
%4 = load i8, i8* %1, align 1
switch i8 %4, label %bb6 [
i8 43, label %bb3
i8 45, label %bb4
]
bb3: ; preds = %bb2
%5 = icmp eq i64 %2, 1
%.pre.i.i.i = getelementptr inbounds i8, i8* %1, i64 1
br i1 %5, label %"_ZN4core3str6traits105_$LT$impl$u20$core..ops..index..Index$LT$core..ops..range..RangeFrom$LT$usize$GT$$GT$$u20$for$u20$str$GT$5index17ha7ea426a174ef03aE.exit", label %"_ZN41_$LT$str$u20$as$u20$core..str..StrExt$GT$16is_char_boundary17h3ef40dd1e6aff0e4E.exit.i.i.i"
"_ZN41_$LT$str$u20$as$u20$core..str..StrExt$GT$16is_char_boundary17h3ef40dd1e6aff0e4E.exit.i.i.i": ; preds = %bb3
%6 = load i8, i8* %.pre.i.i.i, align 1, !alias.scope !786, !noalias !793
%7 = icmp sgt i8 %6, -65
br i1 %7, label %"_ZN4core3str6traits105_$LT$impl$u20$core..ops..index..Index$LT$core..ops..range..RangeFrom$LT$usize$GT$$GT$$u20$for$u20$str$GT$5index17ha7ea426a174ef03aE.exit", label %bb3.i.i
bb3.i.i: ; preds = %"_ZN41_$LT$str$u20$as$u20$core..str..StrExt$GT$16is_char_boundary17h3ef40dd1e6aff0e4E.exit.i.i.i"
tail call void @_ZN4core3str16slice_error_fail17hdd81680e29a21005E(i8* noalias nonnull readonly %1, i64 %2, i64 1, i64 %2), !noalias !795
unreachable
"_ZN4core3str6traits105_$LT$impl$u20$core..ops..index..Index$LT$core..ops..range..RangeFrom$LT$usize$GT$$GT$$u20$for$u20$str$GT$5index17ha7ea426a174ef03aE.exit": ; preds = %bb3, %"_ZN41_$LT$str$u20$as$u20$core..str..StrExt$GT$16is_char_boundary17h3ef40dd1e6aff0e4E.exit.i.i.i"
%8 = add i64 %2, -1
br label %bb6
bb4: ; preds = %bb2
%9 = icmp eq i64 %2, 1
%.pre.i.i.i10 = getelementptr inbounds i8, i8* %1, i64 1
br i1 %9, label %"_ZN4core3str6traits105_$LT$impl$u20$core..ops..index..Index$LT$core..ops..range..RangeFrom$LT$usize$GT$$GT$$u20$for$u20$str$GT$5index17ha7ea426a174ef03aE.exit19", label %"_ZN41_$LT$str$u20$as$u20$core..str..StrExt$GT$16is_char_boundary17h3ef40dd1e6aff0e4E.exit.i.i.i14"
"_ZN41_$LT$str$u20$as$u20$core..str..StrExt$GT$16is_char_boundary17h3ef40dd1e6aff0e4E.exit.i.i.i14": ; preds = %bb4
%10 = load i8, i8* %.pre.i.i.i10, align 1, !alias.scope !801, !noalias !808
%11 = icmp sgt i8 %10, -65
br i1 %11, label %"_ZN4core3str6traits105_$LT$impl$u20$core..ops..index..Index$LT$core..ops..range..RangeFrom$LT$usize$GT$$GT$$u20$for$u20$str$GT$5index17ha7ea426a174ef03aE.exit19", label %bb3.i.i15
bb3.i.i15: ; preds = %"_ZN41_$LT$str$u20$as$u20$core..str..StrExt$GT$16is_char_boundary17h3ef40dd1e6aff0e4E.exit.i.i.i14"
tail call void @_ZN4core3str16slice_error_fail17hdd81680e29a21005E(i8* noalias nonnull readonly %1, i64 %2, i64 1, i64 %2), !noalias !810
unreachable
"_ZN4core3str6traits105_$LT$impl$u20$core..ops..index..Index$LT$core..ops..range..RangeFrom$LT$usize$GT$$GT$$u20$for$u20$str$GT$5index17ha7ea426a174ef03aE.exit19": ; preds = %bb4, %"_ZN41_$LT$str$u20$as$u20$core..str..StrExt$GT$16is_char_boundary17h3ef40dd1e6aff0e4E.exit.i.i.i14"
%12 = add i64 %2, -1
br label %bb6
bb6: ; preds = %bb2, %"_ZN4core3str6traits105_$LT$impl$u20$core..ops..index..Index$LT$core..ops..range..RangeFrom$LT$usize$GT$$GT$$u20$for$u20$str$GT$5index17ha7ea426a174ef03aE.exit", %"_ZN4core3str6traits105_$LT$impl$u20$core..ops..index..Index$LT$core..ops..range..RangeFrom$LT$usize$GT$$GT$$u20$for$u20$str$GT$5index17ha7ea426a174ef03aE.exit19"
%.sink = phi i8 [ 0, %"_ZN4core3str6traits105_$LT$impl$u20$core..ops..index..Index$LT$core..ops..range..RangeFrom$LT$usize$GT$$GT$$u20$for$u20$str$GT$5index17ha7ea426a174ef03aE.exit" ], [ 1, %"_ZN4core3str6traits105_$LT$impl$u20$core..ops..index..Index$LT$core..ops..range..RangeFrom$LT$usize$GT$$GT$$u20$for$u20$str$GT$5index17ha7ea426a174ef03aE.exit19" ], [ 0, %bb2 ]
%newret.sink = phi i8* [ %.pre.i.i.i, %"_ZN4core3str6traits105_$LT$impl$u20$core..ops..index..Index$LT$core..ops..range..RangeFrom$LT$usize$GT$$GT$$u20$for$u20$str$GT$5index17ha7ea426a174ef03aE.exit" ], [ %.pre.i.i.i10, %"_ZN4core3str6traits105_$LT$impl$u20$core..ops..index..Index$LT$core..ops..range..RangeFrom$LT$usize$GT$$GT$$u20$for$u20$str$GT$5index17ha7ea426a174ef03aE.exit19" ], [ %1, %bb2 ]
%newret3.sink = phi i64 [ %8, %"_ZN4core3str6traits105_$LT$impl$u20$core..ops..index..Index$LT$core..ops..range..RangeFrom$LT$usize$GT$$GT$$u20$for$u20$str$GT$5index17ha7ea426a174ef03aE.exit" ], [ %12, %"_ZN4core3str6traits105_$LT$impl$u20$core..ops..index..Index$LT$core..ops..range..RangeFrom$LT$usize$GT$$GT$$u20$for$u20$str$GT$5index17ha7ea426a174ef03aE.exit19" ], [ %2, %bb2 ]
%13 = getelementptr inbounds { i8, [7 x i8], %str_slice, [0 x i8] }, { i8, [7 x i8], %str_slice, [0 x i8] }* %0, i64 0, i32 0
store i8 %.sink, i8* %13, align 8
%14 = getelementptr inbounds { i8, [7 x i8], %str_slice, [0 x i8] }, { i8, [7 x i8], %str_slice, [0 x i8] }* %0, i64 0, i32 2, i32 0
store i8* %newret.sink, i8** %14, align 8
%15 = getelementptr inbounds { i8, [7 x i8], %str_slice, [0 x i8] }, { i8, [7 x i8], %str_slice, [0 x i8] }* %0, i64 0, i32 2, i32 1
store i64 %newret3.sink, i64* %15, align 8
ret void
panic: ; preds = %start
tail call void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.1H to { %str_slice, [0 x i8], i32, [4 x i8] }*), i64 0, i64 0)
unreachable
}
; Function Attrs: norecurse nounwind readonly uwtable
define i64 @_ZN4core3num7dec2flt25bound_intermediate_digits17h4e418ecdd1b0ce9eE(%"num::dec2flt::parse::Decimal"* noalias nocapture readonly dereferenceable(40), i64) unnamed_addr #3 {
start:
%2 = getelementptr inbounds %"num::dec2flt::parse::Decimal", %"num::dec2flt::parse::Decimal"* %0, i64 0, i32 0, i32 1
%3 = load i64, i64* %2, align 8
%4 = getelementptr inbounds %"num::dec2flt::parse::Decimal", %"num::dec2flt::parse::Decimal"* %0, i64 0, i32 2, i32 1
%5 = load i64, i64* %4, align 8
%6 = add i64 %5, %3
%7 = icmp sgt i64 %1, -1
%8 = sub i64 17, %1
%_0.0.v = select i1 %7, i64 %1, i64 %8
%_0.0 = add i64 %6, %_0.0.v
ret i64 %_0.0
}
; Function Attrs: norecurse nounwind uwtable
define void @_ZN4core3num9diy_float2Fp3mul17h4d42a8616bdefe0cE(%"num::diy_float::Fp"* noalias nocapture sret dereferenceable(16), %"num::diy_float::Fp"* noalias nocapture readonly dereferenceable(16), %"num::diy_float::Fp"* noalias nocapture readonly dereferenceable(16)) unnamed_addr #5 {
start:
%3 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %1, i64 0, i32 0
%4 = load i64, i64* %3, align 8
%5 = lshr i64 %4, 32
%6 = and i64 %4, 4294967295
%7 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %2, i64 0, i32 0
%8 = load i64, i64* %7, align 8
%9 = lshr i64 %8, 32
%10 = and i64 %8, 4294967295
%11 = mul nuw i64 %9, %5
%12 = mul nuw i64 %9, %6
%13 = mul nuw i64 %10, %5
%14 = mul nuw i64 %10, %6
%15 = lshr i64 %14, 32
%16 = and i64 %13, 4294967295
%17 = and i64 %12, 4294967295
%18 = add nuw nsw i64 %16, 2147483648
%19 = add nuw nsw i64 %18, %15
%20 = add nuw nsw i64 %19, %17
%21 = lshr i64 %13, 32
%22 = add i64 %21, %11
%23 = lshr i64 %12, 32
%24 = add i64 %22, %23
%25 = lshr i64 %20, 32
%26 = add i64 %24, %25
%27 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %1, i64 0, i32 2
%28 = load i16, i16* %27, align 2
%29 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %2, i64 0, i32 2
%30 = load i16, i16* %29, align 2
%31 = add i16 %28, 64
%32 = add i16 %31, %30
%33 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %0, i64 0, i32 0
store i64 %26, i64* %33, align 8
%34 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %0, i64 0, i32 2
store i16 %32, i16* %34, align 8
ret void
}
; Function Attrs: norecurse nounwind uwtable
define void @_ZN4core3num9diy_float2Fp9normalize17heb96c9b399a361feE(%"num::diy_float::Fp"* noalias nocapture sret dereferenceable(16), %"num::diy_float::Fp"* noalias nocapture readonly dereferenceable(16)) unnamed_addr #5 {
start:
%2 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %1, i64 0, i32 0
%3 = load i64, i64* %2, align 8
%4 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %1, i64 0, i32 2
%5 = load i16, i16* %4, align 2
%6 = icmp ult i64 %3, 4294967296
%7 = shl i64 %3, 32
%8 = add i16 %5, -32
%e.0 = select i1 %6, i16 %8, i16 %5
%f.0 = select i1 %6, i64 %7, i64 %3
%9 = icmp ult i64 %f.0, 281474976710656
%10 = shl i64 %f.0, 16
%11 = add i16 %e.0, -16
%e.1 = select i1 %9, i16 %11, i16 %e.0
%f.1 = select i1 %9, i64 %10, i64 %f.0
%12 = icmp ult i64 %f.1, 72057594037927936
%13 = shl i64 %f.1, 8
%14 = add i16 %e.1, -8
%e.2 = select i1 %12, i16 %14, i16 %e.1
%f.2 = select i1 %12, i64 %13, i64 %f.1
%15 = icmp ult i64 %f.2, 1152921504606846976
%16 = shl i64 %f.2, 4
%17 = add i16 %e.2, -4
%e.3 = select i1 %15, i16 %17, i16 %e.2
%f.3 = select i1 %15, i64 %16, i64 %f.2
%18 = icmp ult i64 %f.3, 4611686018427387904
%19 = shl i64 %f.3, 2
%20 = add i16 %e.3, -2
%e.4 = select i1 %18, i16 %20, i16 %e.3
%f.4 = select i1 %18, i64 %19, i64 %f.3
%f.4.lobit = ashr i64 %f.4, 63
%21 = trunc i64 %f.4.lobit to i16
%.not = xor i16 %21, -1
%e.5 = add i16 %e.4, %.not
%f.4.lobit21 = lshr i64 %f.4, 63
%f.4.lobit21.not = xor i64 %f.4.lobit21, 1
%f.5 = shl i64 %f.4, %f.4.lobit21.not
%22 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %0, i64 0, i32 0
store i64 %f.5, i64* %22, align 8
%23 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %0, i64 0, i32 2
store i16 %e.5, i16* %23, align 8
ret void
}
; Function Attrs: uwtable
define void @_ZN4core3num9diy_float2Fp12normalize_to17h26f99aa0f555e1f5E(%"num::diy_float::Fp"* noalias nocapture sret dereferenceable(16), %"num::diy_float::Fp"* noalias readonly dereferenceable(16), i16) unnamed_addr #2 {
start:
%_36 = alloca [2 x %"fmt::ArgumentV1"], align 8
%_31 = alloca %"fmt::Arguments", align 8
%right_val = alloca i64*, align 8
%left_val = alloca i64*, align 8
%_19 = alloca i64, align 8
%3 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %1, i64 0, i32 2
%4 = load i16, i16* %3, align 2
%5 = sub i16 %4, %2
%6 = icmp slt i16 %5, 0
br i1 %6, label %bb1, label %bb2
bb1: ; preds = %start
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4core3num9diy_float2Fp12normalize_to14_MSG_FILE_LINE17h2f2c83a59b92ffc4E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb2: ; preds = %start
%7 = bitcast i64* %_19 to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %7)
%8 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %1, i64 0, i32 0
%9 = load i64, i64* %8, align 8
%10 = and i16 %5, 63
%11 = zext i16 %10 to i64
%12 = shl i64 %9, %11
%13 = lshr i64 %12, %11
store i64 %13, i64* %_19, align 8
%14 = bitcast i64** %left_val to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %14)
store i64* %_19, i64** %left_val, align 8
%15 = bitcast i64** %right_val to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %15)
store i64* %8, i64** %right_val, align 8
%16 = icmp eq i64 %13, %9
br i1 %16, label %bb4, label %bb3
bb3: ; preds = %bb2
%17 = bitcast %"fmt::Arguments"* %_31 to i8*
call void @llvm.lifetime.start(i64 48, i8* nonnull %17)
%18 = bitcast [2 x %"fmt::ArgumentV1"]* %_36 to i8*
call void @llvm.lifetime.start(i64 32, i8* nonnull %18)
%19 = ptrtoint i64** %left_val to i64
%20 = ptrtoint i64** %right_val to i64
%21 = bitcast [2 x %"fmt::ArgumentV1"]* %_36 to i64*
store i64 %19, i64* %21, align 8
%22 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36, i64 0, i64 0, i32 2
%23 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %22 to i64*
store i64 ptrtoint (i8 (i64**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h4bdf30265ff44dd6E" to i64), i64* %23, align 8
%24 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36, i64 0, i64 1
%25 = bitcast %"fmt::ArgumentV1"* %24 to i64*
store i64 %20, i64* %25, align 8
%26 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36, i64 0, i64 1, i32 2
%27 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %26 to i64*
store i64 ptrtoint (i8 (i64**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h4bdf30265ff44dd6E" to i64), i64* %27, align 8
%28 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36, i64 0, i64 0
%29 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.3x, i64 0, i64 0), %str_slice** %29, align 8, !alias.scope !816, !noalias !819
%30 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31, i64 0, i32 0, i32 1
store i64 3, i64* %30, align 8, !alias.scope !816, !noalias !819
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31, i64 0, i32 2, i32 0, i32 0
store %"fmt::rt::v1::Argument"* null, %"fmt::rt::v1::Argument"** %_6.sroa.0.0..sroa_idx.i, align 8, !alias.scope !816, !noalias !819
%31 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31, i64 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %28, %"fmt::ArgumentV1"** %31, align 8, !alias.scope !816, !noalias !819
%32 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31, i64 0, i32 4, i32 1
store i64 2, i64* %32, align 8, !alias.scope !816, !noalias !819
call void @_ZN4core9panicking9panic_fmt17hcc78ce34a0090adfE(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %_31, { %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @_ZN4core3num9diy_float2Fp12normalize_to10_FILE_LINE17h8c3fc481ef3ad19aE to { %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb4: ; preds = %bb2
call void @llvm.lifetime.end(i64 8, i8* nonnull %15)
call void @llvm.lifetime.end(i64 8, i8* nonnull %14)
call void @llvm.lifetime.end(i64 8, i8* nonnull %7)
%33 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %0, i64 0, i32 0
store i64 %12, i64* %33, align 8
%34 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %0, i64 0, i32 2
store i16 %2, i16* %34, align 8
ret void
}
; Function Attrs: norecurse nounwind readnone uwtable
define %str_slice @_ZN4core3num15TryFromIntError13__description17h6571dc03e12bb0a5E(%"num::TryFromIntError"* noalias nocapture readonly) unnamed_addr #0 {
start:
ret %str_slice { i8* getelementptr inbounds ([47 x i8], [47 x i8]* @str.1M, i32 0, i32 0), i64 47 }
}
; Function Attrs: uwtable
define i8 @"_ZN65_$LT$core..num..TryFromIntError$u20$as$u20$core..fmt..Display$GT$3fmt17hae2fe97e72bd9fa6E"(%"num::TryFromIntError"* noalias nocapture readonly, %"fmt::Formatter"* nocapture readonly dereferenceable(96)) unnamed_addr #2 {
start:
%2 = tail call i8 @_ZN4core3fmt9Formatter3pad17hfc084f6039bdcf14E(%"fmt::Formatter"* nonnull dereferenceable(96) %1, i8* noalias nonnull readonly getelementptr inbounds ([47 x i8], [47 x i8]* @str.1M, i64 0, i64 0), i64 47)
ret i8 %2
}
; Function Attrs: uwtable
define internal fastcc void @_ZN4core3num14from_str_radix17h0221f5ad2927d846E(%"result::Result<u64, num::ParseIntError>"* noalias nocapture sret dereferenceable(16), i8* noalias nonnull readonly, i64, i32) unnamed_addr #2 {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 8
%_12 = alloca %"fmt::Arguments", align 8
%radix = alloca i32, align 4
%4 = bitcast i32* %radix to i8*
call void @llvm.lifetime.start(i64 4, i8* nonnull %4)
store i32 %3, i32* %radix, align 4
%.off = add i32 %3, -2
%not. = icmp ugt i32 %.off, 34
br i1 %not., label %bb5, label %bb6
bb5: ; preds = %start
%5 = bitcast %"fmt::Arguments"* %_12 to i8*
call void @llvm.lifetime.start(i64 48, i8* nonnull %5)
%6 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 16, i8* nonnull %6)
%7 = ptrtoint i32* %radix to i64
%8 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i64*
store i64 %7, i64* %8, align 8
%9 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i64 0, i64 0, i32 2
%10 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %9 to i64*
store i64 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h19eb6d5ffb2a02a3E" to i64), i64* %10, align 8
%11 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i64 0, i64 0
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9B, i64 0, i64 0), %str_slice** %12, align 8, !alias.scope !822, !noalias !825
%13 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 0, i32 1
store i64 1, i64* %13, align 8, !alias.scope !822, !noalias !825
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 2, i32 0, i32 0
store %"fmt::rt::v1::Argument"* null, %"fmt::rt::v1::Argument"** %_6.sroa.0.0..sroa_idx.i, align 8, !alias.scope !822, !noalias !825
%14 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %11, %"fmt::ArgumentV1"** %14, align 8, !alias.scope !822, !noalias !825
%15 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 4, i32 1
store i64 1, i64* %15, align 8, !alias.scope !822, !noalias !825
call void @_ZN4core9panicking9panic_fmt17hcc78ce34a0090adfE(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %_12, { %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @_ZN4core3num14from_str_radix10_FILE_LINE17hfef39fd500266a2eE to { %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb6: ; preds = %start
%16 = icmp eq i64 %2, 0
br i1 %16, label %bb13, label %bb18
bb12: ; preds = %bb66, %bb13
ret void
bb13.loopexit: ; preds = %bb40, %bb45, %bb9.i59, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68"
%.sink.ph = phi i8 [ 1, %bb9.i59 ], [ 2, %bb45 ], [ 2, %bb40 ], [ 1, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68" ]
br label %bb13
bb13: ; preds = %bb13.loopexit, %bb6, %bb23
%.sink = phi i8 [ 0, %bb23 ], [ 0, %bb6 ], [ %.sink.ph, %bb13.loopexit ]
%17 = getelementptr inbounds %"result::Result<u64, num::ParseIntError>", %"result::Result<u64, num::ParseIntError>"* %0, i64 0, i32 0
store i8 1, i8* %17, align 8
%18 = getelementptr inbounds %"result::Result<u64, num::ParseIntError>", %"result::Result<u64, num::ParseIntError>"* %0, i64 0, i32 1, i64 0
store i8 %.sink, i8* %18, align 1
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
bb18: ; preds = %bb6
%19 = load i8, i8* %1, align 1
%cond = icmp eq i8 %19, 43
br i1 %cond, label %bb23, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader"
bb23: ; preds = %bb18
%20 = getelementptr inbounds i8, i8* %1, i64 1
%21 = add i64 %2, -1
%22 = icmp eq i64 %21, 0
br i1 %22, label %bb13, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader": ; preds = %bb18, %bb23
%.sink117 = phi i64 [ %21, %bb23 ], [ %2, %bb18 ]
%.sink13116 = phi i8* [ %20, %bb23 ], [ %1, %bb18 ]
%23 = getelementptr inbounds i8, i8* %.sink13116, i64 %.sink117
%24 = zext i32 %3 to i64
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader", %bb49
%result.0127 = phi i64 [ %38, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader" ]
%iter.sroa.0.0126 = phi i8* [ %25, %bb49 ], [ %.sink13116, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader" ]
%25 = getelementptr inbounds i8, i8* %iter.sroa.0.0126, i64 1
%26 = load i8, i8* %iter.sroa.0.0126, align 1
%27 = zext i8 %26 to i32
%.off.i54 = add nsw i32 %27, -48
%28 = icmp ult i32 %.off.i54, 10
br i1 %28, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68", label %bb7.i57
bb7.i57: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71"
%.off5.i56 = add nsw i32 %27, -97
%29 = icmp ult i32 %.off5.i56, 26
br i1 %29, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68", label %bb9.i59
bb9.i59: ; preds = %bb7.i57
%.off6.i58 = add nsw i32 %27, -65
%30 = icmp ult i32 %.off6.i58, 26
br i1 %30, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68", label %bb13.loopexit
"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71", %bb7.i57, %bb9.i59
%.sink.i60 = phi i32 [ -87, %bb7.i57 ], [ -55, %bb9.i59 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71" ]
%31 = add nsw i32 %.sink.i60, %27
%32 = icmp ult i32 %31, %3
%phitmp.i62 = zext i32 %31 to i64
br i1 %32, label %bb40, label %bb13.loopexit
bb40: ; preds = %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68"
%33 = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %result.0127, i64 %24) #16
%34 = extractvalue { i64, i1 } %33, 1
br i1 %34, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%35 = extractvalue { i64, i1 } %33, 0
%36 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %35, i64 %phitmp.i62) #16
%37 = extractvalue { i64, i1 } %36, 1
br i1 %37, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%38 = extractvalue { i64, i1 } %36, 0
%39 = icmp eq i8* %25, %23
br i1 %39, label %bb66, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71"
bb66: ; preds = %bb49
%40 = getelementptr inbounds %"result::Result<u64, num::ParseIntError>", %"result::Result<u64, num::ParseIntError>"* %0, i64 0, i32 0
store i8 0, i8* %40, align 8
%41 = getelementptr inbounds %"result::Result<u64, num::ParseIntError>", %"result::Result<u64, num::ParseIntError>"* %0, i64 0, i32 2, i64 0
store i64 %38, i64* %41, align 8
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
}
; Function Attrs: uwtable
define internal fastcc i32 @_ZN4core3num14from_str_radix17h122bbee47974215eE(i8* noalias nonnull readonly, i64, i32) unnamed_addr #2 {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 8
%_12 = alloca %"fmt::Arguments", align 8
%radix = alloca i32, align 4
%3 = bitcast i32* %radix to i8*
call void @llvm.lifetime.start(i64 4, i8* nonnull %3)
store i32 %2, i32* %radix, align 4
%.off = add i32 %2, -2
%not. = icmp ugt i32 %.off, 34
br i1 %not., label %bb5, label %bb6
bb5: ; preds = %start
%4 = bitcast %"fmt::Arguments"* %_12 to i8*
call void @llvm.lifetime.start(i64 48, i8* nonnull %4)
%5 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 16, i8* nonnull %5)
%6 = ptrtoint i32* %radix to i64
%7 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i64*
store i64 %6, i64* %7, align 8
%8 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i64 0, i64 0, i32 2
%9 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %8 to i64*
store i64 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h19eb6d5ffb2a02a3E" to i64), i64* %9, align 8
%10 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i64 0, i64 0
%11 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9B, i64 0, i64 0), %str_slice** %11, align 8, !alias.scope !828, !noalias !831
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 0, i32 1
store i64 1, i64* %12, align 8, !alias.scope !828, !noalias !831
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 2, i32 0, i32 0
store %"fmt::rt::v1::Argument"* null, %"fmt::rt::v1::Argument"** %_6.sroa.0.0..sroa_idx.i, align 8, !alias.scope !828, !noalias !831
%13 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %10, %"fmt::ArgumentV1"** %13, align 8, !alias.scope !828, !noalias !831
%14 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 4, i32 1
store i64 1, i64* %14, align 8, !alias.scope !828, !noalias !831
call void @_ZN4core9panicking9panic_fmt17hcc78ce34a0090adfE(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %_12, { %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @_ZN4core3num14from_str_radix10_FILE_LINE17hfef39fd500266a2eE to { %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb6: ; preds = %start
%15 = icmp eq i64 %1, 0
br i1 %15, label %bb13, label %bb18
bb12: ; preds = %bb66, %bb13
%_0.sroa.18.0 = phi i32 [ 0, %bb13 ], [ %phitmp96, %bb66 ]
%_0.sroa.10.0 = phi i32 [ %_0.sroa.10.1, %bb13 ], [ 0, %bb66 ]
%_0.sroa.0.0 = phi i32 [ 1, %bb13 ], [ 0, %bb66 ]
%_0.sroa.10.0.insert.ext.masked = and i32 %_0.sroa.10.0, 65280
%_0.sroa.0.0.insert.mask = or i32 %_0.sroa.10.0.insert.ext.masked, %_0.sroa.18.0
%_0.sroa.0.0.insert.insert = or i32 %_0.sroa.0.0.insert.mask, %_0.sroa.0.0
ret i32 %_0.sroa.0.0.insert.insert
bb13.loopexit: ; preds = %bb40, %bb45, %bb9.i115, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit124"
%_0.sroa.10.1.ph = phi i32 [ 256, %bb9.i115 ], [ 512, %bb45 ], [ 512, %bb40 ], [ 256, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit124" ]
br label %bb13
bb13.loopexit189: ; preds = %bb61, %bb57, %bb9.i, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit"
%_0.sroa.10.1.ph190 = phi i32 [ 256, %bb9.i ], [ 768, %bb61 ], [ 768, %bb57 ], [ 256, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit" ]
br label %bb13
bb13: ; preds = %bb13.loopexit189, %bb13.loopexit, %bb23, %bb6
%_0.sroa.10.1 = phi i32 [ 0, %bb6 ], [ 0, %bb23 ], [ %_0.sroa.10.1.ph, %bb13.loopexit ], [ %_0.sroa.10.1.ph190, %bb13.loopexit189 ]
call void @llvm.lifetime.end(i64 4, i8* nonnull %3)
br label %bb12
bb18: ; preds = %bb6
%16 = load i8, i8* %0, align 1
switch i8 %16, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.lr.ph.thread" [
i8 43, label %bb23
i8 45, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit"
]
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.lr.ph.thread": ; preds = %bb18
%17 = getelementptr inbounds i8, i8* %0, i64 %1
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.preheader"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit": ; preds = %bb18
br label %bb23
bb23: ; preds = %bb18, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit"
%.sink20 = phi i1 [ false, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit" ], [ true, %bb18 ]
%.sink17 = getelementptr inbounds i8, i8* %0, i64 1
%.sink = add i64 %1, -1
%18 = icmp eq i64 %.sink, 0
br i1 %18, label %bb13, label %bb28
bb28: ; preds = %bb23
br i1 %.sink20, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.lr.ph", label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.lr.ph"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.lr.ph": ; preds = %bb28
%19 = getelementptr inbounds i8, i8* %.sink17, i64 %.sink
%20 = icmp ugt i32 %2, 36
br i1 %20, label %bb1.i109.split, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.lr.ph.thread", %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.lr.ph"
%21 = phi i8* [ %17, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.lr.ph.thread" ], [ %19, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.lr.ph" ]
%.sink17157160178 = phi i8* [ %0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.lr.ph.thread" ], [ %.sink17, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.lr.ph" ]
%22 = trunc i32 %2 to i16
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.lr.ph": ; preds = %bb28
%.ptr173 = getelementptr inbounds i8, i8* %0, i64 %1
%23 = icmp ugt i32 %2, 36
%24 = trunc i32 %2 to i16
br i1 %23, label %bb1.i.split, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.lr.ph"
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.preheader", %bb49
%iter.sroa.0.0169 = phi i8* [ %25, %bb49 ], [ %.sink17157160178, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.preheader" ]
%result.0168 = phi i16 [ %38, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.preheader" ]
%25 = getelementptr inbounds i8, i8* %iter.sroa.0.0169, i64 1
%26 = load i8, i8* %iter.sroa.0.0169, align 1
%27 = zext i8 %26 to i32
%.off.i110 = add nsw i32 %27, -48
%28 = icmp ult i32 %.off.i110, 10
br i1 %28, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit124", label %bb7.i113
bb1.i109.split: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.lr.ph"
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he73e9f4f7105b3e4E" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb7.i113: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127"
%.off5.i112 = add nsw i32 %27, -97
%29 = icmp ult i32 %.off5.i112, 26
br i1 %29, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit124", label %bb9.i115
bb9.i115: ; preds = %bb7.i113
%.off6.i114 = add nsw i32 %27, -65
%30 = icmp ult i32 %.off6.i114, 26
br i1 %30, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit124", label %bb13.loopexit
"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit124": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127", %bb7.i113, %bb9.i115
%.sink.i116 = phi i32 [ -87, %bb7.i113 ], [ -55, %bb9.i115 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127" ]
%31 = add nsw i32 %.sink.i116, %27
%32 = icmp ult i32 %31, %2
%phitmp.i118 = trunc i32 %31 to i16
br i1 %32, label %bb40, label %bb13.loopexit
bb40: ; preds = %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit124"
%33 = tail call { i16, i1 } @llvm.smul.with.overflow.i16(i16 %result.0168, i16 %22) #16
%34 = extractvalue { i16, i1 } %33, 1
br i1 %34, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%35 = extractvalue { i16, i1 } %33, 0
%36 = tail call { i16, i1 } @llvm.sadd.with.overflow.i16(i16 %35, i16 %phitmp.i118) #16
%37 = extractvalue { i16, i1 } %36, 1
br i1 %37, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%38 = extractvalue { i16, i1 } %36, 0
%39 = icmp eq i8* %25, %21
br i1 %39, label %bb66.loopexit, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader", %bb65
%iter1.sroa.0.0171 = phi i8* [ %40, %bb65 ], [ %.sink17, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader" ]
%result.1170 = phi i16 [ %53, %bb65 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader" ]
%40 = getelementptr inbounds i8, i8* %iter1.sroa.0.0171, i64 1
%41 = load i8, i8* %iter1.sroa.0.0171, align 1
%42 = zext i8 %41 to i32
%.off.i = add nsw i32 %42, -48
%43 = icmp ult i32 %.off.i, 10
br i1 %43, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit", label %bb7.i
bb1.i.split: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.lr.ph"
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he73e9f4f7105b3e4E" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb7.i: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit"
%.off5.i = add nsw i32 %42, -97
%44 = icmp ult i32 %.off5.i, 26
br i1 %44, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit", label %bb9.i
bb9.i: ; preds = %bb7.i
%.off6.i = add nsw i32 %42, -65
%45 = icmp ult i32 %.off6.i, 26
br i1 %45, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit", label %bb13.loopexit189
"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit", %bb7.i, %bb9.i
%.sink.i = phi i32 [ -87, %bb7.i ], [ -55, %bb9.i ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit" ]
%46 = add nsw i32 %.sink.i, %42
%47 = icmp ult i32 %46, %2
%phitmp.i = trunc i32 %46 to i16
br i1 %47, label %bb57, label %bb13.loopexit189
bb57: ; preds = %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit"
%48 = tail call { i16, i1 } @llvm.smul.with.overflow.i16(i16 %result.1170, i16 %24) #16
%49 = extractvalue { i16, i1 } %48, 1
br i1 %49, label %bb13.loopexit189, label %bb61
bb61: ; preds = %bb57
%50 = extractvalue { i16, i1 } %48, 0
%51 = tail call { i16, i1 } @llvm.ssub.with.overflow.i16(i16 %50, i16 %phitmp.i) #16
%52 = extractvalue { i16, i1 } %51, 1
br i1 %52, label %bb13.loopexit189, label %bb65
bb65: ; preds = %bb61
%53 = extractvalue { i16, i1 } %51, 0
%54 = icmp eq i8* %40, %.ptr173
br i1 %54, label %bb66.loopexit191, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit"
bb66.loopexit: ; preds = %bb49
br label %bb66
bb66.loopexit191: ; preds = %bb65
br label %bb66
bb66: ; preds = %bb66.loopexit191, %bb66.loopexit
%result.2 = phi i16 [ %38, %bb66.loopexit ], [ %53, %bb66.loopexit191 ]
call void @llvm.lifetime.end(i64 4, i8* nonnull %3)
%phitmp = zext i16 %result.2 to i32
%phitmp96 = shl nuw i32 %phitmp, 16
br label %bb12
}
; Function Attrs: uwtable
define internal fastcc void @_ZN4core3num14from_str_radix17h5ec33e5b7b1c4f4dE(%"result::Result<isize, num::ParseIntError>"* noalias nocapture sret dereferenceable(16), i8* noalias nonnull readonly, i64, i32) unnamed_addr #2 {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 8
%_12 = alloca %"fmt::Arguments", align 8
%radix = alloca i32, align 4
%4 = bitcast i32* %radix to i8*
call void @llvm.lifetime.start(i64 4, i8* nonnull %4)
store i32 %3, i32* %radix, align 4
%.off = add i32 %3, -2
%not. = icmp ugt i32 %.off, 34
br i1 %not., label %bb5, label %bb6
bb5: ; preds = %start
%5 = bitcast %"fmt::Arguments"* %_12 to i8*
call void @llvm.lifetime.start(i64 48, i8* nonnull %5)
%6 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 16, i8* nonnull %6)
%7 = ptrtoint i32* %radix to i64
%8 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i64*
store i64 %7, i64* %8, align 8
%9 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i64 0, i64 0, i32 2
%10 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %9 to i64*
store i64 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h19eb6d5ffb2a02a3E" to i64), i64* %10, align 8
%11 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i64 0, i64 0
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9B, i64 0, i64 0), %str_slice** %12, align 8, !alias.scope !834, !noalias !837
%13 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 0, i32 1
store i64 1, i64* %13, align 8, !alias.scope !834, !noalias !837
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 2, i32 0, i32 0
store %"fmt::rt::v1::Argument"* null, %"fmt::rt::v1::Argument"** %_6.sroa.0.0..sroa_idx.i, align 8, !alias.scope !834, !noalias !837
%14 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %11, %"fmt::ArgumentV1"** %14, align 8, !alias.scope !834, !noalias !837
%15 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 4, i32 1
store i64 1, i64* %15, align 8, !alias.scope !834, !noalias !837
call void @_ZN4core9panicking9panic_fmt17hcc78ce34a0090adfE(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %_12, { %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @_ZN4core3num14from_str_radix10_FILE_LINE17hfef39fd500266a2eE to { %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb6: ; preds = %start
%16 = icmp eq i64 %2, 0
br i1 %16, label %bb13, label %bb18
bb12: ; preds = %bb66, %bb13
ret void
bb13.loopexit: ; preds = %bb40, %bb45, %bb9.i59, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68"
%.sink125.ph = phi i8 [ 1, %bb9.i59 ], [ 2, %bb45 ], [ 2, %bb40 ], [ 1, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68" ]
br label %bb13
bb13.loopexit156: ; preds = %bb57, %bb61, %bb9.i, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit"
%.sink125.ph157 = phi i8 [ 1, %bb9.i ], [ 3, %bb61 ], [ 3, %bb57 ], [ 1, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit" ]
br label %bb13
bb13: ; preds = %bb13.loopexit156, %bb13.loopexit, %bb6, %bb23
%.sink125 = phi i8 [ 0, %bb23 ], [ 0, %bb6 ], [ %.sink125.ph, %bb13.loopexit ], [ %.sink125.ph157, %bb13.loopexit156 ]
%17 = getelementptr inbounds %"result::Result<isize, num::ParseIntError>", %"result::Result<isize, num::ParseIntError>"* %0, i64 0, i32 0
store i8 1, i8* %17, align 8
%18 = getelementptr inbounds %"result::Result<isize, num::ParseIntError>", %"result::Result<isize, num::ParseIntError>"* %0, i64 0, i32 1, i64 0
store i8 %.sink125, i8* %18, align 1
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
bb18: ; preds = %bb6
%19 = load i8, i8* %1, align 1
switch i8 %19, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph.thread" [
i8 43, label %bb23
i8 45, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit"
]
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph.thread": ; preds = %bb18
%20 = getelementptr inbounds i8, i8* %1, i64 %2
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit": ; preds = %bb18
br label %bb23
bb23: ; preds = %bb18, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit"
%.sink16 = phi i1 [ false, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit" ], [ true, %bb18 ]
%.sink13 = getelementptr inbounds i8, i8* %1, i64 1
%.sink = add i64 %2, -1
%21 = icmp eq i64 %.sink, 0
br i1 %21, label %bb13, label %bb28
bb28: ; preds = %bb23
br i1 %.sink16, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph", label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.lr.ph"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph": ; preds = %bb28
%22 = getelementptr inbounds i8, i8* %.sink13, i64 %.sink
%23 = icmp ugt i32 %3, 36
br i1 %23, label %bb1.i53.split, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph.thread", %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph"
%24 = phi i8* [ %20, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph.thread" ], [ %22, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph" ]
%.sink13117120145 = phi i8* [ %1, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph.thread" ], [ %.sink13, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph" ]
%25 = zext i32 %3 to i64
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.lr.ph": ; preds = %bb28
%.ptr140 = getelementptr inbounds i8, i8* %1, i64 %2
%26 = icmp ugt i32 %3, 36
%27 = zext i32 %3 to i64
br i1 %26, label %bb1.i.split, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.lr.ph"
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader", %bb49
%result.0136 = phi i64 [ %41, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader" ]
%iter.sroa.0.0135 = phi i8* [ %28, %bb49 ], [ %.sink13117120145, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader" ]
%28 = getelementptr inbounds i8, i8* %iter.sroa.0.0135, i64 1
%29 = load i8, i8* %iter.sroa.0.0135, align 1
%30 = zext i8 %29 to i32
%.off.i54 = add nsw i32 %30, -48
%31 = icmp ult i32 %.off.i54, 10
br i1 %31, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68", label %bb7.i57
bb1.i53.split: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph"
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he73e9f4f7105b3e4E" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb7.i57: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71"
%.off5.i56 = add nsw i32 %30, -97
%32 = icmp ult i32 %.off5.i56, 26
br i1 %32, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68", label %bb9.i59
bb9.i59: ; preds = %bb7.i57
%.off6.i58 = add nsw i32 %30, -65
%33 = icmp ult i32 %.off6.i58, 26
br i1 %33, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68", label %bb13.loopexit
"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71", %bb7.i57, %bb9.i59
%.sink.i60 = phi i32 [ -87, %bb7.i57 ], [ -55, %bb9.i59 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71" ]
%34 = add nsw i32 %.sink.i60, %30
%35 = icmp ult i32 %34, %3
%phitmp.i62 = zext i32 %34 to i64
br i1 %35, label %bb40, label %bb13.loopexit
bb40: ; preds = %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68"
%36 = tail call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %result.0136, i64 %25) #16
%37 = extractvalue { i64, i1 } %36, 1
br i1 %37, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%38 = extractvalue { i64, i1 } %36, 0
%39 = tail call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %38, i64 %phitmp.i62) #16
%40 = extractvalue { i64, i1 } %39, 1
br i1 %40, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%41 = extractvalue { i64, i1 } %39, 0
%42 = icmp eq i8* %28, %24
br i1 %42, label %bb66.loopexit, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader", %bb65
%result.1138 = phi i64 [ %56, %bb65 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader" ]
%iter1.sroa.0.0137 = phi i8* [ %43, %bb65 ], [ %.sink13, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader" ]
%43 = getelementptr inbounds i8, i8* %iter1.sroa.0.0137, i64 1
%44 = load i8, i8* %iter1.sroa.0.0137, align 1
%45 = zext i8 %44 to i32
%.off.i = add nsw i32 %45, -48
%46 = icmp ult i32 %.off.i, 10
br i1 %46, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit", label %bb7.i
bb1.i.split: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.lr.ph"
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he73e9f4f7105b3e4E" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb7.i: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit"
%.off5.i = add nsw i32 %45, -97
%47 = icmp ult i32 %.off5.i, 26
br i1 %47, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit", label %bb9.i
bb9.i: ; preds = %bb7.i
%.off6.i = add nsw i32 %45, -65
%48 = icmp ult i32 %.off6.i, 26
br i1 %48, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit", label %bb13.loopexit156
"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit", %bb7.i, %bb9.i
%.sink.i = phi i32 [ -87, %bb7.i ], [ -55, %bb9.i ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit" ]
%49 = add nsw i32 %.sink.i, %45
%50 = icmp ult i32 %49, %3
%phitmp.i = zext i32 %49 to i64
br i1 %50, label %bb57, label %bb13.loopexit156
bb57: ; preds = %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit"
%51 = tail call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %result.1138, i64 %27) #16
%52 = extractvalue { i64, i1 } %51, 1
br i1 %52, label %bb13.loopexit156, label %bb61
bb61: ; preds = %bb57
%53 = extractvalue { i64, i1 } %51, 0
%54 = tail call { i64, i1 } @llvm.ssub.with.overflow.i64(i64 %53, i64 %phitmp.i) #16
%55 = extractvalue { i64, i1 } %54, 1
br i1 %55, label %bb13.loopexit156, label %bb65
bb65: ; preds = %bb61
%56 = extractvalue { i64, i1 } %54, 0
%57 = icmp eq i8* %43, %.ptr140
br i1 %57, label %bb66.loopexit158, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit"
bb66.loopexit: ; preds = %bb49
br label %bb66
bb66.loopexit158: ; preds = %bb65
br label %bb66
bb66: ; preds = %bb66.loopexit158, %bb66.loopexit
%result.2 = phi i64 [ %41, %bb66.loopexit ], [ %56, %bb66.loopexit158 ]
%58 = getelementptr inbounds %"result::Result<isize, num::ParseIntError>", %"result::Result<isize, num::ParseIntError>"* %0, i64 0, i32 0
store i8 0, i8* %58, align 8
%59 = getelementptr inbounds %"result::Result<isize, num::ParseIntError>", %"result::Result<isize, num::ParseIntError>"* %0, i64 0, i32 2, i64 0
store i64 %result.2, i64* %59, align 8
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
}
; Function Attrs: uwtable
define internal fastcc i64 @_ZN4core3num14from_str_radix17h5f57b304d002fcbcE(i8* noalias nonnull readonly, i64, i32) unnamed_addr #2 {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 8
%_12 = alloca %"fmt::Arguments", align 8
%radix = alloca i32, align 4
%3 = bitcast i32* %radix to i8*
call void @llvm.lifetime.start(i64 4, i8* nonnull %3)
store i32 %2, i32* %radix, align 4
%.off = add i32 %2, -2
%not. = icmp ugt i32 %.off, 34
br i1 %not., label %bb5, label %bb6
bb5: ; preds = %start
%4 = bitcast %"fmt::Arguments"* %_12 to i8*
call void @llvm.lifetime.start(i64 48, i8* nonnull %4)
%5 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 16, i8* nonnull %5)
%6 = ptrtoint i32* %radix to i64
%7 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i64*
store i64 %6, i64* %7, align 8
%8 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i64 0, i64 0, i32 2
%9 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %8 to i64*
store i64 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h19eb6d5ffb2a02a3E" to i64), i64* %9, align 8
%10 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i64 0, i64 0
%11 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9B, i64 0, i64 0), %str_slice** %11, align 8, !alias.scope !840, !noalias !843
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 0, i32 1
store i64 1, i64* %12, align 8, !alias.scope !840, !noalias !843
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 2, i32 0, i32 0
store %"fmt::rt::v1::Argument"* null, %"fmt::rt::v1::Argument"** %_6.sroa.0.0..sroa_idx.i, align 8, !alias.scope !840, !noalias !843
%13 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %10, %"fmt::ArgumentV1"** %13, align 8, !alias.scope !840, !noalias !843
%14 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 4, i32 1
store i64 1, i64* %14, align 8, !alias.scope !840, !noalias !843
call void @_ZN4core9panicking9panic_fmt17hcc78ce34a0090adfE(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %_12, { %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @_ZN4core3num14from_str_radix10_FILE_LINE17hfef39fd500266a2eE to { %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb6: ; preds = %start
%15 = icmp eq i64 %1, 0
br i1 %15, label %bb13, label %bb18
bb12: ; preds = %bb66, %bb13
%_0.sroa.1836.0 = phi i64 [ 0, %bb13 ], [ %phitmp, %bb66 ]
%_0.sroa.10.0 = phi i64 [ %_0.sroa.10.1, %bb13 ], [ 0, %bb66 ]
%_0.sroa.0.0 = phi i64 [ 1, %bb13 ], [ 0, %bb66 ]
%_0.sroa.10.0.insert.ext.masked = and i64 %_0.sroa.10.0, 65280
%_0.sroa.0.0.insert.mask = or i64 %_0.sroa.10.0.insert.ext.masked, %_0.sroa.1836.0
%_0.sroa.0.0.insert.insert = or i64 %_0.sroa.0.0.insert.mask, %_0.sroa.0.0
ret i64 %_0.sroa.0.0.insert.insert
bb13.loopexit: ; preds = %bb40, %bb45, %bb9.i116, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit125"
%_0.sroa.10.1.ph = phi i64 [ 256, %bb9.i116 ], [ 512, %bb45 ], [ 512, %bb40 ], [ 256, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit125" ]
br label %bb13
bb13: ; preds = %bb13.loopexit, %bb23, %bb6
%_0.sroa.10.1 = phi i64 [ 0, %bb6 ], [ 0, %bb23 ], [ %_0.sroa.10.1.ph, %bb13.loopexit ]
call void @llvm.lifetime.end(i64 4, i8* nonnull %3)
br label %bb12
bb18: ; preds = %bb6
%16 = load i8, i8* %0, align 1
%cond = icmp eq i8 %16, 43
br i1 %cond, label %bb23, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.preheader"
bb23: ; preds = %bb18
%17 = getelementptr inbounds i8, i8* %0, i64 1
%18 = add i64 %1, -1
%19 = icmp eq i64 %18, 0
br i1 %19, label %bb13, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.preheader": ; preds = %bb18, %bb23
%.sink158 = phi i64 [ %18, %bb23 ], [ %1, %bb18 ]
%.sink17157 = phi i8* [ %17, %bb23 ], [ %0, %bb18 ]
%20 = getelementptr inbounds i8, i8* %.sink17157, i64 %.sink158
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.preheader", %bb49
%iter.sroa.0.0162 = phi i8* [ %21, %bb49 ], [ %.sink17157, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.preheader" ]
%result.0161 = phi i32 [ %34, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.preheader" ]
%21 = getelementptr inbounds i8, i8* %iter.sroa.0.0162, i64 1
%22 = load i8, i8* %iter.sroa.0.0162, align 1
%23 = zext i8 %22 to i32
%.off.i111 = add nsw i32 %23, -48
%24 = icmp ult i32 %.off.i111, 10
br i1 %24, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit125", label %bb7.i114
bb7.i114: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128"
%.off5.i113 = add nsw i32 %23, -97
%25 = icmp ult i32 %.off5.i113, 26
br i1 %25, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit125", label %bb9.i116
bb9.i116: ; preds = %bb7.i114
%.off6.i115 = add nsw i32 %23, -65
%26 = icmp ult i32 %.off6.i115, 26
br i1 %26, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit125", label %bb13.loopexit
"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit125": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128", %bb7.i114, %bb9.i116
%.sink.i117 = phi i32 [ -87, %bb7.i114 ], [ -55, %bb9.i116 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128" ]
%27 = add nsw i32 %.sink.i117, %23
%28 = icmp ult i32 %27, %2
br i1 %28, label %bb40, label %bb13.loopexit
bb40: ; preds = %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit125"
%29 = tail call { i32, i1 } @llvm.umul.with.overflow.i32(i32 %result.0161, i32 %2) #16
%30 = extractvalue { i32, i1 } %29, 1
br i1 %30, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%31 = extractvalue { i32, i1 } %29, 0
%32 = tail call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %31, i32 %27) #16
%33 = extractvalue { i32, i1 } %32, 1
br i1 %33, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%34 = extractvalue { i32, i1 } %32, 0
%35 = icmp eq i8* %21, %20
br i1 %35, label %bb66, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128"
bb66: ; preds = %bb49
%phitmp163 = zext i32 %34 to i64
%phitmp = shl nuw i64 %phitmp163, 32
call void @llvm.lifetime.end(i64 4, i8* nonnull %3)
br label %bb12
}
; Function Attrs: uwtable
define internal fastcc i16 @_ZN4core3num14from_str_radix17h788c018b634aa41aE(i8* noalias nonnull readonly, i64, i32) unnamed_addr #2 {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 8
%_12 = alloca %"fmt::Arguments", align 8
%radix = alloca i32, align 4
%3 = bitcast i32* %radix to i8*
call void @llvm.lifetime.start(i64 4, i8* nonnull %3)
store i32 %2, i32* %radix, align 4
%.off = add i32 %2, -2
%not. = icmp ugt i32 %.off, 34
br i1 %not., label %bb5, label %bb6
bb5: ; preds = %start
%4 = bitcast %"fmt::Arguments"* %_12 to i8*
call void @llvm.lifetime.start(i64 48, i8* nonnull %4)
%5 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 16, i8* nonnull %5)
%6 = ptrtoint i32* %radix to i64
%7 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i64*
store i64 %6, i64* %7, align 8
%8 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i64 0, i64 0, i32 2
%9 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %8 to i64*
store i64 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h19eb6d5ffb2a02a3E" to i64), i64* %9, align 8
%10 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i64 0, i64 0
%11 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9B, i64 0, i64 0), %str_slice** %11, align 8, !alias.scope !846, !noalias !849
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 0, i32 1
store i64 1, i64* %12, align 8, !alias.scope !846, !noalias !849
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 2, i32 0, i32 0
store %"fmt::rt::v1::Argument"* null, %"fmt::rt::v1::Argument"** %_6.sroa.0.0..sroa_idx.i, align 8, !alias.scope !846, !noalias !849
%13 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %10, %"fmt::ArgumentV1"** %13, align 8, !alias.scope !846, !noalias !849
%14 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 4, i32 1
store i64 1, i64* %14, align 8, !alias.scope !846, !noalias !849
call void @_ZN4core9panicking9panic_fmt17hcc78ce34a0090adfE(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %_12, { %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @_ZN4core3num14from_str_radix10_FILE_LINE17hfef39fd500266a2eE to { %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb6: ; preds = %start
%15 = icmp eq i64 %1, 0
br i1 %15, label %bb13, label %bb18
bb12: ; preds = %bb66, %bb13
%_0.sroa.10.0 = phi i8 [ %_0.sroa.10.1, %bb13 ], [ %35, %bb66 ]
%_0.sroa.0.0 = phi i16 [ 1, %bb13 ], [ 0, %bb66 ]
%_0.sroa.10.0.insert.ext = zext i8 %_0.sroa.10.0 to i16
%_0.sroa.10.0.insert.shift = shl nuw i16 %_0.sroa.10.0.insert.ext, 8
%_0.sroa.0.0.insert.insert = or i16 %_0.sroa.10.0.insert.shift, %_0.sroa.0.0
ret i16 %_0.sroa.0.0.insert.insert
bb13.loopexit: ; preds = %bb40, %bb45, %bb9.i82, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit91"
%_0.sroa.10.1.ph = phi i8 [ 1, %bb9.i82 ], [ 2, %bb45 ], [ 2, %bb40 ], [ 1, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit91" ]
br label %bb13
bb13: ; preds = %bb13.loopexit, %bb23, %bb6
%_0.sroa.10.1 = phi i8 [ 0, %bb6 ], [ 0, %bb23 ], [ %_0.sroa.10.1.ph, %bb13.loopexit ]
call void @llvm.lifetime.end(i64 4, i8* nonnull %3)
br label %bb12
bb18: ; preds = %bb6
%16 = load i8, i8* %0, align 1
%cond = icmp eq i8 %16, 43
br i1 %cond, label %bb23, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.preheader"
bb23: ; preds = %bb18
%17 = getelementptr inbounds i8, i8* %0, i64 1
%18 = add i64 %1, -1
%19 = icmp eq i64 %18, 0
br i1 %19, label %bb13, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.preheader": ; preds = %bb18, %bb23
%.sink120 = phi i64 [ %18, %bb23 ], [ %1, %bb18 ]
%.sink17119 = phi i8* [ %17, %bb23 ], [ %0, %bb18 ]
%20 = getelementptr inbounds i8, i8* %.sink17119, i64 %.sink120
%21 = trunc i32 %2 to i8
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.preheader", %bb49
%iter.sroa.0.0124 = phi i8* [ %22, %bb49 ], [ %.sink17119, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.preheader" ]
%result.0123 = phi i8 [ %35, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.preheader" ]
%22 = getelementptr inbounds i8, i8* %iter.sroa.0.0124, i64 1
%23 = load i8, i8* %iter.sroa.0.0124, align 1
%24 = zext i8 %23 to i32
%.off.i77 = add nsw i32 %24, -48
%25 = icmp ult i32 %.off.i77, 10
br i1 %25, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit91", label %bb7.i80
bb7.i80: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94"
%.off5.i79 = add nsw i32 %24, -97
%26 = icmp ult i32 %.off5.i79, 26
br i1 %26, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit91", label %bb9.i82
bb9.i82: ; preds = %bb7.i80
%.off6.i81 = add nsw i32 %24, -65
%27 = icmp ult i32 %.off6.i81, 26
br i1 %27, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit91", label %bb13.loopexit
"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit91": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94", %bb7.i80, %bb9.i82
%.sink.i83 = phi i32 [ -87, %bb7.i80 ], [ -55, %bb9.i82 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94" ]
%28 = add nsw i32 %.sink.i83, %24
%29 = icmp ult i32 %28, %2
%phitmp.i85 = trunc i32 %28 to i8
br i1 %29, label %bb40, label %bb13.loopexit
bb40: ; preds = %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit91"
%30 = tail call { i8, i1 } @llvm.umul.with.overflow.i8(i8 %result.0123, i8 %21) #16
%31 = extractvalue { i8, i1 } %30, 1
br i1 %31, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%32 = extractvalue { i8, i1 } %30, 0
%33 = tail call { i8, i1 } @llvm.uadd.with.overflow.i8(i8 %32, i8 %phitmp.i85) #16
%34 = extractvalue { i8, i1 } %33, 1
br i1 %34, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%35 = extractvalue { i8, i1 } %33, 0
%36 = icmp eq i8* %22, %20
br i1 %36, label %bb66, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94"
bb66: ; preds = %bb49
call void @llvm.lifetime.end(i64 4, i8* nonnull %3)
br label %bb12
}
; Function Attrs: uwtable
define internal fastcc void @_ZN4core3num14from_str_radix17h87330e1ee4b3450bE(%"result::Result<i128, num::ParseIntError>"* noalias nocapture sret dereferenceable(24), i8* noalias nonnull readonly, i64, i32) unnamed_addr #2 {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 8
%_12 = alloca %"fmt::Arguments", align 8
%radix = alloca i32, align 4
%4 = bitcast i32* %radix to i8*
call void @llvm.lifetime.start(i64 4, i8* nonnull %4)
store i32 %3, i32* %radix, align 4
%.off = add i32 %3, -2
%not. = icmp ugt i32 %.off, 34
br i1 %not., label %bb5, label %bb6
bb5: ; preds = %start
%5 = bitcast %"fmt::Arguments"* %_12 to i8*
call void @llvm.lifetime.start(i64 48, i8* nonnull %5)
%6 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 16, i8* nonnull %6)
%7 = ptrtoint i32* %radix to i64
%8 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i64*
store i64 %7, i64* %8, align 8
%9 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i64 0, i64 0, i32 2
%10 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %9 to i64*
store i64 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h19eb6d5ffb2a02a3E" to i64), i64* %10, align 8
%11 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i64 0, i64 0
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9B, i64 0, i64 0), %str_slice** %12, align 8, !alias.scope !852, !noalias !855
%13 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 0, i32 1
store i64 1, i64* %13, align 8, !alias.scope !852, !noalias !855
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 2, i32 0, i32 0
store %"fmt::rt::v1::Argument"* null, %"fmt::rt::v1::Argument"** %_6.sroa.0.0..sroa_idx.i, align 8, !alias.scope !852, !noalias !855
%14 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %11, %"fmt::ArgumentV1"** %14, align 8, !alias.scope !852, !noalias !855
%15 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 4, i32 1
store i64 1, i64* %15, align 8, !alias.scope !852, !noalias !855
call void @_ZN4core9panicking9panic_fmt17hcc78ce34a0090adfE(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %_12, { %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @_ZN4core3num14from_str_radix10_FILE_LINE17hfef39fd500266a2eE to { %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb6: ; preds = %start
%16 = icmp eq i64 %2, 0
br i1 %16, label %bb13, label %bb18
bb12: ; preds = %bb66, %bb13
ret void
bb13.loopexit: ; preds = %bb40, %bb45, %bb9.i59, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68"
%.sink125.ph = phi i8 [ 1, %bb9.i59 ], [ 2, %bb45 ], [ 2, %bb40 ], [ 1, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68" ]
br label %bb13
bb13.loopexit156: ; preds = %bb57, %bb61, %bb9.i, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit"
%.sink125.ph157 = phi i8 [ 1, %bb9.i ], [ 3, %bb61 ], [ 3, %bb57 ], [ 1, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit" ]
br label %bb13
bb13: ; preds = %bb13.loopexit156, %bb13.loopexit, %bb6, %bb23
%.sink125 = phi i8 [ 0, %bb23 ], [ 0, %bb6 ], [ %.sink125.ph, %bb13.loopexit ], [ %.sink125.ph157, %bb13.loopexit156 ]
%17 = getelementptr inbounds %"result::Result<i128, num::ParseIntError>", %"result::Result<i128, num::ParseIntError>"* %0, i64 0, i32 0
store i8 1, i8* %17, align 8
%18 = getelementptr inbounds %"result::Result<i128, num::ParseIntError>", %"result::Result<i128, num::ParseIntError>"* %0, i64 0, i32 1, i64 0
store i8 %.sink125, i8* %18, align 1
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
bb18: ; preds = %bb6
%19 = load i8, i8* %1, align 1
switch i8 %19, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph.thread" [
i8 43, label %bb23
i8 45, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit"
]
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph.thread": ; preds = %bb18
%20 = getelementptr inbounds i8, i8* %1, i64 %2
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit": ; preds = %bb18
br label %bb23
bb23: ; preds = %bb18, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit"
%.sink16 = phi i1 [ false, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit" ], [ true, %bb18 ]
%.sink13 = getelementptr inbounds i8, i8* %1, i64 1
%.sink = add i64 %2, -1
%21 = icmp eq i64 %.sink, 0
br i1 %21, label %bb13, label %bb28
bb28: ; preds = %bb23
br i1 %.sink16, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph", label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.lr.ph"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph": ; preds = %bb28
%22 = getelementptr inbounds i8, i8* %.sink13, i64 %.sink
%23 = icmp ugt i32 %3, 36
br i1 %23, label %bb1.i53.split, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph.thread", %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph"
%24 = phi i8* [ %20, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph.thread" ], [ %22, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph" ]
%.sink13117120145 = phi i8* [ %1, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph.thread" ], [ %.sink13, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph" ]
%25 = zext i32 %3 to i128
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.lr.ph": ; preds = %bb28
%.ptr140 = getelementptr inbounds i8, i8* %1, i64 %2
%26 = icmp ugt i32 %3, 36
%27 = zext i32 %3 to i128
br i1 %26, label %bb1.i.split, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.lr.ph"
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader", %bb49
%result.0136 = phi i128 [ %42, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader" ]
%iter.sroa.0.0135 = phi i8* [ %28, %bb49 ], [ %.sink13117120145, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader" ]
%28 = getelementptr inbounds i8, i8* %iter.sroa.0.0135, i64 1
%29 = load i8, i8* %iter.sroa.0.0135, align 1
%30 = zext i8 %29 to i32
%.off.i54 = add nsw i32 %30, -48
%31 = icmp ult i32 %.off.i54, 10
br i1 %31, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68", label %bb7.i57
bb1.i53.split: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.lr.ph"
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he73e9f4f7105b3e4E" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb7.i57: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71"
%.off5.i56 = add nsw i32 %30, -97
%32 = icmp ult i32 %.off5.i56, 26
br i1 %32, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68", label %bb9.i59
bb9.i59: ; preds = %bb7.i57
%.off6.i58 = add nsw i32 %30, -65
%33 = icmp ult i32 %.off6.i58, 26
br i1 %33, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68", label %bb13.loopexit
"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71", %bb7.i57, %bb9.i59
%.sink.i60 = phi i32 [ -87, %bb7.i57 ], [ -55, %bb9.i59 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71" ]
%34 = add nsw i32 %.sink.i60, %30
%35 = icmp ult i32 %34, %3
br i1 %35, label %bb40, label %bb13.loopexit
bb40: ; preds = %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68"
%36 = tail call { i128, i1 } @llvm.smul.with.overflow.i128(i128 %result.0136, i128 %25) #16
%37 = extractvalue { i128, i1 } %36, 1
br i1 %37, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%38 = extractvalue { i128, i1 } %36, 0
%39 = zext i32 %34 to i128
%40 = tail call { i128, i1 } @llvm.sadd.with.overflow.i128(i128 %38, i128 %39) #16
%41 = extractvalue { i128, i1 } %40, 1
br i1 %41, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%42 = extractvalue { i128, i1 } %40, 0
%43 = icmp eq i8* %28, %24
br i1 %43, label %bb66.loopexit, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader", %bb65
%result.1138 = phi i128 [ %58, %bb65 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader" ]
%iter1.sroa.0.0137 = phi i8* [ %44, %bb65 ], [ %.sink13, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader" ]
%44 = getelementptr inbounds i8, i8* %iter1.sroa.0.0137, i64 1
%45 = load i8, i8* %iter1.sroa.0.0137, align 1
%46 = zext i8 %45 to i32
%.off.i = add nsw i32 %46, -48
%47 = icmp ult i32 %.off.i, 10
br i1 %47, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit", label %bb7.i
bb1.i.split: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.lr.ph"
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he73e9f4f7105b3e4E" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb7.i: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit"
%.off5.i = add nsw i32 %46, -97
%48 = icmp ult i32 %.off5.i, 26
br i1 %48, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit", label %bb9.i
bb9.i: ; preds = %bb7.i
%.off6.i = add nsw i32 %46, -65
%49 = icmp ult i32 %.off6.i, 26
br i1 %49, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit", label %bb13.loopexit156
"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit", %bb7.i, %bb9.i
%.sink.i = phi i32 [ -87, %bb7.i ], [ -55, %bb9.i ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit" ]
%50 = add nsw i32 %.sink.i, %46
%51 = icmp ult i32 %50, %3
br i1 %51, label %bb57, label %bb13.loopexit156
bb57: ; preds = %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit"
%52 = tail call { i128, i1 } @llvm.smul.with.overflow.i128(i128 %result.1138, i128 %27) #16
%53 = extractvalue { i128, i1 } %52, 1
br i1 %53, label %bb13.loopexit156, label %bb61
bb61: ; preds = %bb57
%54 = extractvalue { i128, i1 } %52, 0
%55 = zext i32 %50 to i128
%56 = tail call { i128, i1 } @llvm.ssub.with.overflow.i128(i128 %54, i128 %55) #16
%57 = extractvalue { i128, i1 } %56, 1
br i1 %57, label %bb13.loopexit156, label %bb65
bb65: ; preds = %bb61
%58 = extractvalue { i128, i1 } %56, 0
%59 = icmp eq i8* %44, %.ptr140
br i1 %59, label %bb66.loopexit158, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit"
bb66.loopexit: ; preds = %bb49
br label %bb66
bb66.loopexit158: ; preds = %bb65
br label %bb66
bb66: ; preds = %bb66.loopexit158, %bb66.loopexit
%result.2 = phi i128 [ %42, %bb66.loopexit ], [ %58, %bb66.loopexit158 ]
%60 = getelementptr inbounds %"result::Result<i128, num::ParseIntError>", %"result::Result<i128, num::ParseIntError>"* %0, i64 0, i32 0
store i8 0, i8* %60, align 8
%61 = getelementptr inbounds %"result::Result<i128, num::ParseIntError>", %"result::Result<i128, num::ParseIntError>"* %0, i64 0, i32 2
%62 = bitcast [2 x i64]* %61 to i128*
store i128 %result.2, i128* %62, align 8
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
}
; Function Attrs: uwtable
define internal fastcc i64 @_ZN4core3num14from_str_radix17h9110b871fdb4e19cE(i8* noalias nonnull readonly, i64, i32) unnamed_addr #2 {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 8
%_12 = alloca %"fmt::Arguments", align 8
%radix = alloca i32, align 4
%3 = bitcast i32* %radix to i8*
call void @llvm.lifetime.start(i64 4, i8* nonnull %3)
store i32 %2, i32* %radix, align 4
%.off = add i32 %2, -2
%not. = icmp ugt i32 %.off, 34
br i1 %not., label %bb5, label %bb6
bb5: ; preds = %start
%4 = bitcast %"fmt::Arguments"* %_12 to i8*
call void @llvm.lifetime.start(i64 48, i8* nonnull %4)
%5 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 16, i8* nonnull %5)
%6 = ptrtoint i32* %radix to i64
%7 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i64*
store i64 %6, i64* %7, align 8
%8 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i64 0, i64 0, i32 2
%9 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %8 to i64*
store i64 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h19eb6d5ffb2a02a3E" to i64), i64* %9, align 8
%10 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i64 0, i64 0
%11 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9B, i64 0, i64 0), %str_slice** %11, align 8, !alias.scope !858, !noalias !861
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 0, i32 1
store i64 1, i64* %12, align 8, !alias.scope !858, !noalias !861
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 2, i32 0, i32 0
store %"fmt::rt::v1::Argument"* null, %"fmt::rt::v1::Argument"** %_6.sroa.0.0..sroa_idx.i, align 8, !alias.scope !858, !noalias !861
%13 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %10, %"fmt::ArgumentV1"** %13, align 8, !alias.scope !858, !noalias !861
%14 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 4, i32 1
store i64 1, i64* %14, align 8, !alias.scope !858, !noalias !861
call void @_ZN4core9panicking9panic_fmt17hcc78ce34a0090adfE(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %_12, { %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @_ZN4core3num14from_str_radix10_FILE_LINE17hfef39fd500266a2eE to { %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb6: ; preds = %start
%15 = icmp eq i64 %1, 0
br i1 %15, label %bb13, label %bb18
bb12: ; preds = %bb66, %bb13
%_0.sroa.1836.0 = phi i64 [ 0, %bb13 ], [ %phitmp97, %bb66 ]
%_0.sroa.10.0 = phi i64 [ %_0.sroa.10.1, %bb13 ], [ 0, %bb66 ]
%_0.sroa.0.0 = phi i64 [ 1, %bb13 ], [ 0, %bb66 ]
%_0.sroa.10.0.insert.ext.masked = and i64 %_0.sroa.10.0, 65280
%_0.sroa.0.0.insert.mask = or i64 %_0.sroa.10.0.insert.ext.masked, %_0.sroa.1836.0
%_0.sroa.0.0.insert.insert = or i64 %_0.sroa.0.0.insert.mask, %_0.sroa.0.0
ret i64 %_0.sroa.0.0.insert.insert
bb13.loopexit: ; preds = %bb40, %bb45, %bb9.i116, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit125"
%_0.sroa.10.1.ph = phi i64 [ 256, %bb9.i116 ], [ 512, %bb45 ], [ 512, %bb40 ], [ 256, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit125" ]
br label %bb13
bb13.loopexit190: ; preds = %bb61, %bb57, %bb9.i, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit"
%_0.sroa.10.1.ph191 = phi i64 [ 256, %bb9.i ], [ 768, %bb61 ], [ 768, %bb57 ], [ 256, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit" ]
br label %bb13
bb13: ; preds = %bb13.loopexit190, %bb13.loopexit, %bb23, %bb6
%_0.sroa.10.1 = phi i64 [ 0, %bb6 ], [ 0, %bb23 ], [ %_0.sroa.10.1.ph, %bb13.loopexit ], [ %_0.sroa.10.1.ph191, %bb13.loopexit190 ]
call void @llvm.lifetime.end(i64 4, i8* nonnull %3)
br label %bb12
bb18: ; preds = %bb6
%16 = load i8, i8* %0, align 1
switch i8 %16, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.lr.ph.thread" [
i8 43, label %bb23
i8 45, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit"
]
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.lr.ph.thread": ; preds = %bb18
%17 = getelementptr inbounds i8, i8* %0, i64 %1
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.preheader"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit": ; preds = %bb18
br label %bb23
bb23: ; preds = %bb18, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit"
%.sink20 = phi i1 [ false, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit" ], [ true, %bb18 ]
%.sink17 = getelementptr inbounds i8, i8* %0, i64 1
%.sink = add i64 %1, -1
%18 = icmp eq i64 %.sink, 0
br i1 %18, label %bb13, label %bb28
bb28: ; preds = %bb23
br i1 %.sink20, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.lr.ph", label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.lr.ph"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.lr.ph": ; preds = %bb28
%19 = getelementptr inbounds i8, i8* %.sink17, i64 %.sink
%20 = icmp ugt i32 %2, 36
br i1 %20, label %bb1.i110.split, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.lr.ph.thread", %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.lr.ph"
%21 = phi i8* [ %17, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.lr.ph.thread" ], [ %19, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.lr.ph" ]
%.sink17158161179 = phi i8* [ %0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.lr.ph.thread" ], [ %.sink17, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.lr.ph" ]
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.lr.ph": ; preds = %bb28
%.ptr174 = getelementptr inbounds i8, i8* %0, i64 %1
%22 = icmp ugt i32 %2, 36
br i1 %22, label %bb1.i.split, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.lr.ph"
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.preheader", %bb49
%iter.sroa.0.0170 = phi i8* [ %23, %bb49 ], [ %.sink17158161179, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.preheader" ]
%result.0169 = phi i32 [ %36, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.preheader" ]
%23 = getelementptr inbounds i8, i8* %iter.sroa.0.0170, i64 1
%24 = load i8, i8* %iter.sroa.0.0170, align 1
%25 = zext i8 %24 to i32
%.off.i111 = add nsw i32 %25, -48
%26 = icmp ult i32 %.off.i111, 10
br i1 %26, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit125", label %bb7.i114
bb1.i110.split: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128.lr.ph"
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he73e9f4f7105b3e4E" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb7.i114: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128"
%.off5.i113 = add nsw i32 %25, -97
%27 = icmp ult i32 %.off5.i113, 26
br i1 %27, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit125", label %bb9.i116
bb9.i116: ; preds = %bb7.i114
%.off6.i115 = add nsw i32 %25, -65
%28 = icmp ult i32 %.off6.i115, 26
br i1 %28, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit125", label %bb13.loopexit
"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit125": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128", %bb7.i114, %bb9.i116
%.sink.i117 = phi i32 [ -87, %bb7.i114 ], [ -55, %bb9.i116 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128" ]
%29 = add nsw i32 %.sink.i117, %25
%30 = icmp ult i32 %29, %2
br i1 %30, label %bb40, label %bb13.loopexit
bb40: ; preds = %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit125"
%31 = tail call { i32, i1 } @llvm.smul.with.overflow.i32(i32 %result.0169, i32 %2) #16
%32 = extractvalue { i32, i1 } %31, 1
br i1 %32, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%33 = extractvalue { i32, i1 } %31, 0
%34 = tail call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 %33, i32 %29) #16
%35 = extractvalue { i32, i1 } %34, 1
br i1 %35, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%36 = extractvalue { i32, i1 } %34, 0
%37 = icmp eq i8* %23, %21
br i1 %37, label %bb66.loopexit, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit128"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader", %bb65
%iter1.sroa.0.0172 = phi i8* [ %38, %bb65 ], [ %.sink17, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader" ]
%result.1171 = phi i32 [ %51, %bb65 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader" ]
%38 = getelementptr inbounds i8, i8* %iter1.sroa.0.0172, i64 1
%39 = load i8, i8* %iter1.sroa.0.0172, align 1
%40 = zext i8 %39 to i32
%.off.i = add nsw i32 %40, -48
%41 = icmp ult i32 %.off.i, 10
br i1 %41, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit", label %bb7.i
bb1.i.split: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.lr.ph"
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he73e9f4f7105b3e4E" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb7.i: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit"
%.off5.i = add nsw i32 %40, -97
%42 = icmp ult i32 %.off5.i, 26
br i1 %42, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit", label %bb9.i
bb9.i: ; preds = %bb7.i
%.off6.i = add nsw i32 %40, -65
%43 = icmp ult i32 %.off6.i, 26
br i1 %43, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit", label %bb13.loopexit190
"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit", %bb7.i, %bb9.i
%.sink.i = phi i32 [ -87, %bb7.i ], [ -55, %bb9.i ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit" ]
%44 = add nsw i32 %.sink.i, %40
%45 = icmp ult i32 %44, %2
br i1 %45, label %bb57, label %bb13.loopexit190
bb57: ; preds = %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit"
%46 = tail call { i32, i1 } @llvm.smul.with.overflow.i32(i32 %result.1171, i32 %2) #16
%47 = extractvalue { i32, i1 } %46, 1
br i1 %47, label %bb13.loopexit190, label %bb61
bb61: ; preds = %bb57
%48 = extractvalue { i32, i1 } %46, 0
%49 = tail call { i32, i1 } @llvm.ssub.with.overflow.i32(i32 %48, i32 %44) #16
%50 = extractvalue { i32, i1 } %49, 1
br i1 %50, label %bb13.loopexit190, label %bb65
bb65: ; preds = %bb61
%51 = extractvalue { i32, i1 } %49, 0
%52 = icmp eq i8* %38, %.ptr174
br i1 %52, label %bb66.loopexit192, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit"
bb66.loopexit: ; preds = %bb49
br label %bb66
bb66.loopexit192: ; preds = %bb65
br label %bb66
bb66: ; preds = %bb66.loopexit192, %bb66.loopexit
%result.2 = phi i32 [ %36, %bb66.loopexit ], [ %51, %bb66.loopexit192 ]
call void @llvm.lifetime.end(i64 4, i8* nonnull %3)
%phitmp = zext i32 %result.2 to i64
%phitmp97 = shl nuw i64 %phitmp, 32
br label %bb12
}
; Function Attrs: uwtable
define internal fastcc i32 @_ZN4core3num14from_str_radix17h91c20d15bcb855faE(i8* noalias nonnull readonly, i64, i32) unnamed_addr #2 {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 8
%_12 = alloca %"fmt::Arguments", align 8
%radix = alloca i32, align 4
%3 = bitcast i32* %radix to i8*
call void @llvm.lifetime.start(i64 4, i8* nonnull %3)
store i32 %2, i32* %radix, align 4
%.off = add i32 %2, -2
%not. = icmp ugt i32 %.off, 34
br i1 %not., label %bb5, label %bb6
bb5: ; preds = %start
%4 = bitcast %"fmt::Arguments"* %_12 to i8*
call void @llvm.lifetime.start(i64 48, i8* nonnull %4)
%5 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 16, i8* nonnull %5)
%6 = ptrtoint i32* %radix to i64
%7 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i64*
store i64 %6, i64* %7, align 8
%8 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i64 0, i64 0, i32 2
%9 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %8 to i64*
store i64 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h19eb6d5ffb2a02a3E" to i64), i64* %9, align 8
%10 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i64 0, i64 0
%11 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9B, i64 0, i64 0), %str_slice** %11, align 8, !alias.scope !864, !noalias !867
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 0, i32 1
store i64 1, i64* %12, align 8, !alias.scope !864, !noalias !867
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 2, i32 0, i32 0
store %"fmt::rt::v1::Argument"* null, %"fmt::rt::v1::Argument"** %_6.sroa.0.0..sroa_idx.i, align 8, !alias.scope !864, !noalias !867
%13 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %10, %"fmt::ArgumentV1"** %13, align 8, !alias.scope !864, !noalias !867
%14 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 4, i32 1
store i64 1, i64* %14, align 8, !alias.scope !864, !noalias !867
call void @_ZN4core9panicking9panic_fmt17hcc78ce34a0090adfE(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %_12, { %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @_ZN4core3num14from_str_radix10_FILE_LINE17hfef39fd500266a2eE to { %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb6: ; preds = %start
%15 = icmp eq i64 %1, 0
br i1 %15, label %bb13, label %bb18
bb12: ; preds = %bb66, %bb13
%_0.sroa.18.0 = phi i32 [ 0, %bb13 ], [ %phitmp, %bb66 ]
%_0.sroa.10.0 = phi i32 [ %_0.sroa.10.1, %bb13 ], [ 0, %bb66 ]
%_0.sroa.0.0 = phi i32 [ 1, %bb13 ], [ 0, %bb66 ]
%_0.sroa.10.0.insert.ext.masked = and i32 %_0.sroa.10.0, 65280
%_0.sroa.0.0.insert.mask = or i32 %_0.sroa.10.0.insert.ext.masked, %_0.sroa.18.0
%_0.sroa.0.0.insert.insert = or i32 %_0.sroa.0.0.insert.mask, %_0.sroa.0.0
ret i32 %_0.sroa.0.0.insert.insert
bb13.loopexit: ; preds = %bb40, %bb45, %bb9.i115, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit124"
%_0.sroa.10.1.ph = phi i32 [ 256, %bb9.i115 ], [ 512, %bb45 ], [ 512, %bb40 ], [ 256, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit124" ]
br label %bb13
bb13: ; preds = %bb13.loopexit, %bb23, %bb6
%_0.sroa.10.1 = phi i32 [ 0, %bb6 ], [ 0, %bb23 ], [ %_0.sroa.10.1.ph, %bb13.loopexit ]
call void @llvm.lifetime.end(i64 4, i8* nonnull %3)
br label %bb12
bb18: ; preds = %bb6
%16 = load i8, i8* %0, align 1
%cond = icmp eq i8 %16, 43
br i1 %cond, label %bb23, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.preheader"
bb23: ; preds = %bb18
%17 = getelementptr inbounds i8, i8* %0, i64 1
%18 = add i64 %1, -1
%19 = icmp eq i64 %18, 0
br i1 %19, label %bb13, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.preheader": ; preds = %bb18, %bb23
%.sink157 = phi i64 [ %18, %bb23 ], [ %1, %bb18 ]
%.sink17156 = phi i8* [ %17, %bb23 ], [ %0, %bb18 ]
%20 = getelementptr inbounds i8, i8* %.sink17156, i64 %.sink157
%21 = trunc i32 %2 to i16
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.preheader", %bb49
%iter.sroa.0.0161 = phi i8* [ %22, %bb49 ], [ %.sink17156, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.preheader" ]
%result.0160 = phi i16 [ %35, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127.preheader" ]
%22 = getelementptr inbounds i8, i8* %iter.sroa.0.0161, i64 1
%23 = load i8, i8* %iter.sroa.0.0161, align 1
%24 = zext i8 %23 to i32
%.off.i110 = add nsw i32 %24, -48
%25 = icmp ult i32 %.off.i110, 10
br i1 %25, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit124", label %bb7.i113
bb7.i113: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127"
%.off5.i112 = add nsw i32 %24, -97
%26 = icmp ult i32 %.off5.i112, 26
br i1 %26, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit124", label %bb9.i115
bb9.i115: ; preds = %bb7.i113
%.off6.i114 = add nsw i32 %24, -65
%27 = icmp ult i32 %.off6.i114, 26
br i1 %27, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit124", label %bb13.loopexit
"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit124": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127", %bb7.i113, %bb9.i115
%.sink.i116 = phi i32 [ -87, %bb7.i113 ], [ -55, %bb9.i115 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127" ]
%28 = add nsw i32 %.sink.i116, %24
%29 = icmp ult i32 %28, %2
%phitmp.i118 = trunc i32 %28 to i16
br i1 %29, label %bb40, label %bb13.loopexit
bb40: ; preds = %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit124"
%30 = tail call { i16, i1 } @llvm.umul.with.overflow.i16(i16 %result.0160, i16 %21) #16
%31 = extractvalue { i16, i1 } %30, 1
br i1 %31, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%32 = extractvalue { i16, i1 } %30, 0
%33 = tail call { i16, i1 } @llvm.uadd.with.overflow.i16(i16 %32, i16 %phitmp.i118) #16
%34 = extractvalue { i16, i1 } %33, 1
br i1 %34, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%35 = extractvalue { i16, i1 } %33, 0
%36 = icmp eq i8* %22, %20
br i1 %36, label %bb66, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit127"
bb66: ; preds = %bb49
%phitmp162 = zext i16 %35 to i32
%phitmp = shl nuw i32 %phitmp162, 16
call void @llvm.lifetime.end(i64 4, i8* nonnull %3)
br label %bb12
}
; Function Attrs: uwtable
define internal fastcc void @_ZN4core3num14from_str_radix17h962d29128626e417E(%"result::Result<u128, num::ParseIntError>"* noalias nocapture sret dereferenceable(24), i8* noalias nonnull readonly, i64, i32) unnamed_addr #2 {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 8
%_12 = alloca %"fmt::Arguments", align 8
%radix = alloca i32, align 4
%4 = bitcast i32* %radix to i8*
call void @llvm.lifetime.start(i64 4, i8* nonnull %4)
store i32 %3, i32* %radix, align 4
%.off = add i32 %3, -2
%not. = icmp ugt i32 %.off, 34
br i1 %not., label %bb5, label %bb6
bb5: ; preds = %start
%5 = bitcast %"fmt::Arguments"* %_12 to i8*
call void @llvm.lifetime.start(i64 48, i8* nonnull %5)
%6 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 16, i8* nonnull %6)
%7 = ptrtoint i32* %radix to i64
%8 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i64*
store i64 %7, i64* %8, align 8
%9 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i64 0, i64 0, i32 2
%10 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %9 to i64*
store i64 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h19eb6d5ffb2a02a3E" to i64), i64* %10, align 8
%11 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i64 0, i64 0
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9B, i64 0, i64 0), %str_slice** %12, align 8, !alias.scope !870, !noalias !873
%13 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 0, i32 1
store i64 1, i64* %13, align 8, !alias.scope !870, !noalias !873
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 2, i32 0, i32 0
store %"fmt::rt::v1::Argument"* null, %"fmt::rt::v1::Argument"** %_6.sroa.0.0..sroa_idx.i, align 8, !alias.scope !870, !noalias !873
%14 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %11, %"fmt::ArgumentV1"** %14, align 8, !alias.scope !870, !noalias !873
%15 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 4, i32 1
store i64 1, i64* %15, align 8, !alias.scope !870, !noalias !873
call void @_ZN4core9panicking9panic_fmt17hcc78ce34a0090adfE(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %_12, { %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @_ZN4core3num14from_str_radix10_FILE_LINE17hfef39fd500266a2eE to { %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb6: ; preds = %start
%16 = icmp eq i64 %2, 0
br i1 %16, label %bb13, label %bb18
bb12: ; preds = %bb66, %bb13
ret void
bb13.loopexit: ; preds = %bb40, %bb45, %bb9.i59, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68"
%.sink.ph = phi i8 [ 1, %bb9.i59 ], [ 2, %bb45 ], [ 2, %bb40 ], [ 1, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68" ]
br label %bb13
bb13: ; preds = %bb13.loopexit, %bb6, %bb23
%.sink = phi i8 [ 0, %bb23 ], [ 0, %bb6 ], [ %.sink.ph, %bb13.loopexit ]
%17 = getelementptr inbounds %"result::Result<u128, num::ParseIntError>", %"result::Result<u128, num::ParseIntError>"* %0, i64 0, i32 0
store i8 1, i8* %17, align 8
%18 = getelementptr inbounds %"result::Result<u128, num::ParseIntError>", %"result::Result<u128, num::ParseIntError>"* %0, i64 0, i32 1, i64 0
store i8 %.sink, i8* %18, align 1
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
bb18: ; preds = %bb6
%19 = load i8, i8* %1, align 1
%cond = icmp eq i8 %19, 43
br i1 %cond, label %bb23, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader"
bb23: ; preds = %bb18
%20 = getelementptr inbounds i8, i8* %1, i64 1
%21 = add i64 %2, -1
%22 = icmp eq i64 %21, 0
br i1 %22, label %bb13, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader": ; preds = %bb18, %bb23
%.sink117 = phi i64 [ %21, %bb23 ], [ %2, %bb18 ]
%.sink13116 = phi i8* [ %20, %bb23 ], [ %1, %bb18 ]
%23 = getelementptr inbounds i8, i8* %.sink13116, i64 %.sink117
%24 = zext i32 %3 to i128
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader", %bb49
%result.0127 = phi i128 [ %39, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader" ]
%iter.sroa.0.0126 = phi i8* [ %25, %bb49 ], [ %.sink13116, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71.preheader" ]
%25 = getelementptr inbounds i8, i8* %iter.sroa.0.0126, i64 1
%26 = load i8, i8* %iter.sroa.0.0126, align 1
%27 = zext i8 %26 to i32
%.off.i54 = add nsw i32 %27, -48
%28 = icmp ult i32 %.off.i54, 10
br i1 %28, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68", label %bb7.i57
bb7.i57: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71"
%.off5.i56 = add nsw i32 %27, -97
%29 = icmp ult i32 %.off5.i56, 26
br i1 %29, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68", label %bb9.i59
bb9.i59: ; preds = %bb7.i57
%.off6.i58 = add nsw i32 %27, -65
%30 = icmp ult i32 %.off6.i58, 26
br i1 %30, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68", label %bb13.loopexit
"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71", %bb7.i57, %bb9.i59
%.sink.i60 = phi i32 [ -87, %bb7.i57 ], [ -55, %bb9.i59 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71" ]
%31 = add nsw i32 %.sink.i60, %27
%32 = icmp ult i32 %31, %3
br i1 %32, label %bb40, label %bb13.loopexit
bb40: ; preds = %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit68"
%33 = tail call { i128, i1 } @llvm.umul.with.overflow.i128(i128 %result.0127, i128 %24) #16
%34 = extractvalue { i128, i1 } %33, 1
br i1 %34, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%35 = extractvalue { i128, i1 } %33, 0
%36 = zext i32 %31 to i128
%37 = tail call { i128, i1 } @llvm.uadd.with.overflow.i128(i128 %35, i128 %36) #16
%38 = extractvalue { i128, i1 } %37, 1
br i1 %38, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%39 = extractvalue { i128, i1 } %37, 0
%40 = icmp eq i8* %25, %23
br i1 %40, label %bb66, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit71"
bb66: ; preds = %bb49
%41 = getelementptr inbounds %"result::Result<u128, num::ParseIntError>", %"result::Result<u128, num::ParseIntError>"* %0, i64 0, i32 0
store i8 0, i8* %41, align 8
%42 = getelementptr inbounds %"result::Result<u128, num::ParseIntError>", %"result::Result<u128, num::ParseIntError>"* %0, i64 0, i32 2
%43 = bitcast [2 x i64]* %42 to i128*
store i128 %39, i128* %43, align 8
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
}
; Function Attrs: uwtable
define internal fastcc i16 @_ZN4core3num14from_str_radix17haf5a5abf58e7eb69E(i8* noalias nonnull readonly, i64, i32) unnamed_addr #2 {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 8
%_12 = alloca %"fmt::Arguments", align 8
%radix = alloca i32, align 4
%3 = bitcast i32* %radix to i8*
call void @llvm.lifetime.start(i64 4, i8* nonnull %3)
store i32 %2, i32* %radix, align 4
%.off = add i32 %2, -2
%not. = icmp ugt i32 %.off, 34
br i1 %not., label %bb5, label %bb6
bb5: ; preds = %start
%4 = bitcast %"fmt::Arguments"* %_12 to i8*
call void @llvm.lifetime.start(i64 48, i8* nonnull %4)
%5 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 16, i8* nonnull %5)
%6 = ptrtoint i32* %radix to i64
%7 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i64*
store i64 %6, i64* %7, align 8
%8 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i64 0, i64 0, i32 2
%9 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %8 to i64*
store i64 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h19eb6d5ffb2a02a3E" to i64), i64* %9, align 8
%10 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i64 0, i64 0
%11 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9B, i64 0, i64 0), %str_slice** %11, align 8, !alias.scope !876, !noalias !879
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 0, i32 1
store i64 1, i64* %12, align 8, !alias.scope !876, !noalias !879
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 2, i32 0, i32 0
store %"fmt::rt::v1::Argument"* null, %"fmt::rt::v1::Argument"** %_6.sroa.0.0..sroa_idx.i, align 8, !alias.scope !876, !noalias !879
%13 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %10, %"fmt::ArgumentV1"** %13, align 8, !alias.scope !876, !noalias !879
%14 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i64 0, i32 4, i32 1
store i64 1, i64* %14, align 8, !alias.scope !876, !noalias !879
call void @_ZN4core9panicking9panic_fmt17hcc78ce34a0090adfE(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %_12, { %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @_ZN4core3num14from_str_radix10_FILE_LINE17hfef39fd500266a2eE to { %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb6: ; preds = %start
%15 = icmp eq i64 %1, 0
br i1 %15, label %bb13, label %bb18
bb12: ; preds = %bb66, %bb13
%_0.sroa.10.0 = phi i8 [ %_0.sroa.10.1, %bb13 ], [ %result.2, %bb66 ]
%_0.sroa.0.0 = phi i16 [ 1, %bb13 ], [ 0, %bb66 ]
%_0.sroa.10.0.insert.ext = zext i8 %_0.sroa.10.0 to i16
%_0.sroa.10.0.insert.shift = shl nuw i16 %_0.sroa.10.0.insert.ext, 8
%_0.sroa.0.0.insert.insert = or i16 %_0.sroa.10.0.insert.shift, %_0.sroa.0.0
ret i16 %_0.sroa.0.0.insert.insert
bb13.loopexit: ; preds = %bb40, %bb45, %bb9.i82, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit91"
%_0.sroa.10.1.ph = phi i8 [ 1, %bb9.i82 ], [ 2, %bb45 ], [ 2, %bb40 ], [ 1, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit91" ]
br label %bb13
bb13.loopexit152: ; preds = %bb61, %bb57, %bb9.i, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit"
%_0.sroa.10.1.ph153 = phi i8 [ 1, %bb9.i ], [ 3, %bb61 ], [ 3, %bb57 ], [ 1, %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit" ]
br label %bb13
bb13: ; preds = %bb13.loopexit152, %bb13.loopexit, %bb23, %bb6
%_0.sroa.10.1 = phi i8 [ 0, %bb6 ], [ 0, %bb23 ], [ %_0.sroa.10.1.ph, %bb13.loopexit ], [ %_0.sroa.10.1.ph153, %bb13.loopexit152 ]
call void @llvm.lifetime.end(i64 4, i8* nonnull %3)
br label %bb12
bb18: ; preds = %bb6
%16 = load i8, i8* %0, align 1
switch i8 %16, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.lr.ph.thread" [
i8 43, label %bb23
i8 45, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit"
]
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.lr.ph.thread": ; preds = %bb18
%17 = getelementptr inbounds i8, i8* %0, i64 %1
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.preheader"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit": ; preds = %bb18
br label %bb23
bb23: ; preds = %bb18, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit"
%.sink20 = phi i1 [ false, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hb4b297f4b5a0a64eE.exit" ], [ true, %bb18 ]
%.sink17 = getelementptr inbounds i8, i8* %0, i64 1
%.sink = add i64 %1, -1
%18 = icmp eq i64 %.sink, 0
br i1 %18, label %bb13, label %bb28
bb28: ; preds = %bb23
br i1 %.sink20, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.lr.ph", label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.lr.ph"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.lr.ph": ; preds = %bb28
%19 = getelementptr inbounds i8, i8* %.sink17, i64 %.sink
%20 = icmp ugt i32 %2, 36
br i1 %20, label %bb1.i76.split, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.lr.ph.thread", %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.lr.ph"
%21 = phi i8* [ %17, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.lr.ph.thread" ], [ %19, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.lr.ph" ]
%.sink17120123141 = phi i8* [ %0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.lr.ph.thread" ], [ %.sink17, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.lr.ph" ]
%22 = trunc i32 %2 to i8
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.lr.ph": ; preds = %bb28
%.ptr136 = getelementptr inbounds i8, i8* %0, i64 %1
%23 = icmp ugt i32 %2, 36
%24 = trunc i32 %2 to i8
br i1 %23, label %bb1.i.split, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.lr.ph"
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.preheader", %bb49
%iter.sroa.0.0132 = phi i8* [ %25, %bb49 ], [ %.sink17120123141, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.preheader" ]
%result.0131 = phi i8 [ %38, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.preheader" ]
%25 = getelementptr inbounds i8, i8* %iter.sroa.0.0132, i64 1
%26 = load i8, i8* %iter.sroa.0.0132, align 1
%27 = zext i8 %26 to i32
%.off.i77 = add nsw i32 %27, -48
%28 = icmp ult i32 %.off.i77, 10
br i1 %28, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit91", label %bb7.i80
bb1.i76.split: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94.lr.ph"
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he73e9f4f7105b3e4E" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb7.i80: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94"
%.off5.i79 = add nsw i32 %27, -97
%29 = icmp ult i32 %.off5.i79, 26
br i1 %29, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit91", label %bb9.i82
bb9.i82: ; preds = %bb7.i80
%.off6.i81 = add nsw i32 %27, -65
%30 = icmp ult i32 %.off6.i81, 26
br i1 %30, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit91", label %bb13.loopexit
"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit91": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94", %bb7.i80, %bb9.i82
%.sink.i83 = phi i32 [ -87, %bb7.i80 ], [ -55, %bb9.i82 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94" ]
%31 = add nsw i32 %.sink.i83, %27
%32 = icmp ult i32 %31, %2
%phitmp.i85 = trunc i32 %31 to i8
br i1 %32, label %bb40, label %bb13.loopexit
bb40: ; preds = %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit91"
%33 = tail call { i8, i1 } @llvm.smul.with.overflow.i8(i8 %result.0131, i8 %22) #16
%34 = extractvalue { i8, i1 } %33, 1
br i1 %34, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%35 = extractvalue { i8, i1 } %33, 0
%36 = tail call { i8, i1 } @llvm.sadd.with.overflow.i8(i8 %35, i8 %phitmp.i85) #16
%37 = extractvalue { i8, i1 } %36, 1
br i1 %37, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%38 = extractvalue { i8, i1 } %36, 0
%39 = icmp eq i8* %25, %21
br i1 %39, label %bb66.loopexit, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit94"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader", %bb65
%iter1.sroa.0.0134 = phi i8* [ %40, %bb65 ], [ %.sink17, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader" ]
%result.1133 = phi i8 [ %53, %bb65 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.preheader" ]
%40 = getelementptr inbounds i8, i8* %iter1.sroa.0.0134, i64 1
%41 = load i8, i8* %iter1.sroa.0.0134, align 1
%42 = zext i8 %41 to i32
%.off.i = add nsw i32 %42, -48
%43 = icmp ult i32 %.off.i, 10
br i1 %43, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit", label %bb7.i
bb1.i.split: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit.lr.ph"
tail call void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he73e9f4f7105b3e4E" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
bb7.i: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit"
%.off5.i = add nsw i32 %42, -97
%44 = icmp ult i32 %.off5.i, 26
br i1 %44, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit", label %bb9.i
bb9.i: ; preds = %bb7.i
%.off6.i = add nsw i32 %42, -65
%45 = icmp ult i32 %.off6.i, 26
br i1 %45, label %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit", label %bb13.loopexit152
"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit", %bb7.i, %bb9.i
%.sink.i = phi i32 [ -87, %bb7.i ], [ -55, %bb9.i ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit" ]
%46 = add nsw i32 %.sink.i, %42
%47 = icmp ult i32 %46, %2
%phitmp.i = trunc i32 %46 to i8
br i1 %47, label %bb57, label %bb13.loopexit152
bb57: ; preds = %"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit17ha412164e12e3777eE.exit"
%48 = tail call { i8, i1 } @llvm.smul.with.overflow.i8(i8 %result.1133, i8 %24) #16
%49 = extractvalue { i8, i1 } %48, 1
br i1 %49, label %bb13.loopexit152, label %bb61
bb61: ; preds = %bb57
%50 = extractvalue { i8, i1 } %48, 0
%51 = tail call { i8, i1 } @llvm.ssub.with.overflow.i8(i8 %50, i8 %phitmp.i) #16
%52 = extractvalue { i8, i1 } %51, 1
br i1 %52, label %bb13.loopexit152, label %bb65
bb65: ; preds = %bb61
%53 = extractvalue { i8, i1 } %51, 0
%54 = icmp eq i8* %40, %.ptr136
br i1 %54, label %bb66.loopexit154, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb4d696a46fe287f9E.exit"
bb66.loopexit: ; preds = %bb49
br label %bb66
bb66.loopexit154: ; preds = %bb65
br label %bb66
bb66: ; preds = %bb66.loopexit154, %bb66.loopexit
%result.2 = phi i8 [ %38, %bb66.loopexit ], [ %53, %bb66.loopexit154 ]
call void @llvm.lifetime.end(i64 4, i8* nonnull %3)
br label %bb12
}
; Function Attrs: norecurse nounwind readonly uwtable
define %str_slice @_ZN4core3num13ParseIntError13__description17hd1d44664311387baE(%"num::ParseIntError"* noalias nocapture readonly dereferenceable(1)) unnamed_addr #3 {
start:
%1 = getelementptr inbounds %"num::ParseIntError", %"num::ParseIntError"* %0, i64 0, i32 0
%2 = load i8, i8* %1, align 1, !range !882
%3 = zext i8 %2 to i64
%4 = icmp eq i8 %2, 3
br i1 %4, label %bb5, label %switch.lookup
switch.lookup: ; preds = %start
%switch.gep = getelementptr inbounds [3 x i8*], [3 x i8*]* @switch.table, i64 0, i64 %3
%switch.load = load i8*, i8** %switch.gep, align 8
%switch.gep4 = getelementptr inbounds [3 x i64], [3 x i64]* @switch.table.1, i64 0, i64 %3
%switch.load5 = load i64, i64* %switch.gep4, align 8
br label %bb5
bb5: ; preds = %start, %switch.lookup
%.sink2 = phi i8* [ %switch.load, %switch.lookup ], [ getelementptr inbounds ([38 x i8], [38 x i8]* @str.1P, i64 0, i64 0), %start ]
%.sink = phi i64 [ %switch.load5, %switch.lookup ], [ 38, %start ]
%5 = insertvalue %str_slice undef, i8* %.sink2, 0
%6 = insertvalue %str_slice %5, i64 %.sink, 1
ret %str_slice %6
}
; Function Attrs: uwtable
define i8 @"_ZN63_$LT$core..num..ParseIntError$u20$as$u20$core..fmt..Display$GT$3fmt17hcb78f2adeb3ec524E"(%"num::ParseIntError"* noalias nocapture readonly dereferenceable(1), %"fmt::Formatter"* nocapture readonly dereferenceable(96)) unnamed_addr #2 {
start:
%2 = getelementptr inbounds %"num::ParseIntError", %"num::ParseIntError"* %0, i64 0, i32 0
%3 = load i8, i8* %2, align 1, !range !882, !alias.scope !883
%4 = zext i8 %3 to i64
%5 = icmp eq i8 %3, 3
br i1 %5, label %_ZN4core3num13ParseIntError13__description17hd1d44664311387baE.exit, label %switch.lookup.i
switch.lookup.i: ; preds = %start
%switch.gep.i = getelementptr inbounds [3 x i8*], [3 x i8*]* @switch.table, i64 0, i64 %4
%switch.load.i = load i8*, i8** %switch.gep.i, align 8, !noalias !883
%switch.gep4.i = getelementptr inbounds [3 x i64], [3 x i64]* @switch.table.1, i64 0, i64 %4
%switch.load5.i = load i64, i64* %switch.gep4.i, align 8, !noalias !883
br label %_ZN4core3num13ParseIntError13__description17hd1d44664311387baE.exit
_ZN4core3num13ParseIntError13__description17hd1d44664311387baE.exit: ; preds = %start, %switch.lookup.i
%.sink2.i = phi i8* [ %switch.load.i, %switch.lookup.i ], [ getelementptr inbounds ([38 x i8], [38 x i8]* @str.1P, i64 0, i64 0), %start ]
%.sink.i = phi i64 [ %switch.load5.i, %switch.lookup.i ], [ 38, %start ]
%6 = tail call i8 @_ZN4core3fmt9Formatter3pad17hfc084f6039bdcf14E(%"fmt::Formatter"* nonnull dereferenceable(96) %1, i8* noalias nonnull readonly %.sink2.i, i64 %.sink.i)
ret i8 %6
}
; Function Attrs: norecurse nounwind readnone uwtable
define internal void @_ZN4core3ptr13drop_in_place17h0407879adf80ccb1E(i16* nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: uwtable
define i8 @"_ZN64_$LT$core..ops..range..RangeFull$u20$as$u20$core..fmt..Debug$GT$3fmt17hfd37bf93e19f3f9dE"(%"ops::range::RangeFull"* noalias nocapture readonly, %"fmt::Formatter"* nocapture readonly dereferenceable(96)) unnamed_addr #2 {
start:
%_7.i = alloca %"fmt::Arguments", align 8
%2 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i64 0, i32 4
%3 = bitcast { i8*, void (i8*)** }* %2 to {}**
%4 = load {}*, {}** %3, align 8, !noalias !886, !nonnull !687
%5 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i64 0, i32 4, i32 1
%6 = bitcast void (i8*)*** %5 to {}**
%7 = load {}*, {}** %6, align 8, !noalias !886, !nonnull !687
%8 = bitcast %"fmt::Arguments"* %_7.i to i8*
call void @llvm.lifetime.start(i64 48, i8* nonnull %8), !noalias !886
%_6.sroa.0.0..sroa_idx = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7.i, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.5u, i64 0, i64 0), %str_slice** %_6.sroa.0.0..sroa_idx, align 8
%_6.sroa.4.0..sroa_idx3 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7.i, i64 0, i32 0, i32 1
store i64 1, i64* %_6.sroa.4.0..sroa_idx3, align 8
%_6.sroa.5.0..sroa_idx5 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7.i, i64 0, i32 2, i32 0, i32 0
store %"fmt::rt::v1::Argument"* null, %"fmt::rt::v1::Argument"** %_6.sroa.5.0..sroa_idx5, align 8
%_6.sroa.68.0..sroa_idx10 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7.i, i64 0, i32 4, i32 0
store %"fmt::ArgumentV1"* getelementptr inbounds ([0 x %"fmt::ArgumentV1"], [0 x %"fmt::ArgumentV1"]* @ref.1W, i64 0, i64 0), %"fmt::ArgumentV1"** %_6.sroa.68.0..sroa_idx10, align 8
%_6.sroa.7.0..sroa_idx12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7.i, i64 0, i32 4, i32 1
store i64 0, i64* %_6.sroa.7.0..sroa_idx12, align 8
%9 = call i8 @_ZN4core3fmt5write17hd234293a87ffcda1E({}* nonnull %4, {}* noalias nonnull readonly %7, %"fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %_7.i), !noalias !886
call void @llvm.lifetime.end(i64 48, i8* nonnull %8), !noalias !886
ret i8 %9
}
; Function Attrs: uwtable
define internal i8 @"_ZN71_$LT$core..ops..range..Range$LT$Idx$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17hdab3904564476079E"(%"ops::range::Range<usize>"* noalias readonly dereferenceable(16), %"fmt::Formatter"* nocapture readonly dereferenceable(96)) unnamed_addr #2 {
start:
%_7.i = alloca %"fmt::Arguments", align 8
%_11 = alloca [2 x %"fmt::ArgumentV1"], align 8
%2 = bitcast [2 x %"fmt::ArgumentV1"]* %_11 to i8*
call void @llvm.lifetime.start(i64 32, i8* nonnull %2)
%3 = getelementptr inbounds %"ops::range::Range<usize>", %"ops::range::Range<usize>"* %0, i64 0, i32 2
%4 = ptrtoint %"ops::range::Range<usize>"* %0 to i64
%5 = ptrtoint i64* %3 to i64
%6 = bitcast [2 x %"fmt::ArgumentV1"]* %_11 to i64*
store i64 %4, i64* %6, align 8
%7 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_11, i64 0, i64 0, i32 2
%8 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %7 to i64*
store i64 ptrtoint (i8 (i64*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$usize$GT$3fmt17hd96001b741994207E" to i64), i64* %8, align 8
%9 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_11, i64 0, i64 1
%10 = bitcast %"fmt::ArgumentV1"* %9 to i64*
store i64 %5, i64* %10, align 8
%11 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_11, i64 0, i64 1, i32 2
%12 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %11 to i64*
store i64 ptrtoint (i8 (i64*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$usize$GT$3fmt17hd96001b741994207E" to i64), i64* %12, align 8
%13 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_11, i64 0, i64 0
%14 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i64 0, i32 4
%15 = bitcast { i8*, void (i8*)** }* %14 to {}**
%16 = load {}*, {}** %15, align 8, !noalias !889, !nonnull !687
%17 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i64 0, i32 4, i32 1
%18 = bitcast void (i8*)*** %17 to {}**
%19 = load {}*, {}** %18, align 8, !noalias !889, !nonnull !687
%20 = bitcast %"fmt::Arguments"* %_7.i to i8*
call void @llvm.lifetime.start(i64 48, i8* nonnull %20), !noalias !889
%_6.sroa.0.0..sroa_idx = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7.i, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref.5v, i64 0, i64 0), %str_slice** %_6.sroa.0.0..sroa_idx, align 8
%_6.sroa.4.0..sroa_idx6 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7.i, i64 0, i32 0, i32 1
store i64 2, i64* %_6.sroa.4.0..sroa_idx6, align 8
%_6.sroa.5.0..sroa_idx8 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7.i, i64 0, i32 2, i32 0, i32 0
store %"fmt::rt::v1::Argument"* null, %"fmt::rt::v1::Argument"** %_6.sroa.5.0..sroa_idx8, align 8
%_6.sroa.611.0..sroa_idx13 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7.i, i64 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %13, %"fmt::ArgumentV1"** %_6.sroa.611.0..sroa_idx13, align 8
%_6.sroa.7.0..sroa_idx15 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7.i, i64 0, i32 4, i32 1
store i64 2, i64* %_6.sroa.7.0..sroa_idx15, align 8
%21 = call i8 @_ZN4core3fmt5write17hd234293a87ffcda1E({}* nonnull %16, {}* noalias nonnull readonly %19, %"fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %_7.i), !noalias !889
call void @llvm.lifetime.end(i64 48, i8* nonnull %20), !noalias !889
call void @llvm.lifetime.end(i64 32, i8* nonnull %2)
ret i8 %21
}
; Function Attrs: norecurse noreturn nounwind readnone uwtable
define zeroext i1 @"_ZN4core3cmp5impls56_$LT$impl$u20$core..cmp..PartialEq$u20$for$u20$$u21$$GT$2eq17hf671d62b7a07076aE"({}* noalias nocapture readonly, {}* noalias nocapture readonly) unnamed_addr #7 {
start:
unreachable
}
; Function Attrs: norecurse noreturn nounwind readnone uwtable
define i16 @"_ZN4core3cmp5impls57_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$$u21$$GT$11partial_cmp17haaf376a71202b45bE"({}* noalias nocapture readonly, {}* noalias nocapture readonly) unnamed_addr #7 {
start:
unreachable
}
; Function Attrs: norecurse noreturn nounwind readnone uwtable
define i8 @"_ZN4core3cmp5impls50_$LT$impl$u20$core..cmp..Ord$u20$for$u20$$u21$$GT$3cmp17h5f1aef66a283bb24E"({}* noalias nocapture readonly, {}* noalias nocapture readonly) unnamed_addr #7 {
start:
unreachable
}
; Function Attrs: uwtable
define i8 @"_ZN77_$LT$core..any..Any$u20$$u2b$$u20$$u27$static$u20$as$u20$core..fmt..Debug$GT$3fmt17hed91c05d3dbbbb0eE"({}* nocapture nonnull readnone, {}* noalias nocapture nonnull readonly, %"fmt::Formatter"* nocapture readonly dereferenceable(96)) unnamed_addr #2 {
start:
%3 = tail call i8 @_ZN4core3fmt9Formatter3pad17hfc084f6039bdcf14E(%"fmt::Formatter"* nonnull dereferenceable(96) %2, i8* noalias nonnull readonly getelementptr inbounds ([3 x i8], [3 x i8]* @str.1X, i64 0, i64 0), i64 3)
ret i8 %3
}
; Function Attrs: uwtable
define i8 @"_ZN110_$LT$core..any..Any$u20$$u2b$$u20$core..marker..Send$u20$$u2b$$u20$$u27$static$u20$as$u20$core..fmt..Debug$GT$3fmt17h4fb2c29742bd758eE"({}* nocapture nonnull readnone, {}* noalias nocapture nonnull readonly, %"fmt::Formatter"* nocapture readonly dereferenceable(96)) unnamed_addr #2 {
start:
%3 = tail call i8 @_ZN4core3fmt9Formatter3pad17hfc084f6039bdcf14E(%"fmt::Formatter"* nonnull dereferenceable(96) %2, i8* noalias nonnull readonly getelementptr inbounds ([3 x i8], [3 x i8]* @str.1X, i64 0, i64 0), i64 3)
ret i8 %3
}
; Function Attrs: norecurse nounwind readnone uwtable
define i8 @"_ZN73_$LT$core..sync..atomic..AtomicBool$u20$as$u20$core..default..Default$GT$7default17h79ec33205840a784E"() unnamed_addr #0 {
start:
ret i8 0
}
; Function Attrs: uwtable
define i8 @"_ZN67_$LT$core..sync..atomic..AtomicBool$u20$as$u20$core..fmt..Debug$GT$3fmt17hcd64b593cce7868bE"(%"sync::atomic::AtomicBool"* nocapture readonly dereferenceable(1), %"fmt::Formatter"* dereferenceable(96)) unnamed_addr #2 personality i32 (...)* @rust_eh_personality {
start:
%_15 = alloca i8, align 1
%_8 = alloca %"fmt::builders::DebugTuple", align 8
%2 = bitcast %"fmt::builders::DebugTuple"* %_8 to i8*
call void @llvm.lifetime.start(i64 24, i8* nonnull %2)
%3 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i64 0, i32 4
%4 = bitcast { i8*, void (i8*)** }* %3 to {}**
%5 = load {}*, {}** %4, align 8, !noalias !892, !nonnull !687
%6 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i64 0, i32 4, i32 1
%7 = load void (i8*)**, void (i8*)*** %6, align 8, !noalias !892, !nonnull !687
%8 = getelementptr inbounds void (i8*)*, void (i8*)** %7, i64 3
%9 = bitcast void (i8*)** %8 to i8 ({}*, i8*, i64)**
%10 = load i8 ({}*, i8*, i64)*, i8 ({}*, i8*, i64)** %9, align 8, !invariant.load !687, !noalias !892, !nonnull !687
%11 = tail call i8 %10({}* nonnull %5, i8* noalias nonnull readonly getelementptr inbounds ([10 x i8], [10 x i8]* @str.1Y, i64 0, i64 0), i64 10), !noalias !901
%12 = getelementptr inbounds %"fmt::builders::DebugTuple", %"fmt::builders::DebugTuple"* %_8, i64 0, i32 0
store %"fmt::Formatter"* %1, %"fmt::Formatter"** %12, align 8, !alias.scope !901, !noalias !902
%_9.sroa.0.0..sroa_idx.i.i = getelementptr inbounds %"fmt::builders::DebugTuple", %"fmt::builders::DebugTuple"* %_8, i64 0, i32 4, i32 0
store i8 %11, i8* %_9.sroa.0.0..sroa_idx.i.i, align 8, !alias.scope !901, !noalias !902
%13 = getelementptr inbounds %"fmt::builders::DebugTuple", %"fmt::builders::DebugTuple"* %_8, i64 0, i32 2
store i64 0, i64* %13, align 8, !alias.scope !901, !noalias !902
%14 = getelementptr inbounds %"fmt::builders::DebugTuple", %"fmt::builders::DebugTuple"* %_8, i64 0, i32 6
store i8 0, i8* %14, align 1, !alias.scope !901, !noalias !902
call void @llvm.lifetime.start(i64 1, i8* nonnull %_15)
%15 = getelementptr inbounds %"sync::atomic::AtomicBool", %"sync::atomic::AtomicBool"* %0, i64 0, i32 0, i32 0
%16 = load atomic i8, i8* %15 seq_cst, align 1
%17 = icmp ne i8 %16, 0
%18 = zext i1 %17 to i8
store i8 %18, i8* %_15, align 1
%19 = bitcast i8* %_15 to {}*
%20 = call dereferenceable(24) %"fmt::builders::DebugTuple"* @_ZN4core3fmt8builders10DebugTuple5field17h4a064d7e887b80e4E(%"fmt::builders::DebugTuple"* nonnull dereferenceable(24) %_8, {}* nonnull %19, {}* noalias nonnull readonly bitcast ({ void (i8*)*, i64, i64, i8 (i8*, %"fmt::Formatter"*)* }* @vtable.1Z to {}*))
%21 = getelementptr inbounds %"fmt::builders::DebugTuple", %"fmt::builders::DebugTuple"* %20, i64 0, i32 2
%22 = load i64, i64* %21, align 8
%23 = icmp eq i64 %22, 0
%_10.sroa.0.0..sroa_idx.phi.trans.insert.i = getelementptr inbounds %"fmt::builders::DebugTuple", %"fmt::builders::DebugTuple"* %20, i64 0, i32 4, i32 0
%_10.sroa.0.0.copyload.pre.i = load i8, i8* %_10.sroa.0.0..sroa_idx.phi.trans.insert.i, align 1
br i1 %23, label %_ZN4core3fmt8builders10DebugTuple6finish17h75a640a44b55ec34E.exit, label %bb1.i
bb1.i: ; preds = %start
%cond.i.i = icmp eq i8 %_10.sroa.0.0.copyload.pre.i, 0
br i1 %cond.i.i, label %bb3.i.i, label %"_ZN47_$LT$core..result..Result$LT$T$C$$u20$E$GT$$GT$8and_then17h34c8cc123282ba8aE.exit.i"
bb3.i.i: ; preds = %bb1.i
%24 = getelementptr inbounds %"fmt::builders::DebugTuple", %"fmt::builders::DebugTuple"* %20, i64 0, i32 0
%25 = load %"fmt::Formatter"*, %"fmt::Formatter"** %24, align 8, !alias.scope !903, !nonnull !687
%26 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %25, i64 0, i32 10
%27 = load i32, i32* %26, align 4, !alias.scope !906, !noalias !903
%28 = and i32 %27, 4
%29 = icmp eq i32 %28, 0
br i1 %29, label %bb11.i.i.i, label %bb2.i.i.i
bb2.i.i.i: ; preds = %bb3.i.i
%30 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %25, i64 0, i32 4
%31 = bitcast { i8*, void (i8*)** }* %30 to {}**
%32 = load {}*, {}** %31, align 8, !noalias !909, !nonnull !687
%33 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %25, i64 0, i32 4, i32 1
%34 = load void (i8*)**, void (i8*)*** %33, align 8, !noalias !909, !nonnull !687
%35 = getelementptr inbounds void (i8*)*, void (i8*)** %34, i64 3
%36 = bitcast void (i8*)** %35 to i8 ({}*, i8*, i64)**
%37 = load i8 ({}*, i8*, i64)*, i8 ({}*, i8*, i64)** %36, align 8, !invariant.load !687, !noalias !909, !nonnull !687
%38 = call i8 %37({}* nonnull %32, i8* noalias nonnull readonly getelementptr inbounds ([1 x i8], [1 x i8]* @str.2G, i64 0, i64 0), i64 1)
%cond8.i.i.i = icmp eq i8 %38, 0
br i1 %cond8.i.i.i, label %bb2.bb11_crit_edge.i.i.i, label %"_ZN47_$LT$core..result..Result$LT$T$C$$u20$E$GT$$GT$8and_then17h34c8cc123282ba8aE.exit.i"
bb2.bb11_crit_edge.i.i.i: ; preds = %bb2.i.i.i
%.pre.i = load i64, i64* %21, align 8
br label %bb11.i.i.i
bb11.i.i.i: ; preds = %bb2.bb11_crit_edge.i.i.i, %bb3.i.i
%39 = phi i64 [ %.pre.i, %bb2.bb11_crit_edge.i.i.i ], [ %22, %bb3.i.i ]
%40 = icmp eq i64 %39, 1
br i1 %40, label %bb14.i.i.i, label %bb24.i.i.i
bb14.i.i.i: ; preds = %bb11.i.i.i
%41 = getelementptr inbounds %"fmt::builders::DebugTuple", %"fmt::builders::DebugTuple"* %20, i64 0, i32 6
%42 = load i8, i8* %41, align 1, !range !10
%43 = icmp eq i8 %42, 0
br i1 %43, label %bb24.i.i.i, label %bb16.i.i.i
bb16.i.i.i: ; preds = %bb14.i.i.i
%44 = load %"fmt::Formatter"*, %"fmt::Formatter"** %24, align 8, !nonnull !687
%45 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %44, i64 0, i32 4
%46 = bitcast { i8*, void (i8*)** }* %45 to {}**
%47 = load {}*, {}** %46, align 8, !noalias !912, !nonnull !687
%48 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %44, i64 0, i32 4, i32 1
%49 = load void (i8*)**, void (i8*)*** %48, align 8, !noalias !912, !nonnull !687
%50 = getelementptr inbounds void (i8*)*, void (i8*)** %49, i64 3
%51 = bitcast void (i8*)** %50 to i8 ({}*, i8*, i64)**
%52 = load i8 ({}*, i8*, i64)*, i8 ({}*, i8*, i64)** %51, align 8, !invariant.load !687, !noalias !912, !nonnull !687
%53 = call i8 %52({}* nonnull %47, i8* noalias nonnull readonly getelementptr inbounds ([1 x i8], [1 x i8]* @str.2z, i64 0, i64 0), i64 1)
%cond.i.i.i = icmp eq i8 %53, 0
br i1 %cond.i.i.i, label %bb24.i.i.i, label %"_ZN47_$LT$core..result..Result$LT$T$C$$u20$E$GT$$GT$8and_then17h34c8cc123282ba8aE.exit.i"
bb24.i.i.i: ; preds = %bb16.i.i.i, %bb14.i.i.i, %bb11.i.i.i
%54 = load %"fmt::Formatter"*, %"fmt::Formatter"** %24, align 8, !nonnull !687
%55 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %54, i64 0, i32 4
%56 = bitcast { i8*, void (i8*)** }* %55 to {}**
%57 = load {}*, {}** %56, align 8, !noalias !915, !nonnull !687
%58 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %54, i64 0, i32 4, i32 1
%59 = load void (i8*)**, void (i8*)*** %58, align 8, !noalias !915, !nonnull !687
%60 = getelementptr inbounds void (i8*)*, void (i8*)** %59, i64 3
%61 = bitcast void (i8*)** %60 to i8 ({}*, i8*, i64)**
%62 = load i8 ({}*, i8*, i64)*, i8 ({}*, i8*, i64)** %61, align 8, !invariant.load !687, !noalias !915, !nonnull !687
%63 = call i8 %62({}* nonnull %57, i8* noalias nonnull readonly getelementptr inbounds ([1 x i8], [1 x i8]* @str.2H, i64 0, i64 0), i64 1)
br label %"_ZN47_$LT$core..result..Result$LT$T$C$$u20$E$GT$$GT$8and_then17h34c8cc123282ba8aE.exit.i"
"_ZN47_$LT$core..result..Result$LT$T$C$$u20$E$GT$$GT$8and_then17h34c8cc123282ba8aE.exit.i": ; preds = %bb24.i.i.i, %bb16.i.i.i, %bb2.i.i.i, %bb1.i
%_0.sroa.0.0.i.i = phi i8 [ 1, %bb1.i ], [ %63, %bb24.i.i.i ], [ 1, %bb2.i.i.i ], [ 1, %bb16.i.i.i ]
store i8 %_0.sroa.0.0.i.i, i8* %_10.sroa.0.0..sroa_idx.phi.trans.insert.i, align 1
br label %_ZN4core3fmt8builders10DebugTuple6finish17h75a640a44b55ec34E.exit
_ZN4core3fmt8builders10DebugTuple6finish17h75a640a44b55ec34E.exit: ; preds = %start, %"_ZN47_$LT$core..result..Result$LT$T$C$$u20$E$GT$$GT$8and_then17h34c8cc123282ba8aE.exit.i"
%_10.sroa.0.0.copyload.i = phi i8 [ %_0.sroa.0.0.i.i, %"_ZN47_$LT$core..result..Result$LT$T$C$$u20$E$GT$$GT$8and_then17h34c8cc123282ba8aE.exit.i" ], [ %_10.sroa.0.0.copyload.pre.i, %start ]
call void @llvm.lifetime.end(i64 1, i8* nonnull %_15)
call void @llvm.lifetime.end(i64 24, i8* nonnull %2)
ret i8 %_10.sroa.0.0.copyload.i
}
; Function Attrs: uwtable
define i8 @"_ZN60_$LT$core..cell..BorrowError$u20$as$u20$core..fmt..Debug$GT$3fmt17h87f215d7d37a5519E"(%"cell::BorrowError"* noalias nocapture readonly, %"fmt::Formatter"* dereferenceable(96)) unnamed_addr #2 personality i32 (...)* @rust_eh_personality {
_ZN4core3fmt8builders11DebugStruct6finish17h305e08f2df3ca52dE.exit:
%2 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i64 0, i32 4
%3 = bitcast { i8*, void (i8*)** }* %2 to {}**
%4 = load {}*, {}** %3, align 8, !noalias !918, !nonnull !687
%5 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i64 0, i32 4, i32 1
%6 = load void (i8*)**, void (i8*)*** %5, align 8, !noalias !918, !nonnull !687
%7 = getelementptr inbounds void (i8*)*, void (i8*)** %6, i64 3
%8 = bitcast void (i8*)** %7 to i8 ({}*, i8*, i64)**
%9 = load i8 ({}*, i8*, i64)*, i8 ({}*, i8*, i64)** %8, align 8, !invariant.load !687, !noalias !918, !nonnull !687
%10 = tail call i8 %9({}* nonnull %4, i8* noalias nonnull readonly getelementptr inbounds ([11 x i8], [11 x i8]* @str.20, i64 0, i64 0), i64 11), !noalias !927
ret i8 %10
}
; Function Attrs: uwtable
define i8 @"_ZN62_$LT$core..cell..BorrowError$u20$as$u20$core..fmt..Display$GT$3fmt17h1dfe89f97e1ce09fE"(%"cell::BorrowError"* noalias nocapture readonly, %"fmt::Formatter"* nocapture readonly dereferenceable(96)) unnamed_addr #2 {
start:
%2 = tail call i8 @_ZN4core3fmt9Formatter3pad17hfc084f6039bdcf14E(%"fmt::Formatter"* nonnull dereferenceable(96) %1, i8* noalias nonnull readonly getelementptr inbounds ([24 x i8], [24 x i8]* @str.21, i64 0, i64 0), i64 24)
ret i8 %2
}
; Function Attrs: uwtable
define i8 @"_ZN63_$LT$core..cell..BorrowMutError$u20$as$u20$core..fmt..Debug$GT$3fmt17hbf269a46bcfaaa7bE"(%"cell::BorrowMutError"* noalias nocapture readonly, %"fmt::Formatter"* dereferenceable(96)) unnamed_addr #2 personality i32 (...)* @rust_eh_personality {
_ZN4core3fmt8builders11DebugStruct6finish17h305e08f2df3ca52dE.exit:
%2 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i64 0, i32 4
%3 = bitcast { i8*, void (i8*)** }* %2 to {}**
%4 = load {}*, {}** %3, align 8, !noalias !928, !nonnull !687
%5 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i64 0, i32 4, i32 1
%6 = load void (i8*)**, void (i8*)*** %5, align 8, !noalias !928, !nonnull !687
%7 = getelementptr inbounds void (i8*)*, void (i8*)** %6, i64 3
%8 = bitcast void (i8*)** %7 to i8 ({}*, i8*, i64)**
%9 = load i8 ({}*, i8*, i64)*, i8 ({}*, i8*, i64)** %8, align 8, !invariant.load !687, !noalias !928, !nonnull !687
%10 = tail call i8 %9({}* nonnull %4, i8* noalias nonnull readonly getelementptr inbounds ([14 x i8], [14 x i8]* @str.22, i64 0, i64 0), i64 14), !noalias !937
ret i8 %10
}
; Function Attrs: uwtable
define i8 @"_ZN65_$LT$core..cell..BorrowMutError$u20$as$u20$core..fmt..Display$GT$3fmt17h9ab8af88d1cf2d57E"(%"cell::BorrowMutError"* noalias nocapture readonly, %"fmt::Formatter"* nocapture readonly dereferenceable(96)) unnamed_addr #2 {
start:
%2 = tail call i8 @_ZN4core3fmt9Formatter3pad17hfc084f6039bdcf14E(%"fmt::Formatter"* nonnull dereferenceable(96) %1, i8* noalias nonnull readonly getelementptr inbounds ([16 x i8], [16 x i8]* @str.23, i64 0, i64 0), i64 16)
ret i8 %2
}
; Function Attrs: norecurse nounwind readonly uwtable
define %str_slice @_ZN4core4char14ParseCharError13__description17h2e5aefbec5f8f910E(%"char::ParseCharError"* noalias nocapture readonly dereferenceable(1)) unnamed_addr #3 {
start:
%1 = getelementptr inbounds %"char::ParseCharError", %"char::ParseCharError"* %0, i64 0, i32 0
%2 = load i8, i8* %1, align 1, !range !10
%cond = icmp eq i8 %2, 0
%.sink2 = select i1 %cond, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str.26, i64 0, i64 0), i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str.25, i64 0, i64 0)
%.sink = select i1 %cond, i64 35, i64 29
%3 = insertvalue %str_slice undef, i8* %.sink2, 0
%4 = insertvalue %str_slice %3, i64 %.sink, 1
ret %str_slice %4
}
; Function Attrs: uwtable
define i8 @"_ZN65_$LT$core..char..ParseCharError$u20$as$u20$core..fmt..Display$GT$3fmt17h282f1fbac47cdee1E"(%"char::ParseCharError"* noalias nocapture readonly dereferenceable(1), %"fmt::Formatter"* nocapture readonly dereferenceable(96)) unnamed_addr #2 {
start:
%2 = getelementptr inbounds %"char::ParseCharError", %"char::ParseCharError"* %0, i64 0, i32 0
%3 = load i8, i8* %2, align 1, !range !10, !alias.scope !938
%cond.i = icmp eq i8 %3, 0
%.sink2.i = select i1 %cond.i, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str.26, i64 0, i64 0), i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str.25, i64 0, i64 0)
%.sink.i = select i1 %cond.i, i64 35, i64 29
%4 = tail call i8 @_ZN4core3fmt9Formatter3pad17hfc084f6039bdcf14E(%"fmt::Formatter"* nonnull dereferenceable(96) %1, i8* noalias nonnull readonly %.sink2.i, i64 %.sink.i)
ret i8 %4
}
; Function Attrs: uwtable
define i8 @"_ZN67_$LT$core..char..CharTryFromError$u20$as$u20$core..fmt..Display$GT$3fmt17hddf581f16c0c9c43E"(%"char::CharTryFromError"* noalias nocapture readonly, %"fmt::Formatter"* nocapture readonly dereferenceable(96)) unnamed_addr #2 {
start:
%2 = tail call i8 @_ZN4core3fmt9Formatter3pad17hfc084f6039bdcf14E(%"fmt::Formatter"* nonnull dereferenceable(96) %1, i8* noalias nonnull readonly getelementptr inbounds ([41 x i8], [41 x i8]* @str.27, i64 0, i64 0), i64 41)
ret i8 %2
}
; Function Attrs: norecurse uwtable
define i64 @"_ZN76_$LT$core..char..EscapeUnicode$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h51547b9e7b798496E"(%"char::EscapeUnicode"* nocapture dereferenceable(16)) unnamed_addr #8 personality i32 (...)* @rust_eh_personality {
start:
%1 = getelementptr inbounds %"char::EscapeUnicode", %"char::EscapeUnicode"* %0, i64 0, i32 4
%2 = load i8, i8* %1, align 1, !range !941
%trunc = trunc i8 %2 to i3
switch i3 %trunc, label %bb1 [
i3 0, label %bb7
i3 1, label %bb5
i3 2, label %bb4
i3 3, label %bb3
i3 -4, label %bb2
]
bb1: ; preds = %start
store i8 4, i8* %1, align 1
br label %bb7
bb2: ; preds = %start
store i8 3, i8* %1, align 1
br label %bb7
bb3: ; preds = %start
store i8 2, i8* %1, align 1
br label %bb7
bb4: ; preds = %start
%3 = getelementptr inbounds %"char::EscapeUnicode", %"char::EscapeUnicode"* %0, i64 0, i32 2
%4 = load i32, i32* %3, align 4, !range !942
%5 = getelementptr inbounds %"char::EscapeUnicode", %"char::EscapeUnicode"* %0, i64 0, i32 0
%6 = load i64, i64* %5, align 8
%.tr = trunc i64 %6 to i32
%7 = shl i32 %.tr, 2
%8 = and i32 %7, 28
%9 = lshr i32 %4, %8
%10 = trunc i32 %9 to i8
%11 = and i8 %10, 15
%12 = icmp ult i8 %11, 10
%.sink4.v.i = select i1 %12, i8 48, i8 87
%.sink4.i = add nuw i8 %.sink4.v.i, %11
%13 = icmp eq i64 %6, 0
br i1 %13, label %bb10, label %bb11
bb5: ; preds = %start
store i8 0, i8* %1, align 1
br label %bb7
bb7: ; preds = %start, %bb5, %bb12, %bb3, %bb2, %bb1
%_0.sroa.7.0 = phi i64 [ 395136991232, %bb1 ], [ 502511173632, %bb2 ], [ 528280977408, %bb3 ], [ %phitmp3, %bb12 ], [ 536870912000, %bb5 ], [ 0, %start ]
%_0.sroa.0.0 = phi i64 [ 1, %bb1 ], [ 1, %bb2 ], [ 1, %bb3 ], [ 1, %bb12 ], [ 1, %bb5 ], [ 0, %start ]
%_0.sroa.0.0.insert.insert = or i64 %_0.sroa.0.0, %_0.sroa.7.0
ret i64 %_0.sroa.0.0.insert.insert
bb10: ; preds = %bb4
store i8 1, i8* %1, align 1
br label %bb12
bb11: ; preds = %bb4
%14 = add i64 %6, -1
store i64 %14, i64* %5, align 8
br label %bb12
bb12: ; preds = %bb11, %bb10
%phitmp = zext i8 %.sink4.i to i64
%phitmp3 = shl nuw nsw i64 %phitmp, 32
br label %bb7
}
; Function Attrs: norecurse nounwind readonly uwtable
define i64 @"_ZN76_$LT$core..char..EscapeUnicode$u20$as$u20$core..iter..iterator..Iterator$GT$4last17h50393dafb86f9581E"(%"char::EscapeUnicode"* noalias nocapture readonly dereferenceable(16)) unnamed_addr #3 {
start:
%self.sroa.3.0..sroa_idx = getelementptr inbounds %"char::EscapeUnicode", %"char::EscapeUnicode"* %0, i64 0, i32 4
%self.sroa.3.0.copyload = load i8, i8* %self.sroa.3.0..sroa_idx, align 4
%cond = icmp eq i8 %self.sroa.3.0.copyload, 0
%. = select i1 %cond, i64 536870912000, i64 536870912001
ret i64 %.
}
; Function Attrs: uwtable
define i8 @"_ZN64_$LT$core..char..EscapeUnicode$u20$as$u20$core..fmt..Display$GT$3fmt17hf757be3e4b8fdebfE"(%"char::EscapeUnicode"* noalias nocapture readonly dereferenceable(16), %"fmt::Formatter"* nocapture readonly dereferenceable(96)) unnamed_addr #2 personality i32 (...)* @rust_eh_personality {
start:
%2 = getelementptr inbounds %"char::EscapeUnicode", %"char::EscapeUnicode"* %0, i64 0, i32 2
%3 = getelementptr inbounds %"char::EscapeUnicode", %"char::EscapeUnicode"* %0, i64 0, i32 4
%4 = getelementptr inbounds %"char::EscapeUnicode", %"char::EscapeUnicode"* %0, i64 0, i32 0
%5 = load i32, i32* %2, align 4, !range !942, !alias.scope !943, !noalias !948
%6 = load i8, i8* %3, align 1, !range !941, !alias.scope !950, !noalias !948
%7 = shl nuw nsw i8 %6, 3
%8 = xor i8 %7, 32
%switch.shiftamt.i.i = zext i8 %8 to i64
%switch.downshift.i.i = lshr i64 216736831663047940, %switch.shiftamt.i.i
%switch.masked.i.i = trunc i64 %switch.downshift.i.i to i8
%9 = load i64, i64* %4, align 8, !alias.scope !953, !noalias !948
%10 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i64 0, i32 4
%11 = bitcast { i8*, void (i8*)** }* %10 to {}**
%12 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i64 0, i32 4, i32 1
br label %bb3
bb3: ; preds = %bb6, %start
%iter.sroa.0.0 = phi i64 [ %9, %start ], [ %iter.sroa.0.2.ph, %bb6 ]
%iter.sroa.8.0 = phi i8 [ %switch.masked.i.i, %start ], [ %iter.sroa.8.2.ph, %bb6 ]
%trunc.i = trunc i8 %iter.sroa.8.0 to i3
switch i3 %trunc.i, label %bb6 [
i3 0, label %bb13
i3 1, label %bb5.i
i3 2, label %bb4.i
i3 3, label %bb3.i
i3 -4, label %bb2.i
]
bb2.i: ; preds = %bb3
br label %bb6
bb3.i: ; preds = %bb3
br label %bb6
bb4.i: ; preds = %bb3
%.tr.i = trunc i64 %iter.sroa.0.0 to i32
%13 = shl i32 %.tr.i, 2
%14 = and i32 %13, 28
%15 = lshr i32 %5, %14
%16 = trunc i32 %15 to i8
%17 = and i8 %16, 15
%18 = icmp ult i8 %17, 10
%.sink4.v.i.i = select i1 %18, i8 48, i8 87
%.sink4.i.i = add nuw i8 %.sink4.v.i.i, %17
%19 = icmp eq i64 %iter.sroa.0.0, 0
%20 = add i64 %iter.sroa.0.0, -1
%. = select i1 %19, i64 0, i64 %20
%.iter.sroa.8.0 = select i1 %19, i8 1, i8 %iter.sroa.8.0
%phitmp.i = zext i8 %.sink4.i.i to i32
br label %bb6
bb5.i: ; preds = %bb3
br label %bb6
bb6: ; preds = %bb3, %bb2.i, %bb3.i, %bb4.i, %bb5.i
%iter.sroa.0.2.ph = phi i64 [ %iter.sroa.0.0, %bb5.i ], [ %., %bb4.i ], [ %iter.sroa.0.0, %bb3.i ], [ %iter.sroa.0.0, %bb2.i ], [ %iter.sroa.0.0, %bb3 ]
%iter.sroa.8.2.ph = phi i8 [ 0, %bb5.i ], [ %.iter.sroa.8.0, %bb4.i ], [ 2, %bb3.i ], [ 3, %bb2.i ], [ 4, %bb3 ]
%_0.sroa.7.0.i.ph = phi i32 [ 125, %bb5.i ], [ %phitmp.i, %bb4.i ], [ 123, %bb3.i ], [ 117, %bb2.i ], [ 92, %bb3 ]
%21 = load {}*, {}** %11, align 8, !nonnull !687
%22 = load void (i8*)**, void (i8*)*** %12, align 8, !nonnull !687
%23 = getelementptr inbounds void (i8*)*, void (i8*)** %22, i64 4
%24 = bitcast void (i8*)** %23 to i8 ({}*, i32)**
%25 = load i8 ({}*, i32)*, i8 ({}*, i32)** %24, align 8, !invariant.load !687, !nonnull !687
%26 = tail call i8 %25({}* nonnull %21, i32 %_0.sroa.7.0.i.ph)
%cond4 = icmp eq i8 %26, 0
br i1 %cond4, label %bb3, label %bb13
bb13: ; preds = %bb3, %bb6
%_0.sroa.0.0 = phi i8 [ 1, %bb6 ], [ 0, %bb3 ]
ret i8 %_0.sroa.0.0
}
; Function Attrs: norecurse uwtable
define i64 @"_ZN76_$LT$core..char..EscapeDefault$u20$as$u20$core..iter..iterator..Iterator$GT$3nth17h64098a1da32a96e1E"(%"char::EscapeDefault"* nocapture dereferenceable(24), i64) unnamed_addr #8 personality i32 (...)* @rust_eh_personality {
start:
%2 = getelementptr inbounds %"char::EscapeDefault", %"char::EscapeDefault"* %0, i64 0, i32 0, i32 0
%3 = load i32, i32* %2, align 4, !range !956
%trunc = trunc i32 %3 to i2
switch i2 %trunc, label %bb7 [
i2 0, label %bb13
i2 1, label %bb5
i2 -2, label %bb6
]
bb1: ; preds = %bb6
store i32 1, i32* %2, align 4
br label %bb13
bb5: ; preds = %start
%4 = getelementptr inbounds %"char::EscapeDefault", %"char::EscapeDefault"* %0, i64 0, i32 0, i32 1, i64 0
%5 = load i32, i32* %4, align 4, !range !942
store i32 0, i32* %2, align 4
%6 = icmp eq i64 %1, 0
%.3 = zext i1 %6 to i64
br label %bb13
bb6: ; preds = %start
%7 = icmp eq i64 %1, 0
br i1 %7, label %bb1, label %bb8
bb7: ; preds = %start
%8 = getelementptr inbounds %"char::EscapeDefault", %"char::EscapeDefault"* %0, i64 0, i32 0, i32 2
%9 = bitcast [2 x i64]* %8 to %"char::EscapeUnicode"*
%10 = getelementptr inbounds %"char::EscapeUnicode", %"char::EscapeUnicode"* %9, i64 0, i32 4
%11 = getelementptr inbounds %"char::EscapeDefault", %"char::EscapeDefault"* %0, i64 0, i32 0, i32 2, i64 1
%12 = bitcast i64* %11 to i32*
%13 = load i32, i32* %12, align 4
%14 = getelementptr inbounds [2 x i64], [2 x i64]* %8, i64 0, i64 0
%.pre.i = load i8, i8* %10, align 1, !range !941
br label %bb2.i
bb2.i: ; preds = %bb8.i, %bb7
%15 = phi i8 [ %.pre.i, %bb7 ], [ %.ph.i, %bb8.i ]
%n.0.i = phi i64 [ %1, %bb7 ], [ %27, %bb8.i ]
%trunc.i.i.i = trunc i8 %15 to i3
switch i3 %trunc.i.i.i, label %bb1.i.i.i [
i3 0, label %_ZN4core4iter8iterator8Iterator3nth17hbceca548e600f282E.exit
i3 1, label %bb5.i.i.i
i3 2, label %bb4.i.i.i
i3 3, label %bb3.i.i.i
i3 -4, label %bb2.i.i.i
]
bb1.i.i.i: ; preds = %bb2.i
store i8 4, i8* %10, align 1
br label %bb8.i
bb2.i.i.i: ; preds = %bb2.i
store i8 3, i8* %10, align 1
br label %bb8.i
bb3.i.i.i: ; preds = %bb2.i
store i8 2, i8* %10, align 1
br label %bb8.i
bb4.i.i.i: ; preds = %bb2.i
%16 = load i64, i64* %14, align 8
%.tr.i.i.i = trunc i64 %16 to i32
%17 = shl i32 %.tr.i.i.i, 2
%18 = and i32 %17, 28
%19 = lshr i32 %13, %18
%20 = trunc i32 %19 to i8
%21 = and i8 %20, 15
%22 = icmp ult i8 %21, 10
%.sink4.v.i.i.i.i = select i1 %22, i8 48, i8 87
%.sink4.i.i.i.i = add nuw i8 %.sink4.v.i.i.i.i, %21
%23 = icmp eq i64 %16, 0
br i1 %23, label %bb10.i.i.i, label %bb11.i.i.i
bb5.i.i.i: ; preds = %bb2.i
store i8 0, i8* %10, align 1
br label %bb8.i
bb10.i.i.i: ; preds = %bb4.i.i.i
store i8 1, i8* %10, align 1
br label %bb12.i.i.i
bb11.i.i.i: ; preds = %bb4.i.i.i
%24 = add i64 %16, -1
store i64 %24, i64* %14, align 8
br label %bb12.i.i.i
bb12.i.i.i: ; preds = %bb11.i.i.i, %bb10.i.i.i
%25 = phi i8 [ %15, %bb11.i.i.i ], [ 1, %bb10.i.i.i ]
%phitmp.i.i.i = zext i8 %.sink4.i.i.i.i to i64
%phitmp3.i.i.i = shl nuw nsw i64 %phitmp.i.i.i, 32
br label %bb8.i
bb8.i: ; preds = %bb12.i.i.i, %bb5.i.i.i, %bb3.i.i.i, %bb2.i.i.i, %bb1.i.i.i
%.ph.i = phi i8 [ 0, %bb5.i.i.i ], [ %25, %bb12.i.i.i ], [ 2, %bb3.i.i.i ], [ 3, %bb2.i.i.i ], [ 4, %bb1.i.i.i ]
%_0.sroa.7.0.i.i.ph.i = phi i64 [ 536870912000, %bb5.i.i.i ], [ %phitmp3.i.i.i, %bb12.i.i.i ], [ 528280977408, %bb3.i.i.i ], [ 502511173632, %bb2.i.i.i ], [ 395136991232, %bb1.i.i.i ]
%26 = icmp eq i64 %n.0.i, 0
%27 = add i64 %n.0.i, -1
br i1 %26, label %_ZN4core4iter8iterator8Iterator3nth17hbceca548e600f282E.exit, label %bb2.i
_ZN4core4iter8iterator8Iterator3nth17hbceca548e600f282E.exit: ; preds = %bb2.i, %bb8.i
%_0.sroa.7.0.i.i21.i = phi i64 [ %_0.sroa.7.0.i.i.ph.i, %bb8.i ], [ 0, %bb2.i ]
%_0.sroa.0.0.i = phi i64 [ 1, %bb8.i ], [ 0, %bb2.i ]
%abi_cast.sroa.4.0.extract.shift = lshr i64 %_0.sroa.7.0.i.i21.i, 32
%abi_cast.sroa.4.0.extract.trunc = trunc i64 %abi_cast.sroa.4.0.extract.shift to i32
%_0.sroa.7.0.i.i21.i.masked = and i64 %_0.sroa.7.0.i.i21.i, 4294967295
%phitmp = or i64 %_0.sroa.0.0.i, %_0.sroa.7.0.i.i21.i.masked
br label %bb13
bb8: ; preds = %bb6
%28 = getelementptr inbounds %"char::EscapeDefault", %"char::EscapeDefault"* %0, i64 0, i32 0, i32 1, i64 0
%29 = load i32, i32* %28, align 4, !range !942
%30 = icmp eq i64 %1, 1
store i32 0, i32* %2, align 4
%.5 = zext i1 %30 to i64
br label %bb13
bb13: ; preds = %bb8, %bb5, %start, %_ZN4core4iter8iterator8Iterator3nth17hbceca548e600f282E.exit, %bb1
%_0.sroa.8.0 = phi i32 [ %abi_cast.sroa.4.0.extract.trunc, %_ZN4core4iter8iterator8Iterator3nth17hbceca548e600f282E.exit ], [ 92, %bb1 ], [ undef, %start ], [ %5, %bb5 ], [ %29, %bb8 ]
%_0.sroa.0.0 = phi i64 [ %phitmp, %_ZN4core4iter8iterator8Iterator3nth17hbceca548e600f282E.exit ], [ 1, %bb1 ], [ 0, %start ], [ %.3, %bb5 ], [ %.5, %bb8 ]
%_0.sroa.8.0.insert.ext = zext i32 %_0.sroa.8.0 to i64
%_0.sroa.8.0.insert.shift = shl nuw i64 %_0.sroa.8.0.insert.ext, 32
%_0.sroa.0.0.insert.insert = or i64 %_0.sroa.8.0.insert.shift, %_0.sroa.0.0
ret i64 %_0.sroa.0.0.insert.insert
}
; Function Attrs: nounwind uwtable
define i64 @"_ZN76_$LT$core..char..EscapeDefault$u20$as$u20$core..iter..iterator..Iterator$GT$4last17h6a45a0b5bfb4854aE"(%"char::EscapeDefault"* noalias nocapture readonly dereferenceable(24)) unnamed_addr #6 {
start:
%self.sroa.0.0..sroa_idx = getelementptr inbounds %"char::EscapeDefault", %"char::EscapeDefault"* %0, i64 0, i32 0, i32 0
%self.sroa.0.0.copyload17 = load i32, i32* %self.sroa.0.0..sroa_idx, align 8
%self.sroa.4.0..sroa_idx2 = getelementptr inbounds %"char::EscapeDefault", %"char::EscapeDefault"* %0, i64 0, i32 0, i32 1, i64 0
%self.sroa.4.0.copyload = load i32, i32* %self.sroa.4.0..sroa_idx2, align 4
switch i32 %self.sroa.0.0.copyload17, label %bb5 [
i32 0, label %bb6
i32 1, label %bb3
i32 2, label %bb4
]
bb3: ; preds = %start
br label %bb6
bb4: ; preds = %start
br label %bb6
bb5: ; preds = %start
%self.sroa.6.sroa.4.0.self.sroa.6.0..sroa_cast5.sroa_raw_cast = bitcast %"char::EscapeDefault"* %0 to i8*
%self.sroa.6.sroa.4.0.self.sroa.6.0..sroa_cast5.sroa_raw_idx = getelementptr inbounds i8, i8* %self.sroa.6.sroa.4.0.self.sroa.6.0..sroa_cast5.sroa_raw_cast, i64 20
%self.sroa.6.sroa.4.0.copyload = load i8, i8* %self.sroa.6.sroa.4.0.self.sroa.6.0..sroa_cast5.sroa_raw_idx, align 4
%not.cond.i = icmp ne i8 %self.sroa.6.sroa.4.0.copyload, 0
%..i = zext i1 %not.cond.i to i64
br label %bb6
bb6: ; preds = %bb4, %bb3, %start, %bb5
%_0.sroa.4.0 = phi i32 [ 125, %bb5 ], [ undef, %start ], [ %self.sroa.4.0.copyload, %bb3 ], [ %self.sroa.4.0.copyload, %bb4 ]
%_0.sroa.0.0 = phi i64 [ %..i, %bb5 ], [ 0, %start ], [ 1, %bb3 ], [ 1, %bb4 ]
%_0.sroa.4.0.insert.ext = zext i32 %_0.sroa.4.0 to i64
%_0.sroa.4.0.insert.shift = shl nuw i64 %_0.sroa.4.0.insert.ext, 32
%_0.sroa.0.0.insert.insert = or i64 %_0.sroa.4.0.insert.shift, %_0.sroa.0.0
ret i64 %_0.sroa.0.0.insert.insert
}
; Function Attrs: norecurse nounwind readonly uwtable
define i64 @"_ZN83_$LT$core..char..EscapeDefault$u20$as$u20$core..iter..traits..ExactSizeIterator$GT$3len17hf6dea4d1eb8b9fd4E"(%"char::EscapeDefault"* noalias nocapture readonly dereferenceable(24)) unnamed_addr #3 {
start:
%1 = getelementptr inbounds %"char::EscapeDefault", %"char::EscapeDefault"* %0, i64 0, i32 0, i32 0
%2 = load i32, i32* %1, align 4, !range !956
%trunc = trunc i32 %2 to i2
switch i2 %trunc, label %bb4 [
i2 0, label %bb5
i2 1, label %bb2
i2 -2, label %bb3
]
bb2: ; preds = %start
br label %bb5
bb3: ; preds = %start
br label %bb5
bb4: ; preds = %start
%3 = getelementptr inbounds %"char::EscapeDefault", %"char::EscapeDefault"* %0, i64 0, i32 0, i32 2
%4 = bitcast [2 x i64]* %3 to %"char::EscapeUnicode"*
%5 = getelementptr inbounds [2 x i64], [2 x i64]* %3, i64 0, i64 0
%6 = load i64, i64* %5, align 8, !alias.scope !957
%7 = getelementptr inbounds %"char::EscapeUnicode", %"char::EscapeUnicode"* %4, i64 0, i32 4
%8 = load i8, i8* %7, align 1, !range !941, !alias.scope !957
%9 = xor i8 %8, 4
%switch.tableidx.i = zext i8 %9 to i64
%switch.gep.i = getelementptr inbounds [8 x i64], [8 x i64]* @switch.table.2, i64 0, i64 %switch.tableidx.i
%switch.load.i = load i64, i64* %switch.gep.i, align 8, !noalias !957
%10 = add i64 %switch.load.i, %6
br label %bb5
bb5: ; preds = %start, %bb2, %bb3, %bb4
%_0.0 = phi i64 [ %10, %bb4 ], [ 2, %bb3 ], [ 1, %bb2 ], [ 0, %start ]
ret i64 %_0.0
}
; Function Attrs: norecurse uwtable
define i64 @"_ZN74_$LT$core..char..EscapeDebug$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h4e214a7e575b52eaE"(%"char::EscapeDebug"* nocapture dereferenceable(24)) unnamed_addr #8 personality i32 (...)* @rust_eh_personality {
start:
%1 = getelementptr inbounds %"char::EscapeDebug", %"char::EscapeDebug"* %0, i64 0, i32 0, i32 0, i32 0
%2 = load i32, i32* %1, align 4, !range !956
%trunc.i = trunc i32 %2 to i2
switch i2 %trunc.i, label %bb4.i [
i2 0, label %"_ZN76_$LT$core..char..EscapeDefault$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h467dd9108e7191b3E.exit"
i2 1, label %bb2.i
i2 -2, label %bb3.i
]
bb2.i: ; preds = %start
%3 = getelementptr inbounds %"char::EscapeDebug", %"char::EscapeDebug"* %0, i64 0, i32 0, i32 0, i32 1, i64 0
%4 = load i32, i32* %3, align 4, !range !942
store i32 0, i32* %1, align 4
br label %"_ZN76_$LT$core..char..EscapeDefault$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h467dd9108e7191b3E.exit"
bb3.i: ; preds = %start
store i32 1, i32* %1, align 4
br label %"_ZN76_$LT$core..char..EscapeDefault$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h467dd9108e7191b3E.exit"
bb4.i: ; preds = %start
%5 = getelementptr inbounds %"char::EscapeDebug", %"char::EscapeDebug"* %0, i64 0, i32 0, i32 0, i32 2
%6 = bitcast [2 x i64]* %5 to %"char::EscapeUnicode"*
%7 = getelementptr inbounds %"char::EscapeUnicode", %"char::EscapeUnicode"* %6, i64 0, i32 4
%8 = load i8, i8* %7, align 1, !range !941
%trunc.i.i = trunc i8 %8 to i3
switch i3 %trunc.i.i, label %bb1.i.i [
i3 0, label %"_ZN76_$LT$core..char..EscapeDefault$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h467dd9108e7191b3E.exit"
i3 1, label %bb5.i.i
i3 2, label %bb4.i.i
i3 3, label %bb3.i.i
i3 -4, label %bb2.i.i
]
bb1.i.i: ; preds = %bb4.i
store i8 4, i8* %7, align 1
br label %"_ZN76_$LT$core..char..EscapeDefault$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h467dd9108e7191b3E.exit"
bb2.i.i: ; preds = %bb4.i
store i8 3, i8* %7, align 1
br label %"_ZN76_$LT$core..char..EscapeDefault$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h467dd9108e7191b3E.exit"
bb3.i.i: ; preds = %bb4.i
store i8 2, i8* %7, align 1
br label %"_ZN76_$LT$core..char..EscapeDefault$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h467dd9108e7191b3E.exit"
bb4.i.i: ; preds = %bb4.i
%9 = getelementptr inbounds %"char::EscapeDebug", %"char::EscapeDebug"* %0, i64 0, i32 0, i32 0, i32 2, i64 1
%10 = bitcast i64* %9 to i32*
%11 = load i32, i32* %10, align 4, !range !942
%12 = getelementptr inbounds [2 x i64], [2 x i64]* %5, i64 0, i64 0
%13 = load i64, i64* %12, align 8
%.tr.i.i = trunc i64 %13 to i32
%14 = shl i32 %.tr.i.i, 2
%15 = and i32 %14, 28
%16 = lshr i32 %11, %15
%17 = trunc i32 %16 to i8
%18 = and i8 %17, 15
%19 = icmp ult i8 %18, 10
%.sink4.v.i.i.i = select i1 %19, i8 48, i8 87
%.sink4.i.i.i = add nuw i8 %.sink4.v.i.i.i, %18
%20 = icmp eq i64 %13, 0
br i1 %20, label %bb10.i.i, label %bb11.i.i
bb5.i.i: ; preds = %bb4.i
store i8 0, i8* %7, align 1
br label %"_ZN76_$LT$core..char..EscapeDefault$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h467dd9108e7191b3E.exit"
bb10.i.i: ; preds = %bb4.i.i
store i8 1, i8* %7, align 1
br label %bb12.i.i
bb11.i.i: ; preds = %bb4.i.i
%21 = add i64 %13, -1
store i64 %21, i64* %12, align 8
br label %bb12.i.i
bb12.i.i: ; preds = %bb11.i.i, %bb10.i.i
%phitmp.i = zext i8 %.sink4.i.i.i to i32
br label %"_ZN76_$LT$core..char..EscapeDefault$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h467dd9108e7191b3E.exit"
"_ZN76_$LT$core..char..EscapeDefault$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h467dd9108e7191b3E.exit": ; preds = %start, %bb2.i, %bb3.i, %bb4.i, %bb1.i.i, %bb2.i.i, %bb3.i.i, %bb5.i.i, %bb12.i.i
%_0.sroa.5.0.i = phi i32 [ 92, %bb3.i ], [ %4, %bb2.i ], [ undef, %start ], [ 92, %bb1.i.i ], [ 117, %bb2.i.i ], [ 123, %bb3.i.i ], [ %phitmp.i, %bb12.i.i ], [ 125, %bb5.i.i ], [ 0, %bb4.i ]
%_0.sroa.0.0.i = phi i64 [ 1, %bb3.i ], [ 1, %bb2.i ], [ 0, %start ], [ 1, %bb1.i.i ], [ 1, %bb2.i.i ], [ 1, %bb3.i.i ], [ 1, %bb12.i.i ], [ 1, %bb5.i.i ], [ 0, %bb4.i ]
%_0.sroa.5.0.insert.ext.i = zext i32 %_0.sroa.5.0.i to i64
%_0.sroa.5.0.insert.shift.i = shl nuw i64 %_0.sroa.5.0.insert.ext.i, 32
%_0.sroa.0.0.insert.insert.i = or i64 %_0.sroa.5.0.insert.shift.i, %_0.sroa.0.0.i
ret i64 %_0.sroa.0.0.insert.insert.i
}
; Function Attrs: norecurse nounwind uwtable
define void @"_ZN74_$LT$core..char..EscapeDebug$u20$as$u20$core..iter..iterator..Iterator$GT$9size_hint17h10bf347c01a27ec9E"({ i64, [0 x i8], %"option::Option<usize>", [0 x i8] }* noalias nocapture sret dereferenceable(24), %"char::EscapeDebug"* noalias nocapture readonly dereferenceable(24)) unnamed_addr #5 {
start:
%2 = getelementptr inbounds %"char::EscapeDebug", %"char::EscapeDebug"* %1, i64 0, i32 0, i32 0, i32 0
%3 = load i32, i32* %2, align 4, !range !956, !alias.scope !960, !noalias !965
%trunc.i.i = trunc i32 %3 to i2
switch i2 %trunc.i.i, label %bb4.i.i [
i2 0, label %"_ZN76_$LT$core..char..EscapeDefault$u20$as$u20$core..iter..iterator..Iterator$GT$9size_hint17h073dfd4b8b0728d9E.exit"
i2 1, label %bb2.i.i
i2 -2, label %bb3.i.i
]
bb2.i.i: ; preds = %start
br label %"_ZN76_$LT$core..char..EscapeDefault$u20$as$u20$core..iter..iterator..Iterator$GT$9size_hint17h073dfd4b8b0728d9E.exit"
bb3.i.i: ; preds = %start
br label %"_ZN76_$LT$core..char..EscapeDefault$u20$as$u20$core..iter..iterator..Iterator$GT$9size_hint17h073dfd4b8b0728d9E.exit"
bb4.i.i: ; preds = %start
%4 = getelementptr inbounds %"char::EscapeDebug", %"char::EscapeDebug"* %1, i64 0, i32 0, i32 0, i32 2
%5 = bitcast [2 x i64]* %4 to %"char::EscapeUnicode"*
%6 = getelementptr inbounds [2 x i64], [2 x i64]* %4, i64 0, i64 0
%7 = load i64, i64* %6, align 8, !alias.scope !967, !noalias !965
%8 = getelementptr inbounds %"char::EscapeUnicode", %"char::EscapeUnicode"* %5, i64 0, i32 4
%9 = load i8, i8* %8, align 1, !range !941, !alias.scope !967, !noalias !965
%10 = xor i8 %9, 4
%switch.tableidx.i.i.i = zext i8 %10 to i64
%switch.gep.i.i.i = getelementptr inbounds [8 x i64], [8 x i64]* @switch.table.2, i64 0, i64 %switch.tableidx.i.i.i
%switch.load.i.i.i = load i64, i64* %switch.gep.i.i.i, align 8, !noalias !970
%11 = add i64 %switch.load.i.i.i, %7
br label %"_ZN76_$LT$core..char..EscapeDefault$u20$as$u20$core..iter..iterator..Iterator$GT$9size_hint17h073dfd4b8b0728d9E.exit"
"_ZN76_$LT$core..char..EscapeDefault$u20$as$u20$core..iter..iterator..Iterator$GT$9size_hint17h073dfd4b8b0728d9E.exit": ; preds = %start, %bb2.i.i, %bb3.i.i, %bb4.i.i
%_0.0.i.i = phi i64 [ %11, %bb4.i.i ], [ 2, %bb3.i.i ], [ 1, %bb2.i.i ], [ 0, %start ]
%12 = getelementptr inbounds { i64, [0 x i8], %"option::Option<usize>", [0 x i8] }, { i64, [0 x i8], %"option::Option<usize>", [0 x i8] }* %0, i64 0, i32 0
store i64 %_0.0.i.i, i64* %12, align 8, !alias.scope !965, !noalias !971
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds { i64, [0 x i8], %"option::Option<usize>", [0 x i8] }, { i64, [0 x i8], %"option::Option<usize>", [0 x i8] }* %0, i64 0, i32 2, i32 0
store i64 1, i64* %_6.sroa.0.0..sroa_idx.i, align 8, !alias.scope !965, !noalias !971
%_6.sroa.4.0..sroa_idx2.i = getelementptr inbounds { i64, [0 x i8], %"option::Option<usize>", [0 x i8] }, { i64, [0 x i8], %"option::Option<usize>", [0 x i8] }* %0, i64 0, i32 2, i32 2, i64 0
store i64 %_0.0.i.i, i64* %_6.sroa.4.0..sroa_idx2.i, align 8, !alias.scope !965, !noalias !971
ret void
}
; Function Attrs: uwtable
define i8 @"_ZN62_$LT$core..char..EscapeDebug$u20$as$u20$core..fmt..Display$GT$3fmt17h58c83ec39b22e3b0E"(%"char::EscapeDebug"* noalias nocapture readonly dereferenceable(24), %"fmt::Formatter"* nocapture readonly dereferenceable(96)) unnamed_addr #2 personality i32 (...)* @rust_eh_personality {
start:
%2 = getelementptr inbounds %"char::EscapeDebug", %"char::EscapeDebug"* %0, i64 0, i32 0, i32 0, i32 0
%3 = load i32, i32* %2, align 4, !range !956, !alias.scope !972, !noalias !979
%trunc.i.i.i = trunc i32 %3 to i2
switch i2 %trunc.i.i.i, label %bb4.i.i.i [
i2 0, label %"_ZN64_$LT$core..char..EscapeDefault$u20$as$u20$core..clone..Clone$GT$5clone17hcdcee3cdff36ba26E.exit.i"
i2 1, label %bb2.i.i.i
i2 -2, label %bb3.i.i.i
]
bb2.i.i.i: ; preds = %start
%4 = getelementptr inbounds %"char::EscapeDebug", %"char::EscapeDebug"* %0, i64 0, i32 0, i32 0, i32 1, i64 0
%5 = load i32, i32* %4, align 4, !range !942, !alias.scope !982, !noalias !979
br label %"_ZN64_$LT$core..char..EscapeDefault$u20$as$u20$core..clone..Clone$GT$5clone17hcdcee3cdff36ba26E.exit.i"
bb3.i.i.i: ; preds = %start
%6 = getelementptr inbounds %"char::EscapeDebug", %"char::EscapeDebug"* %0, i64 0, i32 0, i32 0, i32 1, i64 0
%7 = load i32, i32* %6, align 4, !range !942, !alias.scope !985, !noalias !979
br label %"_ZN64_$LT$core..char..EscapeDefault$u20$as$u20$core..clone..Clone$GT$5clone17hcdcee3cdff36ba26E.exit.i"
bb4.i.i.i: ; preds = %start
%8 = getelementptr inbounds %"char::EscapeDebug", %"char::EscapeDebug"* %0, i64 0, i32 0, i32 0, i32 2
%9 = bitcast [2 x i64]* %8 to %"char::EscapeUnicode"*
%10 = getelementptr inbounds %"char::EscapeDebug", %"char::EscapeDebug"* %0, i64 0, i32 0, i32 0, i32 2, i64 1
%11 = bitcast i64* %10 to i32*
%12 = getelementptr inbounds %"char::EscapeUnicode", %"char::EscapeUnicode"* %9, i64 0, i32 4
%13 = getelementptr inbounds [2 x i64], [2 x i64]* %8, i64 0, i64 0
%14 = load i32, i32* %11, align 4, !range !942, !alias.scope !988, !noalias !993
%15 = load i8, i8* %12, align 1, !range !941, !alias.scope !995, !noalias !993
%16 = shl nuw nsw i8 %15, 3
%17 = xor i8 %16, 32
%switch.shiftamt.i.i.i.i.i = zext i8 %17 to i64
%switch.downshift.i.i.i.i.i = lshr i64 216736831663047940, %switch.shiftamt.i.i.i.i.i
%switch.masked.i.i.i.i.i = trunc i64 %switch.downshift.i.i.i.i.i to i8
%18 = load i64, i64* %13, align 8, !alias.scope !998, !noalias !993
br label %"_ZN64_$LT$core..char..EscapeDefault$u20$as$u20$core..clone..Clone$GT$5clone17hcdcee3cdff36ba26E.exit.i"
"_ZN64_$LT$core..char..EscapeDefault$u20$as$u20$core..clone..Clone$GT$5clone17hcdcee3cdff36ba26E.exit.i": ; preds = %bb4.i.i.i, %bb3.i.i.i, %bb2.i.i.i, %start
%_4.sroa.11.0.i.i = phi i8 [ %switch.masked.i.i.i.i.i, %bb4.i.i.i ], [ undef, %bb3.i.i.i ], [ undef, %bb2.i.i.i ], [ undef, %start ]
%_4.sroa.10.0.i.i = phi i32 [ %14, %bb4.i.i.i ], [ undef, %bb3.i.i.i ], [ undef, %bb2.i.i.i ], [ undef, %start ]
%_4.sroa.9.0.i.i = phi i64 [ %18, %bb4.i.i.i ], [ undef, %bb3.i.i.i ], [ undef, %bb2.i.i.i ], [ undef, %start ]
%_4.sroa.7.0.i.i = phi i32 [ undef, %bb4.i.i.i ], [ %7, %bb3.i.i.i ], [ %5, %bb2.i.i.i ], [ undef, %start ]
%_4.sroa.0.0.i.i = phi i32 [ 3, %bb4.i.i.i ], [ 2, %bb3.i.i.i ], [ 1, %bb2.i.i.i ], [ 0, %start ]
%19 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i64 0, i32 4
%20 = bitcast { i8*, void (i8*)** }* %19 to {}**
%21 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i64 0, i32 4, i32 1
br label %bb3.i
bb3.i: ; preds = %bb6.i, %"_ZN64_$LT$core..char..EscapeDefault$u20$as$u20$core..clone..Clone$GT$5clone17hcdcee3cdff36ba26E.exit.i"
%iter.sroa.0.0.i = phi i32 [ %_4.sroa.0.0.i.i, %"_ZN64_$LT$core..char..EscapeDefault$u20$as$u20$core..clone..Clone$GT$5clone17hcdcee3cdff36ba26E.exit.i" ], [ %iter.sroa.0.1.ph.i, %bb6.i ]
%iter.sroa.9.0.i = phi i64 [ %_4.sroa.9.0.i.i, %"_ZN64_$LT$core..char..EscapeDefault$u20$as$u20$core..clone..Clone$GT$5clone17hcdcee3cdff36ba26E.exit.i" ], [ %iter.sroa.9.2.ph.i, %bb6.i ]
%iter.sroa.14.0.i = phi i8 [ %_4.sroa.11.0.i.i, %"_ZN64_$LT$core..char..EscapeDefault$u20$as$u20$core..clone..Clone$GT$5clone17hcdcee3cdff36ba26E.exit.i" ], [ %iter.sroa.14.2.ph.i, %bb6.i ]
%trunc.i.i = trunc i32 %iter.sroa.0.0.i to i2
switch i2 %trunc.i.i, label %bb4.i.i [
i2 0, label %"_ZN64_$LT$core..char..EscapeDefault$u20$as$u20$core..fmt..Display$GT$3fmt17h97f8b85c3b07d086E.exit"
i2 1, label %bb6.i
i2 -2, label %bb3.i.i
]
bb3.i.i: ; preds = %bb3.i
br label %bb6.i
bb4.i.i: ; preds = %bb3.i
%trunc.i.i13.i = trunc i8 %iter.sroa.14.0.i to i3
switch i3 %trunc.i.i13.i, label %bb6.i [
i3 0, label %"_ZN64_$LT$core..char..EscapeDefault$u20$as$u20$core..fmt..Display$GT$3fmt17h97f8b85c3b07d086E.exit"
i3 1, label %bb5.i.i.i
i3 2, label %bb4.i.i16.i
i3 3, label %bb3.i.i15.i
i3 -4, label %bb2.i.i14.i
]
bb2.i.i14.i: ; preds = %bb4.i.i
br label %bb6.i
bb3.i.i15.i: ; preds = %bb4.i.i
br label %bb6.i
bb4.i.i16.i: ; preds = %bb4.i.i
%.tr.i.i.i = trunc i64 %iter.sroa.9.0.i to i32
%22 = shl i32 %.tr.i.i.i, 2
%23 = and i32 %22, 28
%24 = lshr i32 %_4.sroa.10.0.i.i, %23
%25 = trunc i32 %24 to i8
%26 = and i8 %25, 15
%27 = icmp ult i8 %26, 10
%.sink4.v.i.i.i.i = select i1 %27, i8 48, i8 87
%.sink4.i.i.i.i = add nuw i8 %.sink4.v.i.i.i.i, %26
%28 = icmp eq i64 %iter.sroa.9.0.i, 0
%29 = add i64 %iter.sroa.9.0.i, -1
%..i = select i1 %28, i64 0, i64 %29
%.iter.sroa.14.0.i = select i1 %28, i8 1, i8 %iter.sroa.14.0.i
%phitmp.i.i = zext i8 %.sink4.i.i.i.i to i32
br label %bb6.i
bb5.i.i.i: ; preds = %bb4.i.i
br label %bb6.i
bb6.i: ; preds = %bb5.i.i.i, %bb4.i.i16.i, %bb3.i.i15.i, %bb2.i.i14.i, %bb4.i.i, %bb3.i.i, %bb3.i
%iter.sroa.0.1.ph.i = phi i32 [ 1, %bb3.i.i ], [ %iter.sroa.0.0.i, %bb5.i.i.i ], [ %iter.sroa.0.0.i, %bb4.i.i16.i ], [ %iter.sroa.0.0.i, %bb3.i.i15.i ], [ %iter.sroa.0.0.i, %bb2.i.i14.i ], [ 0, %bb3.i ], [ %iter.sroa.0.0.i, %bb4.i.i ]
%iter.sroa.9.2.ph.i = phi i64 [ %iter.sroa.9.0.i, %bb3.i.i ], [ %iter.sroa.9.0.i, %bb5.i.i.i ], [ %..i, %bb4.i.i16.i ], [ %iter.sroa.9.0.i, %bb3.i.i15.i ], [ %iter.sroa.9.0.i, %bb2.i.i14.i ], [ %iter.sroa.9.0.i, %bb3.i ], [ %iter.sroa.9.0.i, %bb4.i.i ]
%iter.sroa.14.2.ph.i = phi i8 [ %iter.sroa.14.0.i, %bb3.i.i ], [ 0, %bb5.i.i.i ], [ %.iter.sroa.14.0.i, %bb4.i.i16.i ], [ 2, %bb3.i.i15.i ], [ 3, %bb2.i.i14.i ], [ %iter.sroa.14.0.i, %bb3.i ], [ 4, %bb4.i.i ]
%_0.sroa.5.0.i.ph.i = phi i32 [ 92, %bb3.i.i ], [ 125, %bb5.i.i.i ], [ %phitmp.i.i, %bb4.i.i16.i ], [ 123, %bb3.i.i15.i ], [ 117, %bb2.i.i14.i ], [ %_4.sroa.7.0.i.i, %bb3.i ], [ 92, %bb4.i.i ]
%30 = load {}*, {}** %20, align 8, !noalias !1001, !nonnull !687
%31 = load void (i8*)**, void (i8*)*** %21, align 8, !noalias !1001, !nonnull !687
%32 = getelementptr inbounds void (i8*)*, void (i8*)** %31, i64 4
%33 = bitcast void (i8*)** %32 to i8 ({}*, i32)**
%34 = load i8 ({}*, i32)*, i8 ({}*, i32)** %33, align 8, !invariant.load !687, !noalias !1001, !nonnull !687
%35 = tail call i8 %34({}* nonnull %30, i32 %_0.sroa.5.0.i.ph.i), !noalias !1001
%cond4.i = icmp eq i8 %35, 0
br i1 %cond4.i, label %bb3.i, label %"_ZN64_$LT$core..char..EscapeDefault$u20$as$u20$core..fmt..Display$GT$3fmt17h97f8b85c3b07d086E.exit"
"_ZN64_$LT$core..char..EscapeDefault$u20$as$u20$core..fmt..Display$GT$3fmt17h97f8b85c3b07d086E.exit": ; preds = %bb3.i, %bb4.i.i, %bb6.i
%_0.sroa.0.0.i = phi i8 [ 1, %bb6.i ], [ 0, %bb3.i ], [ 0, %bb4.i.i ]
ret i8 %_0.sroa.0.0.i
}
; Function Attrs: cold noinline noreturn uwtable
define void @_ZN4core9panicking5panic17h5db1dc6c05243fabE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias nocapture readonly dereferenceable(40)) unnamed_addr #9 {
start:
%_17 = alloca { %str_slice, [0 x i8], i32, [4 x i8] }, align 8
%_10 = alloca [1 x %str_slice], align 8
%_6 = alloca %"fmt::Arguments", align 8
%1 = bitcast { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* %0 to i64*
%2 = load i64, i64* %1, align 8, !range !1002
%3 = getelementptr inbounds { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }, { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* %0, i64 0, i32 0, i32 1
%4 = load i64, i64* %3, align 8
%5 = getelementptr inbounds { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }, { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* %0, i64 0, i32 2
%6 = bitcast %str_slice* %5 to i64*
%7 = load i64, i64* %6, align 8, !range !1002
%8 = getelementptr inbounds { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }, { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* %0, i64 0, i32 2, i32 1
%9 = load i64, i64* %8, align 8
%10 = getelementptr inbounds { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }, { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* %0, i64 0, i32 4
%11 = load i32, i32* %10, align 4
%12 = bitcast %"fmt::Arguments"* %_6 to i8*
call void @llvm.lifetime.start(i64 48, i8* nonnull %12)
%13 = bitcast [1 x %str_slice]* %_10 to i8*
call void @llvm.lifetime.start(i64 16, i8* nonnull %13)
%14 = bitcast [1 x %str_slice]* %_10 to i64*
store i64 %2, i64* %14, align 8
%15 = getelementptr inbounds [1 x %str_slice], [1 x %str_slice]* %_10, i64 0, i64 0, i32 1
store i64 %4, i64* %15, align 8
%16 = getelementptr inbounds [1 x %str_slice], [1 x %str_slice]* %_10, i64 0, i64 0
%17 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_6, i64 0, i32 0, i32 0
store %str_slice* %16, %str_slice** %17, align 8, !alias.scope !1003, !noalias !1006
%18 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_6, i64 0, i32 0, i32 1
store i64 1, i64* %18, align 8, !alias.scope !1003, !noalias !1006
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_6, i64 0, i32 2, i32 0, i32 0
store %"fmt::rt::v1::Argument"* null, %"fmt::rt::v1::Argument"** %_6.sroa.0.0..sroa_idx.i, align 8, !alias.scope !1003, !noalias !1006
%19 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_6, i64 0, i32 4, i32 0
store %"fmt::ArgumentV1"* getelementptr inbounds ([0 x %"fmt::ArgumentV1"], [0 x %"fmt::ArgumentV1"]* @ref.1W, i64 0, i64 0), %"fmt::ArgumentV1"** %19, align 8, !alias.scope !1003, !noalias !1006
%20 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_6, i64 0, i32 4, i32 1
store i64 0, i64* %20, align 8, !alias.scope !1003, !noalias !1006
%21 = bitcast { %str_slice, [0 x i8], i32, [4 x i8] }* %_17 to i8*
call void @llvm.lifetime.start(i64 24, i8* nonnull %21)
%22 = bitcast { %str_slice, [0 x i8], i32, [4 x i8] }* %_17 to i64*
store i64 %7, i64* %22, align 8
%23 = getelementptr inbounds { %str_slice, [0 x i8], i32, [4 x i8] }, { %str_slice, [0 x i8], i32, [4 x i8] }* %_17, i64 0, i32 0, i32 1
store i64 %9, i64* %23, align 8
%24 = getelementptr inbounds { %str_slice, [0 x i8], i32, [4 x i8] }, { %str_slice, [0 x i8], i32, [4 x i8] }* %_17, i64 0, i32 2
store i32 %11, i32* %24, align 8
call void @_ZN4core9panicking9panic_fmt17hcc78ce34a0090adfE(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %_6, { %str_slice, [0 x i8], i32, [4 x i8] }* noalias nonnull readonly dereferenceable(24) %_17)
unreachable
}
; Function Attrs: cold noinline noreturn uwtable
define void @_ZN4core9panicking18panic_bounds_check17heeb24f873da1bc4fE({ %str_slice, [0 x i8], i32, [4 x i8] }* noalias nocapture readonly dereferenceable(24), i64, i64) unnamed_addr #9 {
start:
%_12 = alloca [2 x %"fmt::ArgumentV1"], align 8
%_7 = alloca %"fmt::Arguments", align 8
%len = alloca i64, align 8
%index = alloca i64, align 8
%3 = bitcast i64* %index to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %3)
store i64 %1, i64* %index, align 8
%4 = bitcast i64* %len to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %4)
store i64 %2, i64* %len, align 8
%5 = bitcast %"fmt::Arguments"* %_7 to i8*
call void @llvm.lifetime.start(i64 48, i8* nonnull %5)
%6 = bitcast [2 x %"fmt::ArgumentV1"]* %_12 to i8*
call void @llvm.lifetime.start(i64 32, i8* nonnull %6)
%7 = ptrtoint i64* %len to i64
%8 = ptrtoint i64* %index to i64
%9 = bitcast [2 x %"fmt::ArgumentV1"]* %_12 to i64*
store i64 %7, i64* %9, align 8
%10 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_12, i64 0, i64 0, i32 2
%11 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %10 to i64*
store i64 ptrtoint (i8 (i64*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u64$GT$3fmt17h52b5aaaba699ca69E" to i64), i64* %11, align 8
%12 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_12, i64 0, i64 1
%13 = bitcast %"fmt::ArgumentV1"* %12 to i64*
store i64 %8, i64* %13, align 8
%14 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_12, i64 0, i64 1, i32 2
%15 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %14 to i64*
store i64 ptrtoint (i8 (i64*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u64$GT$3fmt17h52b5aaaba699ca69E" to i64), i64* %15, align 8
%16 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_12, i64 0, i64 0
%17 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref.6U, i64 0, i64 0), %str_slice** %17, align 8, !alias.scope !1009, !noalias !1012
%18 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7, i64 0, i32 0, i32 1
store i64 2, i64* %18, align 8, !alias.scope !1009, !noalias !1012
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7, i64 0, i32 2, i32 0, i32 0
store %"fmt::rt::v1::Argument"* null, %"fmt::rt::v1::Argument"** %_6.sroa.0.0..sroa_idx.i, align 8, !alias.scope !1009, !noalias !1012
%19 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7, i64 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %16, %"fmt::ArgumentV1"** %19, align 8, !alias.scope !1009, !noalias !1012
%20 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7, i64 0, i32 4, i32 1
store i64 2, i64* %20, align 8, !alias.scope !1009, !noalias !1012
call void @_ZN4core9panicking9panic_fmt17hcc78ce34a0090adfE(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %_7, { %str_slice, [0 x i8], i32, [4 x i8] }* noalias nonnull readonly dereferenceable(24) %0)
unreachable
}
; Function Attrs: cold noinline noreturn uwtable
define void @_ZN4core9panicking9panic_fmt17hcc78ce34a0090adfE(%"fmt::Arguments"* noalias nocapture readonly dereferenceable(48), { %str_slice, [0 x i8], i32, [4 x i8] }* noalias nocapture readonly dereferenceable(24)) unnamed_addr #9 {
start:
%_7 = alloca %"fmt::Arguments", align 8
%2 = bitcast %"fmt::Arguments"* %0 to i8*
%3 = getelementptr inbounds { %str_slice, [0 x i8], i32, [4 x i8] }, { %str_slice, [0 x i8], i32, [4 x i8] }* %1, i64 0, i32 0, i32 0
%4 = load i8*, i8** %3, align 8, !nonnull !687
%5 = getelementptr inbounds { %str_slice, [0 x i8], i32, [4 x i8] }, { %str_slice, [0 x i8], i32, [4 x i8] }* %1, i64 0, i32 0, i32 1
%6 = load i64, i64* %5, align 8
%7 = getelementptr inbounds { %str_slice, [0 x i8], i32, [4 x i8] }, { %str_slice, [0 x i8], i32, [4 x i8] }* %1, i64 0, i32 2
%8 = load i32, i32* %7, align 4
%9 = bitcast %"fmt::Arguments"* %_7 to i8*
call void @llvm.lifetime.start(i64 48, i8* nonnull %9)
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull %9, i8* nonnull %2, i64 48, i32 8, i1 false)
call void @rust_begin_unwind(%"fmt::Arguments"* byval noalias nocapture nonnull dereferenceable(48) %_7, i8* noalias nonnull readonly %4, i64 %6, i32 %8)
unreachable
}
; Function Attrs: cold noinline noreturn uwtable
define void @_ZN4core6option13expect_failed17heb8f6bb51548654bE(i8* noalias nonnull readonly, i64) unnamed_addr #9 {
start:
%_8 = alloca [1 x %"fmt::ArgumentV1"], align 8
%_3 = alloca %"fmt::Arguments", align 8
%msg = alloca %str_slice, align 8
%2 = bitcast %str_slice* %msg to i8*
call void @llvm.lifetime.start(i64 16, i8* nonnull %2)
%3 = getelementptr inbounds %str_slice, %str_slice* %msg, i64 0, i32 0
store i8* %0, i8** %3, align 8
%4 = getelementptr inbounds %str_slice, %str_slice* %msg, i64 0, i32 1
store i64 %1, i64* %4, align 8
%5 = bitcast %"fmt::Arguments"* %_3 to i8*
call void @llvm.lifetime.start(i64 48, i8* nonnull %5)
%6 = bitcast [1 x %"fmt::ArgumentV1"]* %_8 to i8*
call void @llvm.lifetime.start(i64 16, i8* nonnull %6)
%7 = ptrtoint %str_slice* %msg to i64
%8 = bitcast [1 x %"fmt::ArgumentV1"]* %_8 to i64*
store i64 %7, i64* %8, align 8
%9 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_8, i64 0, i64 0, i32 2
%10 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %9 to i64*
store i64 ptrtoint (i8 (%str_slice*, %"fmt::Formatter"*)* @"_ZN55_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Display$GT$3fmt17hd6bac82c773548afE" to i64), i64* %10, align 8
%11 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_8, i64 0, i64 0
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_3, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.53, i64 0, i64 0), %str_slice** %12, align 8, !alias.scope !1015, !noalias !1018
%13 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_3, i64 0, i32 0, i32 1
store i64 1, i64* %13, align 8, !alias.scope !1015, !noalias !1018
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_3, i64 0, i32 2, i32 0, i32 0
store %"fmt::rt::v1::Argument"* null, %"fmt::rt::v1::Argument"** %_6.sroa.0.0..sroa_idx.i, align 8, !alias.scope !1015, !noalias !1018
%14 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_3, i64 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %11, %"fmt::ArgumentV1"** %14, align 8, !alias.scope !1015, !noalias !1018
%15 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_3, i64 0, i32 4, i32 1
store i64 1, i64* %15, align 8, !alias.scope !1015, !noalias !1018
call void @_ZN4core9panicking9panic_fmt17hcc78ce34a0090adfE(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %_3, { %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @_ZN4core6option13expect_failed10_FILE_LINE17hd4c8588abb736764E to { %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
}
; Function Attrs: cold noinline noreturn uwtable
define void @_ZN4core5slice20slice_index_len_fail17h59f94d390524037cE(i64, i64) unnamed_addr #9 {
start:
%_10 = alloca [2 x %"fmt::ArgumentV1"], align 8
%_5 = alloca %"fmt::Arguments", align 8
%len = alloca i64, align 8
%index = alloca i64, align 8
%2 = bitcast i64* %index to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %2)
store i64 %0, i64* %index, align 8
%3 = bitcast i64* %len to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %3)
store i64 %1, i64* %len, align 8
%4 = bitcast %"fmt::Arguments"* %_5 to i8*
call void @llvm.lifetime.start(i64 48, i8* nonnull %4)
%5 = bitcast [2 x %"fmt::ArgumentV1"]* %_10 to i8*
call void @llvm.lifetime.start(i64 32, i8* nonnull %5)
%6 = ptrtoint i64* %index to i64
%7 = ptrtoint i64* %len to i64
%8 = bitcast [2 x %"fmt::ArgumentV1"]* %_10 to i64*
store i64 %6, i64* %8, align 8
%9 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_10, i64 0, i64 0, i32 2
%10 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %9 to i64*
store i64 ptrtoint (i8 (i64*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u64$GT$3fmt17h52b5aaaba699ca69E" to i64), i64* %10, align 8
%11 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_10, i64 0, i64 1
%12 = bitcast %"fmt::ArgumentV1"* %11 to i64*
store i64 %7, i64* %12, align 8
%13 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_10, i64 0, i64 1, i32 2
%14 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %13 to i64*
store i64 ptrtoint (i8 (i64*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u64$GT$3fmt17h52b5aaaba699ca69E" to i64), i64* %14, align 8
%15 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_10, i64 0, i64 0
%16 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_5, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref.7o, i64 0, i64 0), %str_slice** %16, align 8, !alias.scope !1021, !noalias !1024
%17 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_5, i64 0, i32 0, i32 1
store i64 2, i64* %17, align 8, !alias.scope !1021, !noalias !1024
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_5, i64 0, i32 2, i32 0, i32 0
store %"fmt::rt::v1::Argument"* null, %"fmt::rt::v1::Argument"** %_6.sroa.0.0..sroa_idx.i, align 8, !alias.scope !1021, !noalias !1024
%18 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_5, i64 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %15, %"fmt::ArgumentV1"** %18, align 8, !alias.scope !1021, !noalias !1024
%19 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_5, i64 0, i32 4, i32 1
store i64 2, i64* %19, align 8, !alias.scope !1021, !noalias !1024
call void @_ZN4core9panicking9panic_fmt17hcc78ce34a0090adfE(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %_5, { %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @_ZN4core5slice20slice_index_len_fail10_FILE_LINE17hb90ee0655d771c92E to { %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
}
; Function Attrs: cold noinline noreturn uwtable
define void @_ZN4core5slice22slice_index_order_fail17h35681c1841226ae9E(i64, i64) unnamed_addr #9 {
start:
%_10 = alloca [2 x %"fmt::ArgumentV1"], align 8
%_5 = alloca %"fmt::Arguments", align 8
%end = alloca i64, align 8
%index = alloca i64, align 8
%2 = bitcast i64* %index to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %2)
store i64 %0, i64* %index, align 8
%3 = bitcast i64* %end to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %3)
store i64 %1, i64* %end, align 8
%4 = bitcast %"fmt::Arguments"* %_5 to i8*
call void @llvm.lifetime.start(i64 48, i8* nonnull %4)
%5 = bitcast [2 x %"fmt::ArgumentV1"]* %_10 to i8*
call void @llvm.lifetime.start(i64 32, i8* nonnull %5)
%6 = ptrtoint i64* %index to i64
%7 = ptrtoint i64* %end to i64
%8 = bitcast [2 x %"fmt::ArgumentV1"]* %_10 to i64*
store i64 %6, i64* %8, align 8
%9 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_10, i64 0, i64 0, i32 2
%10 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %9 to i64*
store i64 ptrtoint (i8 (i64*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u64$GT$3fmt17h52b5aaaba699ca69E" to i64), i64* %10, align 8
%11 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_10, i64 0, i64 1
%12 = bitcast %"fmt::ArgumentV1"* %11 to i64*
store i64 %7, i64* %12, align 8
%13 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_10, i64 0, i64 1, i32 2
%14 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %13 to i64*
store i64 ptrtoint (i8 (i64*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u64$GT$3fmt17h52b5aaaba699ca69E" to i64), i64* %14, align 8
%15 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_10, i64 0, i64 0
%16 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_5, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref.7r, i64 0, i64 0), %str_slice** %16, align 8, !alias.scope !1027, !noalias !1030
%17 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_5, i64 0, i32 0, i32 1
store i64 2, i64* %17, align 8, !alias.scope !1027, !noalias !1030
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_5, i64 0, i32 2, i32 0, i32 0
store %"fmt::rt::v1::Argument"* null, %"fmt::rt::v1::Argument"** %_6.sroa.0.0..sroa_idx.i, align 8, !alias.scope !1027, !noalias !1030
%18 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_5, i64 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %15, %"fmt::ArgumentV1"** %18, align 8, !alias.scope !1027, !noalias !1030
%19 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_5, i64 0, i32 4, i32 1
store i64 2, i64* %19, align 8, !alias.scope !1027, !noalias !1030
call void @_ZN4core9panicking9panic_fmt17hcc78ce34a0090adfE(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %_5, { %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @_ZN4core5slice22slice_index_order_fail10_FILE_LINE17hbf6f627fef3216d9E to { %str_slice, [0 x i8], i32, [4 x i8] }*))
unreachable
}
; Function Attrs: uwtable
define void @_ZN4core3str7pattern11StrSearcher3new17h7d74e6100baaf1feE(%"str::pattern::StrSearcher"* noalias nocapture sret dereferenceable(104), i8* noalias nonnull readonly, i64, i8*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment