Skip to content

Instantly share code, notes, and snippets.

@japaric

japaric/core.ll Secret

Created June 30, 2017 17:40
Show Gist options
  • Save japaric/0ccd881552e5f51737734117e16153b4 to your computer and use it in GitHub Desktop.
Save japaric/0ccd881552e5f51737734117e16153b4 to your computer and use it in GitHub Desktop.
cargo rustc --target thumbv7m-none-eabi --manifest-path /shared/rust/master/src/libcore/Cargo.toml --release -- --emit=llvm-ir
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-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
target triple = "thumbv7m-none--eabi"
%str_slice = type { i8*, i32 }
%"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 { i32, [0 x i8], i32, [0 x i8], %"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"*, i32 }, [0 x i8], i8, [3 x i8] }
%"option::Option<usize>" = type { i32, [0 x i32], [1 x i32] }
%"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 { i32, [0 x i8], i32, [0 x i8], %"str::pattern::CharSearcher", [0 x i8], i8, [0 x i8], i8, [2 x i8] }
%"str::pattern::CharSearcher" = type { %"str::pattern::CharEqSearcher<char>", [0 x i8] }
%"str::pattern::CharEqSearcher<char>" = type { i32, [0 x i8], %str_slice, [0 x i8], %"str::CharIndices", [0 x i8], i8, [3 x i8] }
%"str::CharIndices" = type { i32, [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, [3 x i8] }
%"fmt::Arguments" = type { { %str_slice*, i32 }, [0 x i8], %"option::Option<&[fmt::rt::v1::Argument]>", [0 x i8], { %"fmt::ArgumentV1"*, i32 }, [0 x i8] }
%"option::Option<&[fmt::rt::v1::Argument]>" = type { { %"fmt::rt::v1::Argument"*, i32 }, [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 { i32, [0 x i32], [1 x i32] }
%"fmt::rt::v1::FormatSpec" = type { i32, [0 x i8], i32, [0 x i8], %"fmt::rt::v1::Count", [0 x i8], %"fmt::rt::v1::Count", [0 x i8], i8, [3 x i8] }
%"fmt::rt::v1::Count" = type { i32, [0 x i32], [1 x i32] }
%"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 { i64, [0 x i8], { i8*, i32 }, [0 x i8], { i8*, i32 }, [0 x i8] }
%"char::EscapeDefaultState" = type { i32, [0 x i32], [3 x i32] }
%"char::EscapeUnicode" = type { i32, [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*, i32 }, [0 x i8], %str_slice, [0 x i8], %"str::CharIndices", [0 x i8], i8, [3 x i8] }
%"str::pattern::StrSearcherImpl" = type { i32, [1 x i32], [5 x i64] }
%"str::pattern::TwoWaySearcher" = type { i64, [0 x i8], i32, [0 x i8], i32, [0 x i8], i32, [0 x i8], i32, [0 x i8], i32, [0 x i8], i32, [0 x i8], i32, [4 x i8] }
%"str::pattern::EmptyNeedle" = type { i32, [0 x i8], i32, [0 x i8], i8, [0 x i8], i8, [2 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], %"hash::sip::State", [0 x i8], i64, [0 x i8], i32, [0 x i8], i32, [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], %"hash::sip::State", [0 x i8], i64, [0 x i8], i32, [0 x i8], i32, [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 { i32, [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 { i32, [0 x i32], [2 x i32] }
%"num::flt2dec::Part" = type { i16, [1 x i16], [2 x i32] }
%"num::flt2dec::Formatted" = type { { i8*, i32 }, [0 x i8], { %"num::flt2dec::Part"*, i32 }, [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, [3 x i8] }
%"num::dec2flt::rawfp::Unpacked" = type { i64, [0 x i8], i16, [6 x i8] }
%"num::dec2flt::parse::ParseResult" = type { i64, [0 x i64], [3 x i64] }
%"num::dec2flt::ParseFloatError" = type { i8, [0 x i8] }
%"num::TryFromIntError" = type { {}, [0 x i8] }
%"result::Result<i32, num::ParseIntError>" = type { i8, [3 x i8], [1 x i32] }
%"result::Result<u32, num::ParseIntError>" = type { i8, [3 x i8], [1 x i32] }
%"result::Result<i128, num::ParseIntError>" = type { i8, [7 x i8], [2 x i64] }
%"result::Result<i64, num::ParseIntError>" = type { i8, [7 x i8], [1 x i64] }
%"result::Result<usize, num::ParseIntError>" = type { i8, [3 x i8], [1 x i32] }
%"result::Result<u64, num::ParseIntError>" = type { i8, [7 x i8], [1 x i64] }
%"result::Result<u128, num::ParseIntError>" = type { i8, [7 x i8], [2 x i64] }
%"result::Result<isize, num::ParseIntError>" = type { i8, [3 x i8], [1 x i32] }
%"num::ParseIntError" = type { i8, [0 x i8] }
%"ops::range::RangeFull" = type {}
%"ops::range::Range<usize>" = type { i32, [0 x i8], i32, [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], i32, [0 x i8], %"result::Result<(), fmt::Error>", [0 x i8], i8, [2 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] }
%"option::Option<char>" = type { i32, [0 x i32], [1 x i32] }
%"char::EscapeDebug" = type { %"char::EscapeDefault", [0 x i8] }
%"str::pattern::StrSearcher" = type { %"str::pattern::StrSearcherImpl", [0 x i8], %str_slice, [0 x i8], %str_slice, [0 x i8] }
%"str::ParseBoolError" = type { {}, [0 x i8] }
%"str::Utf8Error" = type { i32, [0 x i8], %"option::Option<u8>", [2 x i8] }
%"result::Result<&str, str::Utf8Error>" = type { i32, [0 x i32], [2 x i32] }
%"result::Result<&mut str, str::Utf8Error>" = type { i32, [0 x i32], [2 x i32] }
%"fmt::builders::DebugStruct" = type { %"fmt::Formatter"*, [0 x i8], %"result::Result<(), fmt::Error>", [0 x i8], i8, [2 x i8] }
%"fmt::builders::DebugInner" = type { %"fmt::Formatter"*, [0 x i8], %"result::Result<(), fmt::Error>", [0 x i8], i8, [2 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, [2 x i8] }
%"fmt::Error" = type {}
%"num::bignum::tests::Big8x3" = type { i32, [0 x i8], [3 x i8], [1 x i8] }
%"option::Option<u32>" = type { i32, [0 x i32], [1 x i32] }
%"option::Option<u64>" = type { i64, [0 x i64], [1 x i64] }
%"option::Option<u128>" = type { i64, [0 x i64], [2 x i64] }
%"result::Result<u32, num::TryFromIntError>" = type { i32, [0 x i32], [1 x i32] }
%"result::Result<i32, num::TryFromIntError>" = type { i32, [0 x i32], [1 x i32] }
%"result::Result<u64, num::TryFromIntError>" = type { i64, [0 x i64], [1 x i64] }
%"result::Result<i64, num::TryFromIntError>" = type { i64, [0 x i64], [1 x i64] }
%"result::Result<u128, num::TryFromIntError>" = type { i64, [0 x i64], [2 x i64] }
%"result::Result<i128, num::TryFromIntError>" = type { i64, [0 x i64], [2 x i64] }
%"result::Result<usize, num::TryFromIntError>" = type { i32, [0 x i32], [1 x i32] }
%"result::Result<isize, num::TryFromIntError>" = type { i32, [0 x i32], [1 x i32] }
%"option::Option<i32>" = type { i32, [0 x i32], [1 x i32] }
%"option::Option<i64>" = type { i64, [0 x i64], [1 x i64] }
%"option::Option<i128>" = type { i64, [0 x i64], [2 x i64] }
%"option::Option<isize>" = type { i32, [0 x i32], [1 x i32] }
%"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::AtomicIsize" = type { %"cell::UnsafeCell<isize>", [0 x i8] }
%"cell::UnsafeCell<isize>" = type { i32, [0 x i8] }
%"sync::atomic::AtomicUsize" = type { %"cell::UnsafeCell<usize>", [0 x i8] }
%"cell::UnsafeCell<usize>" = type { i32, [0 x i8] }
%"char::InvalidSequence" = type { {}, [0 x i8] }
%"str::pattern::SearchStep" = type { i32, [0 x i32], [2 x i32] }
%"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 {}
@_ZN4core3num7flt2dec8strategy6dragon5POW1017h2d63f8e74b1e2b38E = 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
@_ZN4core3num7flt2dec8strategy6dragon8TWOPOW1017h61581260e689f9b2E = 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
@_ZN4core3num7flt2dec8strategy6dragon9POW10TO1617hfcedfcfe10f47dc0E = internal constant [2 x i32] [i32 1874919424, i32 2328306], align 4
@_ZN4core3num7flt2dec8strategy6dragon9POW10TO3217h30cffe9cf6dffcfeE = internal constant [4 x i32] [i32 0, i32 -2052264063, i32 762134875, i32 1262], align 4
@_ZN4core3num7flt2dec8strategy6dragon9POW10TO6417hc0205d96f4af3ca0E = internal constant [7 x i32] [i32 0, i32 0, i32 -1083564287, i32 1849224548, i32 -626550803, i32 -381683212, i32 1593091], align 4
@_ZN4core3num7flt2dec8strategy6dragon10POW10TO12817h32c10c9dcd532dccE = 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
@_ZN4core3num7flt2dec8strategy6dragon10POW10TO25617haea9d3b1e1a77ee1E = 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_WIDTH17h50de1eaa055bebd4E = 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_FMTSTR17h4678f3d98380e68cE = local_unnamed_addr constant { %str_slice*, i32 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.3x, i32 0, i32 0), i32 3 }, align 4
@_ZN4core3num7dec2flt5rawfp11fp_to_float15__STATIC_FMTSTR17h9d678c0238fd1a1bE = local_unnamed_addr constant { %str_slice*, i32 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref.46, i32 0, i32 0), i32 2 }, align 4
@_ZN4core3num7dec2flt5rawfp11fp_to_float15__STATIC_FMTSTR17hb832da8dc0fe8f6dE = local_unnamed_addr constant { %str_slice*, i32 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref.48, i32 0, i32 0), i32 2 }, align 4
@_ZN4core3num7dec2flt5rawfp12round_normal15__STATIC_FMTSTR17h111404327f640efbE = local_unnamed_addr constant { %str_slice*, i32 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.3x, i32 0, i32 0), i32 3 }, align 4
@"_ZN71_$LT$core..ops..range..Range$LT$Idx$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt15__STATIC_FMTSTR17hb879d002b418324eE" = local_unnamed_addr constant { %str_slice*, i32 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref.5v, i32 0, i32 0), i32 2 }, align 4
@"_ZN75_$LT$core..ops..range..RangeFrom$LT$Idx$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt15__STATIC_FMTSTR17hefe53c6846360631E" = local_unnamed_addr constant { %str_slice*, i32 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref.5v, i32 0, i32 0), i32 2 }, align 4
@"_ZN73_$LT$core..ops..range..RangeTo$LT$Idx$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt15__STATIC_FMTSTR17h3d86e1e5a0b224c4E" = local_unnamed_addr constant { %str_slice*, i32 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.5u, i32 0, i32 0), i32 1 }, align 4
@"_ZN80_$LT$core..ops..range..RangeInclusive$LT$Idx$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt15__STATIC_FMTSTR17hf05ab144092c497bE" = local_unnamed_addr constant { %str_slice*, i32 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref.5x, i32 0, i32 0), i32 2 }, align 4
@"_ZN82_$LT$core..ops..range..RangeToInclusive$LT$Idx$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt15__STATIC_FMTSTR17h0bc32a0f7420734dE" = local_unnamed_addr constant { %str_slice*, i32 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.5y, i32 0, i32 0), i32 1 }, align 4
@"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$11encode_utf815__STATIC_FMTSTR17h0a7759404f35f7f7E" = local_unnamed_addr constant { %str_slice*, i32 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.6r, i32 0, i32 0), i32 3 }, align 4
@"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$12encode_utf1615__STATIC_FMTSTR17h6e5c9ba88bb4f356E" = local_unnamed_addr constant { %str_slice*, i32 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.6u, i32 0, i32 0), i32 3 }, align 4
@_ZN4core4iter6traits17ExactSizeIterator3len15__STATIC_FMTSTR17h200bd4c0edbe2ab9E = local_unnamed_addr constant { %str_slice*, i32 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.3x, i32 0, i32 0), i32 3 }, align 4
@_ZN4core6result13unwrap_failed15__STATIC_FMTSTR17h95921f2b8659cddfE = local_unnamed_addr constant { %str_slice*, i32 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref.78, i32 0, i32 0), i32 2 }, align 4
@_ZN4core5slice4sort19partition_in_blocks15__STATIC_FMTSTR17he6721533e6977029E = local_unnamed_addr constant { %str_slice*, i32 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.3x, i32 0, i32 0), i32 3 }, align 4
@_ZN4core5slice4sort19partition_in_blocks15__STATIC_FMTSTR17h8288315af3391f8bE = local_unnamed_addr constant { %str_slice*, i32 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.3x, i32 0, i32 0), i32 3 }, align 4
@_ZN4core4hash3sip9u8to64_le15__STATIC_FMTSTR17hefcc275477848b48E = local_unnamed_addr constant { %str_slice*, i32 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.3x, i32 0, i32 0), i32 3 }, align 4
@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), i32 62 }, i32 164 }, align 4
@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), i32 62 }, i32 218 }, align 4
@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), i32 62 }, i32 301 }, align 4
@_ZN4core3num7flt2dec8strategy5grisu12CACHED_POW1017h73c189cfbdab3b9bE = 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), i32 61 }, i32 131 }, align 4
@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), i32 25 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i32 61 }, i32 263 }, align 4
@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), i32 61 }, i32 266 }, align 4
@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), i32 61 }, i32 309 }, align 4
@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), i32 25 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i32 61 }, i32 510 }, align 4
@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), i32 61 }, i32 513 }, align 4
@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), i32 61 }, i32 564 }, align 4
@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), i32 50 }, i32 158 }, align 4
@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), i32 50 }, i32 159 }, align 4
@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), i32 50 }, i32 163 }, align 4
@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), i32 50 }, i32 164 }, align 4
@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), i32 50 }, i32 361 }, align 4
@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), i32 50 }, i32 364 }, align 4
@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), i32 56 }, i32 29 }, align 4
@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), i32 50 }, i32 75 }, align 4
@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), i32 52 }, i32 197 }, align 4
@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), i32 52 }, i32 247 }, align 4
@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), i32 50 }, i32 201 }, align 4
@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 4
@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*)*, i32, i32, i8 (i8*, %"fmt::Formatter"*)* } { void (i8*)* @_ZN4core3ptr13drop_in_place17h7a165b78f550ebb9E, i32 1, i32 1, i8 (i8*, %"fmt::Formatter"*)* @"_ZN41_$LT$bool$u20$as$u20$core..fmt..Debug$GT$3fmt17h4b7f1d2f64858132E" }, align 4
@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>"*)*, i32, i32, i8 (%"str::SplitTerminator<char>"*, %"fmt::Formatter"*)* } { void (%"str::SplitTerminator<char>"*)* @_ZN4core3ptr13drop_in_place17hb142d7908064bbc9E, i32 40, i32 4, 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$3fmt17h8c03ece6672d36eaE" }, align 4
@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), i32 44 }, i32 815 }, align 4
@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), i32 44 }, i32 821 }, align 4
@str.2f = internal constant [4 x i8] c"Iter"
@vtable.2g = internal unnamed_addr constant { void ({ i8*, i32 }*)*, i32, i32, i8 ({ i8*, i32 }*, %"fmt::Formatter"*)* } { void ({ i8*, i32 }*)* @_ZN4core3ptr13drop_in_place17h79c07684db528245E, i32 8, i32 4, i8 ({ i8*, i32 }*, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h9398001f9febf014E" }, align 4
@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 (i32*)*, i32, i32, i8 (i32*, %"fmt::Formatter"*)* } { void (i32*)* @_ZN4core3ptr13drop_in_place17h37959c04e469ba0dE, i32 4, i32 4, i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$usize$GT$3fmt17h5eee555fe2606740E" }, align 4
@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"*)*, i32, i32, i8 (%"str::pattern::CharSearcher"*, %"fmt::Formatter"*)* } { void (%"str::pattern::CharSearcher"*)* @_ZN4core3ptr13drop_in_place17hbb75f1936ab7ac8eE, i32 28, i32 4, i8 (%"str::pattern::CharSearcher"*, %"fmt::Formatter"*)* @"_ZN83_$LT$core..str..pattern..CharSearcher$LT$$u27$a$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17he534ae275ac04c9cE" }, align 4
@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"*)*, i32, i32, i8 (%"fmt::builders::PadAdapter"*, i8*, i32)*, i8 (%"fmt::builders::PadAdapter"*, i32)*, i8 (%"fmt::builders::PadAdapter"*, %"fmt::Arguments"*)* } { void (%"fmt::builders::PadAdapter"*)* @_ZN4core3ptr13drop_in_place17h20d9900d8d5c97b7E, i32 8, i32 4, i8 (%"fmt::builders::PadAdapter"*, i8*, i32)* @"_ZN96_$LT$core..fmt..builders..PadAdapter$LT$$u27$a$C$$u20$$u27$b$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17hcf86f3c4618cb009E", i8 (%"fmt::builders::PadAdapter"*, i32)* @_ZN4core3fmt5Write10write_char17h663b553deb1644c1E, i8 (%"fmt::builders::PadAdapter"*, %"fmt::Arguments"*)* @_ZN4core3fmt5Write9write_fmt17he41c79031763fb54E }, align 4
@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**)*, i32, i32, i8 (i8**, %"fmt::Formatter"*)* } { void (i8**)* @_ZN4core3ptr13drop_in_place17h425267c3932e08faE, i32 4, i32 4, i8 (i8**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h940f407dc6d0aa9eE" }, align 4
@vtable.2L = internal unnamed_addr constant { void (i32**)*, i32, i32, i8 (i32**, %"fmt::Formatter"*)* } { void (i32**)* @_ZN4core3ptr13drop_in_place17h2a5d662c9b9bd1ebE, i32 4, i32 4, i8 (i32**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h7b157f43a40367ceE" }, align 4
@str.2M = internal constant [1 x i8] c"]"
@vtable.2N = internal unnamed_addr constant { void (%"fmt::Write::write_fmt::Adapter<fmt::builders::PadAdapter>"*)*, i32, i32, i8 (%"fmt::Write::write_fmt::Adapter<fmt::builders::PadAdapter>"*, i8*, i32)*, 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>"*)* @_ZN4core3ptr13drop_in_place17h1ac483e1f82929f6E, i32 4, i32 4, i8 (%"fmt::Write::write_fmt::Adapter<fmt::builders::PadAdapter>"*, i8*, i32)* @"_ZN96_$LT$core..fmt..Write..write_fmt..Adapter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17hff380ab52fa73b3aE", 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_char17hb2749c08093153efE", 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_fmt17hb81bfdbdadef7524E" }, align 4
@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), i32 42 }, i32 990 }, align 4
@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), i32 42 }, i32 1002 }, align 4
@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**)*, i32, i32, i8 (i64**, %"fmt::Formatter"*)* } { void (i64**)* @_ZN4core3ptr13drop_in_place17h787b054d39c6e895E, i32 4, i32 4, i8 (i64**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h079588134f415d4cE" }, align 4
@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**)*, i32, i32, i8 (i16**, %"fmt::Formatter"*)* } { void (i16**)* @_ZN4core3ptr13drop_in_place17h9c63e3c8237e6ae3E, i32 4, i32 4, i8 (i16**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h27eb149d953b61acE" }, align 4
@str.3a = internal constant [9 x i8] c"inclusive"
@vtable.3b = internal unnamed_addr constant { void (i8**)*, i32, i32, i8 (i8**, %"fmt::Formatter"*)* } { void (i8**)* @_ZN4core3ptr13drop_in_place17h46845186c56eb209E, i32 4, i32 4, i8 (i8**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h2659d06e322789e1E" }, align 4
@str.3c = internal constant [6 x i8] c"Finite"
@vtable.3d = internal unnamed_addr constant { void (%"num::flt2dec::decoder::Decoded"**)*, i32, i32, i8 (%"num::flt2dec::decoder::Decoded"**, %"fmt::Formatter"*)* } { void (%"num::flt2dec::decoder::Decoded"**)* @_ZN4core3ptr13drop_in_place17h8a6318ea0294c8d5E, i32 4, i32 4, i8 (%"num::flt2dec::decoder::Decoded"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h92fc9c1d98bec084E" }, align 4
@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_LINE17hb684b5110c39b373E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.3j, i32 0, i32 0), i32 28 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i32 62 }, i32 91 }, align 4
@str.3k = internal constant [29 x i8] c"assertion failed: d.minus > 0"
@_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17h7252a5e4980fe631E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str.3k, i32 0, i32 0), i32 29 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i32 62 }, i32 92 }, align 4
@str.3l = internal constant [28 x i8] c"assertion failed: d.plus > 0"
@_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17h5dfe8d108a8d9b8bE = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.3l, i32 0, i32 0), i32 28 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i32 62 }, i32 93 }, align 4
@str.3m = internal constant [54 x i8] c"assertion failed: d.mant.checked_add(d.plus).is_some()"
@_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17hb8be340a6e4e7417E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([54 x i8], [54 x i8]* @str.3m, i32 0, i32 0), i32 54 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i32 62 }, i32 94 }, align 4
@str.3n = internal constant [55 x i8] c"assertion failed: d.mant.checked_sub(d.minus).is_some()"
@_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17hcb9b0cecb566cc01E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([55 x i8], [55 x i8]* @str.3n, i32 0, i32 0), i32 55 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i32 62 }, i32 95 }, align 4
@str.3o = internal constant [45 x i8] c"assertion failed: buf.len() >= MAX_SIG_DIGITS"
@_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17h374c0585acb0480cE = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.3o, i32 0, i32 0), i32 45 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i32 62 }, i32 96 }, align 4
@_ZN4core3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE17h9b9faa445d0e8253E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.3j, i32 0, i32 0), i32 28 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i32 62 }, i32 229 }, align 4
@_ZN4core3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE17h82ec0922ae8c73b2E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str.3k, i32 0, i32 0), i32 29 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i32 62 }, i32 230 }, align 4
@_ZN4core3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE17hc879d68bfa6318b2E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.3l, i32 0, i32 0), i32 28 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i32 62 }, i32 231 }, align 4
@_ZN4core3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE17h31a9fecc83eb0509E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([54 x i8], [54 x i8]* @str.3m, i32 0, i32 0), i32 54 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i32 62 }, i32 232 }, align 4
@_ZN4core3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE17h512af00bfdb8dda1E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([55 x i8], [55 x i8]* @str.3n, i32 0, i32 0), i32 55 }, %str_slice { i8* getelementptr inbounds ([62 x i8], [62 x i8]* @str.0, i32 0, i32 0), i32 62 }, i32 233 }, align 4
@_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17h03c0a2eef0c46e44E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.3j, i32 0, i32 0), i32 28 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i32 61 }, i32 166 }, align 4
@_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17hdc05afc980cb220cE = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str.3k, i32 0, i32 0), i32 29 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i32 61 }, i32 167 }, align 4
@_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17h88b50752569b2930E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.3l, i32 0, i32 0), i32 28 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i32 61 }, i32 168 }, align 4
@_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17he8226c2818f561dcE = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([54 x i8], [54 x i8]* @str.3m, i32 0, i32 0), i32 54 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i32 61 }, i32 169 }, align 4
@_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17hf30202a10b8bc5aaE = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([55 x i8], [55 x i8]* @str.3n, i32 0, i32 0), i32 55 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i32 61 }, i32 170 }, align 4
@_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17h63a668e92cde1929E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.3o, i32 0, i32 0), i32 45 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i32 61 }, i32 171 }, align 4
@str.3t = internal constant [45 x i8] c"assertion failed: d.mant + d.plus < (1 << 61)"
@_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17h10d0c12d59406b1dE = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.3t, i32 0, i32 0), i32 45 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i32 61 }, i32 172 }, align 4
@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), i32 45 }, %str_slice { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @str.3v, i32 0, i32 0), i32 12 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str.3w, i32 0, i32 0), i32 1 }], align 4
@str.3z = internal constant [33 x i8] c"assertion failed: !buf.is_empty()"
@_ZN4core3num7flt2dec8strategy5grisu16format_exact_opt14_MSG_FILE_LINE17hb44575aabc74f5e8E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.3j, i32 0, i32 0), i32 28 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i32 61 }, i32 444 }, align 4
@str.3B = internal constant [36 x i8] c"assertion failed: d.mant < (1 << 61)"
@_ZN4core3num7flt2dec8strategy5grisu16format_exact_opt14_MSG_FILE_LINE17hec5105c73f37e068E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([36 x i8], [36 x i8]* @str.3B, i32 0, i32 0), i32 36 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i32 61 }, i32 445 }, align 4
@_ZN4core3num7flt2dec8strategy5grisu16format_exact_opt14_MSG_FILE_LINE17h76151b1796302830E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str.3z, i32 0, i32 0), i32 33 }, %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.9, i32 0, i32 0), i32 61 }, i32 446 }, align 4
@str.3E = internal constant [4 x i8] c"Copy"
@vtable.3F = internal unnamed_addr constant { void ({ i8*, i32 }**)*, i32, i32, i8 ({ i8*, i32 }**, %"fmt::Formatter"*)* } { void ({ i8*, i32 }**)* @_ZN4core3ptr13drop_in_place17hcbfdf48b2b174537E, i32 4, i32 4, i8 ({ i8*, i32 }**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hcc64d14e84f159a3E" }, align 4
@str.3G = internal constant [3 x i8] c"Num"
@vtable.3H = internal unnamed_addr constant { void (i16**)*, i32, i32, i8 (i16**, %"fmt::Formatter"*)* } { void (i16**)* @_ZN4core3ptr13drop_in_place17hd53f1a25f9d0318eE, i32 4, i32 4, i8 (i16**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h7bd088a9eba91317E" }, align 4
@vtable.3I = internal unnamed_addr constant { void (i32**)*, i32, i32, i8 (i32**, %"fmt::Formatter"*)* } { void (i32**)* @_ZN4core3ptr13drop_in_place17h701218e111a4be82E, i32 4, i32 4, i8 (i32**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h3c09d47c6a19f81dE" }, align 4
@_ZN4core3num7flt2dec17digits_to_dec_str14_MSG_FILE_LINE17hf2573bc24ce9c0fbE = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str.3z, i32 0, i32 0), i32 33 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i32 50 }, i32 271 }, align 4
@str.3J = internal constant [31 x i8] c"assertion failed: buf[0] > b'0'"
@_ZN4core3num7flt2dec17digits_to_dec_str14_MSG_FILE_LINE17h52d06348cdea351fE = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @str.3J, i32 0, i32 0), i32 31 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i32 50 }, i32 272 }, align 4
@str.3K = internal constant [34 x i8] c"assertion failed: parts.len() >= 4"
@_ZN4core3num7flt2dec17digits_to_dec_str14_MSG_FILE_LINE17h0281b5830c1aad57E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str.3K, i32 0, i32 0), i32 34 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i32 50 }, i32 273 }, align 4
@_ZN4core3num7flt2dec17digits_to_exp_str14_MSG_FILE_LINE17hcc60d6f793dcfdffE = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str.3z, i32 0, i32 0), i32 33 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i32 50 }, i32 339 }, align 4
@_ZN4core3num7flt2dec17digits_to_exp_str14_MSG_FILE_LINE17hd23ebb8fdce14cbaE = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @str.3J, i32 0, i32 0), i32 31 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i32 50 }, i32 340 }, align 4
@str.3L = internal constant [34 x i8] c"assertion failed: parts.len() >= 6"
@_ZN4core3num7flt2dec17digits_to_exp_str14_MSG_FILE_LINE17h049a9d22f43a41cfE = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str.3L, i32 0, i32 0), i32 34 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i32 50 }, i32 341 }, align 4
@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_LINE17hf753f67c29e92eccE = constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str.3K, i32 0, i32 0), i32 34 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i32 50 }, i32 419 }, align 4
@_ZN4core3num7flt2dec15to_shortest_str14_MSG_FILE_LINE17h48005cf98d44c0f9E = constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.3o, i32 0, i32 0), i32 45 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i32 50 }, i32 420 }, align 4
@_ZN4core3num7flt2dec19to_shortest_exp_str14_MSG_FILE_LINE17ha9f820f896faacbaE = constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str.3L, i32 0, i32 0), i32 34 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i32 50 }, i32 474 }, align 4
@_ZN4core3num7flt2dec19to_shortest_exp_str14_MSG_FILE_LINE17h1989adce58725a30E = constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.3o, i32 0, i32 0), i32 45 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i32 50 }, i32 475 }, align 4
@str.3Q = internal constant [46 x i8] c"assertion failed: dec_bounds.0 <= dec_bounds.1"
@_ZN4core3num7flt2dec19to_shortest_exp_str14_MSG_FILE_LINE17h60e8ebfa00d4c271E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.3Q, i32 0, i32 0), i32 46 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i32 50 }, i32 476 }, align 4
@_ZN4core3num7flt2dec16to_exact_exp_str14_MSG_FILE_LINE17hd3bba626728b82faE = constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str.3L, i32 0, i32 0), i32 34 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i32 50 }, i32 553 }, align 4
@str.3R = internal constant [29 x i8] c"assertion failed: ndigits > 0"
@_ZN4core3num7flt2dec16to_exact_exp_str14_MSG_FILE_LINE17hb61b1d335ac55fb4E = constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str.3R, i32 0, i32 0), i32 29 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i32 50 }, i32 554 }, align 4
@str.3S = internal constant [61 x i8] c"assertion failed: buf.len() >= ndigits || buf.len() >= maxlen"
@_ZN4core3num7flt2dec16to_exact_exp_str14_MSG_FILE_LINE17h6e2f1cd36811c21cE = constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.3S, i32 0, i32 0), i32 61 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i32 50 }, i32 580 }, align 4
@_ZN4core3num7flt2dec18to_exact_fixed_str14_MSG_FILE_LINE17h88bf4024f104b3c3E = constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str.3K, i32 0, i32 0), i32 34 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i32 50 }, i32 609 }, align 4
@str.3T = internal constant [37 x i8] c"assertion failed: buf.len() >= maxlen"
@_ZN4core3num7flt2dec18to_exact_fixed_str14_MSG_FILE_LINE17h465b2175b044b9fbE = constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([37 x i8], [37 x i8]* @str.3T, i32 0, i32 0), i32 37 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i32 50 }, i32 634 }, align 4
@_ZN4core3num7flt2dec18to_exact_fixed_str10_FILE_LINE17hc8d54df28e5a30bfE = local_unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.o, i32 0, i32 0), i32 50 }, i32 645 }, align 4
@str.3U = internal constant [35 x i8] c"assertion failed: e >= table::MIN_E"
@_ZN4core3num7dec2flt9algorithm12power_of_ten14_MSG_FILE_LINE17h3a265541bf6983daE = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str.3U, i32 0, i32 0), i32 35 }, %str_slice { i8* getelementptr inbounds ([56 x i8], [56 x i8]* @str.1p, i32 0, i32 0), i32 56 }, i32 27 }, align 4
@str.3V = internal constant [25 x i8] c"assertion failed: *k == 0"
@_ZN4core3num7dec2flt9algorithm11quick_start14_MSG_FILE_LINE17hbfef81beeb375031E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @str.3V, i32 0, i32 0), i32 25 }, %str_slice { i8* getelementptr inbounds ([56 x i8], [56 x i8]* @str.1p, i32 0, i32 0), i32 56 }, i32 353 }, align 4
@str.3W = internal constant [37 x i8] c"assertion failed: x.bit_length() < 64"
@_ZN4core3num7dec2flt3num6to_u6414_MSG_FILE_LINE17hb9d0a03ae7a12625E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([37 x i8], [37 x i8]* @str.3W, i32 0, i32 0), i32 37 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.1s, i32 0, i32 0), i32 50 }, i32 72 }, align 4
@str.3X = internal constant [35 x i8] c"assertion failed: end - start <= 64"
@_ZN4core3num7dec2flt3num8get_bits14_MSG_FILE_LINE17h39f2266519c3dd30E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str.3X, i32 0, i32 0), i32 35 }, %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.1s, i32 0, i32 0), i32 50 }, i32 87 }, align 4
@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_LINE17hb424bf0c3bbc1a4eE" = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str.41, i32 0, i32 0), i32 29 }, %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i32 52 }, i32 181 }, align 4
@_ZN4core3num7dec2flt5rawfp11fp_to_float10_FILE_LINE17hfb102e4954557372E = local_unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i32 52 }, i32 258 }, align 4
@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), i32 22 }, %str_slice { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @str.45, i32 0, i32 0), i32 10 }], align 4
@_ZN4core3num7dec2flt5rawfp11fp_to_float10_FILE_LINE17h792c92c611679200E = local_unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i32 52 }, i32 262 }, align 4
@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), i32 22 }, %str_slice { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @str.47, i32 0, i32 0), i32 10 }], align 4
@_ZN4core3num7dec2flt5rawfp12round_normal10_FILE_LINE17hac86d6f04556871bE = local_unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i32 52 }, i32 272 }, align 4
@str.49 = internal constant [41 x i8] c"encode_normal: significand not normalized"
@_ZN4core3num7dec2flt5rawfp13encode_normal14_MSG_FILE_LINE17h3cb28fd1314d881bE = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str.49, i32 0, i32 0), i32 41 }, %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i32 52 }, i32 289 }, align 4
@str.4a = internal constant [36 x i8] c"encode_normal: exponent out of range"
@_ZN4core3num7dec2flt5rawfp13encode_normal14_MSG_FILE_LINE17hd49224dfef4cb5bfE = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([36 x i8], [36 x i8]* @str.4a, i32 0, i32 0), i32 36 }, %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i32 52 }, i32 295 }, align 4
@str.4b = internal constant [40 x i8] c"encode_subnormal: not actually subnormal"
@_ZN4core3num7dec2flt5rawfp16encode_subnormal14_MSG_FILE_LINE17h7a3f8d7b9f7cddceE = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([40 x i8], [40 x i8]* @str.4b, i32 0, i32 0), i32 40 }, %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i32 52 }, i32 304 }, align 4
@str.4c = internal constant [38 x i8] c"big_to_fp: unexpectedly, input is zero"
@_ZN4core3num7dec2flt5rawfp9big_to_fp14_MSG_FILE_LINE17h8a38a61b7443a964E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([38 x i8], [38 x i8]* @str.4c, i32 0, i32 0), i32 38 }, %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i32 52 }, i32 312 }, align 4
@str.4d = internal constant [32 x i8] c"prev_float: argument is infinite"
@_ZN4core3num7dec2flt5rawfp10prev_float14_MSG_FILE_LINE17h1844c832ead948c1E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([32 x i8], [32 x i8]* @str.4d, i32 0, i32 0), i32 32 }, %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i32 52 }, i32 334 }, align 4
@str.4e = internal constant [27 x i8] c"prev_float: argument is NaN"
@_ZN4core3num7dec2flt5rawfp10prev_float14_MSG_FILE_LINE17h3bb864c61c39572cE = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str.4e, i32 0, i32 0), i32 27 }, %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i32 52 }, i32 335 }, align 4
@str.4f = internal constant [33 x i8] c"prev_float: argument is subnormal"
@_ZN4core3num7dec2flt5rawfp10prev_float14_MSG_FILE_LINE17h69455a711f4f677cE = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str.4f, i32 0, i32 0), i32 33 }, %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i32 52 }, i32 336 }, align 4
@str.4g = internal constant [28 x i8] c"prev_float: argument is zero"
@_ZN4core3num7dec2flt5rawfp10prev_float14_MSG_FILE_LINE17h6da328934f1534e7E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.4g, i32 0, i32 0), i32 28 }, %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i32 52 }, i32 337 }, align 4
@str.4h = internal constant [27 x i8] c"next_float: argument is NaN"
@_ZN4core3num7dec2flt5rawfp10next_float14_MSG_FILE_LINE17hda529272ec5ea7b6E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str.4h, i32 0, i32 0), i32 27 }, %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.1w, i32 0, i32 0), i32 52 }, i32 355 }, align 4
@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**)*, i32, i32, i8 (i64**, %"fmt::Formatter"*)* } { void (i64**)* @_ZN4core3ptr13drop_in_place17h3fbf211df45a4fb0E, i32 4, i32 4, i8 (i64**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hd01667799230ef28E" }, align 4
@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"**)*, i32, i32, i8 (%"num::dec2flt::parse::Decimal"**, %"fmt::Formatter"*)* } { void (%"num::dec2flt::parse::Decimal"**)* @_ZN4core3ptr13drop_in_place17h60d85eea07cc4291E, i32 4, i32 4, i8 (%"num::dec2flt::parse::Decimal"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hcef459d9f51a41daE" }, align 4
@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**)*, i32, i32, i8 (i8**, %"fmt::Formatter"*)* } { void (i8**)* @_ZN4core3ptr13drop_in_place17h257c4a0aaf81ddb9E, i32 4, i32 4, i8 (i8**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17ha885c991c037d8ddE" }, align 4
@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), i32 25 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i32 45 }, i32 90 }, align 4
@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), i32 45 }, i32 144 }, align 4
@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), i32 45 }, i32 166 }, align 4
@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), i32 45 }, i32 212 }, align 4
@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), i32 45 }, i32 226 }, align 4
@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), i32 45 }, i32 267 }, align 4
@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), i32 45 }, i32 288 }, align 4
@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), i32 45 }, i32 291 }, align 4
@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), i32 45 }, i32 300 }, align 4
@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), i32 45 }, i32 304 }, align 4
@str.4V = internal constant [26 x i8] c"assertion failed: noborrow"
@_ZN4core3num6bignum8Big32x403sub14_MSG_FILE_LINE17habdcba506e46e83bE = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @str.4V, i32 0, i32 0), i32 26 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i32 45 }, i32 489 }, align 4
@str.4W = internal constant [29 x i8] c"assertion failed: digits < 40"
@_ZN4core3num6bignum8Big32x408mul_pow214_MSG_FILE_LINE17h850665bd1c2ad1aaE = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str.4W, i32 0, i32 0), i32 29 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i32 45 }, i32 489 }, align 4
@str.4Z = internal constant [27 x i8] c"assertion failed: other > 0"
@_ZN4core3num6bignum8Big32x4013div_rem_small14_MSG_FILE_LINE17hfc4fe6e34c3cd859E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str.4Z, i32 0, i32 0), i32 27 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i32 45 }, i32 489 }, align 4
@str.50 = internal constant [30 x i8] c"assertion failed: !d.is_zero()"
@_ZN4core3num6bignum8Big32x407div_rem14_MSG_FILE_LINE17hb75fa2210ba4d552E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str.50, i32 0, i32 0), i32 30 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i32 45 }, i32 489 }, align 4
@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), i32 0 }], align 4
@ref.54 = internal unnamed_addr constant { { { i32, i32 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } } } { { { i32, i32 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } } { { i32, i32 } { i32 1, i32 0 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } { i32 32, i32 4, { i32, [4 x i8] } { i32 3, [4 x i8] undef }, { i32, [4 x i8] } { i32 3, [4 x i8] undef }, i8 3, [3 x i8] undef } } }, align 4
@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), i32 1 }], align 4
@ref.57 = internal unnamed_addr constant { { { i32, i32 }, { i32, i32, { i32, [4 x i8] }, { i32, i32 }, i8, [3 x i8] } } } { { { i32, i32 }, { i32, i32, { i32, [4 x i8] }, { i32, i32 }, i8, [3 x i8] } } { { i32, i32 } { i32 1, i32 0 }, { i32, i32, { i32, [4 x i8] }, { i32, i32 }, i8, [3 x i8] } { i32 32, i32 8, { i32, [4 x i8] } { i32 3, [4 x i8] undef }, { i32, i32 } { i32 1, i32 1 }, i8 3, [3 x i8] undef } } }, align 4
@_ZN4core3num6bignum5tests6Big8x33sub14_MSG_FILE_LINE17h5eb5a1dee06b42bbE = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @str.4V, i32 0, i32 0), i32 26 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i32 45 }, i32 494 }, align 4
@str.58 = internal constant [28 x i8] c"assertion failed: digits < 3"
@_ZN4core3num6bignum5tests6Big8x38mul_pow214_MSG_FILE_LINE17h25a5b2558cb391b2E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.58, i32 0, i32 0), i32 28 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i32 45 }, i32 494 }, align 4
@_ZN4core3num6bignum5tests6Big8x313div_rem_small14_MSG_FILE_LINE17h9a8e0812b67cbcd3E = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str.4Z, i32 0, i32 0), i32 27 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i32 45 }, i32 494 }, align 4
@_ZN4core3num6bignum5tests6Big8x37div_rem14_MSG_FILE_LINE17h282922b5541b558bE = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str.50, i32 0, i32 0), i32 30 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.4x, i32 0, i32 0), i32 45 }, i32 494 }, align 4
@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_LINE17h68fc28589dc1264dE = internal constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str.5g, i32 0, i32 0), i32 29 }, %str_slice { i8* getelementptr inbounds ([48 x i8], [48 x i8]* @str.5f, i32 0, i32 0), i32 48 }, i32 84 }, align 4
@_ZN4core3num9diy_float2Fp12normalize_to10_FILE_LINE17hdc0ce4e16174d13aE = internal constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([48 x i8], [48 x i8]* @str.5f, i32 0, i32 0), i32 48 }, i32 86 }, align 4
@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 ({}**)*, i32, i32, i8 ({}**, %"fmt::Formatter"*)* } { void ({}**)* @_ZN4core3ptr13drop_in_place17h3c0a93e39219de05E, i32 4, i32 4, i8 ({}**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h0586b9d0e78da073E" }, align 4
@_ZN4core3num14from_str_radix10_FILE_LINE17h55598895be149e83E = internal constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.1N, i32 0, i32 0), i32 42 }, i32 2610 }, align 4
@str.5l = internal constant [13 x i8] c"ParseIntError"
@vtable.5m = internal unnamed_addr constant { void (i8**)*, i32, i32, i8 (i8**, %"fmt::Formatter"*)* } { void (i8**)* @_ZN4core3ptr13drop_in_place17hf60ad699a51fe2a6E, i32 4, i32 4, i8 (i8**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h4fd2571f491adafbE" }, align 4
@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), i32 2 }], align 4
@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), i32 0 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.5t, i32 0, i32 0), i32 2 }], align 4
@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), i32 0 }, %str_slice { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @str.5w, i32 0, i32 0), i32 3 }], align 4
@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), i32 3 }], align 4
@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*)*, i32, i32, i8 (i8*, %"fmt::Formatter"*)* } { void (i8*)* @_ZN4core3ptr13drop_in_place17hf29c856550f8b672E, i32 1, i32 1, i8 (i8*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num49_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i8$GT$3fmt17h9a5827e58c2917b6E" }, align 4
@str.5M = internal constant [8 x i8] c"AtomicU8"
@vtable.5N = internal unnamed_addr constant { void (i8*)*, i32, i32, i8 (i8*, %"fmt::Formatter"*)* } { void (i8*)* @_ZN4core3ptr13drop_in_place17h782426078ce8d3b9E, i32 1, i32 1, i8 (i8*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num49_$LT$impl$u20$core..fmt..Debug$u20$for$u20$u8$GT$3fmt17hc1be3a3368bd27eeE" }, align 4
@str.5O = internal constant [9 x i8] c"AtomicI16"
@vtable.5P = internal unnamed_addr constant { void (i16*)*, i32, i32, i8 (i16*, %"fmt::Formatter"*)* } { void (i16*)* @_ZN4core3ptr13drop_in_place17h8b45db744d153fffE, i32 2, i32 2, i8 (i16*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i16$GT$3fmt17h186d90c42cbcad03E" }, align 4
@str.5Q = internal constant [9 x i8] c"AtomicU16"
@vtable.5R = internal unnamed_addr constant { void (i16*)*, i32, i32, i8 (i16*, %"fmt::Formatter"*)* } { void (i16*)* @_ZN4core3ptr13drop_in_place17h4d414d5cb3bf6a12E, i32 2, i32 2, i8 (i16*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$u16$GT$3fmt17h0a3955161ffa2c28E" }, align 4
@str.5S = internal constant [9 x i8] c"AtomicI32"
@vtable.5T = internal unnamed_addr constant { void (i32*)*, i32, i32, i8 (i32*, %"fmt::Formatter"*)* } { void (i32*)* @_ZN4core3ptr13drop_in_place17h5caff6de4606e963E, i32 4, i32 4, i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i32$GT$3fmt17hc4b45159b7bf29f6E" }, align 4
@str.5U = internal constant [9 x i8] c"AtomicU32"
@vtable.5V = internal unnamed_addr constant { void (i32*)*, i32, i32, i8 (i32*, %"fmt::Formatter"*)* } { void (i32*)* @_ZN4core3ptr13drop_in_place17hf0a36843fb9a52d5E, i32 4, i32 4, i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$u32$GT$3fmt17hb77ec9e560cc533eE" }, align 4
@str.5W = internal constant [11 x i8] c"AtomicIsize"
@vtable.5X = internal unnamed_addr constant { void (i32*)*, i32, i32, i8 (i32*, %"fmt::Formatter"*)* } { void (i32*)* @_ZN4core3ptr13drop_in_place17hbccf04238592c5d6E, i32 4, i32 4, i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$isize$GT$3fmt17hf2ea0f8b0231c0ecE" }, align 4
@str.5Y = internal constant [11 x i8] c"AtomicUsize"
@str.5Z = internal constant [42 x i8] c"there is no such thing as an acquire store"
@str.60 = internal constant [46 x i8] c"/shared/rust/master/src/libcore/sync/atomic.rs"
@_ZN4core4sync6atomic12atomic_store14_MSG_FILE_LINE17h60637962821c4694E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.5Z, i32 0, i32 0), i32 42 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1431 }, align 4
@str.61 = internal constant [50 x i8] c"there is no such thing as an acquire/release store"
@_ZN4core4sync6atomic12atomic_store14_MSG_FILE_LINE17hd4e3529d7c1492d1E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.61, i32 0, i32 0), i32 50 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1432 }, align 4
@str.62 = internal constant [23 x i8] c"invalid memory ordering"
@_ZN4core4sync6atomic12atomic_store14_MSG_FILE_LINE17haac3215a536f0f53E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.62, i32 0, i32 0), i32 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1433 }, align 4
@str.63 = internal constant [40 x i8] c"there is no such thing as a release load"
@_ZN4core4sync6atomic11atomic_load14_MSG_FILE_LINE17h4e1359ece63d7a9fE = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([40 x i8], [40 x i8]* @str.63, i32 0, i32 0), i32 40 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1443 }, align 4
@str.64 = internal constant [49 x i8] c"there is no such thing as an acquire/release load"
@_ZN4core4sync6atomic11atomic_load14_MSG_FILE_LINE17h3a0a79dbccd7bec6E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([49 x i8], [49 x i8]* @str.64, i32 0, i32 0), i32 49 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1444 }, align 4
@_ZN4core4sync6atomic11atomic_load14_MSG_FILE_LINE17h60106beb5d5b3bd1E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.62, i32 0, i32 0), i32 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1445 }, align 4
@_ZN4core4sync6atomic11atomic_swap14_MSG_FILE_LINE17h597071c5006c9581E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.62, i32 0, i32 0), i32 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1457 }, align 4
@_ZN4core4sync6atomic10atomic_add14_MSG_FILE_LINE17ha947805c18ab1c6dE = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.62, i32 0, i32 0), i32 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1470 }, align 4
@_ZN4core4sync6atomic10atomic_sub14_MSG_FILE_LINE17he48bbb96d691bc54E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.62, i32 0, i32 0), i32 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1483 }, align 4
@_ZN4core4sync6atomic23atomic_compare_exchange14_MSG_FILE_LINE17ha20ef08c58955ccfE = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.62, i32 0, i32 0), i32 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1504 }, align 4
@_ZN4core4sync6atomic23atomic_compare_exchange14_MSG_FILE_LINE17hafaeef2d36873fccE = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.62, i32 0, i32 0), i32 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1505 }, align 4
@str.65 = internal constant [61 x i8] c"there is no such thing as an acquire/release failure ordering"
@_ZN4core4sync6atomic23atomic_compare_exchange14_MSG_FILE_LINE17hd47d8f605b7ac4d7E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.65, i32 0, i32 0), i32 61 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1506 }, align 4
@str.66 = internal constant [52 x i8] c"there is no such thing as a release failure ordering"
@_ZN4core4sync6atomic23atomic_compare_exchange14_MSG_FILE_LINE17hd2705521d6782fedE = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.66, i32 0, i32 0), i32 52 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1507 }, align 4
@str.67 = internal constant [60 x i8] c"a failure ordering can't be stronger than a success ordering"
@_ZN4core4sync6atomic23atomic_compare_exchange14_MSG_FILE_LINE17h745233184c36a607E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([60 x i8], [60 x i8]* @str.67, i32 0, i32 0), i32 60 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1508 }, align 4
@_ZN4core4sync6atomic28atomic_compare_exchange_weak14_MSG_FILE_LINE17h90f548d4d387544eE = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.62, i32 0, i32 0), i32 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1530 }, align 4
@_ZN4core4sync6atomic28atomic_compare_exchange_weak14_MSG_FILE_LINE17h8f303add69162bddE = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.62, i32 0, i32 0), i32 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1531 }, align 4
@_ZN4core4sync6atomic28atomic_compare_exchange_weak14_MSG_FILE_LINE17hf87879ed40e9bf73E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str.65, i32 0, i32 0), i32 61 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1532 }, align 4
@_ZN4core4sync6atomic28atomic_compare_exchange_weak14_MSG_FILE_LINE17hcedcd6843d9b2b40E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.66, i32 0, i32 0), i32 52 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1533 }, align 4
@_ZN4core4sync6atomic28atomic_compare_exchange_weak14_MSG_FILE_LINE17hfc90252ada6f7163E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([60 x i8], [60 x i8]* @str.67, i32 0, i32 0), i32 60 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1534 }, align 4
@_ZN4core4sync6atomic10atomic_and14_MSG_FILE_LINE17hc7127f5376b72063E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.62, i32 0, i32 0), i32 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1547 }, align 4
@_ZN4core4sync6atomic9atomic_or14_MSG_FILE_LINE17h5b68577418dc12f4E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.62, i32 0, i32 0), i32 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1559 }, align 4
@_ZN4core4sync6atomic10atomic_xor14_MSG_FILE_LINE17h16904cf76dcdb23eE = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.62, i32 0, i32 0), i32 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1571 }, align 4
@str.68 = internal constant [41 x i8] c"there is no such thing as a relaxed fence"
@_ZN4core4sync6atomic5fence14_MSG_FILE_LINE17hed699e03e61d4016E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str.68, i32 0, i32 0), i32 41 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1660 }, align 4
@_ZN4core4sync6atomic5fence14_MSG_FILE_LINE17h0f127518329888e3E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.62, i32 0, i32 0), i32 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1661 }, align 4
@str.69 = internal constant [50 x i8] c"there is no such thing as a relaxed compiler fence"
@_ZN4core4sync6atomic14compiler_fence14_MSG_FILE_LINE17h2b7a5917058660ffE = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.69, i32 0, i32 0), i32 50 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1701 }, align 4
@_ZN4core4sync6atomic14compiler_fence14_MSG_FILE_LINE17ha58dc92a54378368E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str.62, i32 0, i32 0), i32 23 }, %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.60, i32 0, i32 0), i32 46 }, i32 1702 }, align 4
@str.6a = internal constant [45 x i8] c"assertion failed: self.borrow.get() == UNUSED"
@str.6b = 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_LINE17he67e83012a5bd67eE" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.6a, i32 0, i32 0), i32 45 }, %str_slice { i8* getelementptr inbounds ([39 x i8], [39 x i8]* @str.6b, i32 0, i32 0), i32 39 }, i32 543 }, align 4
@str.6c = 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_LINE17h51143d8bc86532f5E" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([55 x i8], [55 x i8]* @str.6c, i32 0, i32 0), i32 55 }, %str_slice { i8* getelementptr inbounds ([39 x i8], [39 x i8]* @str.6b, i32 0, i32 0), i32 39 }, i32 855 }, align 4
@str.6d = 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_LINE17h9b4cb76a5f9896b4E" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str.6d, i32 0, i32 0), i32 34 }, %str_slice { i8* getelementptr inbounds ([39 x i8], [39 x i8]* @str.6b, i32 0, i32 0), i32 39 }, i32 866 }, align 4
@str.6e = 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_LINE17h5044675c8233f437E" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str.6e, i32 0, i32 0), i32 35 }, %str_slice { i8* getelementptr inbounds ([39 x i8], [39 x i8]* @str.6b, i32 0, i32 0), i32 39 }, i32 868 }, align 4
@str.6f = 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_LINE17h85e7e1833be332d1E" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str.6f, i32 0, i32 0), i32 35 }, %str_slice { i8* getelementptr inbounds ([39 x i8], [39 x i8]* @str.6b, i32 0, i32 0), i32 39 }, i32 996 }, align 4
@str.6g = internal constant [14 x i8] c"ParseCharError"
@vtable.6h = internal unnamed_addr constant { void (i8**)*, i32, i32, i8 (i8**, %"fmt::Formatter"*)* } { void (i8**)* @_ZN4core3ptr13drop_in_place17h9b9899fc9b1b14f4E, i32 4, i32 4, i8 (i8**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17he5d7aed39d737fcbE" }, align 4
@str.6i = internal constant [12 x i8] c"TooManyChars"
@str.6j = internal constant [11 x i8] c"EmptyString"
@str.6k = internal constant [16 x i8] c"CharTryFromError"
@str.6l = internal constant [42 x i8] c"from_digit: radix is too high (maximum 36)"
@str.6m = internal constant [39 x i8] c"/shared/rust/master/src/libcore/char.rs"
@_ZN4core4char10from_digit14_MSG_FILE_LINE17h401b5eb94ea8afb9E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.6l, i32 0, i32 0), i32 42 }, %str_slice { i8* getelementptr inbounds ([39 x i8], [39 x i8]* @str.6m, i32 0, i32 0), i32 39 }, i32 352 }, align 4
@str.6n = 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_LINE17he6eb667c9cda989aE" = constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([40 x i8], [40 x i8]* @str.6n, i32 0, i32 0), i32 40 }, %str_slice { i8* getelementptr inbounds ([39 x i8], [39 x i8]* @str.6m, i32 0, i32 0), i32 39 }, i32 404 }, align 4
@"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$11encode_utf810_FILE_LINE17hd8a68d24c45d55f0E" = constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([39 x i8], [39 x i8]* @str.6m, i32 0, i32 0), i32 39 }, i32 504 }, align 4
@str.6o = internal constant [18 x i8] c"encode_utf8: need "
@str.6p = internal constant [19 x i8] c" bytes to encode U+"
@str.6q = internal constant [21 x i8] c", but the buffer has "
@ref.6r = internal unnamed_addr constant [3 x %str_slice] [%str_slice { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @str.6o, i32 0, i32 0), i32 18 }, %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str.6p, i32 0, i32 0), i32 19 }, %str_slice { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @str.6q, i32 0, i32 0), i32 21 }], align 4
@"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$12encode_utf1610_FILE_LINE17h1d5cbe1d035bb395E" = local_unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([39 x i8], [39 x i8]* @str.6m, i32 0, i32 0), i32 39 }, i32 528 }, align 4
@str.6s = internal constant [19 x i8] c"encode_utf16: need "
@str.6t = internal constant [19 x i8] c" units to encode U+"
@ref.6u = internal unnamed_addr constant [3 x %str_slice] [%str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str.6s, i32 0, i32 0), i32 19 }, %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str.6t, i32 0, i32 0), i32 19 }, %str_slice { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @str.6q, i32 0, i32 0), i32 21 }], align 4
@str.6v = internal constant [13 x i8] c"EscapeUnicode"
@str.6w = internal constant [1 x i8] c"c"
@str.6x = internal constant [5 x i8] c"state"
@vtable.6y = internal unnamed_addr constant { void (i8**)*, i32, i32, i8 (i8**, %"fmt::Formatter"*)* } { void (i8**)* @_ZN4core3ptr13drop_in_place17h93b80db886cc564fE, i32 4, i32 4, i8 (i8**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hbeb0518d7a20d013E" }, align 4
@str.6z = internal constant [13 x i8] c"hex_digit_idx"
@str.6A = internal constant [9 x i8] c"Backslash"
@str.6B = internal constant [4 x i8] c"Type"
@str.6C = internal constant [9 x i8] c"LeftBrace"
@str.6D = internal constant [5 x i8] c"Value"
@str.6E = internal constant [10 x i8] c"RightBrace"
@str.6F = internal constant [4 x i8] c"Done"
@str.6G = internal constant [13 x i8] c"EscapeDefault"
@vtable.6H = internal unnamed_addr constant { void (%"char::EscapeDefaultState"**)*, i32, i32, i8 (%"char::EscapeDefaultState"**, %"fmt::Formatter"*)* } { void (%"char::EscapeDefaultState"**)* @_ZN4core3ptr13drop_in_place17h68ec3c2bac07eeb5E, i32 4, i32 4, i8 (%"char::EscapeDefaultState"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h95802946fc95f09bE" }, align 4
@str.6I = internal constant [7 x i8] c"Unicode"
@vtable.6J = internal unnamed_addr constant { void (%"char::EscapeUnicode"**)*, i32, i32, i8 (%"char::EscapeUnicode"**, %"fmt::Formatter"*)* } { void (%"char::EscapeUnicode"**)* @_ZN4core3ptr13drop_in_place17he547feaeafa12bffE, i32 4, i32 4, i8 (%"char::EscapeUnicode"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h991645b49e7378e4E" }, align 4
@str.6K = internal constant [4 x i8] c"Char"
@str.6L = internal constant [11 x i8] c"EscapeDebug"
@vtable.6M = internal unnamed_addr constant { void (%"char::EscapeDefault"**)*, i32, i32, i8 (%"char::EscapeDefault"**, %"fmt::Formatter"*)* } { void (%"char::EscapeDefault"**)* @_ZN4core3ptr13drop_in_place17h436682d5f4f88d02E, i32 4, i32 4, i8 (%"char::EscapeDefault"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h755e38360efb7c23E" }, align 4
@str.6N = internal constant [15 x i8] c"InvalidSequence"
@str.6O = internal constant [32 x i8] c"index out of bounds: the len is "
@str.6P = internal constant [18 x i8] c" but the index is "
@ref.6Q = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([32 x i8], [32 x i8]* @str.6O, i32 0, i32 0), i32 32 }, %str_slice { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @str.6P, i32 0, i32 0), i32 18 }], align 4
@str.6R = internal constant [27 x i8] c"assertion failed: step != 0"
@str.6S = internal constant [48 x i8] c"/shared/rust/master/src/libcore/iter/iterator.rs"
@_ZN4core4iter8iterator8Iterator7step_by14_MSG_FILE_LINE17hbe4aff1ff20f0468E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str.6R, i32 0, i32 0), i32 27 }, %str_slice { i8* getelementptr inbounds ([48 x i8], [48 x i8]* @str.6S, i32 0, i32 0), i32 48 }, i32 291 }, align 4
@str.6T = internal constant [46 x i8] c"/shared/rust/master/src/libcore/iter/traits.rs"
@_ZN4core4iter6traits17ExactSizeIterator3len10_FILE_LINE17hab5b6137bfd57e21E = constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str.6T, i32 0, i32 0), i32 46 }, i32 584 }, align 4
@str.6U = internal constant [6 x i8] c"Cloned"
@str.6V = internal constant [2 x i8] c"it"
@vtable.6W = internal unnamed_addr constant { void (%"slice::Iter<u8>"**)*, i32, i32, i8 (%"slice::Iter<u8>"**, %"fmt::Formatter"*)* } { void (%"slice::Iter<u8>"**)* @_ZN4core3ptr13drop_in_place17h69d72049864fa159E, i32 4, i32 4, i8 (%"slice::Iter<u8>"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hf5b0955d8c4cb6a7E" }, align 4
@str.6X = internal constant [4 x i8] c"Back"
@str.6Y = internal constant [5 x i8] c"Front"
@str.6Z = internal constant [4 x i8] c"Both"
@str.70 = internal constant [40 x i8] c"internal error: entered unreachable code"
@str.71 = 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_LINE17h460b9c463bcf1c33E" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([40 x i8], [40 x i8]* @str.70, i32 0, i32 0), i32 40 }, %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str.71, i32 0, i32 0), i32 43 }, i32 875 }, align 4
@"_ZN38_$LT$core..iter..Peekable$LT$I$GT$$GT$4peek14_MSG_FILE_LINE17h46d62b7f9e9d1778E" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([40 x i8], [40 x i8]* @str.70, i32 0, i32 0), i32 40 }, %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str.71, i32 0, i32 0), i32 43 }, i32 1520 }, align 4
@str.72 = internal constant [4 x i8] c"Some"
@str.73 = internal constant [4 x i8] c"None"
@str.74 = internal constant [43 x i8] c"called `Option::unwrap()` on a `None` value"
@str.75 = 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_LINE17h2e2d3449b13c0389E" = constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str.74, i32 0, i32 0), i32 43 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str.75, i32 0, i32 0), i32 41 }, i32 335 }, align 4
@"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$13get_or_insert14_MSG_FILE_LINE17h83262c8afdd3f36bE" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([40 x i8], [40 x i8]* @str.70, i32 0, i32 0), i32 40 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str.75, i32 0, i32 0), i32 41 }, i32 697 }, align 4
@"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$18get_or_insert_with14_MSG_FILE_LINE17h065e32c3281aa57bE" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([40 x i8], [40 x i8]* @str.70, i32 0, i32 0), i32 40 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str.75, i32 0, i32 0), i32 41 }, i32 732 }, align 4
@_ZN4core6option13expect_failed10_FILE_LINE17h8e6b7aa7ca90d6a5E = internal constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str.75, i32 0, i32 0), i32 41 }, i32 823 }, align 4
@str.76 = internal constant [41 x i8] c"/shared/rust/master/src/libcore/result.rs"
@_ZN4core6result13unwrap_failed10_FILE_LINE17h60314e400ce0868cE = local_unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str.76, i32 0, i32 0), i32 41 }, i32 860 }, align 4
@str.77 = internal constant [2 x i8] c": "
@ref.78 = 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), i32 0 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.77, i32 0, i32 0), i32 2 }], align 4
@str.79 = internal constant [41 x i8] c"assertion failed: mem::size_of::<T>() > 0"
@str.7a = internal constant [45 x i8] c"/shared/rust/master/src/libcore/slice/sort.rs"
@_ZN4core5slice4sort19partition_in_blocks5width14_MSG_FILE_LINE17hb6358a0923913bf2E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str.79, i32 0, i32 0), i32 41 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.7a, i32 0, i32 0), i32 45 }, i32 243 }, align 4
@str.7b = internal constant [54 x i8] c"assertion failed: block_l <= BLOCK && block_r <= BLOCK"
@_ZN4core5slice4sort19partition_in_blocks14_MSG_FILE_LINE17ha2286e7f952e18e1E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([54 x i8], [54 x i8]* @str.7b, i32 0, i32 0), i32 54 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.7a, i32 0, i32 0), i32 45 }, i32 269 }, align 4
@str.7c = internal constant [50 x i8] c"assertion failed: width(l, r) == block_l + block_r"
@_ZN4core5slice4sort19partition_in_blocks14_MSG_FILE_LINE17hb0cd9ad635fa0c10E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str.7c, i32 0, i32 0), i32 50 }, %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.7a, i32 0, i32 0), i32 45 }, i32 270 }, align 4
@_ZN4core5slice4sort19partition_in_blocks10_FILE_LINE17ha6e85a981c644fe8E = local_unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.7a, i32 0, i32 0), i32 45 }, i32 355 }, align 4
@_ZN4core5slice4sort19partition_in_blocks10_FILE_LINE17h6a05b3bea55d0064E = local_unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str.7a, i32 0, i32 0), i32 45 }, i32 367 }, align 4
@str.7d = 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_LINE17h6f47b5b1357bf3faE" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str.7d, i32 0, i32 0), i32 27 }, %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i32 44 }, i32 341 }, align 4
@"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$6chunks14_MSG_FILE_LINE17h74de6003600e4920E" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str.7d, i32 0, i32 0), i32 27 }, %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i32 44 }, i32 347 }, align 4
@str.7e = 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_LINE17h6efe72f5a2074b35E" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.7e, i32 0, i32 0), i32 28 }, %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i32 44 }, i32 433 }, align 4
@str.7f = 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_LINE17h45b29f38ea668ab3E" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([32 x i8], [32 x i8]* @str.7f, i32 0, i32 0), i32 32 }, %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i32 44 }, i32 528 }, align 4
@str.7g = 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_LINE17h379f934ca68d21adE" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str.7g, i32 0, i32 0), i32 35 }, %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i32 44 }, i32 643 }, align 4
@str.7h = 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_LINE17h1c107c9b34d87abcE" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.7h, i32 0, i32 0), i32 52 }, %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i32 44 }, i32 654 }, align 4
@"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$15copy_from_slice14_MSG_FILE_LINE17hab4cce13409893afE" = constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.7h, i32 0, i32 0), i32 52 }, %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i32 44 }, i32 668 }, align 4
@_ZN4core5slice20slice_index_len_fail10_FILE_LINE17h13e7b4edc73297e6E = internal constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i32 44 }, i32 735 }, align 4
@str.7i = internal constant [6 x i8] c"index "
@str.7j = internal constant [34 x i8] c" out of range for slice of length "
@ref.7k = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str.7i, i32 0, i32 0), i32 6 }, %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str.7j, i32 0, i32 0), i32 34 }], align 4
@_ZN4core5slice22slice_index_order_fail10_FILE_LINE17hb6820ef39321bbe5E = internal constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i32 44 }, i32 741 }, align 4
@str.7l = internal constant [22 x i8] c"slice index starts at "
@str.7m = internal constant [13 x i8] c" but ends at "
@ref.7n = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str.7l, i32 0, i32 0), i32 22 }, %str_slice { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @str.7m, i32 0, i32 0), i32 13 }], align 4
@str.7o = 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_LINE17h9ac8235277272c72E" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.7o, i32 0, i32 0), i32 44 }, %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i32 44 }, i32 1020 }, align 4
@"_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_LINE17h7b398668a5e0ed9aE" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.7o, i32 0, i32 0), i32 44 }, %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str.2b, i32 0, i32 0), i32 44 }, i32 1027 }, align 4
@str.7p = internal constant [6 x i8] c"Reject"
@str.7q = internal constant [5 x i8] c"Match"
@str.7r = internal constant [14 x i8] c"CharEqSearcher"
@str.7s = internal constant [7 x i8] c"char_eq"
@vtable.7t = internal unnamed_addr constant { void ({ i32*, i32 }**)*, i32, i32, i8 ({ i32*, i32 }**, %"fmt::Formatter"*)* } { void ({ i32*, i32 }**)* @_ZN4core3ptr13drop_in_place17hbd620a898f1b0c1cE, i32 4, i32 4, i8 ({ i32*, i32 }**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h4ded7db3479c77ecE" }, align 4
@str.7u = internal constant [8 x i8] c"haystack"
@vtable.7v = internal unnamed_addr constant { void (%str_slice**)*, i32, i32, i8 (%str_slice**, %"fmt::Formatter"*)* } { void (%str_slice**)* @_ZN4core3ptr13drop_in_place17hac5307d9de46b924E, i32 4, i32 4, i8 (%str_slice**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h7f438cd6baeae5c1E" }, align 4
@str.7w = internal constant [12 x i8] c"char_indices"
@vtable.7x = internal unnamed_addr constant { void (%"str::CharIndices"**)*, i32, i32, i8 (%"str::CharIndices"**, %"fmt::Formatter"*)* } { void (%"str::CharIndices"**)* @_ZN4core3ptr13drop_in_place17hcee9b7e953e00140E, i32 4, i32 4, i8 (%"str::CharIndices"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hab9d35589c2d39d7E" }, align 4
@str.7y = internal constant [10 x i8] c"ascii_only"
@str.7z = internal constant [12 x i8] c"CharSearcher"
@vtable.7A = internal unnamed_addr constant { void (%"str::pattern::CharEqSearcher<char>"**)*, i32, i32, i8 (%"str::pattern::CharEqSearcher<char>"**, %"fmt::Formatter"*)* } { void (%"str::pattern::CharEqSearcher<char>"**)* @_ZN4core3ptr13drop_in_place17h67b41d4a705f020eE, i32 4, i32 4, i8 (%"str::pattern::CharEqSearcher<char>"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h9d2546e2929eee5aE" }, align 4
@str.7B = internal constant [17 x i8] c"CharSliceSearcher"
@vtable.7C = internal unnamed_addr constant { void (%"str::pattern::CharEqSearcher<&[char]>"**)*, i32, i32, i8 (%"str::pattern::CharEqSearcher<&[char]>"**, %"fmt::Formatter"*)* } { void (%"str::pattern::CharEqSearcher<&[char]>"**)* @_ZN4core3ptr13drop_in_place17h4c2ccf6e0e47fc8fE, i32 4, i32 4, i8 (%"str::pattern::CharEqSearcher<&[char]>"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17he4a0afc4d0bbf245E" }, align 4
@str.7D = internal constant [11 x i8] c"StrSearcher"
@str.7E = internal constant [6 x i8] c"needle"
@str.7F = internal constant [8 x i8] c"searcher"
@vtable.7G = internal unnamed_addr constant { void (%"str::pattern::StrSearcherImpl"**)*, i32, i32, i8 (%"str::pattern::StrSearcherImpl"**, %"fmt::Formatter"*)* } { void (%"str::pattern::StrSearcherImpl"**)* @_ZN4core3ptr13drop_in_place17h4857720116818bb9E, i32 4, i32 4, i8 (%"str::pattern::StrSearcherImpl"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hd5453696c9f46689E" }, align 4
@str.7H = internal constant [6 x i8] c"TwoWay"
@vtable.7I = internal unnamed_addr constant { void (%"str::pattern::TwoWaySearcher"**)*, i32, i32, i8 (%"str::pattern::TwoWaySearcher"**, %"fmt::Formatter"*)* } { void (%"str::pattern::TwoWaySearcher"**)* @_ZN4core3ptr13drop_in_place17h7249faa5c5aa69cbE, i32 4, i32 4, i8 (%"str::pattern::TwoWaySearcher"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17ha5129edb844e3007E" }, align 4
@vtable.7J = internal unnamed_addr constant { void (%"str::pattern::EmptyNeedle"**)*, i32, i32, i8 (%"str::pattern::EmptyNeedle"**, %"fmt::Formatter"*)* } { void (%"str::pattern::EmptyNeedle"**)* @_ZN4core3ptr13drop_in_place17hd7e19857a706982fE, i32 4, i32 4, i8 (%"str::pattern::EmptyNeedle"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hb1b93c49e160f5b4E" }, align 4
@str.7K = internal constant [11 x i8] c"EmptyNeedle"
@str.7L = internal constant [8 x i8] c"position"
@str.7M = internal constant [11 x i8] c"is_match_fw"
@str.7N = internal constant [11 x i8] c"is_match_bw"
@str.7O = internal constant [14 x i8] c"TwoWaySearcher"
@str.7P = internal constant [8 x i8] c"crit_pos"
@str.7Q = internal constant [13 x i8] c"crit_pos_back"
@str.7R = internal constant [6 x i8] c"period"
@str.7S = internal constant [7 x i8] c"byteset"
@str.7T = internal constant [6 x i8] c"memory"
@str.7U = internal constant [11 x i8] c"memory_back"
@str.7X = internal constant [14 x i8] c"ParseBoolError"
@str.7Y = internal constant [5 x i8] c"_priv"
@str.7Z = internal constant [9 x i8] c"Utf8Error"
@str.80 = internal constant [11 x i8] c"valid_up_to"
@str.81 = internal constant [9 x i8] c"error_len"
@vtable.82 = internal unnamed_addr constant { void (%"option::Option<u8>"**)*, i32, i32, i8 (%"option::Option<u8>"**, %"fmt::Formatter"*)* } { void (%"option::Option<u8>"**)* @_ZN4core3ptr13drop_in_place17hd2838c18a90e14ffE, i32 4, i32 4, i8 (%"option::Option<u8>"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h249e92382aa752b2E" }, align 4
@str.83 = internal constant [26 x i8] c"invalid utf-8 sequence of "
@str.84 = internal constant [18 x i8] c" bytes from index "
@ref.85 = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @str.83, i32 0, i32 0), i32 26 }, %str_slice { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @str.84, i32 0, i32 0), i32 18 }], align 4
@str.86 = internal constant [42 x i8] c"incomplete utf-8 byte sequence from index "
@ref.87 = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.86, i32 0, i32 0), i32 42 }], align 4
@str.88 = internal constant [5 x i8] c"Chars"
@str.89 = internal constant [11 x i8] c"CharIndices"
@str.8a = internal constant [12 x i8] c"front_offset"
@vtable.8b = internal unnamed_addr constant { void (%"str::Chars"**)*, i32, i32, i8 (%"str::Chars"**, %"fmt::Formatter"*)* } { void (%"str::Chars"**)* @_ZN4core3ptr13drop_in_place17h914446d50a94ff42E, i32 4, i32 4, i8 (%"str::Chars"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h8b543aad4e54e60dE" }, align 4
@str.8c = internal constant [5 x i8] c"Bytes"
@vtable.8d = internal unnamed_addr constant { void (%"iter::Cloned<slice::Iter<u8>>"**)*, i32, i32, i8 (%"iter::Cloned<slice::Iter<u8>>"**, %"fmt::Formatter"*)* } { void (%"iter::Cloned<slice::Iter<u8>>"**)* @_ZN4core3ptr13drop_in_place17h6cf1b4a6db6e74fbE, i32 4, i32 4, i8 (%"iter::Cloned<slice::Iter<u8>>"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hf54c71c9d8d00211E" }, align 4
@str.8e = internal constant [15 x i8] c"SplitTerminator"
@vtable.8f = internal unnamed_addr constant { void (%"str::SplitInternal<char>"*)*, i32, i32, i8 (%"str::SplitInternal<char>"*, %"fmt::Formatter"*)* } { void (%"str::SplitInternal<char>"*)* @_ZN4core3ptr13drop_in_place17h954575d65357abb9E, i32 40, i32 4, 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$3fmt17h3c66d3f82d043d95E" }, align 4
@str.8g = internal constant [5 x i8] c"Lines"
@vtable.8h = internal unnamed_addr constant { void (%"iter::Map<str::SplitTerminator<char>, str::LinesAnyMap>"**)*, i32, i32, i8 (%"iter::Map<str::SplitTerminator<char>, str::LinesAnyMap>"**, %"fmt::Formatter"*)* } { void (%"iter::Map<str::SplitTerminator<char>, str::LinesAnyMap>"**)* @_ZN4core3ptr13drop_in_place17h7cb2f5719523ed27E, i32 4, i32 4, i8 (%"iter::Map<str::SplitTerminator<char>, str::LinesAnyMap>"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hae58a56c4a13ce5aE" }, align 4
@str.8i = internal constant [8 x i8] c"LinesAny"
@vtable.8j = internal unnamed_addr constant { void (%"str::Lines"**)*, i32, i32, i8 (%"str::Lines"**, %"fmt::Formatter"*)* } { void (%"str::Lines"**)* @_ZN4core3ptr13drop_in_place17h0f7e3edb894a19f8E, i32 4, i32 4, i8 (%"str::Lines"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h3cbfd0d344f68f73E" }, align 4
@str.8k = 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_LINE17h807584ae27ebacf0E" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.8k, i32 0, i32 0), i32 42 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.2r, i32 0, i32 0), i32 42 }, i32 1945 }, align 4
@"_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_LINE17h5c277c2f87d2b851E" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.8k, i32 0, i32 0), i32 42 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.2r, i32 0, i32 0), i32 42 }, i32 1951 }, align 4
@"_ZN4core3str6traits112_$LT$impl$u20$core..slice..SliceIndex$LT$str$GT$$u20$for$u20$core..ops..range..RangeToInclusive$LT$usize$GT$$GT$5index14_MSG_FILE_LINE17h7dfa5db66b73c407E" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.8k, i32 0, i32 0), i32 42 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.2r, i32 0, i32 0), i32 42 }, i32 1990 }, align 4
@"_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_LINE17h748cfc192890dbd9E" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.8k, i32 0, i32 0), i32 42 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.2r, i32 0, i32 0), i32 42 }, i32 1997 }, align 4
@_ZN4core3str16slice_error_fail10_FILE_LINE17h485c66d44f1f8c58E = internal constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.2r, i32 0, i32 0), i32 42 }, i32 2133 }, align 4
@str.8l = internal constant [11 x i8] c"byte index "
@str.8m = internal constant [22 x i8] c" is out of bounds of `"
@ref.8n = internal unnamed_addr constant [3 x %str_slice] [%str_slice { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @str.8l, i32 0, i32 0), i32 11 }, %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str.8m, i32 0, i32 0), i32 22 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str.3w, i32 0, i32 0), i32 1 }], align 4
@_ZN4core3str16slice_error_fail10_FILE_LINE17h1693cea7ac4e665aE = internal constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.2r, i32 0, i32 0), i32 42 }, i32 2137 }, align 4
@str.8o = internal constant [14 x i8] c"begin <= end ("
@str.8p = internal constant [4 x i8] c" <= "
@str.8q = internal constant [16 x i8] c") when slicing `"
@ref.8r = internal unnamed_addr constant [4 x %str_slice] [%str_slice { i8* getelementptr inbounds ([14 x i8], [14 x i8]* @str.8o, i32 0, i32 0), i32 14 }, %str_slice { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str.8p, i32 0, i32 0), i32 4 }, %str_slice { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @str.8q, i32 0, i32 0), i32 16 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str.3w, i32 0, i32 0), i32 1 }], align 4
@_ZN4core3str16slice_error_fail10_FILE_LINE17h04ded9a26961f4beE = internal constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.2r, i32 0, i32 0), i32 42 }, i32 2150 }, align 4
@str.8s = internal constant [38 x i8] c" is not a char boundary; it is inside "
@str.8t = internal constant [8 x i8] c" (bytes "
@str.8u = internal constant [6 x i8] c") of `"
@ref.8v = internal unnamed_addr constant [5 x %str_slice] [%str_slice { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @str.8l, i32 0, i32 0), i32 11 }, %str_slice { i8* getelementptr inbounds ([38 x i8], [38 x i8]* @str.8s, i32 0, i32 0), i32 38 }, %str_slice { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @str.8t, i32 0, i32 0), i32 8 }, %str_slice { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str.8u, i32 0, i32 0), i32 6 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str.3w, i32 0, i32 0), i32 1 }], align 4
@str.8w = internal constant [11 x i8] c"SipHasher13"
@str.8x = internal constant [6 x i8] c"hasher"
@vtable.8y = internal unnamed_addr constant { void (%"hash::sip::Hasher<hash::sip::Sip13Rounds>"**)*, i32, i32, i8 (%"hash::sip::Hasher<hash::sip::Sip13Rounds>"**, %"fmt::Formatter"*)* } { void (%"hash::sip::Hasher<hash::sip::Sip13Rounds>"**)* @_ZN4core3ptr13drop_in_place17heccfe8741d2c7e0fE, i32 4, i32 4, i8 (%"hash::sip::Hasher<hash::sip::Sip13Rounds>"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h44709bef31c2970eE" }, align 4
@str.8z = internal constant [11 x i8] c"SipHasher24"
@vtable.8A = internal unnamed_addr constant { void (%"hash::sip::Hasher<hash::sip::Sip24Rounds>"**)*, i32, i32, i8 (%"hash::sip::Hasher<hash::sip::Sip24Rounds>"**, %"fmt::Formatter"*)* } { void (%"hash::sip::Hasher<hash::sip::Sip24Rounds>"**)* @_ZN4core3ptr13drop_in_place17h7e3cd2c4bdba63f8E, i32 4, i32 4, i8 (%"hash::sip::Hasher<hash::sip::Sip24Rounds>"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h8bb570b6c2299048E" }, align 4
@str.8B = internal constant [9 x i8] c"SipHasher"
@vtable.8C = internal unnamed_addr constant { void (%"hash::sip::SipHasher24"**)*, i32, i32, i8 (%"hash::sip::SipHasher24"**, %"fmt::Formatter"*)* } { void (%"hash::sip::SipHasher24"**)* @_ZN4core3ptr13drop_in_place17h33262bd9e35eefa1E, i32 4, i32 4, i8 (%"hash::sip::SipHasher24"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h225b38b44f8707faE" }, align 4
@str.8D = internal constant [6 x i8] c"Hasher"
@str.8E = internal constant [2 x i8] c"k0"
@str.8F = internal constant [2 x i8] c"k1"
@str.8G = internal constant [6 x i8] c"length"
@vtable.8H = internal unnamed_addr constant { void (%"hash::sip::State"**)*, i32, i32, i8 (%"hash::sip::State"**, %"fmt::Formatter"*)* } { void (%"hash::sip::State"**)* @_ZN4core3ptr13drop_in_place17h78ff46025e2eae31E, i32 4, i32 4, i8 (%"hash::sip::State"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hf2792c21954dfbb7E" }, align 4
@str.8I = internal constant [4 x i8] c"tail"
@str.8J = internal constant [5 x i8] c"ntail"
@str.8K = internal constant [7 x i8] c"_marker"
@vtable.8L = internal unnamed_addr constant { void (%"marker::PhantomData<hash::sip::Sip24Rounds>"**)*, i32, i32, i8 (%"marker::PhantomData<hash::sip::Sip24Rounds>"**, %"fmt::Formatter"*)* } { void (%"marker::PhantomData<hash::sip::Sip24Rounds>"**)* @_ZN4core3ptr13drop_in_place17h0b5620575545b636E, i32 4, i32 4, i8 (%"marker::PhantomData<hash::sip::Sip24Rounds>"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h893ed01aa4fc70bbE" }, align 4
@vtable.8M = internal unnamed_addr constant { void (%"marker::PhantomData<hash::sip::Sip13Rounds>"**)*, i32, i32, i8 (%"marker::PhantomData<hash::sip::Sip13Rounds>"**, %"fmt::Formatter"*)* } { void (%"marker::PhantomData<hash::sip::Sip13Rounds>"**)* @_ZN4core3ptr13drop_in_place17hf8c3dd270b2563ecE, i32 4, i32 4, i8 (%"marker::PhantomData<hash::sip::Sip13Rounds>"**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hc499faffc91fd4bcE" }, align 4
@str.8N = internal constant [5 x i8] c"State"
@str.8O = internal constant [2 x i8] c"v0"
@str.8P = internal constant [2 x i8] c"v2"
@str.8Q = internal constant [2 x i8] c"v1"
@str.8R = internal constant [2 x i8] c"v3"
@str.8S = internal constant [25 x i8] c"assertion failed: len < 8"
@str.8T = internal constant [43 x i8] c"/shared/rust/master/src/libcore/hash/sip.rs"
@_ZN4core4hash3sip9u8to64_le14_MSG_FILE_LINE17h69f3d226b34d8dc3E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @str.8S, i32 0, i32 0), i32 25 }, %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str.8T, i32 0, i32 0), i32 43 }, i32 123 }, align 4
@str.8U = internal constant [64 x i8] c"assertion failed: start + i + mem::size_of::<u32>() <= buf.len()"
@_ZN4core4hash3sip9u8to64_le14_MSG_FILE_LINE17h2ce50be1ad5a1225E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([64 x i8], [64 x i8]* @str.8U, i32 0, i32 0), i32 64 }, %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str.8T, i32 0, i32 0), i32 43 }, i32 127 }, align 4
@str.8V = internal constant [64 x i8] c"assertion failed: start + i + mem::size_of::<u16>() <= buf.len()"
@_ZN4core4hash3sip9u8to64_le14_MSG_FILE_LINE17hedcffe5e8a73a1f7E = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([64 x i8], [64 x i8]* @str.8V, i32 0, i32 0), i32 64 }, %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str.8T, i32 0, i32 0), i32 43 }, i32 131 }, align 4
@_ZN4core4hash3sip9u8to64_le10_FILE_LINE17hd360f6b6e97eca53E = local_unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str.8T, i32 0, i32 0), i32 43 }, i32 138 }, align 4
@str.8W = 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_LINE17hd5b46a9731bb22d4E" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([32 x i8], [32 x i8]* @str.8W, i32 0, i32 0), i32 32 }, %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str.8T, i32 0, i32 0), i32 43 }, i32 244 }, align 4
@str.8X = 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_LINE17h31cbbdaef467d042E" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([56 x i8], [56 x i8]* @str.8X, i32 0, i32 0), i32 56 }, %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str.8T, i32 0, i32 0), i32 43 }, i32 251 }, align 4
@str.8Y = 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_LINE17h8398accede7c7488E" = local_unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([56 x i8], [56 x i8]* @str.8Y, i32 0, i32 0), i32 56 }, %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str.8T, i32 0, i32 0), i32 43 }, i32 351 }, align 4
@str.8Z = internal constant [11 x i8] c"Sip13Rounds"
@str.90 = internal constant [11 x i8] c"Sip24Rounds"
@str.91 = internal constant [2 x i8] c"0b"
@str.92 = 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_LINE17h2f9d25f55cd1a812E" = internal constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.92, i32 0, i32 0), i32 42 }, i32 138 }, align 4
@str.93 = internal constant [27 x i8] c"number not in the range 0.."
@ref.94 = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str.93, i32 0, i32 0), i32 27 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.77, i32 0, i32 0), i32 2 }], align 4
@str.95 = internal constant [2 x i8] c"0o"
@"_ZN70_$LT$core..fmt..num..Octal$u20$as$u20$core..fmt..num..GenericRadix$GT$5digit10_FILE_LINE17h1dd1871411f2aa3cE" = internal constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.92, i32 0, i32 0), i32 42 }, i32 139 }, align 4
@"_ZN72_$LT$core..fmt..num..Decimal$u20$as$u20$core..fmt..num..GenericRadix$GT$5digit10_FILE_LINE17h12173fe07ad9c0d0E" = internal constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.92, i32 0, i32 0), i32 42 }, i32 140 }, align 4
@str.96 = internal constant [2 x i8] c"0x"
@"_ZN73_$LT$core..fmt..num..LowerHex$u20$as$u20$core..fmt..num..GenericRadix$GT$5digit10_FILE_LINE17h917ccfa45d909c03E" = internal constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.92, i32 0, i32 0), i32 42 }, i32 141 }, align 4
@"_ZN73_$LT$core..fmt..num..UpperHex$u20$as$u20$core..fmt..num..GenericRadix$GT$5digit10_FILE_LINE17hbb352c950e4ce76aE" = internal constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.92, i32 0, i32 0), i32 42 }, i32 143 }, align 4
@byte_str.97 = internal unnamed_addr constant [200 x i8] c"00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899", align 1
@ref.9d = 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), i32 0 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str.2G, i32 0, i32 0), i32 1 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.77, i32 0, i32 0), i32 2 }], align 4
@ref.9e = internal unnamed_addr constant { { { i32, i32 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } }, { { i32, i32 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } }, { { i32, i32 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } } } { { { i32, i32 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } } { { i32, i32 } { i32 1, i32 0 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } { i32 32, i32 0, { i32, [4 x i8] } { i32 3, [4 x i8] undef }, { i32, [4 x i8] } { i32 3, [4 x i8] undef }, i8 3, [3 x i8] undef } }, { { i32, i32 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } } { { i32, i32 } { i32 1, i32 1 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } { i32 32, i32 0, { i32, [4 x i8] } { i32 3, [4 x i8] undef }, { i32, [4 x i8] } { i32 3, [4 x i8] undef }, i8 3, [3 x i8] undef } }, { { i32, i32 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } } { { i32, i32 } { i32 1, i32 2 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } { i32 32, i32 4, { i32, [4 x i8] } { i32 3, [4 x i8] undef }, { i32, [4 x i8] } { i32 3, [4 x i8] undef }, i8 3, [3 x i8] undef } } }, align 4
@ref.9f = 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), i32 0 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str.2E, i32 0, i32 0), i32 1 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.77, i32 0, i32 0), i32 2 }], align 4
@ref.9g = 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), i32 0 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str.2G, i32 0, i32 0), i32 1 }], align 4
@ref.9h = internal unnamed_addr constant { { { i32, i32 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } }, { { i32, i32 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } } } { { { i32, i32 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } } { { i32, i32 } { i32 1, i32 0 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } { i32 32, i32 0, { i32, [4 x i8] } { i32 3, [4 x i8] undef }, { i32, [4 x i8] } { i32 3, [4 x i8] undef }, i8 3, [3 x i8] undef } }, { { i32, i32 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } } { { i32, i32 } { i32 1, i32 1 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } { i32 32, i32 4, { i32, [4 x i8] } { i32 3, [4 x i8] undef }, { i32, [4 x i8] } { i32 3, [4 x i8] undef }, i8 3, [3 x i8] undef } } }, align 4
@ref.9i = 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), i32 0 }, %str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), i32 0 }, %str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), i32 0 }], align 4
@ref.9j = 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), i32 0 }, %str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), i32 0 }], align 4
@str.9k = internal constant [1 x i8] c"{"
@ref.9l = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str.9k, i32 0, i32 0), i32 1 }], align 4
@str.9m = internal constant [1 x i8] c"["
@ref.9n = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str.9m, i32 0, i32 0), i32 1 }], align 4
@ref.9o = internal unnamed_addr constant { { { i32, i32 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } }, { { i32, i32 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } }, { { i32, i32 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } } } { { { i32, i32 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } } { { i32, i32 } { i32 1, i32 0 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } { i32 32, i32 0, { i32, [4 x i8] } { i32 3, [4 x i8] undef }, { i32, [4 x i8] } { i32 3, [4 x i8] undef }, i8 3, [3 x i8] undef } }, { { i32, i32 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } } { { i32, i32 } { i32 1, i32 1 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } { i32 32, i32 4, { i32, [4 x i8] } { i32 3, [4 x i8] undef }, { i32, [4 x i8] } { i32 3, [4 x i8] undef }, i8 3, [3 x i8] undef } }, { { i32, i32 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } } { { i32, i32 } { i32 1, i32 2 }, { i32, i32, { i32, [4 x i8] }, { i32, [4 x i8] }, i8, [3 x i8] } { i32 32, i32 4, { i32, [4 x i8] } { i32 3, [4 x i8] undef }, { i32, [4 x i8] } { i32 3, [4 x i8] undef }, i8 3, [3 x i8] undef } } }, align 4
@ref.9p = 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), i32 0 }, %str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), i32 0 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.77, i32 0, i32 0), i32 2 }], align 4
@ref.9q = 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), i32 0 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str.2J, i32 0, i32 0), i32 1 }], align 4
@str.9r = internal constant [7 x i8] c"Unknown"
@str.9s = internal constant [6 x i8] c"Center"
@str.9t = internal constant [5 x i8] c"Right"
@str.9u = internal constant [4 x i8] c"Left"
@str.9v = internal constant [5 x i8] c"Error"
@str.9w = internal constant [60 x i8] c"from_str_radix_int: must lie in the range `[2, 36]` - found "
@ref.9x = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([60 x i8], [60 x i8]* @str.9w, i32 0, i32 0), i32 60 }], align 4
@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 i32] [i32 38, i32 29, i32 38]
@switch.table.2 = private unnamed_addr constant [8 x i32] [i32 4, i32 5, i32 5, i32 5, i32 0, i32 1, i32 2, i32 3]
; Function Attrs: norecurse nounwind readnone
define i8 @"_ZN4core3f3250_$LT$impl$u20$core..num..Float$u20$for$u20$f32$GT$8classify17h807e74bfead77db2E"(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
define i8 @"_ZN4core3f6450_$LT$impl$u20$core..num..Float$u20$for$u20$f64$GT$8classify17h8e1e2a3dee3d0129E"(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 = trunc i64 %1 to i63
%trunc = and i63 %5, -4503599627370496
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
define i16 @_ZN4core3num7flt2dec9estimator23estimate_scaling_factor17h43dc3af1bf11cb4eE(i64, i16) unnamed_addr #1 {
start:
%2 = add i64 %0, -1
%3 = tail call i64 @llvm.ctlz.i64(i64 %2, i1 false) #5
%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
define float @"_ZN67_$LT$f32$u20$as$u20$core..num..flt2dec..decoder..DecodableFloat$GT$18min_pos_norm_value17hc170db0f02a99836E"() unnamed_addr #0 {
start:
ret float 0x3810000000000000
}
; Function Attrs: norecurse nounwind readnone
define double @"_ZN67_$LT$f64$u20$as$u20$core..num..flt2dec..decoder..DecodableFloat$GT$18min_pos_norm_value17h432b36c88702fb58E"() unnamed_addr #0 {
start:
ret double 0x10000000000000
}
define nonnull dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num7flt2dec8strategy6dragon9mul_pow1017h32f5e2ef03bbcff6E(%"num::bignum::Big32x40"* returned dereferenceable(164), i32) unnamed_addr {
start:
%ret.i = alloca [40 x i32], align 4
%2 = and i32 %1, 7
%3 = icmp eq i32 %2, 0
br i1 %3, label %bb5, label %bb1
bb1: ; preds = %start
%4 = getelementptr inbounds [10 x i32], [10 x i32]* @_ZN4core3num7flt2dec8strategy6dragon5POW1017h2d63f8e74b1e2b38E, i32 0, i32 %2
%5 = load i32, i32* %4, align 4
%6 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 0
%7 = load i32, i32* %6, align 4
%8 = icmp ugt i32 %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_mut17ha83eb8973692a5bbE.exit.i"
bb4.i.i.i.i: ; preds = %bb1
tail call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %7, i32 40), !noalias !0
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i": ; preds = %bb1
%9 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2, i32 %7
%10 = icmp eq i32 %7, 0
br i1 %10, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.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_mut17ha83eb8973692a5bbE.exit.i"
%11 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2, i32 0
%12 = zext i32 %5 to i64
br label %bb6.i
bb5.i: ; preds = %bb6.i
%13 = icmp eq i32 %21, 0
br i1 %13, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit, label %bb8.i
bb6.i: ; preds = %bb6.i, %bb6.lr.ph.i
%carry.020.i = phi i32 [ 0, %bb6.lr.ph.i ], [ %21, %bb6.i ]
%iter.sroa.0.0.in19.i = phi i32* [ %11, %bb6.lr.ph.i ], [ %14, %bb6.i ]
%14 = getelementptr inbounds i32, i32* %iter.sroa.0.0.in19.i, i32 1
%15 = load i32, i32* %iter.sroa.0.0.in19.i, align 4
%16 = zext i32 %15 to i64
%17 = mul nuw i64 %16, %12
%18 = zext i32 %carry.020.i to i64
%19 = add i64 %17, %18
%20 = lshr i64 %19, 32
%21 = trunc i64 %20 to i32
%22 = trunc i64 %19 to i32
store i32 %22, i32* %iter.sroa.0.0.in19.i, align 4
%23 = icmp eq i32* %14, %9
br i1 %23, label %bb5.i, label %bb6.i
bb8.i: ; preds = %bb5.i
%24 = icmp ult i32 %7, 40
br i1 %24, label %bb10.i, label %panic.i, !prof !3
bb10.i: ; preds = %bb8.i
store i32 %21, i32* %9, align 4
%25 = add i32 %7, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit
panic.i: ; preds = %bb8.i
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %7, i32 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i", %bb5.i, %bb10.i
%sz.0.i = phi i32 [ %25, %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_mut17ha83eb8973692a5bbE.exit.i" ]
store i32 %sz.0.i, i32* %6, align 4
br label %bb5
bb5: ; preds = %start, %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit
%26 = and i32 %1, 8
%27 = icmp eq i32 %26, 0
br i1 %27, label %bb10, label %bb8
bb8: ; preds = %bb5
%28 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 0
%29 = load i32, i32* %28, align 4
%30 = icmp ugt i32 %29, 40
br i1 %30, 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_mut17ha83eb8973692a5bbE.exit.i2"
bb4.i.i.i.i1: ; preds = %bb8
tail call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %29, i32 40), !noalias !4
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i2": ; preds = %bb8
%31 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2, i32 %29
%32 = icmp eq i32 %29, 0
br i1 %32, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit12, 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_mut17ha83eb8973692a5bbE.exit.i2"
%33 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2, i32 0
br label %bb6.i7
bb5.i4: ; preds = %bb6.i7
%34 = icmp eq i32 %42, 0
br i1 %34, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit12, label %bb8.i8
bb6.i7: ; preds = %bb6.i7, %bb6.lr.ph.i3
%carry.020.i5 = phi i32 [ 0, %bb6.lr.ph.i3 ], [ %42, %bb6.i7 ]
%iter.sroa.0.0.in19.i6 = phi i32* [ %33, %bb6.lr.ph.i3 ], [ %35, %bb6.i7 ]
%35 = getelementptr inbounds i32, i32* %iter.sroa.0.0.in19.i6, i32 1
%36 = load i32, i32* %iter.sroa.0.0.in19.i6, align 4
%37 = zext i32 %36 to i64
%38 = mul nuw nsw i64 %37, 100000000
%39 = zext i32 %carry.020.i5 to i64
%40 = add nuw nsw i64 %38, %39
%41 = lshr i64 %40, 32
%42 = trunc i64 %41 to i32
%43 = trunc i64 %40 to i32
store i32 %43, i32* %iter.sroa.0.0.in19.i6, align 4
%44 = icmp eq i32* %35, %31
br i1 %44, label %bb5.i4, label %bb6.i7
bb8.i8: ; preds = %bb5.i4
%45 = icmp ult i32 %29, 40
br i1 %45, label %bb10.i9, label %panic.i11, !prof !3
bb10.i9: ; preds = %bb8.i8
store i32 %42, i32* %31, align 4
%46 = add i32 %29, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit12
panic.i11: ; preds = %bb8.i8
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %29, i32 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit12: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i2", %bb5.i4, %bb10.i9
%sz.0.i10 = phi i32 [ %46, %bb10.i9 ], [ %29, %bb5.i4 ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i2" ]
store i32 %sz.0.i10, i32* %28, align 4
br label %bb10
bb10: ; preds = %bb5, %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit12
%47 = and i32 %1, 16
%48 = icmp eq i32 %47, 0
br i1 %48, label %bb14, label %bb11
bb11: ; preds = %bb10
%49 = bitcast [40 x i32]* %ret.i to i8*
call void @llvm.lifetime.start(i64 160, i8* nonnull %49), !noalias !7
call void @llvm.memset.p0i8.i32(i8* nonnull %49, i8 0, i32 160, i32 4, i1 false), !noalias !7
%50 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 0
%51 = load i32, i32* %50, align 4
%52 = icmp ugt i32 %51, 40
br i1 %52, label %bb4.i.i.i.i.i18, label %_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit.i19
bb2.i14: ; preds = %_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit.i19
%53 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2, i32 %51
%54 = ptrtoint i32* %78 to i32
br label %bb4.outer.i50
bb4.outer.i50: ; preds = %bb24.i70, %bb2.i14
%iter.sroa.7.0.ph.i47 = phi i32 [ %59, %bb24.i70 ], [ 0, %bb2.i14 ]
%iter.sroa.0.0.ph.i48 = phi i32 [ %58, %bb24.i70 ], [ %54, %bb2.i14 ]
%retsz.0.ph.i49 = phi i32 [ %.retsz.0.i69, %bb24.i70 ], [ 0, %bb2.i14 ]
br label %bb4.i53
bb4.i53: ; preds = %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i54", %bb4.outer.i50
%iter.sroa.7.0.i51 = phi i32 [ %59, %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i54" ], [ %iter.sroa.7.0.ph.i47, %bb4.outer.i50 ]
%iter.sroa.0.0.i52 = phi i32 [ %58, %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i54" ], [ %iter.sroa.0.0.ph.i48, %bb4.outer.i50 ]
%55 = inttoptr i32 %iter.sroa.0.0.i52 to i32*
%56 = icmp eq i32* %55, %53
br i1 %56, label %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit20.loopexit, label %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i54"
"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i54": ; preds = %bb4.i53
%57 = getelementptr inbounds i32, i32* %55, i32 1
%58 = ptrtoint i32* %57 to i32
%59 = add i32 %iter.sroa.7.0.i51, 1
%60 = load i32, i32* %55, align 4
%61 = icmp eq i32 %60, 0
br i1 %61, label %bb4.i53, label %bb9.i56
bb9.i56: ; preds = %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i54"
%62 = zext i32 %60 to i64
%63 = icmp ult i32 %iter.sroa.7.0.i51, 40
br i1 %63, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i64", label %panic.i.i14.i63, !prof !3
panic.i.i14.i63: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i64", %bb9.i56
%.lcssa252 = phi i32 [ %iter.sroa.7.0.i51, %bb9.i56 ], [ %59, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i64" ]
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.2d to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %.lcssa252, i32 40), !noalias !10
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i64": ; preds = %bb9.i56
%64 = getelementptr inbounds [40 x i32], [40 x i32]* %ret.i, i32 0, i32 %iter.sroa.7.0.i51
%65 = load i32, i32* %64, align 4, !noalias !15
%66 = mul nuw nsw i64 %62, 1874919424
%67 = zext i32 %65 to i64
%68 = add nuw i64 %67, %66
%69 = trunc i64 %68 to i32
store i32 %69, i32* %64, align 4, !noalias !15
%70 = icmp ult i32 %59, 40
br i1 %70, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i64.1", label %panic.i.i14.i63, !prof !3
bb21.i65: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i64.1"
%71 = add i32 %iter.sroa.7.0.i51, 2
%72 = icmp ult i32 %71, 40
br i1 %72, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit.i67", label %panic.i.i.i66, !prof !3
panic.i.i.i66: ; preds = %bb21.i65
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.2e to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %71, i32 40)
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit.i67": ; preds = %bb21.i65
%73 = getelementptr inbounds [40 x i32], [40 x i32]* %ret.i, i32 0, i32 %71
store i32 %313, i32* %73, align 4, !noalias !15
br label %bb24.i70
bb24.i70: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit.i67", %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i64.1"
%sz.0.i68 = phi i32 [ 3, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit.i67" ], [ 2, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i64.1" ]
%74 = add i32 %sz.0.i68, %iter.sroa.7.0.i51
%75 = icmp ult i32 %retsz.0.ph.i49, %74
%.retsz.0.i69 = select i1 %75, i32 %74, i32 %retsz.0.ph.i49
br label %bb4.outer.i50
bb3.i15: ; preds = %_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit.i19
%76 = call fastcc i32 @_ZN4core3num6bignum8Big32x4010mul_digits9mul_inner17h22f2a0d24b6e630dE([40 x i32]* nonnull dereferenceable(160) %ret.i, i32* noalias nonnull readonly getelementptr inbounds ([2 x i32], [2 x i32]* @_ZN4core3num7flt2dec8strategy6dragon9POW10TO1617hfcedfcfe10f47dc0E, i32 0, i32 0), i32 2, i32* noalias nonnull readonly %78, i32 %51)
br label %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit20
bb4.i.i.i.i.i18: ; preds = %bb11
tail call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %51, i32 40), !noalias !19
unreachable
_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit.i19: ; preds = %bb11
%77 = icmp ult i32 %51, 2
%78 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2, i32 0
br i1 %77, label %bb2.i14, label %bb3.i15
_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit20.loopexit: ; preds = %bb4.i53
br label %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit20
_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit20: ; preds = %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit20.loopexit, %bb3.i15
%retsz.0.i16 = phi i32 [ %76, %bb3.i15 ], [ %retsz.0.ph.i49, %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit20.loopexit ]
%79 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2
%80 = bitcast [40 x i32]* %79 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %80, i8* nonnull %49, i32 160, i32 4, i1 false), !noalias !7
store i32 %retsz.0.i16, i32* %50, align 4, !noalias !7
call void @llvm.lifetime.end(i64 160, i8* nonnull %49), !noalias !7
br label %bb14
bb14: ; preds = %bb10, %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit20
%81 = and i32 %1, 32
%82 = icmp eq i32 %81, 0
br i1 %82, label %bb18, label %bb15
bb15: ; preds = %bb14
%83 = bitcast [40 x i32]* %ret.i to i8*
call void @llvm.lifetime.start(i64 160, i8* nonnull %83), !noalias !22
call void @llvm.memset.p0i8.i32(i8* nonnull %83, i8 0, i32 160, i32 4, i1 false), !noalias !22
%84 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 0
%85 = load i32, i32* %84, align 4
%86 = icmp ugt i32 %85, 40
br i1 %86, label %bb4.i.i.i.i.i26, label %_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit.i27
bb2.i22: ; preds = %_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit.i27
%87 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2, i32 %85
%88 = ptrtoint i32* %106 to i32
br label %bb4.outer.i75
bb4.outer.i75: ; preds = %bb24.i95, %bb2.i22
%iter.sroa.7.0.ph.i72 = phi i32 [ %93, %bb24.i95 ], [ 0, %bb2.i22 ]
%iter.sroa.0.0.ph.i73 = phi i32 [ %92, %bb24.i95 ], [ %88, %bb2.i22 ]
%retsz.0.ph.i74 = phi i32 [ %.retsz.0.i94, %bb24.i95 ], [ 0, %bb2.i22 ]
br label %bb4.i78
bb4.i78: ; preds = %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i79", %bb4.outer.i75
%iter.sroa.7.0.i76 = phi i32 [ %93, %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i79" ], [ %iter.sroa.7.0.ph.i72, %bb4.outer.i75 ]
%iter.sroa.0.0.i77 = phi i32 [ %92, %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i79" ], [ %iter.sroa.0.0.ph.i73, %bb4.outer.i75 ]
%89 = inttoptr i32 %iter.sroa.0.0.i77 to i32*
%90 = icmp eq i32* %89, %87
br i1 %90, label %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit28.loopexit, label %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i79"
"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i79": ; preds = %bb4.i78
%91 = getelementptr inbounds i32, i32* %89, i32 1
%92 = ptrtoint i32* %91 to i32
%93 = add i32 %iter.sroa.7.0.i76, 1
%94 = load i32, i32* %89, align 4
%95 = icmp eq i32 %94, 0
br i1 %95, label %bb4.i78, label %bb9.i81
bb9.i81: ; preds = %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i79"
%96 = zext i32 %94 to i64
%97 = icmp ult i32 %iter.sroa.7.0.i76, 40
br i1 %97, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i89", label %panic.i.i14.i88, !prof !3
panic.i.i14.i88: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i89.2", %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i89.1", %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i89", %bb9.i81
%.lcssa242 = phi i32 [ %iter.sroa.7.0.i76, %bb9.i81 ], [ %93, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i89" ], [ 40, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i89.1" ], [ 40, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i89.2" ]
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.2d to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %.lcssa242, i32 40), !noalias !25
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i89": ; preds = %bb9.i81
%98 = icmp ult i32 %93, 40
br i1 %98, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i89.1", label %panic.i.i14.i88, !prof !3
bb21.i90: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i89.3"
%99 = add i32 %iter.sroa.7.0.i76, 4
%100 = icmp ult i32 %99, 40
br i1 %100, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit.i92", label %panic.i.i.i91, !prof !3
panic.i.i.i91: ; preds = %bb21.i90
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.2e to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %99, i32 40)
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit.i92": ; preds = %bb21.i90
%101 = getelementptr inbounds [40 x i32], [40 x i32]* %ret.i, i32 0, i32 %99
store i32 %302, i32* %101, align 4, !noalias !30
br label %bb24.i95
bb24.i95: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit.i92", %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i89.3"
%sz.0.i93 = phi i32 [ 5, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit.i92" ], [ 4, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i89.3" ]
%102 = add i32 %sz.0.i93, %iter.sroa.7.0.i76
%103 = icmp ult i32 %retsz.0.ph.i74, %102
%.retsz.0.i94 = select i1 %103, i32 %102, i32 %retsz.0.ph.i74
br label %bb4.outer.i75
bb3.i23: ; preds = %_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit.i27
%104 = call fastcc i32 @_ZN4core3num6bignum8Big32x4010mul_digits9mul_inner17h22f2a0d24b6e630dE([40 x i32]* nonnull dereferenceable(160) %ret.i, i32* noalias nonnull readonly getelementptr inbounds ([4 x i32], [4 x i32]* @_ZN4core3num7flt2dec8strategy6dragon9POW10TO3217h30cffe9cf6dffcfeE, i32 0, i32 0), i32 4, i32* noalias nonnull readonly %106, i32 %85)
br label %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit28
bb4.i.i.i.i.i26: ; preds = %bb15
tail call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %85, i32 40), !noalias !34
unreachable
_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit.i27: ; preds = %bb15
%105 = icmp ult i32 %85, 4
%106 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2, i32 0
br i1 %105, label %bb2.i22, label %bb3.i23
_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit28.loopexit: ; preds = %bb4.i78
br label %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit28
_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit28: ; preds = %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit28.loopexit, %bb3.i23
%retsz.0.i24 = phi i32 [ %104, %bb3.i23 ], [ %retsz.0.ph.i74, %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit28.loopexit ]
%107 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2
%108 = bitcast [40 x i32]* %107 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %108, i8* nonnull %83, i32 160, i32 4, i1 false), !noalias !22
store i32 %retsz.0.i24, i32* %84, align 4, !noalias !22
call void @llvm.lifetime.end(i64 160, i8* nonnull %83), !noalias !22
br label %bb18
bb18: ; preds = %bb14, %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit28
%109 = and i32 %1, 64
%110 = icmp eq i32 %109, 0
br i1 %110, label %bb22, label %bb19
bb19: ; preds = %bb18
%111 = bitcast [40 x i32]* %ret.i to i8*
call void @llvm.lifetime.start(i64 160, i8* nonnull %111), !noalias !37
call void @llvm.memset.p0i8.i32(i8* nonnull %111, i8 0, i32 160, i32 4, i1 false), !noalias !37
%112 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 0
%113 = load i32, i32* %112, align 4
%114 = icmp ugt i32 %113, 40
br i1 %114, label %bb4.i.i.i.i.i34, label %_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit.i35
bb2.i30: ; preds = %_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit.i35
%115 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2, i32 %113
%116 = ptrtoint i32* %134 to i32
br label %bb4.outer.i100
bb4.outer.i100: ; preds = %bb24.i120, %bb2.i30
%iter.sroa.7.0.ph.i97 = phi i32 [ %121, %bb24.i120 ], [ 0, %bb2.i30 ]
%iter.sroa.0.0.ph.i98 = phi i32 [ %120, %bb24.i120 ], [ %116, %bb2.i30 ]
%retsz.0.ph.i99 = phi i32 [ %.retsz.0.i119, %bb24.i120 ], [ 0, %bb2.i30 ]
br label %bb4.i103
bb4.i103: ; preds = %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i104", %bb4.outer.i100
%iter.sroa.7.0.i101 = phi i32 [ %121, %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i104" ], [ %iter.sroa.7.0.ph.i97, %bb4.outer.i100 ]
%iter.sroa.0.0.i102 = phi i32 [ %120, %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i104" ], [ %iter.sroa.0.0.ph.i98, %bb4.outer.i100 ]
%117 = inttoptr i32 %iter.sroa.0.0.i102 to i32*
%118 = icmp eq i32* %117, %115
br i1 %118, label %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit36.loopexit, label %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i104"
"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i104": ; preds = %bb4.i103
%119 = getelementptr inbounds i32, i32* %117, i32 1
%120 = ptrtoint i32* %119 to i32
%121 = add i32 %iter.sroa.7.0.i101, 1
%122 = load i32, i32* %117, align 4
%123 = icmp eq i32 %122, 0
br i1 %123, label %bb4.i103, label %bb9.i106
bb9.i106: ; preds = %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i104"
%124 = zext i32 %122 to i64
%125 = icmp ult i32 %iter.sroa.7.0.i101, 40
br i1 %125, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114", label %panic.i.i14.i113, !prof !3
panic.i.i14.i113: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.5", %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.4", %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.3", %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.2", %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.1", %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114", %bb9.i106
%.lcssa232 = phi i32 [ %iter.sroa.7.0.i101, %bb9.i106 ], [ %121, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114" ], [ 40, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.1" ], [ 40, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.2" ], [ 40, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.3" ], [ 40, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.4" ], [ 40, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.5" ]
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.2d to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %.lcssa232, i32 40), !noalias !40
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114": ; preds = %bb9.i106
%126 = icmp ult i32 %121, 40
br i1 %126, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.1", label %panic.i.i14.i113, !prof !3
bb21.i115: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.6"
%127 = add i32 %iter.sroa.7.0.i101, 7
%128 = icmp ult i32 %127, 40
br i1 %128, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit.i117", label %panic.i.i.i116, !prof !3
panic.i.i.i116: ; preds = %bb21.i115
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.2e to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %127, i32 40)
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit.i117": ; preds = %bb21.i115
%129 = getelementptr inbounds [40 x i32], [40 x i32]* %ret.i, i32 0, i32 %127
store i32 %273, i32* %129, align 4, !noalias !45
br label %bb24.i120
bb24.i120: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit.i117", %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.6"
%sz.0.i118 = phi i32 [ 8, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit.i117" ], [ 7, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.6" ]
%130 = add i32 %sz.0.i118, %iter.sroa.7.0.i101
%131 = icmp ult i32 %retsz.0.ph.i99, %130
%.retsz.0.i119 = select i1 %131, i32 %130, i32 %retsz.0.ph.i99
br label %bb4.outer.i100
bb3.i31: ; preds = %_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit.i35
%132 = call fastcc i32 @_ZN4core3num6bignum8Big32x4010mul_digits9mul_inner17h22f2a0d24b6e630dE([40 x i32]* nonnull dereferenceable(160) %ret.i, i32* noalias nonnull readonly getelementptr inbounds ([7 x i32], [7 x i32]* @_ZN4core3num7flt2dec8strategy6dragon9POW10TO6417hc0205d96f4af3ca0E, i32 0, i32 0), i32 7, i32* noalias nonnull readonly %134, i32 %113)
br label %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit36
bb4.i.i.i.i.i34: ; preds = %bb19
tail call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %113, i32 40), !noalias !49
unreachable
_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit.i35: ; preds = %bb19
%133 = icmp ult i32 %113, 7
%134 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2, i32 0
br i1 %133, label %bb2.i30, label %bb3.i31
_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit36.loopexit: ; preds = %bb4.i103
br label %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit36
_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit36: ; preds = %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit36.loopexit, %bb3.i31
%retsz.0.i32 = phi i32 [ %132, %bb3.i31 ], [ %retsz.0.ph.i99, %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit36.loopexit ]
%135 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2
%136 = bitcast [40 x i32]* %135 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %136, i8* nonnull %111, i32 160, i32 4, i1 false), !noalias !37
store i32 %retsz.0.i32, i32* %112, align 4, !noalias !37
call void @llvm.lifetime.end(i64 160, i8* nonnull %111), !noalias !37
br label %bb22
bb22: ; preds = %bb18, %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit36
%137 = and i32 %1, 128
%138 = icmp eq i32 %137, 0
br i1 %138, label %bb26, label %bb23
bb23: ; preds = %bb22
%139 = bitcast [40 x i32]* %ret.i to i8*
call void @llvm.lifetime.start(i64 160, i8* nonnull %139), !noalias !52
call void @llvm.memset.p0i8.i32(i8* nonnull %139, i8 0, i32 160, i32 4, i1 false), !noalias !52
%140 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 0
%141 = load i32, i32* %140, align 4
%142 = icmp ugt i32 %141, 40
br i1 %142, label %bb4.i.i.i.i.i42, label %_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit.i43
bb2.i38: ; preds = %_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit.i43
%143 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2, i32 %141
%144 = ptrtoint i32* %178 to i32
br label %bb4.outer.i125
bb4.outer.i125: ; preds = %bb24.i145, %bb2.i38
%iter.sroa.7.0.ph.i122 = phi i32 [ %149, %bb24.i145 ], [ 0, %bb2.i38 ]
%iter.sroa.0.0.ph.i123 = phi i32 [ %148, %bb24.i145 ], [ %144, %bb2.i38 ]
%retsz.0.ph.i124 = phi i32 [ %.retsz.0.i144, %bb24.i145 ], [ 0, %bb2.i38 ]
br label %bb4.i128
bb4.i128: ; preds = %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i129", %bb4.outer.i125
%iter.sroa.7.0.i126 = phi i32 [ %149, %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i129" ], [ %iter.sroa.7.0.ph.i122, %bb4.outer.i125 ]
%iter.sroa.0.0.i127 = phi i32 [ %148, %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i129" ], [ %iter.sroa.0.0.ph.i123, %bb4.outer.i125 ]
%145 = inttoptr i32 %iter.sroa.0.0.i127 to i32*
%146 = icmp eq i32* %145, %143
br i1 %146, label %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit44.loopexit, label %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i129"
"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i129": ; preds = %bb4.i128
%147 = getelementptr inbounds i32, i32* %145, i32 1
%148 = ptrtoint i32* %147 to i32
%149 = add i32 %iter.sroa.7.0.i126, 1
%150 = load i32, i32* %145, align 4
%151 = icmp eq i32 %150, 0
br i1 %151, label %bb4.i128, label %bb9.i131
bb9.i131: ; preds = %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i129"
%152 = zext i32 %150 to i64
br label %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit17.i136"
"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit17.i136": ; preds = %bb9.i131, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i139"
%carry.0.i134198 = phi i32 [ 0, %bb9.i131 ], [ %168, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i139" ]
%iter1.sroa.7.0.i133197 = phi i32 [ 0, %bb9.i131 ], [ %156, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i139" ]
%iter1.sroa.0.0.in.i132196 = phi i32* [ getelementptr inbounds ([14 x i32], [14 x i32]* @_ZN4core3num7flt2dec8strategy6dragon10POW10TO12817h32c10c9dcd532dccE, i32 0, i32 0), %bb9.i131 ], [ %157, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i139" ]
%153 = add nuw nsw i32 %iter1.sroa.7.0.i133197, %iter.sroa.7.0.i126
%154 = icmp ult i32 %153, 40
br i1 %154, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i139", label %panic.i.i14.i138, !prof !3
bb16.i137: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i139"
%155 = icmp eq i32 %168, 0
br i1 %155, label %bb24.i145, label %bb21.i140
panic.i.i14.i138: ; preds = %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit17.i136"
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.2d to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %153, i32 40), !noalias !55
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i139": ; preds = %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit17.i136"
%156 = add nuw nsw i32 %iter1.sroa.7.0.i133197, 1
%157 = getelementptr inbounds i32, i32* %iter1.sroa.0.0.in.i132196, i32 1
%158 = load i32, i32* %iter1.sroa.0.0.in.i132196, align 4, !alias.scope !60, !noalias !63
%159 = getelementptr inbounds [40 x i32], [40 x i32]* %ret.i, i32 0, i32 %153
%160 = load i32, i32* %159, align 4, !noalias !65
%161 = zext i32 %158 to i64
%162 = mul nuw i64 %161, %152
%163 = zext i32 %160 to i64
%164 = zext i32 %carry.0.i134198 to i64
%165 = add nuw nsw i64 %163, %164
%166 = add i64 %165, %162
%167 = lshr i64 %166, 32
%168 = trunc i64 %167 to i32
%169 = trunc i64 %166 to i32
store i32 %169, i32* %159, align 4, !noalias !65
%170 = icmp eq i32* %157, getelementptr inbounds ([14 x i32], [14 x i32]* @_ZN4core3num7flt2dec8strategy6dragon10POW10TO12817h32c10c9dcd532dccE, i32 1, i32 0)
br i1 %170, label %bb16.i137, label %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit17.i136"
bb21.i140: ; preds = %bb16.i137
%171 = add i32 %iter.sroa.7.0.i126, 14
%172 = icmp ult i32 %171, 40
br i1 %172, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit.i142", label %panic.i.i.i141, !prof !3
panic.i.i.i141: ; preds = %bb21.i140
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.2e to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %171, i32 40)
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit.i142": ; preds = %bb21.i140
%173 = getelementptr inbounds [40 x i32], [40 x i32]* %ret.i, i32 0, i32 %171
store i32 %168, i32* %173, align 4, !noalias !65
br label %bb24.i145
bb24.i145: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit.i142", %bb16.i137
%sz.0.i143 = phi i32 [ 15, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit.i142" ], [ 14, %bb16.i137 ]
%174 = add i32 %sz.0.i143, %iter.sroa.7.0.i126
%175 = icmp ult i32 %retsz.0.ph.i124, %174
%.retsz.0.i144 = select i1 %175, i32 %174, i32 %retsz.0.ph.i124
br label %bb4.outer.i125
bb3.i39: ; preds = %_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit.i43
%176 = call fastcc i32 @_ZN4core3num6bignum8Big32x4010mul_digits9mul_inner17h22f2a0d24b6e630dE([40 x i32]* nonnull dereferenceable(160) %ret.i, i32* noalias nonnull readonly getelementptr inbounds ([14 x i32], [14 x i32]* @_ZN4core3num7flt2dec8strategy6dragon10POW10TO12817h32c10c9dcd532dccE, i32 0, i32 0), i32 14, i32* noalias nonnull readonly %178, i32 %141)
br label %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit44
bb4.i.i.i.i.i42: ; preds = %bb23
tail call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %141, i32 40), !noalias !66
unreachable
_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit.i43: ; preds = %bb23
%177 = icmp ult i32 %141, 14
%178 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2, i32 0
br i1 %177, label %bb2.i38, label %bb3.i39
_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit44.loopexit: ; preds = %bb4.i128
br label %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit44
_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit44: ; preds = %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit44.loopexit, %bb3.i39
%retsz.0.i40 = phi i32 [ %176, %bb3.i39 ], [ %retsz.0.ph.i124, %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit44.loopexit ]
%179 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2
%180 = bitcast [40 x i32]* %179 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %180, i8* nonnull %139, i32 160, i32 4, i1 false), !noalias !52
store i32 %retsz.0.i40, i32* %140, align 4, !noalias !52
call void @llvm.lifetime.end(i64 160, i8* nonnull %139), !noalias !52
br label %bb26
bb26: ; preds = %bb22, %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit44
%181 = and i32 %1, 256
%182 = icmp eq i32 %181, 0
br i1 %182, label %bb30, label %bb27
bb27: ; preds = %bb26
%183 = bitcast [40 x i32]* %ret.i to i8*
call void @llvm.lifetime.start(i64 160, i8* nonnull %183), !noalias !69
call void @llvm.memset.p0i8.i32(i8* nonnull %183, i8 0, i32 160, i32 4, i1 false), !noalias !69
%184 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 0
%185 = load i32, i32* %184, align 4
%186 = icmp ugt i32 %185, 40
br i1 %186, label %bb4.i.i.i.i.i, label %_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit.i
bb2.i: ; preds = %_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit.i
%187 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2, i32 %185
%188 = ptrtoint i32* %222 to i32
br label %bb4.outer.i
bb4.outer.i: ; preds = %bb24.i, %bb2.i
%iter.sroa.7.0.ph.i = phi i32 [ %193, %bb24.i ], [ 0, %bb2.i ]
%iter.sroa.0.0.ph.i = phi i32 [ %192, %bb24.i ], [ %188, %bb2.i ]
%retsz.0.ph.i = phi i32 [ %.retsz.0.i, %bb24.i ], [ 0, %bb2.i ]
br label %bb4.i
bb4.i: ; preds = %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i", %bb4.outer.i
%iter.sroa.7.0.i = phi i32 [ %193, %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i" ], [ %iter.sroa.7.0.ph.i, %bb4.outer.i ]
%iter.sroa.0.0.i = phi i32 [ %192, %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i" ], [ %iter.sroa.0.0.ph.i, %bb4.outer.i ]
%189 = inttoptr i32 %iter.sroa.0.0.i to i32*
%190 = icmp eq i32* %189, %187
br i1 %190, label %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit.loopexit, label %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i"
"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i": ; preds = %bb4.i
%191 = getelementptr inbounds i32, i32* %189, i32 1
%192 = ptrtoint i32* %191 to i32
%193 = add i32 %iter.sroa.7.0.i, 1
%194 = load i32, i32* %189, align 4
%195 = icmp eq i32 %194, 0
br i1 %195, label %bb4.i, label %bb9.i
bb9.i: ; preds = %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit.i"
%196 = zext i32 %194 to i64
br label %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit17.i"
"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit17.i": ; preds = %bb9.i, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i"
%carry.0.i195 = phi i32 [ 0, %bb9.i ], [ %212, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i" ]
%iter1.sroa.7.0.i194 = phi i32 [ 0, %bb9.i ], [ %200, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i" ]
%iter1.sroa.0.0.in.i193 = phi i32* [ getelementptr inbounds ([27 x i32], [27 x i32]* @_ZN4core3num7flt2dec8strategy6dragon10POW10TO25617haea9d3b1e1a77ee1E, i32 0, i32 0), %bb9.i ], [ %201, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i" ]
%197 = add nuw nsw i32 %iter1.sroa.7.0.i194, %iter.sroa.7.0.i
%198 = icmp ult i32 %197, 40
br i1 %198, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i", label %panic.i.i14.i, !prof !3
bb16.i: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i"
%199 = icmp eq i32 %212, 0
br i1 %199, label %bb24.i, label %bb21.i
panic.i.i14.i: ; preds = %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit17.i"
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.2d to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %197, i32 40), !noalias !72
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i": ; preds = %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit17.i"
%200 = add nuw nsw i32 %iter1.sroa.7.0.i194, 1
%201 = getelementptr inbounds i32, i32* %iter1.sroa.0.0.in.i193, i32 1
%202 = load i32, i32* %iter1.sroa.0.0.in.i193, align 4, !alias.scope !77, !noalias !80
%203 = getelementptr inbounds [40 x i32], [40 x i32]* %ret.i, i32 0, i32 %197
%204 = load i32, i32* %203, align 4, !noalias !82
%205 = zext i32 %202 to i64
%206 = mul nuw i64 %205, %196
%207 = zext i32 %204 to i64
%208 = zext i32 %carry.0.i195 to i64
%209 = add nuw nsw i64 %207, %208
%210 = add i64 %209, %206
%211 = lshr i64 %210, 32
%212 = trunc i64 %211 to i32
%213 = trunc i64 %210 to i32
store i32 %213, i32* %203, align 4, !noalias !82
%214 = icmp eq i32* %201, getelementptr inbounds ([27 x i32], [27 x i32]* @_ZN4core3num7flt2dec8strategy6dragon10POW10TO25617haea9d3b1e1a77ee1E, i32 1, i32 0)
br i1 %214, label %bb16.i, label %"_ZN81_$LT$core..iter..Enumerate$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha44d157b91615856E.exit17.i"
bb21.i: ; preds = %bb16.i
%215 = add i32 %iter.sroa.7.0.i, 27
%216 = icmp ult i32 %215, 40
br i1 %216, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit.i", label %panic.i.i.i, !prof !3
panic.i.i.i: ; preds = %bb21.i
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.2e to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %215, i32 40)
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit.i": ; preds = %bb21.i
%217 = getelementptr inbounds [40 x i32], [40 x i32]* %ret.i, i32 0, i32 %215
store i32 %212, i32* %217, align 4, !noalias !82
br label %bb24.i
bb24.i: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit.i", %bb16.i
%sz.0.i46 = phi i32 [ 28, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit.i" ], [ 27, %bb16.i ]
%218 = add i32 %sz.0.i46, %iter.sroa.7.0.i
%219 = icmp ult i32 %retsz.0.ph.i, %218
%.retsz.0.i = select i1 %219, i32 %218, i32 %retsz.0.ph.i
br label %bb4.outer.i
bb3.i: ; preds = %_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit.i
%220 = call fastcc i32 @_ZN4core3num6bignum8Big32x4010mul_digits9mul_inner17h22f2a0d24b6e630dE([40 x i32]* nonnull dereferenceable(160) %ret.i, i32* noalias nonnull readonly getelementptr inbounds ([27 x i32], [27 x i32]* @_ZN4core3num7flt2dec8strategy6dragon10POW10TO25617haea9d3b1e1a77ee1E, i32 0, i32 0), i32 27, i32* noalias nonnull readonly %222, i32 %185)
br label %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit
bb4.i.i.i.i.i: ; preds = %bb27
tail call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %185, i32 40), !noalias !83
unreachable
_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit.i: ; preds = %bb27
%221 = icmp ult i32 %185, 27
%222 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2, i32 0
br i1 %221, label %bb2.i, label %bb3.i
_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit.loopexit: ; preds = %bb4.i
br label %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit
_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit: ; preds = %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit.loopexit, %bb3.i
%retsz.0.i = phi i32 [ %220, %bb3.i ], [ %retsz.0.ph.i, %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit.loopexit ]
%223 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2
%224 = bitcast [40 x i32]* %223 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %224, i8* nonnull %183, i32 160, i32 4, i1 false), !noalias !69
store i32 %retsz.0.i, i32* %184, align 4, !noalias !69
call void @llvm.lifetime.end(i64 160, i8* nonnull %183), !noalias !69
br label %bb30
bb30: ; preds = %bb26, %_ZN4core3num6bignum8Big32x4010mul_digits17ha14ae36f9b8943e9E.exit
ret %"num::bignum::Big32x40"* %0
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.1": ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114"
%225 = add nuw nsw i32 %iter.sroa.7.0.i101, 2
%226 = icmp ult i32 %225, 40
br i1 %226, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.2", label %panic.i.i14.i113, !prof !3
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.2": ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.1"
%227 = getelementptr inbounds [40 x i32], [40 x i32]* %ret.i, i32 0, i32 %225
%228 = load i32, i32* %227, align 4, !noalias !45
%229 = mul nuw i64 %124, 3211403009
%230 = zext i32 %228 to i64
%231 = add i64 %230, %229
%232 = trunc i64 %231 to i32
store i32 %232, i32* %227, align 4, !noalias !45
%233 = add nuw nsw i32 %iter.sroa.7.0.i101, 3
%234 = icmp ult i32 %233, 40
br i1 %234, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.3", label %panic.i.i14.i113, !prof !3
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.3": ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.2"
%235 = lshr i64 %231, 32
%236 = getelementptr inbounds [40 x i32], [40 x i32]* %ret.i, i32 0, i32 %233
%237 = load i32, i32* %236, align 4, !noalias !45
%238 = mul nuw nsw i64 %124, 1849224548
%239 = zext i32 %237 to i64
%240 = add nuw nsw i64 %239, %235
%241 = add nuw i64 %240, %238
%242 = trunc i64 %241 to i32
store i32 %242, i32* %236, align 4, !noalias !45
%243 = add nuw nsw i32 %iter.sroa.7.0.i101, 4
%244 = icmp ult i32 %243, 40
br i1 %244, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.4", label %panic.i.i14.i113, !prof !3
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.4": ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.3"
%245 = lshr i64 %241, 32
%246 = getelementptr inbounds [40 x i32], [40 x i32]* %ret.i, i32 0, i32 %243
%247 = load i32, i32* %246, align 4, !noalias !45
%248 = mul nuw i64 %124, 3668416493
%249 = zext i32 %247 to i64
%250 = add nuw nsw i64 %249, %245
%251 = add i64 %250, %248
%252 = trunc i64 %251 to i32
store i32 %252, i32* %246, align 4, !noalias !45
%253 = add nuw nsw i32 %iter.sroa.7.0.i101, 5
%254 = icmp ult i32 %253, 40
br i1 %254, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.5", label %panic.i.i14.i113, !prof !3
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.5": ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.4"
%255 = lshr i64 %251, 32
%256 = getelementptr inbounds [40 x i32], [40 x i32]* %ret.i, i32 0, i32 %253
%257 = load i32, i32* %256, align 4, !noalias !45
%258 = mul nuw i64 %124, 3913284084
%259 = zext i32 %257 to i64
%260 = add nuw nsw i64 %259, %255
%261 = add i64 %260, %258
%262 = trunc i64 %261 to i32
store i32 %262, i32* %256, align 4, !noalias !45
%263 = add nuw nsw i32 %iter.sroa.7.0.i101, 6
%264 = icmp ult i32 %263, 40
br i1 %264, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.6", label %panic.i.i14.i113, !prof !3
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.6": ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i114.5"
%265 = lshr i64 %261, 32
%266 = getelementptr inbounds [40 x i32], [40 x i32]* %ret.i, i32 0, i32 %263
%267 = load i32, i32* %266, align 4, !noalias !45
%268 = mul nuw nsw i64 %124, 1593091
%269 = zext i32 %267 to i64
%270 = add nuw nsw i64 %269, %265
%271 = add nuw nsw i64 %270, %268
%272 = lshr i64 %271, 32
%273 = trunc i64 %272 to i32
%274 = trunc i64 %271 to i32
store i32 %274, i32* %266, align 4, !noalias !45
%275 = icmp eq i32 %273, 0
br i1 %275, label %bb24.i120, label %bb21.i115
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i89.1": ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i89"
%276 = getelementptr inbounds [40 x i32], [40 x i32]* %ret.i, i32 0, i32 %93
%277 = load i32, i32* %276, align 4, !noalias !30
%278 = mul nuw i64 %96, 2242703233
%279 = zext i32 %277 to i64
%280 = add i64 %279, %278
%281 = trunc i64 %280 to i32
store i32 %281, i32* %276, align 4, !noalias !30
%282 = add nuw nsw i32 %iter.sroa.7.0.i76, 2
%283 = icmp ult i32 %282, 40
br i1 %283, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i89.2", label %panic.i.i14.i88, !prof !3
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i89.2": ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i89.1"
%284 = lshr i64 %280, 32
%285 = getelementptr inbounds [40 x i32], [40 x i32]* %ret.i, i32 0, i32 %282
%286 = load i32, i32* %285, align 4, !noalias !30
%287 = mul nuw nsw i64 %96, 762134875
%288 = zext i32 %286 to i64
%289 = add nuw nsw i64 %288, %284
%290 = add nuw nsw i64 %289, %287
%291 = trunc i64 %290 to i32
store i32 %291, i32* %285, align 4, !noalias !30
%292 = add nuw nsw i32 %iter.sroa.7.0.i76, 3
%293 = icmp ult i32 %292, 40
br i1 %293, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i89.3", label %panic.i.i14.i88, !prof !3
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i89.3": ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i89.2"
%294 = lshr i64 %290, 32
%295 = getelementptr inbounds [40 x i32], [40 x i32]* %ret.i, i32 0, i32 %292
%296 = load i32, i32* %295, align 4, !noalias !30
%297 = mul nuw nsw i64 %96, 1262
%298 = zext i32 %296 to i64
%299 = add nuw nsw i64 %298, %294
%300 = add nuw nsw i64 %299, %297
%301 = lshr i64 %300, 32
%302 = trunc i64 %301 to i32
%303 = trunc i64 %300 to i32
store i32 %303, i32* %295, align 4, !noalias !30
%304 = icmp eq i32 %302, 0
br i1 %304, label %bb24.i95, label %bb21.i90
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i64.1": ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hf253d8cff45b2affE.exit13.i64"
%305 = lshr i64 %68, 32
%306 = getelementptr inbounds [40 x i32], [40 x i32]* %ret.i, i32 0, i32 %59
%307 = load i32, i32* %306, align 4, !noalias !15
%308 = mul nuw nsw i64 %62, 2328306
%309 = zext i32 %307 to i64
%310 = add nuw nsw i64 %309, %305
%311 = add nuw nsw i64 %310, %308
%312 = lshr i64 %311, 32
%313 = trunc i64 %312 to i32
%314 = trunc i64 %311 to i32
store i32 %314, i32* %306, align 4, !noalias !15
%315 = icmp eq i32 %313, 0
br i1 %315, label %bb24.i70, label %bb21.i65
}
define void @_ZN4core3num7flt2dec8strategy6dragon15format_shortest17hff8e700651458cb4E({ i32, [0 x i8], i16, [2 x i8] }* noalias nocapture sret dereferenceable(8), %"num::flt2dec::decoder::Decoded"* noalias nocapture readonly dereferenceable(32), i8* nonnull, i32) unnamed_addr {
start:
%base.i = alloca [40 x i32], align 4
%_175 = alloca %"num::bignum::Big32x40", align 4
%scale8 = alloca %"num::bignum::Big32x40", align 4
%scale4 = alloca %"num::bignum::Big32x40", align 4
%scale2 = alloca %"num::bignum::Big32x40", align 4
%_116 = alloca %"num::bignum::Big32x40", align 4
%scale = alloca %"num::bignum::Big32x40", align 4
%plus = alloca %"num::bignum::Big32x40", align 4
%minus = alloca %"num::bignum::Big32x40", align 4
%mant = alloca %"num::bignum::Big32x40", align 4
%4 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i32 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 @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17hb684b5110c39b373E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb2: ; preds = %start
%7 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i32 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 @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17h7252a5e4980fe631E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb4: ; preds = %bb2
%10 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i32 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 @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17h5dfe8d108a8d9b8bE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb6: ; preds = %bb4
%13 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %5, i64 %11) #5
%14 = extractvalue { i64, i1 } %13, 1
br i1 %14, label %bb9, label %bb10
bb9: ; preds = %bb6
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17hb8be340a6e4e7417E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb10: ; preds = %bb6
%15 = tail call { i64, i1 } @llvm.usub.with.overflow.i64(i64 %5, i64 %8) #5
%16 = extractvalue { i64, i1 } %15, 1
br i1 %16, label %bb13, label %bb14
bb13: ; preds = %bb10
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17hcb9b0cecb566cc01E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb14: ; preds = %bb10
%17 = icmp ult i32 %3, 17
br i1 %17, label %bb16, label %bb3.i21.preheader
bb16: ; preds = %bb14
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE17h374c0585acb0480cE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb3.i21.preheader: ; preds = %bb14
%18 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i32 0, i32 8
%19 = load i8, i8* %18, align 1, !range !86
%20 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i32 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) #5
%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 164, i8* nonnull %31)
%32 = bitcast [40 x i32]* %base.i to i8*
call void @llvm.lifetime.start(i64 160, i8* nonnull %32), !noalias !87
call void @llvm.memset.p0i8.i32(i8* nonnull %32, i8 0, i32 160, i32 4, i1 false), !noalias !87
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 i32 [ %37, %bb4.i ], [ 0, %bb3.i21.preheader ]
%33 = icmp ult i32 %sz.010.i, 40
br i1 %33, label %bb4.i, label %panic.i22, !prof !3
bb4.i: ; preds = %bb3.i21
%34 = getelementptr inbounds [40 x i32], [40 x i32]* %base.i, i32 0, i32 %sz.010.i
%35 = trunc i64 %v.011.i to i32
store i32 %35, i32* %34, align 4, !noalias !87
%36 = lshr i64 %v.011.i, 32
%37 = add nuw nsw i32 %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_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4B to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %sz.010.i, i32 40), !noalias !87
unreachable
bb3.i28.preheader: ; preds = %bb4.i
%39 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 0
store i32 %37, i32* %39, align 4, !alias.scope !87
%40 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2
%41 = bitcast [40 x i32]* %40 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %41, i8* nonnull %32, i32 160, i32 4, i1 false)
call void @llvm.lifetime.end(i64 160, i8* nonnull %32), !noalias !87
%42 = bitcast %"num::bignum::Big32x40"* %minus to i8*
call void @llvm.lifetime.start(i64 164, i8* nonnull %42)
call void @llvm.lifetime.start(i64 160, i8* nonnull %32), !noalias !90
call void @llvm.memset.p0i8.i32(i8* nonnull %32, i8 0, i32 160, i32 4, i1 false), !noalias !90
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 i32 [ %47, %bb4.i29 ], [ 0, %bb3.i28.preheader ]
%43 = icmp ult i32 %sz.010.i27, 40
br i1 %43, label %bb4.i29, label %panic.i30, !prof !3
bb4.i29: ; preds = %bb3.i28
%44 = getelementptr inbounds [40 x i32], [40 x i32]* %base.i, i32 0, i32 %sz.010.i27
%45 = trunc i64 %v.011.i26 to i32
store i32 %45, i32* %44, align 4, !noalias !90
%46 = lshr i64 %v.011.i26, 32
%47 = add nuw nsw i32 %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_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4B to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %sz.010.i27, i32 40), !noalias !90
unreachable
bb3.i37.preheader: ; preds = %bb4.i29
%49 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %minus, i32 0, i32 0
store i32 %47, i32* %49, align 4, !alias.scope !90
%50 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %minus, i32 0, i32 2
%51 = bitcast [40 x i32]* %50 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %51, i8* nonnull %32, i32 160, i32 4, i1 false)
call void @llvm.lifetime.end(i64 160, i8* nonnull %32), !noalias !90
%52 = bitcast %"num::bignum::Big32x40"* %plus to i8*
call void @llvm.lifetime.start(i64 164, i8* nonnull %52)
call void @llvm.lifetime.start(i64 160, i8* nonnull %32), !noalias !93
call void @llvm.memset.p0i8.i32(i8* nonnull %32, i8 0, i32 160, i32 4, i1 false), !noalias !93
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 i32 [ %57, %bb4.i38 ], [ 0, %bb3.i37.preheader ]
%53 = icmp ult i32 %sz.010.i36, 40
br i1 %53, label %bb4.i38, label %panic.i39, !prof !3
bb4.i38: ; preds = %bb3.i37
%54 = getelementptr inbounds [40 x i32], [40 x i32]* %base.i, i32 0, i32 %sz.010.i36
%55 = trunc i64 %v.011.i35 to i32
store i32 %55, i32* %54, align 4, !noalias !93
%56 = lshr i64 %v.011.i35, 32
%57 = add nuw nsw i32 %sz.010.i36, 1
%58 = icmp eq i64 %56, 0
br i1 %58, label %_ZN4core3num6bignum8Big32x408from_u6417h7f2207118839940eE.exit40, label %bb3.i37
panic.i39: ; preds = %bb3.i37
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4B to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %sz.010.i36, i32 40), !noalias !93
unreachable
_ZN4core3num6bignum8Big32x408from_u6417h7f2207118839940eE.exit40: ; preds = %bb4.i38
%59 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %plus, i32 0, i32 0
store i32 %57, i32* %59, align 4, !alias.scope !93
%60 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %plus, i32 0, i32 2
%61 = bitcast [40 x i32]* %60 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %61, i8* nonnull %32, i32 160, i32 4, i1 false)
call void @llvm.lifetime.end(i64 160, i8* nonnull %32), !noalias !93
%62 = bitcast %"num::bignum::Big32x40"* %scale to i8*
call void @llvm.lifetime.start(i64 164, i8* nonnull %62)
call void @llvm.lifetime.start(i64 160, i8* nonnull %32) #5, !noalias !96
%63 = getelementptr inbounds [40 x i32], [40 x i32]* %base.i, i32 0, i32 0
%64 = getelementptr inbounds [40 x i32], [40 x i32]* %base.i, i32 0, i32 1
%65 = bitcast i32* %64 to i8*
call void @llvm.memset.p0i8.i32(i8* nonnull %65, i8 0, i32 156, i32 4, i1 false) #5, !noalias !96
store i32 1, i32* %63, align 4, !noalias !96
%66 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i32 0, i32 0
store i32 1, i32* %66, align 4, !alias.scope !96
%67 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i32 0, i32 2
%68 = bitcast [40 x i32]* %67 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %68, i8* nonnull %32, i32 160, i32 4, i1 false) #5
call void @llvm.lifetime.end(i64 160, i8* nonnull %32) #5, !noalias !96
%69 = icmp slt i16 %21, 0
br i1 %69, label %bb26, label %bb27
bb26: ; preds = %_ZN4core3num6bignum8Big32x408from_u6417h7f2207118839940eE.exit40
%70 = sub i16 0, %21
%71 = sext i16 %70 to i32
%72 = call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h63cf5eeea8b6b5c3E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %scale, i32 %71)
br label %bb32
bb27: ; preds = %_ZN4core3num6bignum8Big32x408from_u6417h7f2207118839940eE.exit40
%73 = sext i16 %21 to i32
%74 = call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h63cf5eeea8b6b5c3E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %mant, i32 %73)
%75 = call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h63cf5eeea8b6b5c3E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %minus, i32 %73)
%76 = call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h63cf5eeea8b6b5c3E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %plus, i32 %73)
br label %bb32
bb32: ; preds = %bb27, %bb26
%77 = icmp sgt i16 %30, -1
br i1 %77, label %bb33, label %bb34
bb33: ; preds = %bb32
%78 = sext i16 %30 to i32
%79 = call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num7flt2dec8strategy6dragon9mul_pow1017h32f5e2ef03bbcff6E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %scale, i32 %78)
br label %bb39
bb34: ; preds = %bb32
%80 = sub i16 0, %30
%81 = sext i16 %80 to i32
%82 = call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num7flt2dec8strategy6dragon9mul_pow1017h32f5e2ef03bbcff6E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %mant, i32 %81)
%83 = call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num7flt2dec8strategy6dragon9mul_pow1017h32f5e2ef03bbcff6E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %minus, i32 %81)
%84 = call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num7flt2dec8strategy6dragon9mul_pow1017h32f5e2ef03bbcff6E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %plus, i32 %81)
br label %bb39
bb39: ; preds = %bb34, %bb33
%85 = bitcast %"num::bignum::Big32x40"* %_116 to i8*
call void @llvm.lifetime.start(i64 164, i8* nonnull %85)
%86 = load i32, i32* %39, align 4, !alias.scope !99, !noalias !102
%87 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_116, i32 0, i32 0
store i32 %86, i32* %87, align 4, !alias.scope !102, !noalias !99
%88 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_116, i32 0, i32 2
%89 = bitcast [40 x i32]* %88 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %89, i8* %41, i32 160, i32 4, i1 false) #5, !alias.scope !104
%90 = load i32, i32* %59, align 4, !alias.scope !105
%91 = icmp uge i32 %90, %86
%_0.0.sroa.speculated.i.i.i = select i1 %91, i32 %90, i32 %86
%92 = icmp ugt i32 %_0.0.sroa.speculated.i.i.i, 40
br i1 %92, label %bb4.i.i.i.i54, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i"
bb4.i.i.i.i54: ; preds = %bb39
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %_0.0.sroa.speculated.i.i.i, i32 40), !noalias !108
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i": ; preds = %bb39
%.idx.i = shl nuw i32 %_0.0.sroa.speculated.i.i.i, 2
%93 = sdiv i32 %.idx.i, 4
%.idx.off.i = or i32 %.idx.i, 3
%94 = icmp ult i32 %.idx.off.i, 7
br i1 %94, label %_ZN4core3num6bignum8Big32x403add17h356bf4f67cc7e986E.exit, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i"
%carry.0.off054.i = phi i1 [ %brmerge.i.i, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i" ], [ false, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.preheader" ]
%iter.sroa.8.053.i = phi i32 [ %97, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.preheader" ]
%95 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_116, i32 0, i32 2, i32 %iter.sroa.8.053.i
%96 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %plus, i32 0, i32 2, i32 %iter.sroa.8.053.i
%97 = add nuw i32 %iter.sroa.8.053.i, 1
%98 = load i32, i32* %95, align 4, !noalias !105
%99 = load i32, i32* %96, align 4, !alias.scope !105
%100 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %98, i32 %99) #5
%101 = extractvalue { i32, i1 } %100, 0
%102 = extractvalue { i32, i1 } %100, 1
%..i.i = zext i1 %carry.0.off054.i to i32
%103 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %101, i32 %..i.i) #5
%104 = extractvalue { i32, i1 } %103, 0
%105 = extractvalue { i32, i1 } %103, 1
%brmerge.i.i = or i1 %102, %105
store i32 %104, i32* %95, align 4, !noalias !105
%106 = icmp ult i32 %97, %93
br i1 %106, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.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$4next17h262db3ddb1d38240E.exit.i"
br i1 %brmerge.i.i, label %bb12.i, label %_ZN4core3num6bignum8Big32x403add17h356bf4f67cc7e986E.exit
bb12.i: ; preds = %bb9.i
%107 = icmp ult i32 %_0.0.sroa.speculated.i.i.i, 40
br i1 %107, label %bb14.i, label %panic.i56, !prof !3
bb14.i: ; preds = %bb12.i
%108 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_116, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i
store i32 1, i32* %108, align 4, !noalias !105
%109 = add i32 %_0.0.sroa.speculated.i.i.i, 1
br label %_ZN4core3num6bignum8Big32x403add17h356bf4f67cc7e986E.exit
panic.i56: ; preds = %bb12.i
call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4F to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %_0.0.sroa.speculated.i.i.i, i32 40), !noalias !105
unreachable
_ZN4core3num6bignum8Big32x403add17h356bf4f67cc7e986E.exit: ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i", %bb9.i, %bb14.i
%sz.0.i55 = phi i32 [ %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$5index17hfb69274827e43359E.exit.i" ]
store i32 %sz.0.i55, i32* %87, align 4, !noalias !105
%110 = load i32, i32* %66, align 4, !alias.scope !111, !noalias !114
%111 = icmp uge i32 %sz.0.i55, %110
%_0.0.sroa.speculated.i.i.i57 = select i1 %111, i32 %sz.0.i55, i32 %110
%112 = icmp ugt i32 %_0.0.sroa.speculated.i.i.i57, 40
br i1 %112, label %bb4.i.i.i6.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i58"
bb4.i.i.i6.i: ; preds = %_ZN4core3num6bignum8Big32x403add17h356bf4f67cc7e986E.exit
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %_0.0.sroa.speculated.i.i.i57, i32 40), !noalias !116
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i58": ; preds = %_ZN4core3num6bignum8Big32x403add17h356bf4f67cc7e986E.exit
%113 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i32 0, i32 2, i32 0
%114 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i57
%115 = ptrtoint i32* %114 to i32
%116 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_116, i32 0, i32 2, i32 0
%117 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_116, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i57
%118 = ptrtoint i32* %117 to i32
br label %bb2.i.i
bb2.i.i: ; preds = %bb12.i.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i58"
%other1.sroa.4.0.i.i = phi i32 [ %118, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i58" ], [ %other1.sroa.4.1.i.i, %bb12.i.i ]
%_9.sroa.4.0.i.i = phi i32 [ undef, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i58" ], [ %_9.sroa.4.1.i.i, %bb12.i.i ]
%self.sroa.4.0.i.i = phi i32 [ %115, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i58" ], [ %self.sroa.4.1.i.i, %bb12.i.i ]
%119 = inttoptr i32 %self.sroa.4.0.i.i to i32*
%120 = icmp eq i32* %119, %113
br i1 %120, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i", label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i": ; preds = %bb2.i.i
%121 = getelementptr inbounds i32, i32* %119, i32 -1
%122 = ptrtoint i32* %121 to i32
%123 = load i32, i32* %121, align 4, !alias.scope !119, !noalias !124
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i": ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i", %bb2.i.i
%_9.sroa.4.1.i.i = phi i32 [ %_9.sroa.4.0.i.i, %bb2.i.i ], [ %123, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i" ]
%self.sroa.4.1.i.i = phi i32 [ %self.sroa.4.0.i.i, %bb2.i.i ], [ %122, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i" ]
%.sink.i.i.i.i32.i.i = phi i32 [ 0, %bb2.i.i ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i" ]
%124 = inttoptr i32 %other1.sroa.4.0.i.i to i32*
%125 = icmp eq i32* %124, %116
br i1 %125, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i", label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.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_back17hce49ac0a94ef28eaE.exit.i.i.i.i": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i"
%126 = getelementptr inbounds i32, i32* %124, i32 -1
%127 = ptrtoint i32* %126 to i32
%128 = load i32, i32* %126, align 4, !alias.scope !136, !noalias !141
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i": ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i"
%other1.sroa.4.1.i.i = phi i32 [ %other1.sroa.4.0.i.i, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i" ], [ %127, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i" ]
%_11.sroa.4.1.i.i = phi i32 [ %_9.sroa.4.0.i.i, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i" ], [ %128, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i" ]
%.sink.i.i.i.i.i.i = phi i1 [ true, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i" ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i" ]
%cond.i.i = icmp eq i32 %.sink.i.i.i.i32.i.i, 0
br i1 %cond.i.i, label %bb8.i.i, label %bb9.i.i
bb8.i.i: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i"
%not..sink.i.i.i.i.i.i = xor i1 %.sink.i.i.i.i.i.i, true
%..i.i59 = sext i1 %not..sink.i.i.i.i.i.i to i8
br label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit"
bb9.i.i: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i"
br i1 %.sink.i.i.i.i.i.i, label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit.thread", label %bb12.i.i
"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit.thread": ; preds = %bb9.i.i
call void @llvm.lifetime.end(i64 164, i8* nonnull %85)
br label %bb45
bb12.i.i: ; preds = %bb9.i.i
%129 = icmp eq i32 %_9.sroa.4.1.i.i, %_11.sroa.4.1.i.i
br i1 %129, label %bb2.i.i, label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit.loopexit"
"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit.loopexit": ; preds = %bb12.i.i
%130 = icmp ult i32 %_9.sroa.4.1.i.i, %_11.sroa.4.1.i.i
%..i.i.i.le = select i1 %130, i8 -1, i8 1
br label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit"
"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit": ; preds = %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit.loopexit", %bb8.i.i
%_0.0.i.i = phi i8 [ %..i.i59, %bb8.i.i ], [ %..i.i.i.le, %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit.loopexit" ]
%131 = icmp slt i8 %_0.0.i.i, %19
call void @llvm.lifetime.end(i64 164, i8* nonnull %85)
br i1 %131, label %bb44, label %bb45
bb44: ; preds = %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit"
%132 = add i16 %30, 1
br label %bb49
bb45: ; preds = %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit.thread", %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit"
%133 = icmp ugt i32 %86, 40
br i1 %133, label %bb4.i.i.i.i60, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i61"
bb4.i.i.i.i60: ; preds = %bb45
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %86, i32 40), !noalias !150
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i61": ; preds = %bb45
%134 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %86
%135 = icmp eq i32 %86, 0
br i1 %135, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit71, label %bb6.lr.ph.i62
bb6.lr.ph.i62: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i61"
%136 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 0
br label %bb6.i66
bb5.i63: ; preds = %bb6.i66
%137 = icmp eq i32 %145, 0
br i1 %137, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit71, label %bb8.i67
bb6.i66: ; preds = %bb6.i66, %bb6.lr.ph.i62
%carry.020.i64 = phi i32 [ 0, %bb6.lr.ph.i62 ], [ %145, %bb6.i66 ]
%iter.sroa.0.0.in19.i65 = phi i32* [ %136, %bb6.lr.ph.i62 ], [ %138, %bb6.i66 ]
%138 = getelementptr inbounds i32, i32* %iter.sroa.0.0.in19.i65, i32 1
%139 = load i32, i32* %iter.sroa.0.0.in19.i65, align 4
%140 = zext i32 %139 to i64
%141 = mul nuw nsw i64 %140, 10
%142 = zext i32 %carry.020.i64 to i64
%143 = add nuw nsw i64 %141, %142
%144 = lshr i64 %143, 32
%145 = trunc i64 %144 to i32
%146 = trunc i64 %143 to i32
store i32 %146, i32* %iter.sroa.0.0.in19.i65, align 4
%147 = icmp eq i32* %138, %134
br i1 %147, label %bb5.i63, label %bb6.i66
bb8.i67: ; preds = %bb5.i63
%148 = icmp ult i32 %86, 40
br i1 %148, label %bb10.i68, label %panic.i70, !prof !3
bb10.i68: ; preds = %bb8.i67
store i32 %145, i32* %134, align 4
%149 = add i32 %86, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit71
panic.i70: ; preds = %bb8.i67
call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %86, i32 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit71: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i61", %bb5.i63, %bb10.i68
%sz.0.i69 = phi i32 [ %149, %bb10.i68 ], [ %86, %bb5.i63 ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i61" ]
store i32 %sz.0.i69, i32* %39, align 4
%150 = load i32, i32* %49, align 4
%151 = icmp ugt i32 %150, 40
br i1 %151, label %bb4.i.i.i.i72, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i73"
bb4.i.i.i.i72: ; preds = %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit71
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %150, i32 40), !noalias !153
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i73": ; preds = %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit71
%152 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %minus, i32 0, i32 2, i32 %150
%153 = icmp eq i32 %150, 0
br i1 %153, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit83, label %bb6.lr.ph.i74
bb6.lr.ph.i74: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i73"
%154 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %minus, i32 0, i32 2, i32 0
br label %bb6.i78
bb5.i75: ; preds = %bb6.i78
%155 = icmp eq i32 %163, 0
br i1 %155, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit83, label %bb8.i79
bb6.i78: ; preds = %bb6.i78, %bb6.lr.ph.i74
%carry.020.i76 = phi i32 [ 0, %bb6.lr.ph.i74 ], [ %163, %bb6.i78 ]
%iter.sroa.0.0.in19.i77 = phi i32* [ %154, %bb6.lr.ph.i74 ], [ %156, %bb6.i78 ]
%156 = getelementptr inbounds i32, i32* %iter.sroa.0.0.in19.i77, i32 1
%157 = load i32, i32* %iter.sroa.0.0.in19.i77, align 4
%158 = zext i32 %157 to i64
%159 = mul nuw nsw i64 %158, 10
%160 = zext i32 %carry.020.i76 to i64
%161 = add nuw nsw i64 %159, %160
%162 = lshr i64 %161, 32
%163 = trunc i64 %162 to i32
%164 = trunc i64 %161 to i32
store i32 %164, i32* %iter.sroa.0.0.in19.i77, align 4
%165 = icmp eq i32* %156, %152
br i1 %165, label %bb5.i75, label %bb6.i78
bb8.i79: ; preds = %bb5.i75
%166 = icmp ult i32 %150, 40
br i1 %166, label %bb10.i80, label %panic.i82, !prof !3
bb10.i80: ; preds = %bb8.i79
store i32 %163, i32* %152, align 4
%167 = add i32 %150, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit83
panic.i82: ; preds = %bb8.i79
call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %150, i32 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit83: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i73", %bb5.i75, %bb10.i80
%sz.0.i81 = phi i32 [ %167, %bb10.i80 ], [ %150, %bb5.i75 ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i73" ]
store i32 %sz.0.i81, i32* %49, align 4
%168 = icmp ugt i32 %90, 40
br i1 %168, label %bb4.i.i.i.i84, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i85"
bb4.i.i.i.i84: ; preds = %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit83
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %90, i32 40), !noalias !156
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i85": ; preds = %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit83
%169 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %plus, i32 0, i32 2, i32 %90
%170 = icmp eq i32 %90, 0
br i1 %170, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit95, label %bb6.lr.ph.i86
bb6.lr.ph.i86: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i85"
%171 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %plus, i32 0, i32 2, i32 0
br label %bb6.i90
bb5.i87: ; preds = %bb6.i90
%172 = icmp eq i32 %180, 0
br i1 %172, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit95, label %bb8.i91
bb6.i90: ; preds = %bb6.i90, %bb6.lr.ph.i86
%carry.020.i88 = phi i32 [ 0, %bb6.lr.ph.i86 ], [ %180, %bb6.i90 ]
%iter.sroa.0.0.in19.i89 = phi i32* [ %171, %bb6.lr.ph.i86 ], [ %173, %bb6.i90 ]
%173 = getelementptr inbounds i32, i32* %iter.sroa.0.0.in19.i89, i32 1
%174 = load i32, i32* %iter.sroa.0.0.in19.i89, align 4
%175 = zext i32 %174 to i64
%176 = mul nuw nsw i64 %175, 10
%177 = zext i32 %carry.020.i88 to i64
%178 = add nuw nsw i64 %176, %177
%179 = lshr i64 %178, 32
%180 = trunc i64 %179 to i32
%181 = trunc i64 %178 to i32
store i32 %181, i32* %iter.sroa.0.0.in19.i89, align 4
%182 = icmp eq i32* %173, %169
br i1 %182, label %bb5.i87, label %bb6.i90
bb8.i91: ; preds = %bb5.i87
%183 = icmp ult i32 %90, 40
br i1 %183, label %bb10.i92, label %panic.i94, !prof !3
bb10.i92: ; preds = %bb8.i91
store i32 %180, i32* %169, align 4
%184 = add i32 %90, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit95
panic.i94: ; preds = %bb8.i91
call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %90, i32 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit95: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i85", %bb5.i87, %bb10.i92
%sz.0.i93 = phi i32 [ %184, %bb10.i92 ], [ %90, %bb5.i87 ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i85" ]
store i32 %sz.0.i93, i32* %59, align 4
br label %bb49
bb49: ; preds = %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit95, %bb44
%k.0 = phi i16 [ %132, %bb44 ], [ %30, %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit95 ]
%185 = bitcast %"num::bignum::Big32x40"* %scale2 to i8*
call void @llvm.lifetime.start(i64 164, i8* nonnull %185)
%186 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale2, i32 0, i32 0
store i32 %110, i32* %186, align 4, !alias.scope !159, !noalias !162
%187 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale2, i32 0, i32 2
%188 = bitcast [40 x i32]* %187 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %188, i8* %68, i32 160, i32 4, i1 false) #5, !alias.scope !164
%189 = call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h63cf5eeea8b6b5c3E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %scale2, i32 1)
%190 = bitcast %"num::bignum::Big32x40"* %scale4 to i8*
call void @llvm.lifetime.start(i64 164, i8* nonnull %190)
%191 = load i32, i32* %66, align 4, !alias.scope !165, !noalias !168
%192 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale4, i32 0, i32 0
store i32 %191, i32* %192, align 4, !alias.scope !168, !noalias !165
%193 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale4, i32 0, i32 2
%194 = bitcast [40 x i32]* %193 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %194, i8* %68, i32 160, i32 4, i1 false) #5, !alias.scope !170
%195 = call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h63cf5eeea8b6b5c3E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %scale4, i32 2)
%196 = bitcast %"num::bignum::Big32x40"* %scale8 to i8*
call void @llvm.lifetime.start(i64 164, i8* nonnull %196)
%197 = load i32, i32* %66, align 4, !alias.scope !171, !noalias !174
%198 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale8, i32 0, i32 0
store i32 %197, i32* %198, align 4, !alias.scope !174, !noalias !171
%199 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale8, i32 0, i32 2
%200 = bitcast [40 x i32]* %199 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %200, i8* %68, i32 160, i32 4, i1 false) #5, !alias.scope !176
%201 = call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h63cf5eeea8b6b5c3E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %scale8, i32 3)
%202 = load i32, i32* %39, align 4, !alias.scope !177, !noalias !184
%203 = load i32, i32* %198, align 4, !alias.scope !194, !noalias !195
%204 = icmp uge i32 %203, %202
%_0.0.sroa.speculated.i.i.i.i.i.i383 = select i1 %204, i32 %203, i32 %202
%205 = icmp ugt i32 %_0.0.sroa.speculated.i.i.i.i.i.i383, 40
br i1 %205, label %bb4.i.i.i6.i.i.i.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.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$5index17hfb69274827e43359E.exit.i.i.i.i.lr.ph": ; preds = %bb49
%206 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 0
%207 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale8, i32 0, i32 2, i32 0
%208 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale4, i32 0, i32 2, i32 0
%209 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale2, i32 0, i32 2, i32 0
%210 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %minus, i32 0, i32 2, i32 0
%211 = bitcast %"num::bignum::Big32x40"* %_175 to i8*
%212 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_175, i32 0, i32 0
%213 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_175, i32 0, i32 2
%214 = bitcast [40 x i32]* %213 to i8*
%215 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_175, i32 0, i32 2, i32 0
%216 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %plus, i32 0, i32 2, i32 0
br label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i.i"
bb4.i.i.i6.i.i.i.i.loopexit: ; preds = %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit
br label %bb4.i.i.i6.i.i.i.i
bb4.i.i.i6.i.i.i.i: ; preds = %bb4.i.i.i6.i.i.i.i.loopexit, %bb49
%_0.0.sroa.speculated.i.i.i.i.i.i.lcssa = phi i32 [ %_0.0.sroa.speculated.i.i.i.i.i.i383, %bb49 ], [ %_0.0.sroa.speculated.i.i.i.i.i.i, %bb4.i.i.i6.i.i.i.i.loopexit ]
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %_0.0.sroa.speculated.i.i.i.i.i.i.lcssa, i32 40), !noalias !196
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i.i": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i.i.lr.ph", %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit
%_0.0.sroa.speculated.i.i.i.i.i.i385 = phi i32 [ %_0.0.sroa.speculated.i.i.i.i.i.i383, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i.i.lr.ph" ], [ %_0.0.sroa.speculated.i.i.i.i.i.i, %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit ]
%217 = phi i32 [ %202, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i.i.lr.ph" ], [ %437, %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit ]
%i.0384 = phi i32 [ 0, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i.i.lr.ph" ], [ %361, %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit ]
%218 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i.i.i.i385
%219 = ptrtoint i32* %218 to i32
%220 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale8, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i.i.i.i385
%221 = ptrtoint i32* %220 to i32
br label %bb2.i.i.i.i.i
bb2.i.i.i.i.i: ; preds = %bb12.i.i.i.i.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i.i"
%other1.sroa.4.0.i.i.i.i.i = phi i32 [ %221, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i.i" ], [ %other1.sroa.4.1.i.i.i.i.i, %bb12.i.i.i.i.i ]
%_9.sroa.4.0.i.i.i.i.i = phi i32 [ undef, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i.i" ], [ %_9.sroa.4.1.i.i.i.i.i, %bb12.i.i.i.i.i ]
%self.sroa.4.0.i.i.i.i.i = phi i32 [ %219, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i.i" ], [ %self.sroa.4.1.i.i.i.i.i, %bb12.i.i.i.i.i ]
%222 = inttoptr i32 %self.sroa.4.0.i.i.i.i.i to i32*
%223 = icmp eq i32* %222, %206
br i1 %223, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.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_back17hce49ac0a94ef28eaE.exit.i.i31.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_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i.i": ; preds = %bb2.i.i.i.i.i
%224 = getelementptr inbounds i32, i32* %222, i32 -1
%225 = ptrtoint i32* %224 to i32
%226 = load i32, i32* %224, align 4, !alias.scope !199, !noalias !204
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.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_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i.i", %bb2.i.i.i.i.i
%_9.sroa.4.1.i.i.i.i.i = phi i32 [ %_9.sroa.4.0.i.i.i.i.i, %bb2.i.i.i.i.i ], [ %226, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i.i" ]
%self.sroa.4.1.i.i.i.i.i = phi i32 [ %self.sroa.4.0.i.i.i.i.i, %bb2.i.i.i.i.i ], [ %225, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i.i" ]
%.sink.i.i.i.i32.i.i.i.i.i = phi i32 [ 0, %bb2.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_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i.i" ]
%227 = inttoptr i32 %other1.sroa.4.0.i.i.i.i.i to i32*
%228 = icmp eq i32* %227, %207
br i1 %228, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.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_back17hce49ac0a94ef28eaE.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_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i.i": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i.i"
%229 = getelementptr inbounds i32, i32* %227, i32 -1
%230 = ptrtoint i32* %229 to i32
%231 = load i32, i32* %229, align 4, !alias.scope !216, !noalias !221
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.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_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i.i", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i.i"
%other1.sroa.4.1.i.i.i.i.i = phi i32 [ %other1.sroa.4.0.i.i.i.i.i, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i.i" ], [ %230, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i.i" ]
%_11.sroa.4.1.i.i.i.i.i = phi i32 [ %_9.sroa.4.0.i.i.i.i.i, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i.i" ], [ %231, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i.i" ]
%.sink.i.i.i.i.i.i.i.i.i = phi i1 [ true, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.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_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i.i" ]
%cond.i.i.i.i.i = icmp eq i32 %.sink.i.i.i.i32.i.i.i.i.i, 0
br i1 %cond.i.i.i.i.i, label %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.i, label %bb9.i.i.i.i.i
bb9.i.i.i.i.i: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i.i"
br i1 %.sink.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$5index17hfb69274827e43359E.exit.i.i.loopexit", label %bb12.i.i.i.i.i
bb12.i.i.i.i.i: ; preds = %bb9.i.i.i.i.i
%232 = icmp eq i32 %_9.sroa.4.1.i.i.i.i.i, %_11.sroa.4.1.i.i.i.i.i
br i1 %232, label %bb2.i.i.i.i.i, label %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.loopexit.i
_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.loopexit.i: ; preds = %bb12.i.i.i.i.i
%233 = icmp ult i32 %_9.sroa.4.1.i.i.i.i.i, %_11.sroa.4.1.i.i.i.i.i
br i1 %233, label %bb5.i99, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i"
_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.i: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i.i"
br i1 %.sink.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$5index17hfb69274827e43359E.exit.i.i", label %bb5.i99
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.loopexit": ; preds = %bb9.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$5index17hfb69274827e43359E.exit.i.i"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.loopexit", %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.i, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.loopexit.i
%.idx.i.i = shl nuw i32 %_0.0.sroa.speculated.i.i.i.i.i.i385, 2
%234 = sdiv i32 %.idx.i.i, 4
%.idx.off.i.i = or i32 %.idx.i.i, 3
%235 = icmp ult i32 %.idx.off.i.i, 7
br i1 %235, label %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit.i, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.i.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.i.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.i"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.i": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.i.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.i"
%noborrow.0.off049.i.i = phi i1 [ %brmerge.i.i.i, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.i" ], [ true, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.i.preheader" ]
%iter.sroa.8.048.i.i = phi i32 [ %238, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.i" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.i.preheader" ]
%236 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %iter.sroa.8.048.i.i
%237 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale8, i32 0, i32 2, i32 %iter.sroa.8.048.i.i
%238 = add nuw i32 %iter.sroa.8.048.i.i, 1
%239 = load i32, i32* %236, align 4, !noalias !230
%240 = load i32, i32* %237, align 4, !alias.scope !233, !noalias !234
%241 = xor i32 %240, -1
%242 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %239, i32 %241) #5
%243 = extractvalue { i32, i1 } %242, 0
%244 = extractvalue { i32, i1 } %242, 1
%..i.i.i96 = zext i1 %noborrow.0.off049.i.i to i32
%245 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %243, i32 %..i.i.i96) #5
%246 = extractvalue { i32, i1 } %245, 0
%247 = extractvalue { i32, i1 } %245, 1
%brmerge.i.i.i = or i1 %244, %247
store i32 %246, i32* %236, align 4, !noalias !230
%248 = icmp ult i32 %238, %234
br i1 %248, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.i", label %bb9.i.i97
bb9.i.i97: ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.i"
br i1 %brmerge.i.i.i, label %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit.i, label %bb12.i.i98
bb12.i.i98: ; preds = %bb9.i.i97
call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num6bignum8Big32x403sub14_MSG_FILE_LINE17habdcba506e46e83bE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !235
unreachable
_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit.i: ; preds = %bb9.i.i97, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i"
store i32 %_0.0.sroa.speculated.i.i.i.i.i.i385, i32* %39, align 4, !noalias !230
br label %bb5.i99
bb5.i99: ; preds = %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit.i, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.i, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.loopexit.i
%249 = phi i32 [ %_0.0.sroa.speculated.i.i.i.i.i.i385, %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit.i ], [ %217, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.i ], [ %217, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.loopexit.i ]
%d.0.i = phi i8 [ 8, %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit.i ], [ 0, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.i ], [ 0, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.loopexit.i ]
%250 = load i32, i32* %192, align 4, !alias.scope !236, !noalias !243
%251 = icmp uge i32 %250, %249
%_0.0.sroa.speculated.i.i.i.i.i5.i = select i1 %251, i32 %250, i32 %249
%252 = icmp ugt i32 %_0.0.sroa.speculated.i.i.i.i.i5.i, 40
br i1 %252, label %bb4.i.i.i6.i.i.i6.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i7.i"
bb4.i.i.i6.i.i.i6.i: ; preds = %bb5.i99
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %_0.0.sroa.speculated.i.i.i.i.i5.i, i32 40), !noalias !247
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i7.i": ; preds = %bb5.i99
%253 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i.i.i5.i
%254 = ptrtoint i32* %253 to i32
%255 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale4, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i.i.i5.i
%256 = ptrtoint i32* %255 to i32
br label %bb2.i.i.i.i11.i
bb2.i.i.i.i11.i: ; preds = %bb12.i.i.i.i28.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i7.i"
%other1.sroa.4.0.i.i.i.i8.i = phi i32 [ %256, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i7.i" ], [ %other1.sroa.4.1.i.i.i.i18.i, %bb12.i.i.i.i28.i ]
%_9.sroa.4.0.i.i.i.i9.i = phi i32 [ undef, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i7.i" ], [ %_9.sroa.4.1.i.i.i.i13.i, %bb12.i.i.i.i28.i ]
%self.sroa.4.0.i.i.i.i10.i = phi i32 [ %254, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i7.i" ], [ %self.sroa.4.1.i.i.i.i14.i, %bb12.i.i.i.i28.i ]
%257 = inttoptr i32 %self.sroa.4.0.i.i.i.i10.i to i32*
%258 = icmp eq i32* %257, %206
br i1 %258, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i16.i", label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i12.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i12.i": ; preds = %bb2.i.i.i.i11.i
%259 = getelementptr inbounds i32, i32* %257, i32 -1
%260 = ptrtoint i32* %259 to i32
%261 = load i32, i32* %259, align 4, !alias.scope !250, !noalias !255
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i16.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i16.i": ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i12.i", %bb2.i.i.i.i11.i
%_9.sroa.4.1.i.i.i.i13.i = phi i32 [ %_9.sroa.4.0.i.i.i.i9.i, %bb2.i.i.i.i11.i ], [ %261, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i12.i" ]
%self.sroa.4.1.i.i.i.i14.i = phi i32 [ %self.sroa.4.0.i.i.i.i10.i, %bb2.i.i.i.i11.i ], [ %260, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i12.i" ]
%.sink.i.i.i.i32.i.i.i.i15.i = phi i32 [ 0, %bb2.i.i.i.i11.i ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i12.i" ]
%262 = inttoptr i32 %other1.sroa.4.0.i.i.i.i8.i to i32*
%263 = icmp eq i32* %262, %208
br i1 %263, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i22.i", label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i17.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i17.i": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i16.i"
%264 = getelementptr inbounds i32, i32* %262, i32 -1
%265 = ptrtoint i32* %264 to i32
%266 = load i32, i32* %264, align 4, !alias.scope !267, !noalias !272
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i22.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i22.i": ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i17.i", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i16.i"
%other1.sroa.4.1.i.i.i.i18.i = phi i32 [ %other1.sroa.4.0.i.i.i.i8.i, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i16.i" ], [ %265, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i17.i" ]
%_11.sroa.4.1.i.i.i.i19.i = phi i32 [ %_9.sroa.4.0.i.i.i.i9.i, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i16.i" ], [ %266, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i17.i" ]
%.sink.i.i.i.i.i.i.i.i20.i = phi i1 [ true, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i16.i" ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i17.i" ]
%cond.i.i.i.i21.i = icmp eq i32 %.sink.i.i.i.i32.i.i.i.i15.i, 0
br i1 %cond.i.i.i.i21.i, label %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit31.i, label %bb9.i.i.i.i26.i
bb9.i.i.i.i26.i: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i22.i"
br i1 %.sink.i.i.i.i.i.i.i.i20.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i36.i.loopexit", label %bb12.i.i.i.i28.i
bb12.i.i.i.i28.i: ; preds = %bb9.i.i.i.i26.i
%267 = icmp eq i32 %_9.sroa.4.1.i.i.i.i13.i, %_11.sroa.4.1.i.i.i.i19.i
br i1 %267, label %bb2.i.i.i.i11.i, label %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit31.loopexit.i
_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit31.loopexit.i: ; preds = %bb12.i.i.i.i28.i
%268 = icmp ult i32 %_9.sroa.4.1.i.i.i.i13.i, %_11.sroa.4.1.i.i.i.i19.i
br i1 %268, label %bb10.i100, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i36.i"
_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit31.i: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i22.i"
br i1 %.sink.i.i.i.i.i.i.i.i20.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i36.i", label %bb10.i100
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i36.i.loopexit": ; preds = %bb9.i.i.i.i26.i
br label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i36.i"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i36.i": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i36.i.loopexit", %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit31.i, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit31.loopexit.i
%.idx.i34.i = shl nuw i32 %_0.0.sroa.speculated.i.i.i.i.i5.i, 2
%269 = sdiv i32 %.idx.i34.i, 4
%.idx.off.i35.i = or i32 %.idx.i34.i, 3
%270 = icmp ult i32 %.idx.off.i35.i, 7
br i1 %270, label %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit44.i, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i41.i.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i41.i.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i36.i"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i41.i"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i41.i": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i41.i.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i41.i"
%noborrow.0.off049.i37.i = phi i1 [ %brmerge.i.i40.i, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i41.i" ], [ true, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i41.i.preheader" ]
%iter.sroa.8.048.i38.i = phi i32 [ %273, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i41.i" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i41.i.preheader" ]
%271 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %iter.sroa.8.048.i38.i
%272 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale4, i32 0, i32 2, i32 %iter.sroa.8.048.i38.i
%273 = add nuw i32 %iter.sroa.8.048.i38.i, 1
%274 = load i32, i32* %271, align 4, !noalias !281
%275 = load i32, i32* %272, align 4, !alias.scope !284, !noalias !285
%276 = xor i32 %275, -1
%277 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %274, i32 %276) #5
%278 = extractvalue { i32, i1 } %277, 0
%279 = extractvalue { i32, i1 } %277, 1
%..i.i39.i = zext i1 %noborrow.0.off049.i37.i to i32
%280 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %278, i32 %..i.i39.i) #5
%281 = extractvalue { i32, i1 } %280, 0
%282 = extractvalue { i32, i1 } %280, 1
%brmerge.i.i40.i = or i1 %279, %282
store i32 %281, i32* %271, align 4, !noalias !281
%283 = icmp ult i32 %273, %269
br i1 %283, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.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$4next17h262db3ddb1d38240E.exit.i41.i"
br i1 %brmerge.i.i40.i, label %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit44.i, label %bb12.i43.i
bb12.i43.i: ; preds = %bb9.i42.i
call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num6bignum8Big32x403sub14_MSG_FILE_LINE17habdcba506e46e83bE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !286
unreachable
_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit44.i: ; preds = %bb9.i42.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i36.i"
store i32 %_0.0.sroa.speculated.i.i.i.i.i5.i, i32* %39, align 4, !noalias !281
%284 = or i8 %d.0.i, 4
br label %bb10.i100
bb10.i100: ; preds = %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit44.i, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit31.i, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit31.loopexit.i
%285 = phi i32 [ %_0.0.sroa.speculated.i.i.i.i.i5.i, %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit44.i ], [ %249, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit31.i ], [ %249, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit31.loopexit.i ]
%d.1.i = phi i8 [ %284, %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit44.i ], [ %d.0.i, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit31.i ], [ %d.0.i, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit31.loopexit.i ]
%286 = load i32, i32* %186, align 4, !alias.scope !287, !noalias !294
%287 = icmp uge i32 %286, %285
%_0.0.sroa.speculated.i.i.i.i.i45.i = select i1 %287, i32 %286, i32 %285
%288 = icmp ugt i32 %_0.0.sroa.speculated.i.i.i.i.i45.i, 40
br i1 %288, label %bb4.i.i.i6.i.i.i46.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i47.i"
bb4.i.i.i6.i.i.i46.i: ; preds = %bb10.i100
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %_0.0.sroa.speculated.i.i.i.i.i45.i, i32 40), !noalias !298
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i47.i": ; preds = %bb10.i100
%289 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i.i.i45.i
%290 = ptrtoint i32* %289 to i32
%291 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale2, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i.i.i45.i
%292 = ptrtoint i32* %291 to i32
br label %bb2.i.i.i.i51.i
bb2.i.i.i.i51.i: ; preds = %bb12.i.i.i.i68.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i47.i"
%other1.sroa.4.0.i.i.i.i48.i = phi i32 [ %292, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i47.i" ], [ %other1.sroa.4.1.i.i.i.i58.i, %bb12.i.i.i.i68.i ]
%_9.sroa.4.0.i.i.i.i49.i = phi i32 [ undef, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i47.i" ], [ %_9.sroa.4.1.i.i.i.i53.i, %bb12.i.i.i.i68.i ]
%self.sroa.4.0.i.i.i.i50.i = phi i32 [ %290, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i47.i" ], [ %self.sroa.4.1.i.i.i.i54.i, %bb12.i.i.i.i68.i ]
%293 = inttoptr i32 %self.sroa.4.0.i.i.i.i50.i to i32*
%294 = icmp eq i32* %293, %206
br i1 %294, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i56.i", label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i52.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i52.i": ; preds = %bb2.i.i.i.i51.i
%295 = getelementptr inbounds i32, i32* %293, i32 -1
%296 = ptrtoint i32* %295 to i32
%297 = load i32, i32* %295, align 4, !alias.scope !301, !noalias !306
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i56.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i56.i": ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i52.i", %bb2.i.i.i.i51.i
%_9.sroa.4.1.i.i.i.i53.i = phi i32 [ %_9.sroa.4.0.i.i.i.i49.i, %bb2.i.i.i.i51.i ], [ %297, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i52.i" ]
%self.sroa.4.1.i.i.i.i54.i = phi i32 [ %self.sroa.4.0.i.i.i.i50.i, %bb2.i.i.i.i51.i ], [ %296, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i52.i" ]
%.sink.i.i.i.i32.i.i.i.i55.i = phi i32 [ 0, %bb2.i.i.i.i51.i ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i52.i" ]
%298 = inttoptr i32 %other1.sroa.4.0.i.i.i.i48.i to i32*
%299 = icmp eq i32* %298, %209
br i1 %299, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i62.i", label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i57.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i57.i": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i56.i"
%300 = getelementptr inbounds i32, i32* %298, i32 -1
%301 = ptrtoint i32* %300 to i32
%302 = load i32, i32* %300, align 4, !alias.scope !318, !noalias !323
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i62.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i62.i": ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i57.i", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i56.i"
%other1.sroa.4.1.i.i.i.i58.i = phi i32 [ %other1.sroa.4.0.i.i.i.i48.i, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i56.i" ], [ %301, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i57.i" ]
%_11.sroa.4.1.i.i.i.i59.i = phi i32 [ %_9.sroa.4.0.i.i.i.i49.i, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i56.i" ], [ %302, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i57.i" ]
%.sink.i.i.i.i.i.i.i.i60.i = phi i1 [ true, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i56.i" ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i57.i" ]
%cond.i.i.i.i61.i = icmp eq i32 %.sink.i.i.i.i32.i.i.i.i55.i, 0
br i1 %cond.i.i.i.i61.i, label %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit71.i, label %bb9.i.i.i.i66.i
bb9.i.i.i.i66.i: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i62.i"
br i1 %.sink.i.i.i.i.i.i.i.i60.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i76.i.loopexit", label %bb12.i.i.i.i68.i
bb12.i.i.i.i68.i: ; preds = %bb9.i.i.i.i66.i
%303 = icmp eq i32 %_9.sroa.4.1.i.i.i.i53.i, %_11.sroa.4.1.i.i.i.i59.i
br i1 %303, label %bb2.i.i.i.i51.i, label %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit71.loopexit.i
_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit71.loopexit.i: ; preds = %bb12.i.i.i.i68.i
%304 = icmp ult i32 %_9.sroa.4.1.i.i.i.i53.i, %_11.sroa.4.1.i.i.i.i59.i
br i1 %304, label %bb15.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i76.i"
_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit71.i: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i62.i"
br i1 %.sink.i.i.i.i.i.i.i.i60.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i76.i", label %bb15.i
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i76.i.loopexit": ; preds = %bb9.i.i.i.i66.i
br label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i76.i"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i76.i": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i76.i.loopexit", %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit71.i, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit71.loopexit.i
%.idx.i74.i = shl nuw i32 %_0.0.sroa.speculated.i.i.i.i.i45.i, 2
%305 = sdiv i32 %.idx.i74.i, 4
%.idx.off.i75.i = or i32 %.idx.i74.i, 3
%306 = icmp ult i32 %.idx.off.i75.i, 7
br i1 %306, label %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit84.i, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i81.i.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i81.i.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i76.i"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i81.i"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i81.i": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i81.i.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i81.i"
%noborrow.0.off049.i77.i = phi i1 [ %brmerge.i.i80.i, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i81.i" ], [ true, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i81.i.preheader" ]
%iter.sroa.8.048.i78.i = phi i32 [ %309, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i81.i" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i81.i.preheader" ]
%307 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %iter.sroa.8.048.i78.i
%308 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale2, i32 0, i32 2, i32 %iter.sroa.8.048.i78.i
%309 = add nuw i32 %iter.sroa.8.048.i78.i, 1
%310 = load i32, i32* %307, align 4, !noalias !332
%311 = load i32, i32* %308, align 4, !alias.scope !335, !noalias !336
%312 = xor i32 %311, -1
%313 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %310, i32 %312) #5
%314 = extractvalue { i32, i1 } %313, 0
%315 = extractvalue { i32, i1 } %313, 1
%..i.i79.i = zext i1 %noborrow.0.off049.i77.i to i32
%316 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %314, i32 %..i.i79.i) #5
%317 = extractvalue { i32, i1 } %316, 0
%318 = extractvalue { i32, i1 } %316, 1
%brmerge.i.i80.i = or i1 %315, %318
store i32 %317, i32* %307, align 4, !noalias !332
%319 = icmp ult i32 %309, %305
br i1 %319, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.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$4next17h262db3ddb1d38240E.exit.i81.i"
br i1 %brmerge.i.i80.i, label %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit84.i, label %bb12.i83.i
bb12.i83.i: ; preds = %bb9.i82.i
call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num6bignum8Big32x403sub14_MSG_FILE_LINE17habdcba506e46e83bE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !337
unreachable
_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit84.i: ; preds = %bb9.i82.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i76.i"
store i32 %_0.0.sroa.speculated.i.i.i.i.i45.i, i32* %39, align 4, !noalias !332
%320 = add nsw i8 %d.1.i, 2
br label %bb15.i
bb15.i: ; preds = %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit84.i, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit71.i, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit71.loopexit.i
%321 = phi i32 [ %_0.0.sroa.speculated.i.i.i.i.i45.i, %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit84.i ], [ %285, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit71.i ], [ %285, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit71.loopexit.i ]
%d.2.i = phi i8 [ %320, %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit84.i ], [ %d.1.i, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit71.i ], [ %d.1.i, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit71.loopexit.i ]
%322 = load i32, i32* %66, align 4, !alias.scope !338, !noalias !345
%323 = icmp uge i32 %322, %321
%_0.0.sroa.speculated.i.i.i.i.i85.i = select i1 %323, i32 %322, i32 %321
%324 = icmp ugt i32 %_0.0.sroa.speculated.i.i.i.i.i85.i, 40
br i1 %324, label %bb4.i.i.i6.i.i.i86.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i87.i"
bb4.i.i.i6.i.i.i86.i: ; preds = %bb15.i
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %_0.0.sroa.speculated.i.i.i.i.i85.i, i32 40), !noalias !349
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i87.i": ; preds = %bb15.i
%325 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i.i.i85.i
%326 = ptrtoint i32* %325 to i32
%327 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i.i.i85.i
%328 = ptrtoint i32* %327 to i32
br label %bb2.i.i.i.i91.i
bb2.i.i.i.i91.i: ; preds = %bb12.i.i.i.i108.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i87.i"
%other1.sroa.4.0.i.i.i.i88.i = phi i32 [ %328, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i87.i" ], [ %other1.sroa.4.1.i.i.i.i98.i, %bb12.i.i.i.i108.i ]
%_9.sroa.4.0.i.i.i.i89.i = phi i32 [ undef, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i87.i" ], [ %_9.sroa.4.1.i.i.i.i93.i, %bb12.i.i.i.i108.i ]
%self.sroa.4.0.i.i.i.i90.i = phi i32 [ %326, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i87.i" ], [ %self.sroa.4.1.i.i.i.i94.i, %bb12.i.i.i.i108.i ]
%329 = inttoptr i32 %self.sroa.4.0.i.i.i.i90.i to i32*
%330 = icmp eq i32* %329, %206
br i1 %330, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i96.i", label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i92.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i92.i": ; preds = %bb2.i.i.i.i91.i
%331 = getelementptr inbounds i32, i32* %329, i32 -1
%332 = ptrtoint i32* %331 to i32
%333 = load i32, i32* %331, align 4, !alias.scope !352, !noalias !357
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i96.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i96.i": ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i92.i", %bb2.i.i.i.i91.i
%_9.sroa.4.1.i.i.i.i93.i = phi i32 [ %_9.sroa.4.0.i.i.i.i89.i, %bb2.i.i.i.i91.i ], [ %333, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i92.i" ]
%self.sroa.4.1.i.i.i.i94.i = phi i32 [ %self.sroa.4.0.i.i.i.i90.i, %bb2.i.i.i.i91.i ], [ %332, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i92.i" ]
%.sink.i.i.i.i32.i.i.i.i95.i = phi i32 [ 0, %bb2.i.i.i.i91.i ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i92.i" ]
%334 = inttoptr i32 %other1.sroa.4.0.i.i.i.i88.i to i32*
%335 = icmp eq i32* %334, %113
br i1 %335, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i102.i", label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i97.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i97.i": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i96.i"
%336 = getelementptr inbounds i32, i32* %334, i32 -1
%337 = ptrtoint i32* %336 to i32
%338 = load i32, i32* %336, align 4, !alias.scope !369, !noalias !374
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i102.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i102.i": ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i97.i", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i96.i"
%other1.sroa.4.1.i.i.i.i98.i = phi i32 [ %other1.sroa.4.0.i.i.i.i88.i, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i96.i" ], [ %337, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i97.i" ]
%_11.sroa.4.1.i.i.i.i99.i = phi i32 [ %_9.sroa.4.0.i.i.i.i89.i, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i96.i" ], [ %338, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i97.i" ]
%.sink.i.i.i.i.i.i.i.i100.i = phi i1 [ true, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i96.i" ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i97.i" ]
%cond.i.i.i.i101.i = icmp eq i32 %.sink.i.i.i.i32.i.i.i.i95.i, 0
br i1 %cond.i.i.i.i101.i, label %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit111.i, label %bb9.i.i.i.i106.i
bb9.i.i.i.i106.i: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i102.i"
br i1 %.sink.i.i.i.i.i.i.i.i100.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i116.i.loopexit", label %bb12.i.i.i.i108.i
bb12.i.i.i.i108.i: ; preds = %bb9.i.i.i.i106.i
%339 = icmp eq i32 %_9.sroa.4.1.i.i.i.i93.i, %_11.sroa.4.1.i.i.i.i99.i
br i1 %339, label %bb2.i.i.i.i91.i, label %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit111.loopexit.i
_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit111.loopexit.i: ; preds = %bb12.i.i.i.i108.i
%340 = icmp ult i32 %_9.sroa.4.1.i.i.i.i93.i, %_11.sroa.4.1.i.i.i.i99.i
br i1 %340, label %_ZN4core3num7flt2dec8strategy6dragon15div_rem_upto_1617ha103570f27a56057E.exit, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i116.i"
_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit111.i: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i102.i"
br i1 %.sink.i.i.i.i.i.i.i.i100.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i116.i", label %_ZN4core3num7flt2dec8strategy6dragon15div_rem_upto_1617ha103570f27a56057E.exit
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i116.i.loopexit": ; preds = %bb9.i.i.i.i106.i
br label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i116.i"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i116.i": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i116.i.loopexit", %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit111.i, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit111.loopexit.i
%.idx.i114.i = shl nuw i32 %_0.0.sroa.speculated.i.i.i.i.i85.i, 2
%341 = sdiv i32 %.idx.i114.i, 4
%.idx.off.i115.i = or i32 %.idx.i114.i, 3
%342 = icmp ult i32 %.idx.off.i115.i, 7
br i1 %342, label %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit124.i, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i121.i.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i121.i.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i116.i"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i121.i"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i121.i": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i121.i.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i121.i"
%noborrow.0.off049.i117.i = phi i1 [ %brmerge.i.i120.i, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i121.i" ], [ true, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i121.i.preheader" ]
%iter.sroa.8.048.i118.i = phi i32 [ %345, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i121.i" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i121.i.preheader" ]
%343 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %iter.sroa.8.048.i118.i
%344 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i32 0, i32 2, i32 %iter.sroa.8.048.i118.i
%345 = add nuw i32 %iter.sroa.8.048.i118.i, 1
%346 = load i32, i32* %343, align 4, !noalias !383
%347 = load i32, i32* %344, align 4, !alias.scope !386, !noalias !387
%348 = xor i32 %347, -1
%349 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %346, i32 %348) #5
%350 = extractvalue { i32, i1 } %349, 0
%351 = extractvalue { i32, i1 } %349, 1
%..i.i119.i = zext i1 %noborrow.0.off049.i117.i to i32
%352 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %350, i32 %..i.i119.i) #5
%353 = extractvalue { i32, i1 } %352, 0
%354 = extractvalue { i32, i1 } %352, 1
%brmerge.i.i120.i = or i1 %351, %354
store i32 %353, i32* %343, align 4, !noalias !383
%355 = icmp ult i32 %345, %341
br i1 %355, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.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$4next17h262db3ddb1d38240E.exit.i121.i"
br i1 %brmerge.i.i120.i, label %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit124.i, label %bb12.i123.i
bb12.i123.i: ; preds = %bb9.i122.i
call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num6bignum8Big32x403sub14_MSG_FILE_LINE17habdcba506e46e83bE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !388
unreachable
_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit124.i: ; preds = %bb9.i122.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i116.i"
store i32 %_0.0.sroa.speculated.i.i.i.i.i85.i, i32* %39, align 4, !noalias !383
%356 = add nsw i8 %d.2.i, 1
br label %_ZN4core3num7flt2dec8strategy6dragon15div_rem_upto_1617ha103570f27a56057E.exit
_ZN4core3num7flt2dec8strategy6dragon15div_rem_upto_1617ha103570f27a56057E.exit: ; preds = %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit111.loopexit.i, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit111.i, %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit124.i
%357 = phi i32 [ %_0.0.sroa.speculated.i.i.i.i.i85.i, %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit124.i ], [ %321, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit111.i ], [ %321, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit111.loopexit.i ]
%d.3.i = phi i8 [ %356, %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit124.i ], [ %d.2.i, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit111.i ], [ %d.2.i, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit111.loopexit.i ]
%358 = icmp ult i32 %i.0384, %3
br i1 %358, label %bb58, label %panic, !prof !3
bb58: ; preds = %_ZN4core3num7flt2dec8strategy6dragon15div_rem_upto_1617ha103570f27a56057E.exit
%359 = getelementptr inbounds i8, i8* %2, i32 %i.0384
%360 = add i8 %d.3.i, 48
store i8 %360, i8* %359, align 1
%361 = add i32 %i.0384, 1
%362 = load i32, i32* %49, align 4, !alias.scope !389, !noalias !392
%363 = icmp uge i32 %362, %357
%_0.0.sroa.speculated.i.i.i101 = select i1 %363, i32 %362, i32 %357
%364 = icmp ugt i32 %_0.0.sroa.speculated.i.i.i101, 40
br i1 %364, label %bb4.i.i.i6.i102, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i103"
bb4.i.i.i6.i102: ; preds = %bb58
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %_0.0.sroa.speculated.i.i.i101, i32 40), !noalias !394
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i103": ; preds = %bb58
%365 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i101
%366 = ptrtoint i32* %365 to i32
%367 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %minus, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i101
%368 = ptrtoint i32* %367 to i32
br label %bb2.i.i107
bb2.i.i107: ; preds = %bb12.i.i124, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i103"
%other1.sroa.4.0.i.i104 = phi i32 [ %368, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i103" ], [ %other1.sroa.4.1.i.i114, %bb12.i.i124 ]
%_9.sroa.4.0.i.i105 = phi i32 [ undef, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i103" ], [ %_9.sroa.4.1.i.i109, %bb12.i.i124 ]
%self.sroa.4.0.i.i106 = phi i32 [ %366, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i103" ], [ %self.sroa.4.1.i.i110, %bb12.i.i124 ]
%369 = inttoptr i32 %self.sroa.4.0.i.i106 to i32*
%370 = icmp eq i32* %369, %206
br i1 %370, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i112", label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i108"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i108": ; preds = %bb2.i.i107
%371 = getelementptr inbounds i32, i32* %369, i32 -1
%372 = ptrtoint i32* %371 to i32
%373 = load i32, i32* %371, align 4, !alias.scope !397, !noalias !402
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i112"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i112": ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i108", %bb2.i.i107
%_9.sroa.4.1.i.i109 = phi i32 [ %_9.sroa.4.0.i.i105, %bb2.i.i107 ], [ %373, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i108" ]
%self.sroa.4.1.i.i110 = phi i32 [ %self.sroa.4.0.i.i106, %bb2.i.i107 ], [ %372, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i108" ]
%.sink.i.i.i.i32.i.i111 = phi i32 [ 0, %bb2.i.i107 ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i108" ]
%374 = inttoptr i32 %other1.sroa.4.0.i.i104 to i32*
%375 = icmp eq i32* %374, %210
br i1 %375, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i118", label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i113"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i113": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i112"
%376 = getelementptr inbounds i32, i32* %374, i32 -1
%377 = ptrtoint i32* %376 to i32
%378 = load i32, i32* %376, align 4, !alias.scope !414, !noalias !419
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i118"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i118": ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i113", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i112"
%other1.sroa.4.1.i.i114 = phi i32 [ %other1.sroa.4.0.i.i104, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i112" ], [ %377, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i113" ]
%_11.sroa.4.1.i.i115 = phi i32 [ %_9.sroa.4.0.i.i105, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i112" ], [ %378, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i113" ]
%.sink.i.i.i.i.i.i116 = phi i1 [ true, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i112" ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i113" ]
%cond.i.i117 = icmp eq i32 %.sink.i.i.i.i32.i.i111, 0
br i1 %cond.i.i117, label %bb8.i.i121, label %bb9.i.i122
bb8.i.i121: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i118"
%not..sink.i.i.i.i.i.i119 = xor i1 %.sink.i.i.i.i.i.i116, true
%..i.i120 = sext i1 %not..sink.i.i.i.i.i.i119 to i8
br label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit126"
bb9.i.i122: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i118"
br i1 %.sink.i.i.i.i.i.i116, label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit126.loopexit", label %bb12.i.i124
bb12.i.i124: ; preds = %bb9.i.i122
%379 = icmp eq i32 %_9.sroa.4.1.i.i109, %_11.sroa.4.1.i.i115
%380 = icmp ult i32 %_9.sroa.4.1.i.i109, %_11.sroa.4.1.i.i115
%..i.i.i123 = select i1 %380, i8 -1, i8 1
br i1 %379, label %bb2.i.i107, label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit126.loopexit"
"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit126.loopexit": ; preds = %bb12.i.i124, %bb9.i.i122
%_0.0.i.i125.ph = phi i8 [ %..i.i.i123, %bb12.i.i124 ], [ 1, %bb9.i.i122 ]
br label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit126"
"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit126": ; preds = %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit126.loopexit", %bb8.i.i121
%_0.0.i.i125 = phi i8 [ %..i.i120, %bb8.i.i121 ], [ %_0.0.i.i125.ph, %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit126.loopexit" ]
%381 = icmp slt i8 %_0.0.i.i125, %19
call void @llvm.lifetime.start(i64 164, i8* nonnull %211)
store i32 %357, i32* %212, align 4, !alias.scope !428, !noalias !431
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %214, i8* %41, i32 160, i32 4, i1 false) #5, !alias.scope !433
%382 = load i32, i32* %59, align 4, !alias.scope !434
%383 = icmp uge i32 %382, %357
%_0.0.sroa.speculated.i.i.i127 = select i1 %383, i32 %382, i32 %357
%384 = icmp ugt i32 %_0.0.sroa.speculated.i.i.i127, 40
br i1 %384, label %bb4.i.i.i.i128, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i131"
bb4.i.i.i.i128: ; preds = %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit126"
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %_0.0.sroa.speculated.i.i.i127, i32 40), !noalias !437
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i131": ; preds = %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit126"
%.idx.i129 = shl nuw i32 %_0.0.sroa.speculated.i.i.i127, 2
%385 = sdiv i32 %.idx.i129, 4
%.idx.off.i130 = or i32 %.idx.i129, 3
%386 = icmp ult i32 %.idx.off.i130, 7
br i1 %386, label %_ZN4core3num6bignum8Big32x403add17h356bf4f67cc7e986E.exit143, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i136.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i136.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i131"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i136"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i136": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i136.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i136"
%carry.0.off054.i132 = phi i1 [ %brmerge.i.i135, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i136" ], [ false, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i136.preheader" ]
%iter.sroa.8.053.i133 = phi i32 [ %389, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i136" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i136.preheader" ]
%387 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_175, i32 0, i32 2, i32 %iter.sroa.8.053.i133
%388 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %plus, i32 0, i32 2, i32 %iter.sroa.8.053.i133
%389 = add nuw i32 %iter.sroa.8.053.i133, 1
%390 = load i32, i32* %387, align 4, !noalias !434
%391 = load i32, i32* %388, align 4, !alias.scope !434
%392 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %390, i32 %391) #5
%393 = extractvalue { i32, i1 } %392, 0
%394 = extractvalue { i32, i1 } %392, 1
%..i.i134 = zext i1 %carry.0.off054.i132 to i32
%395 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %393, i32 %..i.i134) #5
%396 = extractvalue { i32, i1 } %395, 0
%397 = extractvalue { i32, i1 } %395, 1
%brmerge.i.i135 = or i1 %394, %397
store i32 %396, i32* %387, align 4, !noalias !434
%398 = icmp ult i32 %389, %385
br i1 %398, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i136", label %bb9.i137
bb9.i137: ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i136"
br i1 %brmerge.i.i135, label %bb12.i138, label %_ZN4core3num6bignum8Big32x403add17h356bf4f67cc7e986E.exit143
bb12.i138: ; preds = %bb9.i137
%399 = icmp ult i32 %_0.0.sroa.speculated.i.i.i127, 40
br i1 %399, label %bb14.i139, label %panic.i142, !prof !3
bb14.i139: ; preds = %bb12.i138
%400 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_175, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i127
store i32 1, i32* %400, align 4, !noalias !434
%401 = add i32 %_0.0.sroa.speculated.i.i.i127, 1
br label %_ZN4core3num6bignum8Big32x403add17h356bf4f67cc7e986E.exit143
panic.i142: ; preds = %bb12.i138
call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4F to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %_0.0.sroa.speculated.i.i.i127, i32 40), !noalias !434
unreachable
_ZN4core3num6bignum8Big32x403add17h356bf4f67cc7e986E.exit143: ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i131", %bb9.i137, %bb14.i139
%sz.0.i140 = phi i32 [ %401, %bb14.i139 ], [ %_0.0.sroa.speculated.i.i.i127, %bb9.i137 ], [ %_0.0.sroa.speculated.i.i.i127, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i131" ]
store i32 %sz.0.i140, i32* %212, align 4, !noalias !434
%402 = icmp uge i32 %sz.0.i140, %322
%_0.0.sroa.speculated.i.i.i144 = select i1 %402, i32 %sz.0.i140, i32 %322
%403 = icmp ugt i32 %_0.0.sroa.speculated.i.i.i144, 40
br i1 %403, label %bb4.i.i.i6.i145, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i146"
bb4.i.i.i6.i145: ; preds = %_ZN4core3num6bignum8Big32x403add17h356bf4f67cc7e986E.exit143
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %_0.0.sroa.speculated.i.i.i144, i32 40), !noalias !440
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i146": ; preds = %_ZN4core3num6bignum8Big32x403add17h356bf4f67cc7e986E.exit143
%404 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i144
%405 = ptrtoint i32* %404 to i32
%406 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_175, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i144
%407 = ptrtoint i32* %406 to i32
br label %bb2.i.i150
bb2.i.i150: ; preds = %bb12.i.i167, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i146"
%other1.sroa.4.0.i.i147 = phi i32 [ %407, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i146" ], [ %other1.sroa.4.1.i.i157, %bb12.i.i167 ]
%_9.sroa.4.0.i.i148 = phi i32 [ undef, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i146" ], [ %_9.sroa.4.1.i.i152, %bb12.i.i167 ]
%self.sroa.4.0.i.i149 = phi i32 [ %405, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i146" ], [ %self.sroa.4.1.i.i153, %bb12.i.i167 ]
%408 = inttoptr i32 %self.sroa.4.0.i.i149 to i32*
%409 = icmp eq i32* %408, %113
br i1 %409, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i155", label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i151"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i151": ; preds = %bb2.i.i150
%410 = getelementptr inbounds i32, i32* %408, i32 -1
%411 = ptrtoint i32* %410 to i32
%412 = load i32, i32* %410, align 4, !alias.scope !443, !noalias !448
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i155"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i155": ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i151", %bb2.i.i150
%_9.sroa.4.1.i.i152 = phi i32 [ %_9.sroa.4.0.i.i148, %bb2.i.i150 ], [ %412, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i151" ]
%self.sroa.4.1.i.i153 = phi i32 [ %self.sroa.4.0.i.i149, %bb2.i.i150 ], [ %411, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i151" ]
%.sink.i.i.i.i32.i.i154 = phi i32 [ 0, %bb2.i.i150 ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i151" ]
%413 = inttoptr i32 %other1.sroa.4.0.i.i147 to i32*
%414 = icmp eq i32* %413, %215
br i1 %414, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i161", label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i156"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i156": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i155"
%415 = getelementptr inbounds i32, i32* %413, i32 -1
%416 = ptrtoint i32* %415 to i32
%417 = load i32, i32* %415, align 4, !alias.scope !460, !noalias !465
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i161"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i161": ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i156", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i155"
%other1.sroa.4.1.i.i157 = phi i32 [ %other1.sroa.4.0.i.i147, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i155" ], [ %416, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i156" ]
%_11.sroa.4.1.i.i158 = phi i32 [ %_9.sroa.4.0.i.i148, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i155" ], [ %417, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i156" ]
%.sink.i.i.i.i.i.i159 = phi i1 [ true, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i155" ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i156" ]
%cond.i.i160 = icmp eq i32 %.sink.i.i.i.i32.i.i154, 0
br i1 %cond.i.i160, label %bb8.i.i164, label %bb9.i.i165
bb8.i.i164: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i161"
%not..sink.i.i.i.i.i.i162 = xor i1 %.sink.i.i.i.i.i.i159, true
%..i.i163 = sext i1 %not..sink.i.i.i.i.i.i162 to i8
br label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit169"
bb9.i.i165: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i161"
br i1 %.sink.i.i.i.i.i.i159, label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit169.loopexit", label %bb12.i.i167
bb12.i.i167: ; preds = %bb9.i.i165
%418 = icmp eq i32 %_9.sroa.4.1.i.i152, %_11.sroa.4.1.i.i158
%419 = icmp ult i32 %_9.sroa.4.1.i.i152, %_11.sroa.4.1.i.i158
%..i.i.i166 = select i1 %419, i8 -1, i8 1
br i1 %418, label %bb2.i.i150, label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit169.loopexit"
"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit169.loopexit": ; preds = %bb12.i.i167, %bb9.i.i165
%_0.0.i.i168.ph = phi i8 [ %..i.i.i166, %bb12.i.i167 ], [ 1, %bb9.i.i165 ]
br label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit169"
"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit169": ; preds = %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit169.loopexit", %bb8.i.i164
%_0.0.i.i168 = phi i8 [ %..i.i163, %bb8.i.i164 ], [ %_0.0.i.i168.ph, %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit169.loopexit" ]
%420 = icmp slt i8 %_0.0.i.i168, %19
call void @llvm.lifetime.end(i64 164, i8* nonnull %211)
%.15 = or i1 %381, %420
br i1 %.15, label %bb69, label %bb70
bb69: ; preds = %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit169"
br i1 %420, label %bb76, label %bb91
bb70: ; preds = %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit169"
%421 = icmp ugt i32 %357, 40
br i1 %421, label %bb4.i.i.i.i170, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i171"
bb4.i.i.i.i170: ; preds = %bb70
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %357, i32 40), !noalias !474
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i171": ; preds = %bb70
%422 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %357
%423 = icmp eq i32 %357, 0
br i1 %423, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit181, label %bb6.i176.preheader
bb6.i176.preheader: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i171"
br label %bb6.i176
bb5.i173: ; preds = %bb6.i176
%424 = icmp eq i32 %432, 0
br i1 %424, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit181, label %bb8.i177
bb6.i176: ; preds = %bb6.i176.preheader, %bb6.i176
%carry.020.i174 = phi i32 [ %432, %bb6.i176 ], [ 0, %bb6.i176.preheader ]
%iter.sroa.0.0.in19.i175 = phi i32* [ %425, %bb6.i176 ], [ %206, %bb6.i176.preheader ]
%425 = getelementptr inbounds i32, i32* %iter.sroa.0.0.in19.i175, i32 1
%426 = load i32, i32* %iter.sroa.0.0.in19.i175, align 4
%427 = zext i32 %426 to i64
%428 = mul nuw nsw i64 %427, 10
%429 = zext i32 %carry.020.i174 to i64
%430 = add nuw nsw i64 %428, %429
%431 = lshr i64 %430, 32
%432 = trunc i64 %431 to i32
%433 = trunc i64 %430 to i32
store i32 %433, i32* %iter.sroa.0.0.in19.i175, align 4
%434 = icmp eq i32* %425, %422
br i1 %434, label %bb5.i173, label %bb6.i176
bb8.i177: ; preds = %bb5.i173
%435 = icmp ult i32 %357, 40
br i1 %435, label %bb10.i178, label %panic.i180, !prof !3
bb10.i178: ; preds = %bb8.i177
store i32 %432, i32* %422, align 4
%436 = add i32 %357, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit181
panic.i180: ; preds = %bb8.i177
call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %357, i32 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit181: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i171", %bb5.i173, %bb10.i178
%437 = phi i32 [ %436, %bb10.i178 ], [ %357, %bb5.i173 ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i171" ]
store i32 %437, i32* %39, align 4
%438 = icmp ugt i32 %362, 40
br i1 %438, 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_mut17ha83eb8973692a5bbE.exit.i43"
bb4.i.i.i.i42: ; preds = %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit181
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %362, i32 40), !noalias !477
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i43": ; preds = %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit181
%439 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %minus, i32 0, i32 2, i32 %362
%440 = icmp eq i32 %362, 0
br i1 %440, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit53, label %bb6.i48.preheader
bb6.i48.preheader: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i43"
br label %bb6.i48
bb5.i45: ; preds = %bb6.i48
%441 = icmp eq i32 %449, 0
br i1 %441, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit53, label %bb8.i49
bb6.i48: ; preds = %bb6.i48.preheader, %bb6.i48
%carry.020.i46 = phi i32 [ %449, %bb6.i48 ], [ 0, %bb6.i48.preheader ]
%iter.sroa.0.0.in19.i47 = phi i32* [ %442, %bb6.i48 ], [ %210, %bb6.i48.preheader ]
%442 = getelementptr inbounds i32, i32* %iter.sroa.0.0.in19.i47, i32 1
%443 = load i32, i32* %iter.sroa.0.0.in19.i47, align 4
%444 = zext i32 %443 to i64
%445 = mul nuw nsw i64 %444, 10
%446 = zext i32 %carry.020.i46 to i64
%447 = add nuw nsw i64 %445, %446
%448 = lshr i64 %447, 32
%449 = trunc i64 %448 to i32
%450 = trunc i64 %447 to i32
store i32 %450, i32* %iter.sroa.0.0.in19.i47, align 4
%451 = icmp eq i32* %442, %439
br i1 %451, label %bb5.i45, label %bb6.i48
bb8.i49: ; preds = %bb5.i45
%452 = icmp ult i32 %362, 40
br i1 %452, label %bb10.i50, label %panic.i52, !prof !3
bb10.i50: ; preds = %bb8.i49
store i32 %449, i32* %439, align 4
%453 = add i32 %362, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit53
panic.i52: ; preds = %bb8.i49
call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %362, i32 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit53: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i43", %bb5.i45, %bb10.i50
%sz.0.i51 = phi i32 [ %453, %bb10.i50 ], [ %362, %bb5.i45 ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i43" ]
store i32 %sz.0.i51, i32* %49, align 4
%454 = icmp ugt i32 %382, 40
br i1 %454, 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_mut17ha83eb8973692a5bbE.exit.i"
bb4.i.i.i.i: ; preds = %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit53
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %382, i32 40), !noalias !480
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i": ; preds = %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit53
%455 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %plus, i32 0, i32 2, i32 %382
%456 = icmp eq i32 %382, 0
br i1 %456, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.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_mut17ha83eb8973692a5bbE.exit.i"
br label %bb6.i
bb5.i: ; preds = %bb6.i
%457 = icmp eq i32 %465, 0
br i1 %457, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit, label %bb8.i
bb6.i: ; preds = %bb6.i.preheader, %bb6.i
%carry.020.i = phi i32 [ %465, %bb6.i ], [ 0, %bb6.i.preheader ]
%iter.sroa.0.0.in19.i = phi i32* [ %458, %bb6.i ], [ %216, %bb6.i.preheader ]
%458 = getelementptr inbounds i32, i32* %iter.sroa.0.0.in19.i, i32 1
%459 = load i32, i32* %iter.sroa.0.0.in19.i, align 4
%460 = zext i32 %459 to i64
%461 = mul nuw nsw i64 %460, 10
%462 = zext i32 %carry.020.i to i64
%463 = add nuw nsw i64 %461, %462
%464 = lshr i64 %463, 32
%465 = trunc i64 %464 to i32
%466 = trunc i64 %463 to i32
store i32 %466, i32* %iter.sroa.0.0.in19.i, align 4
%467 = icmp eq i32* %458, %455
br i1 %467, label %bb5.i, label %bb6.i
bb8.i: ; preds = %bb5.i
%468 = icmp ult i32 %382, 40
br i1 %468, label %bb10.i, label %panic.i, !prof !3
bb10.i: ; preds = %bb8.i
store i32 %465, i32* %455, align 4
%469 = add i32 %382, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit
panic.i: ; preds = %bb8.i
call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %382, i32 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i", %bb5.i, %bb10.i
%sz.0.i = phi i32 [ %469, %bb10.i ], [ %382, %bb5.i ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i" ]
store i32 %sz.0.i, i32* %59, align 4
%470 = icmp uge i32 %203, %437
%_0.0.sroa.speculated.i.i.i.i.i.i = select i1 %470, i32 %203, i32 %437
%471 = icmp ugt i32 %_0.0.sroa.speculated.i.i.i.i.i.i, 40
br i1 %471, label %bb4.i.i.i6.i.i.i.i.loopexit, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i.i"
bb76: ; preds = %bb69
br i1 %381, label %bb80, label %bb84
bb80: ; preds = %bb76
%472 = call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h63cf5eeea8b6b5c3E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %mant, i32 1)
%473 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %472, i32 0, i32 0
%474 = load i32, i32* %473, align 4, !alias.scope !483, !noalias !490
%475 = load i32, i32* %66, align 4, !alias.scope !490, !noalias !483
%476 = icmp uge i32 %475, %474
%_0.0.sroa.speculated.i.i.i.i.i = select i1 %476, i32 %475, i32 %474
%477 = icmp ugt i32 %_0.0.sroa.speculated.i.i.i.i.i, 40
br i1 %477, label %bb4.i.i.i6.i.i.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i"
bb4.i.i.i6.i.i.i: ; preds = %bb80
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %_0.0.sroa.speculated.i.i.i.i.i, i32 40), !noalias !494
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i": ; preds = %bb80
%478 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %472, i32 0, i32 2, i32 0
%479 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %472, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i.i.i
%480 = ptrtoint i32* %479 to i32
%481 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i.i.i
%482 = ptrtoint i32* %481 to i32
br label %bb2.i.i.i.i
bb2.i.i.i.i: ; preds = %bb12.i.i.i.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i"
%other1.sroa.4.0.i.i.i.i = phi i32 [ %482, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i" ], [ %other1.sroa.4.1.i.i.i.i, %bb12.i.i.i.i ]
%_9.sroa.4.0.i.i.i.i = phi i32 [ undef, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i" ], [ %_9.sroa.4.1.i.i.i.i, %bb12.i.i.i.i ]
%self.sroa.4.0.i.i.i.i = phi i32 [ %480, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i" ], [ %self.sroa.4.1.i.i.i.i, %bb12.i.i.i.i ]
%483 = inttoptr i32 %self.sroa.4.0.i.i.i.i to i32*
%484 = icmp eq i32* %483, %478
br i1 %484, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.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_back17hce49ac0a94ef28eaE.exit.i.i31.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_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i": ; preds = %bb2.i.i.i.i
%485 = getelementptr inbounds i32, i32* %483, i32 -1
%486 = ptrtoint i32* %485 to i32
%487 = load i32, i32* %485, align 4, !alias.scope !497, !noalias !502
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.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_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i", %bb2.i.i.i.i
%_9.sroa.4.1.i.i.i.i = phi i32 [ %_9.sroa.4.0.i.i.i.i, %bb2.i.i.i.i ], [ %487, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i" ]
%self.sroa.4.1.i.i.i.i = phi i32 [ %self.sroa.4.0.i.i.i.i, %bb2.i.i.i.i ], [ %486, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i" ]
%.sink.i.i.i.i32.i.i.i.i = phi i32 [ 0, %bb2.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_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i" ]
%488 = inttoptr i32 %other1.sroa.4.0.i.i.i.i to i32*
%489 = icmp eq i32* %488, %113
br i1 %489, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.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_back17hce49ac0a94ef28eaE.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_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i"
%490 = getelementptr inbounds i32, i32* %488, i32 -1
%491 = ptrtoint i32* %490 to i32
%492 = load i32, i32* %490, align 4, !alias.scope !514, !noalias !519
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.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_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i"
%other1.sroa.4.1.i.i.i.i = phi i32 [ %other1.sroa.4.0.i.i.i.i, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i" ], [ %491, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i" ]
%_11.sroa.4.1.i.i.i.i = phi i32 [ %_9.sroa.4.0.i.i.i.i, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i" ], [ %492, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i" ]
%.sink.i.i.i.i.i.i.i.i = phi i1 [ true, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.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_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i" ]
%cond.i.i.i.i = icmp eq i32 %.sink.i.i.i.i32.i.i.i.i, 0
br i1 %cond.i.i.i.i, label %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit, label %bb9.i.i.i.i
bb9.i.i.i.i: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i"
br i1 %.sink.i.i.i.i.i.i.i.i, label %bb84.loopexit, label %bb12.i.i.i.i
bb12.i.i.i.i: ; preds = %bb9.i.i.i.i
%493 = icmp eq i32 %_9.sroa.4.1.i.i.i.i, %_11.sroa.4.1.i.i.i.i
br i1 %493, label %bb2.i.i.i.i, label %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.loopexit
_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.loopexit: ; preds = %bb12.i.i.i.i
%494 = icmp ult i32 %_9.sroa.4.1.i.i.i.i, %_11.sroa.4.1.i.i.i.i
br i1 %494, label %bb91, label %bb84
_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i"
br i1 %.sink.i.i.i.i.i.i.i.i, label %bb84, label %bb91
bb84.loopexit: ; preds = %bb9.i.i.i.i
br label %bb84
bb84: ; preds = %bb84.loopexit, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.loopexit, %bb76, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit
%495 = call i16 @_ZN4core3num7flt2dec8round_up17he1326f42c86fd7afE(i8* nonnull %2, i32 %3, i32 %361)
%abi_cast.sroa.4.0.extract.shift = lshr i16 %495, 8
%abi_cast.sroa.4.0.extract.trunc = trunc i16 %abi_cast.sroa.4.0.extract.shift to i8
%496 = and i16 %495, 255
%cond = icmp eq i16 %496, 1
br i1 %cond, label %bb88, label %bb91
bb88: ; preds = %bb84
%497 = icmp ult i32 %361, %3
br i1 %497, label %bb90, label %panic1, !prof !3
bb90: ; preds = %bb88
%498 = getelementptr inbounds i8, i8* %2, i32 %361
store i8 %abi_cast.sroa.4.0.extract.trunc, i8* %498, align 1
%499 = add i32 %i.0384, 2
%500 = add i16 %k.0, 1
br label %bb91
bb91: ; preds = %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.loopexit, %bb69, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit, %bb90, %bb84
%i.2 = phi i32 [ %499, %bb90 ], [ %361, %bb84 ], [ %361, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit ], [ %361, %bb69 ], [ %361, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.loopexit ]
%k.2 = phi i16 [ %500, %bb90 ], [ %k.0, %bb84 ], [ %k.0, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit ], [ %k.0, %bb69 ], [ %k.0, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.loopexit ]
%501 = getelementptr inbounds { i32, [0 x i8], i16, [2 x i8] }, { i32, [0 x i8], i16, [2 x i8] }* %0, i32 0, i32 0
store i32 %i.2, i32* %501, align 4
%502 = getelementptr inbounds { i32, [0 x i8], i16, [2 x i8] }, { i32, [0 x i8], i16, [2 x i8] }* %0, i32 0, i32 2
store i16 %k.2, i16* %502, align 4
call void @llvm.lifetime.end(i64 164, i8* nonnull %196)
call void @llvm.lifetime.end(i64 164, i8* nonnull %190)
call void @llvm.lifetime.end(i64 164, i8* nonnull %185)
call void @llvm.lifetime.end(i64 164, i8* nonnull %62)
call void @llvm.lifetime.end(i64 164, i8* nonnull %52)
call void @llvm.lifetime.end(i64 164, i8* nonnull %42)
call void @llvm.lifetime.end(i64 164, i8* nonnull %31)
ret void
panic: ; preds = %_ZN4core3num7flt2dec8strategy6dragon15div_rem_upto_1617ha103570f27a56057E.exit
call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.3 to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %i.0384, i32 %3)
unreachable
panic1: ; preds = %bb88
call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4 to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %361, i32 %3)
unreachable
}
define void @_ZN4core3num7flt2dec8strategy6dragon12format_exact17hb3cc03ea8ced3740E({ i32, [0 x i8], i16, [2 x i8] }* noalias nocapture sret dereferenceable(8), %"num::flt2dec::decoder::Decoded"* noalias nocapture readonly dereferenceable(32), i8* nonnull, i32, i16) unnamed_addr {
start:
%base.i = alloca [40 x i32], align 4
%scale8 = alloca %"num::bignum::Big32x40", align 4
%scale4 = alloca %"num::bignum::Big32x40", align 4
%scale2 = alloca %"num::bignum::Big32x40", align 4
%_83 = alloca %"num::bignum::Big32x40", align 4
%scale = alloca %"num::bignum::Big32x40", align 4
%mant = alloca %"num::bignum::Big32x40", align 4
%5 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i32 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 @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE17h9b9faa445d0e8253E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb2: ; preds = %start
%8 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i32 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 @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE17h82ec0922ae8c73b2E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb4: ; preds = %bb2
%11 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i32 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 @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE17hc879d68bfa6318b2E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb6: ; preds = %bb4
%14 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %6, i64 %12) #5
%15 = extractvalue { i64, i1 } %14, 1
br i1 %15, label %bb9, label %bb10
bb9: ; preds = %bb6
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE17h31a9fecc83eb0509E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb10: ; preds = %bb6
%16 = tail call { i64, i1 } @llvm.usub.with.overflow.i64(i64 %6, i64 %9) #5
%17 = extractvalue { i64, i1 } %16, 1
br i1 %17, label %bb13, label %bb3.i45.preheader
bb13: ; preds = %bb10
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE17h512af00bfdb8dda1E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb3.i45.preheader: ; preds = %bb10
%18 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i32 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) #5
%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 164, i8* nonnull %28)
%29 = bitcast [40 x i32]* %base.i to i8*
call void @llvm.lifetime.start(i64 160, i8* nonnull %29), !noalias !528
call void @llvm.memset.p0i8.i32(i8* nonnull %29, i8 0, i32 160, i32 4, i1 false), !noalias !528
br label %bb3.i45
bb3.i45: ; preds = %bb3.i45.preheader, %bb4.i
%v.011.i = phi i64 [ %33, %bb4.i ], [ %6, %bb3.i45.preheader ]
%sz.010.i = phi i32 [ %34, %bb4.i ], [ 0, %bb3.i45.preheader ]
%30 = icmp ult i32 %sz.010.i, 40
br i1 %30, label %bb4.i, label %panic.i, !prof !3
bb4.i: ; preds = %bb3.i45
%31 = getelementptr inbounds [40 x i32], [40 x i32]* %base.i, i32 0, i32 %sz.010.i
%32 = trunc i64 %v.011.i to i32
store i32 %32, i32* %31, align 4, !noalias !528
%33 = lshr i64 %v.011.i, 32
%34 = add nuw nsw i32 %sz.010.i, 1
%35 = icmp eq i64 %33, 0
br i1 %35, label %_ZN4core3num6bignum8Big32x408from_u6417h7f2207118839940eE.exit, label %bb3.i45
panic.i: ; preds = %bb3.i45
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4B to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %sz.010.i, i32 40), !noalias !528
unreachable
_ZN4core3num6bignum8Big32x408from_u6417h7f2207118839940eE.exit: ; preds = %bb4.i
%36 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 0
store i32 %34, i32* %36, align 4, !alias.scope !528
%37 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2
%38 = bitcast [40 x i32]* %37 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %38, i8* nonnull %29, i32 160, i32 4, i1 false)
call void @llvm.lifetime.end(i64 160, i8* nonnull %29), !noalias !528
%39 = bitcast %"num::bignum::Big32x40"* %scale to i8*
call void @llvm.lifetime.start(i64 164, i8* nonnull %39)
call void @llvm.lifetime.start(i64 160, i8* nonnull %29) #5, !noalias !531
%40 = getelementptr inbounds [40 x i32], [40 x i32]* %base.i, i32 0, i32 0
%41 = getelementptr inbounds [40 x i32], [40 x i32]* %base.i, i32 0, i32 1
%42 = bitcast i32* %41 to i8*
call void @llvm.memset.p0i8.i32(i8* nonnull %42, i8 0, i32 156, i32 4, i1 false) #5, !noalias !531
store i32 1, i32* %40, align 4, !noalias !531
%43 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i32 0, i32 0
store i32 1, i32* %43, align 4, !alias.scope !531
%44 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i32 0, i32 2
%45 = bitcast [40 x i32]* %44 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %45, i8* nonnull %29, i32 160, i32 4, i1 false) #5
call void @llvm.lifetime.end(i64 160, i8* nonnull %29) #5, !noalias !531
%46 = icmp slt i16 %19, 0
br i1 %46, label %bb18, label %bb19
bb18: ; preds = %_ZN4core3num6bignum8Big32x408from_u6417h7f2207118839940eE.exit
%47 = sub i16 0, %19
%48 = sext i16 %47 to i32
%49 = call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h63cf5eeea8b6b5c3E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %scale, i32 %48)
br label %bb22
bb19: ; preds = %_ZN4core3num6bignum8Big32x408from_u6417h7f2207118839940eE.exit
%50 = sext i16 %19 to i32
%51 = call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h63cf5eeea8b6b5c3E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %mant, i32 %50)
br label %bb22
bb22: ; preds = %bb19, %bb18
%52 = icmp sgt i16 %27, -1
br i1 %52, label %bb23, label %bb24
bb23: ; preds = %bb22
%53 = sext i16 %27 to i32
%54 = call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num7flt2dec8strategy6dragon9mul_pow1017h32f5e2ef03bbcff6E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %scale, i32 %53)
br label %bb27
bb24: ; preds = %bb22
%55 = sub i16 0, %27
%56 = sext i16 %55 to i32
%57 = call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num7flt2dec8strategy6dragon9mul_pow1017h32f5e2ef03bbcff6E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %mant, i32 %56)
br label %bb27
bb27: ; preds = %bb24, %bb23
%58 = bitcast %"num::bignum::Big32x40"* %_83 to i8*
call void @llvm.lifetime.start(i64 164, i8* nonnull %58)
%59 = load i32, i32* %43, align 4, !alias.scope !534, !noalias !537
%60 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_83, i32 0, i32 0
store i32 %59, i32* %60, align 4, !alias.scope !537, !noalias !534
%61 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_83, i32 0, i32 2
%62 = bitcast [40 x i32]* %61 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %62, i8* %45, i32 160, i32 4, i1 false) #5, !alias.scope !539
%63 = icmp ugt i32 %3, 9
br i1 %63, label %bb2.i.lr.ph.i, label %bb7.i
bb2.i.lr.ph.i: ; preds = %bb27
%64 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_83, i32 0, i32 2, i32 0
%65 = icmp ugt i32 %59, 40
br i1 %65, 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_mut17ha83eb8973692a5bbE.exit.i.i.preheader"
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i.i.preheader": ; preds = %bb2.i.lr.ph.i
br label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i.i"
bb4.i.i.i.i.i.loopexit: ; preds = %_ZN4core3num6bignum8Big32x4013div_rem_small17h28ef79fecd62b092E.exit.i.bb2.i.i60_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.lr.ph.i
%.lcssa693 = phi i32 [ %59, %bb2.i.lr.ph.i ], [ %.pre, %bb4.i.i.i.i.i.loopexit ]
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %.lcssa693, i32 40), !noalias !540
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i.i": ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i.i.preheader", %_ZN4core3num6bignum8Big32x4013div_rem_small17h28ef79fecd62b092E.exit.i.bb2.i.i60_crit_edge
%n.017.i697 = phi i32 [ %80, %_ZN4core3num6bignum8Big32x4013div_rem_small17h28ef79fecd62b092E.exit.i.bb2.i.i60_crit_edge ], [ %3, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i.i.preheader" ]
%66 = phi i32 [ %.pre, %_ZN4core3num6bignum8Big32x4013div_rem_small17h28ef79fecd62b092E.exit.i.bb2.i.i60_crit_edge ], [ %59, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i.i.preheader" ]
%67 = icmp eq i32 %66, 0
br i1 %67, label %_ZN4core3num6bignum8Big32x4013div_rem_small17h28ef79fecd62b092E.exit.i, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.lr.ph.i.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.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_mut17ha83eb8973692a5bbE.exit.i.i"
%68 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_83, i32 0, i32 2, i32 %66
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.i.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.i.i": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.i.i", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.lr.ph.i.i"
%borrow.025.i.i = phi i32 [ 0, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.lr.ph.i.i" ], [ %78, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.i.i" ]
%iter.sroa.4.0.in24.i.i = phi i32* [ %68, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.lr.ph.i.i" ], [ %69, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.i.i" ]
%69 = getelementptr inbounds i32, i32* %iter.sroa.4.0.in24.i.i, i32 -1
%70 = load i32, i32* %69, align 4, !noalias !545
%71 = zext i32 %borrow.025.i.i to i64
%72 = shl nuw i64 %71, 32
%73 = zext i32 %70 to i64
%74 = or i64 %73, %72
%75 = udiv i64 %74, 1000000000
%76 = trunc i64 %75 to i32
%77 = urem i64 %74, 1000000000
%78 = trunc i64 %77 to i32
store i32 %76, i32* %69, align 4, !noalias !545
%79 = icmp eq i32* %69, %64
br i1 %79, label %_ZN4core3num6bignum8Big32x4013div_rem_small17h28ef79fecd62b092E.exit.i.loopexit, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.i.i"
_ZN4core3num6bignum8Big32x4013div_rem_small17h28ef79fecd62b092E.exit.i.loopexit: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.i.i"
br label %_ZN4core3num6bignum8Big32x4013div_rem_small17h28ef79fecd62b092E.exit.i
_ZN4core3num6bignum8Big32x4013div_rem_small17h28ef79fecd62b092E.exit.i: ; preds = %_ZN4core3num6bignum8Big32x4013div_rem_small17h28ef79fecd62b092E.exit.i.loopexit, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i.i"
%80 = add i32 %n.017.i697, -9
%81 = icmp ugt i32 %80, 9
%.pre = load i32, i32* %60, align 4
br i1 %81, label %_ZN4core3num6bignum8Big32x4013div_rem_small17h28ef79fecd62b092E.exit.i.bb2.i.i60_crit_edge, label %bb7.i.loopexit
_ZN4core3num6bignum8Big32x4013div_rem_small17h28ef79fecd62b092E.exit.i.bb2.i.i60_crit_edge: ; preds = %_ZN4core3num6bignum8Big32x4013div_rem_small17h28ef79fecd62b092E.exit.i
%82 = icmp ugt i32 %.pre, 40
br i1 %82, 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_mut17ha83eb8973692a5bbE.exit.i.i"
bb7.i.loopexit: ; preds = %_ZN4core3num6bignum8Big32x4013div_rem_small17h28ef79fecd62b092E.exit.i
br label %bb7.i
bb7.i: ; preds = %bb7.i.loopexit, %bb27
%83 = phi i32 [ %59, %bb27 ], [ %.pre, %bb7.i.loopexit ]
%n.0.lcssa.i = phi i32 [ %3, %bb27 ], [ %80, %bb7.i.loopexit ]
%84 = getelementptr inbounds [10 x i32], [10 x i32]* @_ZN4core3num7flt2dec8strategy6dragon8TWOPOW1017h61581260e689f9b2E, i32 0, i32 %n.0.lcssa.i
%85 = load i32, i32* %84, align 4
%86 = icmp ugt i32 %83, 40
br i1 %86, 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_mut17ha83eb8973692a5bbE.exit.i9.i"
bb4.i.i.i.i8.i: ; preds = %bb7.i
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %83, i32 40), !noalias !546
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i9.i": ; preds = %bb7.i
%87 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_83, i32 0, i32 2, i32 0
%88 = icmp eq i32 %83, 0
br i1 %88, label %_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h71e3fea31f513a11E.exit, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.lr.ph.i10.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.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_mut17ha83eb8973692a5bbE.exit.i9.i"
%89 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_83, i32 0, i32 2, i32 %83
%90 = zext i32 %85 to i64
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.i13.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.i13.i": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.i13.i", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.lr.ph.i10.i"
%borrow.025.i11.i = phi i32 [ 0, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.lr.ph.i10.i" ], [ %100, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.i13.i" ]
%iter.sroa.4.0.in24.i12.i = phi i32* [ %89, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.lr.ph.i10.i" ], [ %91, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.i13.i" ]
%91 = getelementptr inbounds i32, i32* %iter.sroa.4.0.in24.i12.i, i32 -1
%92 = load i32, i32* %91, align 4, !noalias !551
%93 = zext i32 %borrow.025.i11.i to i64
%94 = shl nuw i64 %93, 32
%95 = zext i32 %92 to i64
%96 = or i64 %95, %94
%97 = udiv i64 %96, %90
%98 = trunc i64 %97 to i32
%99 = urem i64 %96, %90
%100 = trunc i64 %99 to i32
store i32 %98, i32* %91, align 4, !noalias !551
%101 = icmp eq i32* %91, %87
br i1 %101, label %_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h71e3fea31f513a11E.exit.loopexit, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.i13.i"
_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h71e3fea31f513a11E.exit.loopexit: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17he934e70a99978055E.exit.i13.i"
%.pre475 = load i32, i32* %60, align 4, !noalias !552
br label %_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h71e3fea31f513a11E.exit
_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h71e3fea31f513a11E.exit: ; preds = %_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h71e3fea31f513a11E.exit.loopexit, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i9.i"
%102 = phi i32 [ %.pre475, %_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h71e3fea31f513a11E.exit.loopexit ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i9.i" ]
%103 = load i32, i32* %36, align 4, !alias.scope !552
%104 = icmp uge i32 %103, %102
%_0.0.sroa.speculated.i.i.i61 = select i1 %104, i32 %103, i32 %102
%105 = icmp ugt i32 %_0.0.sroa.speculated.i.i.i61, 40
br i1 %105, 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$5index17hfb69274827e43359E.exit.i63"
bb4.i.i.i.i62: ; preds = %_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h71e3fea31f513a11E.exit
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %_0.0.sroa.speculated.i.i.i61, i32 40), !noalias !555
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i63": ; preds = %_ZN4core3num7flt2dec8strategy6dragon10div_2pow1017h71e3fea31f513a11E.exit
%.idx.i = shl nuw i32 %_0.0.sroa.speculated.i.i.i61, 2
%106 = sdiv i32 %.idx.i, 4
%.idx.off.i = or i32 %.idx.i, 3
%107 = icmp ult i32 %.idx.off.i, 7
br i1 %107, label %_ZN4core3num6bignum8Big32x403add17h356bf4f67cc7e986E.exit, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i63"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i"
%carry.0.off054.i = phi i1 [ %brmerge.i.i, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i" ], [ false, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.preheader" ]
%iter.sroa.8.053.i = phi i32 [ %110, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i.preheader" ]
%108 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_83, i32 0, i32 2, i32 %iter.sroa.8.053.i
%109 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %iter.sroa.8.053.i
%110 = add nuw i32 %iter.sroa.8.053.i, 1
%111 = load i32, i32* %108, align 4, !noalias !552
%112 = load i32, i32* %109, align 4, !alias.scope !552
%113 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %111, i32 %112) #5
%114 = extractvalue { i32, i1 } %113, 0
%115 = extractvalue { i32, i1 } %113, 1
%..i.i64 = zext i1 %carry.0.off054.i to i32
%116 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %114, i32 %..i.i64) #5
%117 = extractvalue { i32, i1 } %116, 0
%118 = extractvalue { i32, i1 } %116, 1
%brmerge.i.i = or i1 %115, %118
store i32 %117, i32* %108, align 4, !noalias !552
%119 = icmp ult i32 %110, %106
br i1 %119, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.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$4next17h262db3ddb1d38240E.exit.i"
br i1 %brmerge.i.i, label %bb12.i, label %_ZN4core3num6bignum8Big32x403add17h356bf4f67cc7e986E.exit
bb12.i: ; preds = %bb9.i
%120 = icmp ult i32 %_0.0.sroa.speculated.i.i.i61, 40
br i1 %120, label %bb14.i, label %panic.i66, !prof !3
bb14.i: ; preds = %bb12.i
%121 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_83, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i61
store i32 1, i32* %121, align 4, !noalias !552
%122 = add i32 %_0.0.sroa.speculated.i.i.i61, 1
br label %_ZN4core3num6bignum8Big32x403add17h356bf4f67cc7e986E.exit
panic.i66: ; preds = %bb12.i
call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4F to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %_0.0.sroa.speculated.i.i.i61, i32 40), !noalias !552
unreachable
_ZN4core3num6bignum8Big32x403add17h356bf4f67cc7e986E.exit: ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i63", %bb9.i, %bb14.i
%sz.0.i65 = phi i32 [ %122, %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$5index17hfb69274827e43359E.exit.i63" ]
store i32 %sz.0.i65, i32* %60, align 4, !noalias !552
%123 = load i32, i32* %43, align 4, !alias.scope !558, !noalias !565
%124 = icmp uge i32 %123, %sz.0.i65
%_0.0.sroa.speculated.i.i.i.i.i = select i1 %124, i32 %123, i32 %sz.0.i65
%125 = icmp ugt i32 %_0.0.sroa.speculated.i.i.i.i.i, 40
br i1 %125, label %bb4.i.i.i6.i.i.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i"
bb4.i.i.i6.i.i.i: ; preds = %_ZN4core3num6bignum8Big32x403add17h356bf4f67cc7e986E.exit
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %_0.0.sroa.speculated.i.i.i.i.i, i32 40), !noalias !569
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i": ; preds = %_ZN4core3num6bignum8Big32x403add17h356bf4f67cc7e986E.exit
%126 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %_83, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i.i.i
%127 = ptrtoint i32* %126 to i32
%128 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i32 0, i32 2, i32 0
%129 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i.i.i
%130 = ptrtoint i32* %129 to i32
br label %bb2.i.i.i.i
bb2.i.i.i.i: ; preds = %bb12.i.i.i.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i"
%other1.sroa.4.0.i.i.i.i = phi i32 [ %130, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i" ], [ %other1.sroa.4.1.i.i.i.i, %bb12.i.i.i.i ]
%_9.sroa.4.0.i.i.i.i = phi i32 [ undef, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i" ], [ %_9.sroa.4.1.i.i.i.i, %bb12.i.i.i.i ]
%self.sroa.4.0.i.i.i.i = phi i32 [ %127, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i" ], [ %self.sroa.4.1.i.i.i.i, %bb12.i.i.i.i ]
%131 = inttoptr i32 %self.sroa.4.0.i.i.i.i to i32*
%132 = icmp eq i32* %131, %87
br i1 %132, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.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_back17hce49ac0a94ef28eaE.exit.i.i31.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_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i": ; preds = %bb2.i.i.i.i
%133 = getelementptr inbounds i32, i32* %131, i32 -1
%134 = ptrtoint i32* %133 to i32
%135 = load i32, i32* %133, align 4, !alias.scope !572, !noalias !577
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.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_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i", %bb2.i.i.i.i
%_9.sroa.4.1.i.i.i.i = phi i32 [ %_9.sroa.4.0.i.i.i.i, %bb2.i.i.i.i ], [ %135, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i" ]
%self.sroa.4.1.i.i.i.i = phi i32 [ %self.sroa.4.0.i.i.i.i, %bb2.i.i.i.i ], [ %134, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i" ]
%.sink.i.i.i.i32.i.i.i.i = phi i32 [ 0, %bb2.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_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i" ]
%136 = inttoptr i32 %other1.sroa.4.0.i.i.i.i to i32*
%137 = icmp eq i32* %136, %128
br i1 %137, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.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_back17hce49ac0a94ef28eaE.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_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i"
%138 = getelementptr inbounds i32, i32* %136, i32 -1
%139 = ptrtoint i32* %138 to i32
%140 = load i32, i32* %138, align 4, !alias.scope !589, !noalias !594
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.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_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i"
%other1.sroa.4.1.i.i.i.i = phi i32 [ %other1.sroa.4.0.i.i.i.i, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i" ], [ %139, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i" ]
%_11.sroa.4.1.i.i.i.i = phi i32 [ %_9.sroa.4.0.i.i.i.i, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i" ], [ %140, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i" ]
%.sink.i.i.i.i.i.i.i.i = phi i1 [ true, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.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_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i" ]
%cond.i.i.i.i = icmp eq i32 %.sink.i.i.i.i32.i.i.i.i, 0
br i1 %cond.i.i.i.i, label %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit, label %bb9.i.i.i.i
bb9.i.i.i.i: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i"
br i1 %.sink.i.i.i.i.i.i.i.i, label %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.thread, label %bb12.i.i.i.i
_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.thread: ; preds = %bb9.i.i.i.i
call void @llvm.lifetime.end(i64 164, i8* nonnull %58)
br label %bb33
bb12.i.i.i.i: ; preds = %bb9.i.i.i.i
%141 = icmp eq i32 %_9.sroa.4.1.i.i.i.i, %_11.sroa.4.1.i.i.i.i
br i1 %141, label %bb2.i.i.i.i, label %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.loopexit
_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.loopexit: ; preds = %bb12.i.i.i.i
%142 = icmp ult i32 %_9.sroa.4.1.i.i.i.i, %_11.sroa.4.1.i.i.i.i
call void @llvm.lifetime.end(i64 164, i8* nonnull %58)
br i1 %142, label %bb34, label %bb33
_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i"
call void @llvm.lifetime.end(i64 164, i8* nonnull %58)
br i1 %.sink.i.i.i.i.i.i.i.i, label %bb33, label %bb34
bb33: ; preds = %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.loopexit, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.thread, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit
%143 = add i16 %27, 1
br label %bb36
bb34: ; preds = %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit.loopexit, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit
%144 = icmp ugt i32 %103, 40
br i1 %144, label %bb4.i.i.i.i68, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i69"
bb4.i.i.i.i68: ; preds = %bb34
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %103, i32 40), !noalias !603
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i69": ; preds = %bb34
%145 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %103
%146 = icmp eq i32 %103, 0
br i1 %146, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit79, label %bb6.lr.ph.i70
bb6.lr.ph.i70: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i69"
%147 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 0
br label %bb6.i74
bb5.i71: ; preds = %bb6.i74
%148 = icmp eq i32 %156, 0
br i1 %148, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit79, label %bb8.i75
bb6.i74: ; preds = %bb6.i74, %bb6.lr.ph.i70
%carry.020.i72 = phi i32 [ 0, %bb6.lr.ph.i70 ], [ %156, %bb6.i74 ]
%iter.sroa.0.0.in19.i73 = phi i32* [ %147, %bb6.lr.ph.i70 ], [ %149, %bb6.i74 ]
%149 = getelementptr inbounds i32, i32* %iter.sroa.0.0.in19.i73, i32 1
%150 = load i32, i32* %iter.sroa.0.0.in19.i73, align 4
%151 = zext i32 %150 to i64
%152 = mul nuw nsw i64 %151, 10
%153 = zext i32 %carry.020.i72 to i64
%154 = add nuw nsw i64 %152, %153
%155 = lshr i64 %154, 32
%156 = trunc i64 %155 to i32
%157 = trunc i64 %154 to i32
store i32 %157, i32* %iter.sroa.0.0.in19.i73, align 4
%158 = icmp eq i32* %149, %145
br i1 %158, label %bb5.i71, label %bb6.i74
bb8.i75: ; preds = %bb5.i71
%159 = icmp ult i32 %103, 40
br i1 %159, label %bb10.i76, label %panic.i78, !prof !3
bb10.i76: ; preds = %bb8.i75
store i32 %156, i32* %145, align 4
%160 = add i32 %103, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit79
panic.i78: ; preds = %bb8.i75
call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %103, i32 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit79: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i69", %bb5.i71, %bb10.i76
%sz.0.i77 = phi i32 [ %160, %bb10.i76 ], [ %103, %bb5.i71 ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i69" ]
store i32 %sz.0.i77, i32* %36, align 4
br label %bb36
bb36: ; preds = %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit79, %bb33
%k.0 = phi i16 [ %143, %bb33 ], [ %27, %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit79 ]
%161 = icmp slt i16 %k.0, %4
br i1 %161, label %bb90, label %bb38
bb38: ; preds = %bb36
%162 = sext i16 %k.0 to i32
%163 = sext i16 %4 to i32
%164 = sub nsw i32 %162, %163
%165 = icmp ult i32 %164, %3
%166 = sub i16 %k.0, %4
%167 = sext i16 %166 to i32
%len.0 = select i1 %165, i32 %167, i32 %3
%168 = icmp eq i32 %len.0, 0
br i1 %168, label %bb90, label %bb57.lr.ph
bb57.lr.ph: ; preds = %bb38
%169 = bitcast %"num::bignum::Big32x40"* %scale2 to i8*
call void @llvm.lifetime.start(i64 164, i8* nonnull %169)
%170 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale2, i32 0, i32 0
store i32 %123, i32* %170, align 4, !alias.scope !606, !noalias !609
%171 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale2, i32 0, i32 2
%172 = bitcast [40 x i32]* %171 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %172, i8* %45, i32 160, i32 4, i1 false) #5, !alias.scope !611
%173 = call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h63cf5eeea8b6b5c3E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %scale2, i32 1)
%174 = bitcast %"num::bignum::Big32x40"* %scale4 to i8*
call void @llvm.lifetime.start(i64 164, i8* nonnull %174)
%175 = load i32, i32* %43, align 4, !alias.scope !612, !noalias !615
%176 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale4, i32 0, i32 0
store i32 %175, i32* %176, align 4, !alias.scope !615, !noalias !612
%177 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale4, i32 0, i32 2
%178 = bitcast [40 x i32]* %177 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %178, i8* %45, i32 160, i32 4, i1 false) #5, !alias.scope !617
%179 = call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h63cf5eeea8b6b5c3E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %scale4, i32 2)
%180 = bitcast %"num::bignum::Big32x40"* %scale8 to i8*
call void @llvm.lifetime.start(i64 164, i8* nonnull %180)
%181 = load i32, i32* %43, align 4, !alias.scope !618, !noalias !621
%182 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale8, i32 0, i32 0
store i32 %181, i32* %182, align 4, !alias.scope !621, !noalias !618
%183 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale8, i32 0, i32 2
%184 = bitcast [40 x i32]* %183 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %184, i8* %45, i32 160, i32 4, i1 false) #5, !alias.scope !623
%185 = call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h63cf5eeea8b6b5c3E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %scale8, i32 3)
%186 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 0
%187 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale8, i32 0, i32 2, i32 0
%188 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale4, i32 0, i32 2, i32 0
%189 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale2, i32 0, i32 2, i32 0
br label %bb57
bb56: ; preds = %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit59
call void @llvm.lifetime.end(i64 164, i8* nonnull %180)
call void @llvm.lifetime.end(i64 164, i8* nonnull %174)
call void @llvm.lifetime.end(i64 164, i8* nonnull %169)
br label %bb90
bb57: ; preds = %bb57.lr.ph, %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit59
%iter.sroa.0.0364 = phi i32 [ 0, %bb57.lr.ph ], [ %190, %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit59 ]
%190 = add nuw i32 %iter.sroa.0.0364, 1
%191 = call zeroext i1 @_ZN4core3num6bignum8Big32x407is_zero17h40cf186556632f50E(%"num::bignum::Big32x40"* noalias nonnull readonly dereferenceable(164) %mant)
br i1 %191, label %bb2.i.i120, label %bb60
bb2.i.i120: ; preds = %bb57
%192 = icmp ugt i32 %len.0, %3
br i1 %192, label %bb4.i.i, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h4bca851de9a35b35E.exit"
bb4.i.i: ; preds = %bb2.i.i120
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %len.0, i32 %3), !noalias !624
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h4bca851de9a35b35E.exit": ; preds = %bb2.i.i120
%193 = sub i32 %len.0, %iter.sroa.0.0364
%194 = icmp eq i32 %193, 0
br i1 %194, 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_mut17h4bca851de9a35b35E.exit"
%195 = getelementptr inbounds i8, i8* %2, i32 %iter.sroa.0.0364
call void @llvm.memset.p0i8.i32(i8* %195, i8 48, i32 %193, i32 1, i1 false)
br label %bb65
bb60: ; preds = %bb57
%196 = load i32, i32* %36, align 4, !alias.scope !629, !noalias !636
%197 = load i32, i32* %182, align 4, !alias.scope !636, !noalias !629
%198 = icmp uge i32 %197, %196
%_0.0.sroa.speculated.i.i.i.i.i121 = select i1 %198, i32 %197, i32 %196
%199 = icmp ugt i32 %_0.0.sroa.speculated.i.i.i.i.i121, 40
br i1 %199, label %bb4.i.i.i6.i.i.i122, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i123"
bb4.i.i.i6.i.i.i122: ; preds = %bb60
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %_0.0.sroa.speculated.i.i.i.i.i121, i32 40), !noalias !640
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i123": ; preds = %bb60
%200 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i.i.i121
%201 = ptrtoint i32* %200 to i32
%202 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale8, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i.i.i121
%203 = ptrtoint i32* %202 to i32
br label %bb2.i.i.i.i127
bb2.i.i.i.i127: ; preds = %bb12.i.i.i.i144, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i123"
%other1.sroa.4.0.i.i.i.i124 = phi i32 [ %203, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i123" ], [ %other1.sroa.4.1.i.i.i.i134, %bb12.i.i.i.i144 ]
%_9.sroa.4.0.i.i.i.i125 = phi i32 [ undef, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i123" ], [ %_9.sroa.4.1.i.i.i.i129, %bb12.i.i.i.i144 ]
%self.sroa.4.0.i.i.i.i126 = phi i32 [ %201, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i123" ], [ %self.sroa.4.1.i.i.i.i130, %bb12.i.i.i.i144 ]
%204 = inttoptr i32 %self.sroa.4.0.i.i.i.i126 to i32*
%205 = icmp eq i32* %204, %186
br i1 %205, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.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_back17hce49ac0a94ef28eaE.exit.i.i31.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_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i128": ; preds = %bb2.i.i.i.i127
%206 = getelementptr inbounds i32, i32* %204, i32 -1
%207 = ptrtoint i32* %206 to i32
%208 = load i32, i32* %206, align 4, !alias.scope !643, !noalias !648
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i132"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.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_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i128", %bb2.i.i.i.i127
%_9.sroa.4.1.i.i.i.i129 = phi i32 [ %_9.sroa.4.0.i.i.i.i125, %bb2.i.i.i.i127 ], [ %208, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i128" ]
%self.sroa.4.1.i.i.i.i130 = phi i32 [ %self.sroa.4.0.i.i.i.i126, %bb2.i.i.i.i127 ], [ %207, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i128" ]
%.sink.i.i.i.i32.i.i.i.i131 = phi i32 [ 0, %bb2.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_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i128" ]
%209 = inttoptr i32 %other1.sroa.4.0.i.i.i.i124 to i32*
%210 = icmp eq i32* %209, %187
br i1 %210, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.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_back17hce49ac0a94ef28eaE.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_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i133": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i132"
%211 = getelementptr inbounds i32, i32* %209, i32 -1
%212 = ptrtoint i32* %211 to i32
%213 = load i32, i32* %211, align 4, !alias.scope !660, !noalias !665
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i138"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.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_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i133", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i132"
%other1.sroa.4.1.i.i.i.i134 = phi i32 [ %other1.sroa.4.0.i.i.i.i124, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i132" ], [ %212, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i133" ]
%_11.sroa.4.1.i.i.i.i135 = phi i32 [ %_9.sroa.4.0.i.i.i.i125, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i132" ], [ %213, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i133" ]
%.sink.i.i.i.i.i.i.i.i136 = phi i1 [ true, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.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_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i133" ]
%cond.i.i.i.i137 = icmp eq i32 %.sink.i.i.i.i32.i.i.i.i131, 0
br i1 %cond.i.i.i.i137, label %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit148, label %bb9.i.i.i.i142
bb9.i.i.i.i142: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i138"
br i1 %.sink.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$5index17hfb69274827e43359E.exit.i167.loopexit", label %bb12.i.i.i.i144
bb12.i.i.i.i144: ; preds = %bb9.i.i.i.i142
%214 = icmp eq i32 %_9.sroa.4.1.i.i.i.i129, %_11.sroa.4.1.i.i.i.i135
br i1 %214, label %bb2.i.i.i.i127, label %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit148.loopexit
_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit148.loopexit: ; preds = %bb12.i.i.i.i144
%215 = icmp ult i32 %_9.sroa.4.1.i.i.i.i129, %_11.sroa.4.1.i.i.i.i135
br i1 %215, label %bb72, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i167"
_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit148: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i138"
br i1 %.sink.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$5index17hfb69274827e43359E.exit.i167", 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_mut17h4bca851de9a35b35E.exit"
%216 = getelementptr inbounds { i32, [0 x i8], i16, [2 x i8] }, { i32, [0 x i8], i16, [2 x i8] }* %0, i32 0, i32 0
store i32 %len.0, i32* %216, align 4
%217 = getelementptr inbounds { i32, [0 x i8], i16, [2 x i8] }, { i32, [0 x i8], i16, [2 x i8] }* %0, i32 0, i32 2
store i16 %k.0, i16* %217, align 4
call void @llvm.lifetime.end(i64 164, i8* nonnull %180)
call void @llvm.lifetime.end(i64 164, i8* nonnull %174)
call void @llvm.lifetime.end(i64 164, i8* nonnull %169)
call void @llvm.lifetime.end(i64 164, i8* nonnull %39)
call void @llvm.lifetime.end(i64 164, 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$5index17hfb69274827e43359E.exit.i167.loopexit": ; preds = %bb9.i.i.i.i142
br label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i167"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i167": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i167.loopexit", %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit148.loopexit, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit148
%.idx.i165 = shl nuw i32 %_0.0.sroa.speculated.i.i.i.i.i121, 2
%218 = sdiv i32 %.idx.i165, 4
%.idx.off.i166 = or i32 %.idx.i165, 3
%219 = icmp ult i32 %.idx.off.i166, 7
br i1 %219, label %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit175, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i172.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i172.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i167"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i172"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i172": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i172.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i172"
%noborrow.0.off049.i168 = phi i1 [ %brmerge.i.i171, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i172" ], [ true, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i172.preheader" ]
%iter.sroa.8.048.i169 = phi i32 [ %222, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i172" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i172.preheader" ]
%220 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %iter.sroa.8.048.i169
%221 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale8, i32 0, i32 2, i32 %iter.sroa.8.048.i169
%222 = add nuw i32 %iter.sroa.8.048.i169, 1
%223 = load i32, i32* %220, align 4, !noalias !674
%224 = load i32, i32* %221, align 4, !alias.scope !674
%225 = xor i32 %224, -1
%226 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %223, i32 %225) #5
%227 = extractvalue { i32, i1 } %226, 0
%228 = extractvalue { i32, i1 } %226, 1
%..i.i170 = zext i1 %noborrow.0.off049.i168 to i32
%229 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %227, i32 %..i.i170) #5
%230 = extractvalue { i32, i1 } %229, 0
%231 = extractvalue { i32, i1 } %229, 1
%brmerge.i.i171 = or i1 %228, %231
store i32 %230, i32* %220, align 4, !noalias !674
%232 = icmp ult i32 %222, %218
br i1 %232, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.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$4next17h262db3ddb1d38240E.exit.i172"
br i1 %brmerge.i.i171, label %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit175, label %bb12.i174
bb12.i174: ; preds = %bb9.i173
call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num6bignum8Big32x403sub14_MSG_FILE_LINE17habdcba506e46e83bE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !674
unreachable
_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit175: ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i167", %bb9.i173
store i32 %_0.0.sroa.speculated.i.i.i.i.i121, i32* %36, align 4, !noalias !674
br label %bb72
bb72: ; preds = %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit148.loopexit, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit148, %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit175
%233 = phi i32 [ %_0.0.sroa.speculated.i.i.i.i.i121, %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit175 ], [ %196, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit148 ], [ %196, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit148.loopexit ]
%d.0 = phi i8 [ 8, %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit175 ], [ 0, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit148 ], [ 0, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit148.loopexit ]
%234 = load i32, i32* %176, align 4, !alias.scope !677, !noalias !684
%235 = icmp uge i32 %234, %233
%_0.0.sroa.speculated.i.i.i.i.i176 = select i1 %235, i32 %234, i32 %233
%236 = icmp ugt i32 %_0.0.sroa.speculated.i.i.i.i.i176, 40
br i1 %236, label %bb4.i.i.i6.i.i.i177, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i178"
bb4.i.i.i6.i.i.i177: ; preds = %bb72
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %_0.0.sroa.speculated.i.i.i.i.i176, i32 40), !noalias !688
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i178": ; preds = %bb72
%237 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i.i.i176
%238 = ptrtoint i32* %237 to i32
%239 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale4, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i.i.i176
%240 = ptrtoint i32* %239 to i32
br label %bb2.i.i.i.i182
bb2.i.i.i.i182: ; preds = %bb12.i.i.i.i199, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i178"
%other1.sroa.4.0.i.i.i.i179 = phi i32 [ %240, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i178" ], [ %other1.sroa.4.1.i.i.i.i189, %bb12.i.i.i.i199 ]
%_9.sroa.4.0.i.i.i.i180 = phi i32 [ undef, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i178" ], [ %_9.sroa.4.1.i.i.i.i184, %bb12.i.i.i.i199 ]
%self.sroa.4.0.i.i.i.i181 = phi i32 [ %238, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i178" ], [ %self.sroa.4.1.i.i.i.i185, %bb12.i.i.i.i199 ]
%241 = inttoptr i32 %self.sroa.4.0.i.i.i.i181 to i32*
%242 = icmp eq i32* %241, %186
br i1 %242, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i187", label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i183"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i183": ; preds = %bb2.i.i.i.i182
%243 = getelementptr inbounds i32, i32* %241, i32 -1
%244 = ptrtoint i32* %243 to i32
%245 = load i32, i32* %243, align 4, !alias.scope !691, !noalias !696
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i187"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i187": ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i183", %bb2.i.i.i.i182
%_9.sroa.4.1.i.i.i.i184 = phi i32 [ %_9.sroa.4.0.i.i.i.i180, %bb2.i.i.i.i182 ], [ %245, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i183" ]
%self.sroa.4.1.i.i.i.i185 = phi i32 [ %self.sroa.4.0.i.i.i.i181, %bb2.i.i.i.i182 ], [ %244, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i183" ]
%.sink.i.i.i.i32.i.i.i.i186 = phi i32 [ 0, %bb2.i.i.i.i182 ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i183" ]
%246 = inttoptr i32 %other1.sroa.4.0.i.i.i.i179 to i32*
%247 = icmp eq i32* %246, %188
br i1 %247, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i193", label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i188"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i188": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i187"
%248 = getelementptr inbounds i32, i32* %246, i32 -1
%249 = ptrtoint i32* %248 to i32
%250 = load i32, i32* %248, align 4, !alias.scope !708, !noalias !713
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i193"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i193": ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i188", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i187"
%other1.sroa.4.1.i.i.i.i189 = phi i32 [ %other1.sroa.4.0.i.i.i.i179, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i187" ], [ %249, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i188" ]
%_11.sroa.4.1.i.i.i.i190 = phi i32 [ %_9.sroa.4.0.i.i.i.i180, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i187" ], [ %250, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i188" ]
%.sink.i.i.i.i.i.i.i.i191 = phi i1 [ true, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i187" ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i188" ]
%cond.i.i.i.i192 = icmp eq i32 %.sink.i.i.i.i32.i.i.i.i186, 0
br i1 %cond.i.i.i.i192, label %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit203, label %bb9.i.i.i.i197
bb9.i.i.i.i197: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i193"
br i1 %.sink.i.i.i.i.i.i.i.i191, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i208.loopexit", label %bb12.i.i.i.i199
bb12.i.i.i.i199: ; preds = %bb9.i.i.i.i197
%251 = icmp eq i32 %_9.sroa.4.1.i.i.i.i184, %_11.sroa.4.1.i.i.i.i190
br i1 %251, label %bb2.i.i.i.i182, label %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit203.loopexit
_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit203.loopexit: ; preds = %bb12.i.i.i.i199
%252 = icmp ult i32 %_9.sroa.4.1.i.i.i.i184, %_11.sroa.4.1.i.i.i.i190
br i1 %252, label %bb77, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i208"
_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit203: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i193"
br i1 %.sink.i.i.i.i.i.i.i.i191, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i208", label %bb77
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i208.loopexit": ; preds = %bb9.i.i.i.i197
br label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i208"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i208": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i208.loopexit", %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit203.loopexit, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit203
%.idx.i206 = shl nuw i32 %_0.0.sroa.speculated.i.i.i.i.i176, 2
%253 = sdiv i32 %.idx.i206, 4
%.idx.off.i207 = or i32 %.idx.i206, 3
%254 = icmp ult i32 %.idx.off.i207, 7
br i1 %254, label %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit216, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i213.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i213.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i208"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i213"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i213": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i213.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i213"
%noborrow.0.off049.i209 = phi i1 [ %brmerge.i.i212, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i213" ], [ true, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i213.preheader" ]
%iter.sroa.8.048.i210 = phi i32 [ %257, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i213" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i213.preheader" ]
%255 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %iter.sroa.8.048.i210
%256 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale4, i32 0, i32 2, i32 %iter.sroa.8.048.i210
%257 = add nuw i32 %iter.sroa.8.048.i210, 1
%258 = load i32, i32* %255, align 4, !noalias !722
%259 = load i32, i32* %256, align 4, !alias.scope !722
%260 = xor i32 %259, -1
%261 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %258, i32 %260) #5
%262 = extractvalue { i32, i1 } %261, 0
%263 = extractvalue { i32, i1 } %261, 1
%..i.i211 = zext i1 %noborrow.0.off049.i209 to i32
%264 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %262, i32 %..i.i211) #5
%265 = extractvalue { i32, i1 } %264, 0
%266 = extractvalue { i32, i1 } %264, 1
%brmerge.i.i212 = or i1 %263, %266
store i32 %265, i32* %255, align 4, !noalias !722
%267 = icmp ult i32 %257, %253
br i1 %267, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.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$4next17h262db3ddb1d38240E.exit.i213"
br i1 %brmerge.i.i212, label %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit216, label %bb12.i215
bb12.i215: ; preds = %bb9.i214
call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num6bignum8Big32x403sub14_MSG_FILE_LINE17habdcba506e46e83bE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !722
unreachable
_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit216: ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i208", %bb9.i214
store i32 %_0.0.sroa.speculated.i.i.i.i.i176, i32* %36, align 4, !noalias !722
%268 = or i8 %d.0, 4
br label %bb77
bb77: ; preds = %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit203.loopexit, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit203, %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit216
%269 = phi i32 [ %_0.0.sroa.speculated.i.i.i.i.i176, %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit216 ], [ %233, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit203 ], [ %233, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit203.loopexit ]
%d.1 = phi i8 [ %268, %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit216 ], [ %d.0, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit203 ], [ %d.0, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit203.loopexit ]
%270 = load i32, i32* %170, align 4, !alias.scope !725, !noalias !732
%271 = icmp uge i32 %270, %269
%_0.0.sroa.speculated.i.i.i.i.i217 = select i1 %271, i32 %270, i32 %269
%272 = icmp ugt i32 %_0.0.sroa.speculated.i.i.i.i.i217, 40
br i1 %272, label %bb4.i.i.i6.i.i.i218, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i219"
bb4.i.i.i6.i.i.i218: ; preds = %bb77
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %_0.0.sroa.speculated.i.i.i.i.i217, i32 40), !noalias !736
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i219": ; preds = %bb77
%273 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i.i.i217
%274 = ptrtoint i32* %273 to i32
%275 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale2, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i.i.i217
%276 = ptrtoint i32* %275 to i32
br label %bb2.i.i.i.i223
bb2.i.i.i.i223: ; preds = %bb12.i.i.i.i240, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i219"
%other1.sroa.4.0.i.i.i.i220 = phi i32 [ %276, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i219" ], [ %other1.sroa.4.1.i.i.i.i230, %bb12.i.i.i.i240 ]
%_9.sroa.4.0.i.i.i.i221 = phi i32 [ undef, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i219" ], [ %_9.sroa.4.1.i.i.i.i225, %bb12.i.i.i.i240 ]
%self.sroa.4.0.i.i.i.i222 = phi i32 [ %274, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i219" ], [ %self.sroa.4.1.i.i.i.i226, %bb12.i.i.i.i240 ]
%277 = inttoptr i32 %self.sroa.4.0.i.i.i.i222 to i32*
%278 = icmp eq i32* %277, %186
br i1 %278, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i228", label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i224"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i224": ; preds = %bb2.i.i.i.i223
%279 = getelementptr inbounds i32, i32* %277, i32 -1
%280 = ptrtoint i32* %279 to i32
%281 = load i32, i32* %279, align 4, !alias.scope !739, !noalias !744
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i228"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i228": ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i224", %bb2.i.i.i.i223
%_9.sroa.4.1.i.i.i.i225 = phi i32 [ %_9.sroa.4.0.i.i.i.i221, %bb2.i.i.i.i223 ], [ %281, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i224" ]
%self.sroa.4.1.i.i.i.i226 = phi i32 [ %self.sroa.4.0.i.i.i.i222, %bb2.i.i.i.i223 ], [ %280, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i224" ]
%.sink.i.i.i.i32.i.i.i.i227 = phi i32 [ 0, %bb2.i.i.i.i223 ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i224" ]
%282 = inttoptr i32 %other1.sroa.4.0.i.i.i.i220 to i32*
%283 = icmp eq i32* %282, %189
br i1 %283, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i234", label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i229"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i229": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i228"
%284 = getelementptr inbounds i32, i32* %282, i32 -1
%285 = ptrtoint i32* %284 to i32
%286 = load i32, i32* %284, align 4, !alias.scope !756, !noalias !761
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i234"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i234": ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i229", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i228"
%other1.sroa.4.1.i.i.i.i230 = phi i32 [ %other1.sroa.4.0.i.i.i.i220, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i228" ], [ %285, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i229" ]
%_11.sroa.4.1.i.i.i.i231 = phi i32 [ %_9.sroa.4.0.i.i.i.i221, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i228" ], [ %286, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i229" ]
%.sink.i.i.i.i.i.i.i.i232 = phi i1 [ true, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i228" ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i229" ]
%cond.i.i.i.i233 = icmp eq i32 %.sink.i.i.i.i32.i.i.i.i227, 0
br i1 %cond.i.i.i.i233, label %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit244, label %bb9.i.i.i.i238
bb9.i.i.i.i238: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i234"
br i1 %.sink.i.i.i.i.i.i.i.i232, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i154.loopexit", label %bb12.i.i.i.i240
bb12.i.i.i.i240: ; preds = %bb9.i.i.i.i238
%287 = icmp eq i32 %_9.sroa.4.1.i.i.i.i225, %_11.sroa.4.1.i.i.i.i231
br i1 %287, label %bb2.i.i.i.i223, label %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit244.loopexit
_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit244.loopexit: ; preds = %bb12.i.i.i.i240
%288 = icmp ult i32 %_9.sroa.4.1.i.i.i.i225, %_11.sroa.4.1.i.i.i.i231
br i1 %288, label %bb82, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i154"
_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit244: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i234"
br i1 %.sink.i.i.i.i.i.i.i.i232, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i154", label %bb82
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i154.loopexit": ; preds = %bb9.i.i.i.i238
br label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i154"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i154": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i154.loopexit", %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit244.loopexit, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit244
%.idx.i152 = shl nuw i32 %_0.0.sroa.speculated.i.i.i.i.i217, 2
%289 = sdiv i32 %.idx.i152, 4
%.idx.off.i153 = or i32 %.idx.i152, 3
%290 = icmp ult i32 %.idx.off.i153, 7
br i1 %290, label %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit162, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i159.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i159.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i154"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i159"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i159": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i159.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i159"
%noborrow.0.off049.i155 = phi i1 [ %brmerge.i.i158, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i159" ], [ true, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i159.preheader" ]
%iter.sroa.8.048.i156 = phi i32 [ %293, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i159" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i159.preheader" ]
%291 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %iter.sroa.8.048.i156
%292 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale2, i32 0, i32 2, i32 %iter.sroa.8.048.i156
%293 = add nuw i32 %iter.sroa.8.048.i156, 1
%294 = load i32, i32* %291, align 4, !noalias !770
%295 = load i32, i32* %292, align 4, !alias.scope !770
%296 = xor i32 %295, -1
%297 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %294, i32 %296) #5
%298 = extractvalue { i32, i1 } %297, 0
%299 = extractvalue { i32, i1 } %297, 1
%..i.i157 = zext i1 %noborrow.0.off049.i155 to i32
%300 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %298, i32 %..i.i157) #5
%301 = extractvalue { i32, i1 } %300, 0
%302 = extractvalue { i32, i1 } %300, 1
%brmerge.i.i158 = or i1 %299, %302
store i32 %301, i32* %291, align 4, !noalias !770
%303 = icmp ult i32 %293, %289
br i1 %303, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i159", label %bb9.i160
bb9.i160: ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i159"
br i1 %brmerge.i.i158, label %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit162, label %bb12.i161
bb12.i161: ; preds = %bb9.i160
call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num6bignum8Big32x403sub14_MSG_FILE_LINE17habdcba506e46e83bE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !770
unreachable
_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit162: ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i154", %bb9.i160
store i32 %_0.0.sroa.speculated.i.i.i.i.i217, i32* %36, align 4, !noalias !770
%304 = add nsw i8 %d.1, 2
br label %bb82
bb82: ; preds = %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit244.loopexit, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit244, %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit162
%305 = phi i32 [ %_0.0.sroa.speculated.i.i.i.i.i217, %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit162 ], [ %269, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit244 ], [ %269, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit244.loopexit ]
%d.2 = phi i8 [ %304, %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit162 ], [ %d.1, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit244 ], [ %d.1, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit244.loopexit ]
%306 = load i32, i32* %43, align 4, !alias.scope !773, !noalias !780
%307 = icmp uge i32 %306, %305
%_0.0.sroa.speculated.i.i.i.i.i92 = select i1 %307, i32 %306, i32 %305
%308 = icmp ugt i32 %_0.0.sroa.speculated.i.i.i.i.i92, 40
br i1 %308, label %bb4.i.i.i6.i.i.i93, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i94"
bb4.i.i.i6.i.i.i93: ; preds = %bb82
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %_0.0.sroa.speculated.i.i.i.i.i92, i32 40), !noalias !784
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i94": ; preds = %bb82
%309 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i.i.i92
%310 = ptrtoint i32* %309 to i32
%311 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i.i.i92
%312 = ptrtoint i32* %311 to i32
br label %bb2.i.i.i.i98
bb2.i.i.i.i98: ; preds = %bb12.i.i.i.i115, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i94"
%other1.sroa.4.0.i.i.i.i95 = phi i32 [ %312, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i94" ], [ %other1.sroa.4.1.i.i.i.i105, %bb12.i.i.i.i115 ]
%_9.sroa.4.0.i.i.i.i96 = phi i32 [ undef, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i94" ], [ %_9.sroa.4.1.i.i.i.i100, %bb12.i.i.i.i115 ]
%self.sroa.4.0.i.i.i.i97 = phi i32 [ %310, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i.i.i94" ], [ %self.sroa.4.1.i.i.i.i101, %bb12.i.i.i.i115 ]
%313 = inttoptr i32 %self.sroa.4.0.i.i.i.i97 to i32*
%314 = icmp eq i32* %313, %186
br i1 %314, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i103", label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i99"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i99": ; preds = %bb2.i.i.i.i98
%315 = getelementptr inbounds i32, i32* %313, i32 -1
%316 = ptrtoint i32* %315 to i32
%317 = load i32, i32* %315, align 4, !alias.scope !787, !noalias !792
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i103"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i103": ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i99", %bb2.i.i.i.i98
%_9.sroa.4.1.i.i.i.i100 = phi i32 [ %_9.sroa.4.0.i.i.i.i96, %bb2.i.i.i.i98 ], [ %317, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i99" ]
%self.sroa.4.1.i.i.i.i101 = phi i32 [ %self.sroa.4.0.i.i.i.i97, %bb2.i.i.i.i98 ], [ %316, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i99" ]
%.sink.i.i.i.i32.i.i.i.i102 = phi i32 [ 0, %bb2.i.i.i.i98 ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i.i.i99" ]
%318 = inttoptr i32 %other1.sroa.4.0.i.i.i.i95 to i32*
%319 = icmp eq i32* %318, %128
br i1 %319, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i109", label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i104"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i104": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i103"
%320 = getelementptr inbounds i32, i32* %318, i32 -1
%321 = ptrtoint i32* %320 to i32
%322 = load i32, i32* %320, align 4, !alias.scope !804, !noalias !809
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i109"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i109": ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i104", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i103"
%other1.sroa.4.1.i.i.i.i105 = phi i32 [ %other1.sroa.4.0.i.i.i.i95, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i103" ], [ %321, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i104" ]
%_11.sroa.4.1.i.i.i.i106 = phi i32 [ %_9.sroa.4.0.i.i.i.i96, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i103" ], [ %322, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i104" ]
%.sink.i.i.i.i.i.i.i.i107 = phi i1 [ true, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i.i.i103" ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i.i.i104" ]
%cond.i.i.i.i108 = icmp eq i32 %.sink.i.i.i.i32.i.i.i.i102, 0
br i1 %cond.i.i.i.i108, label %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit119, label %bb9.i.i.i.i113
bb9.i.i.i.i113: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i109"
br i1 %.sink.i.i.i.i.i.i.i.i107, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i84.loopexit", label %bb12.i.i.i.i115
bb12.i.i.i.i115: ; preds = %bb9.i.i.i.i113
%323 = icmp eq i32 %_9.sroa.4.1.i.i.i.i100, %_11.sroa.4.1.i.i.i.i106
br i1 %323, label %bb2.i.i.i.i98, label %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit119.loopexit
_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit119.loopexit: ; preds = %bb12.i.i.i.i115
%324 = icmp ult i32 %_9.sroa.4.1.i.i.i.i100, %_11.sroa.4.1.i.i.i.i106
br i1 %324, label %bb87, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i84"
_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit119: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i.i.i109"
br i1 %.sink.i.i.i.i.i.i.i.i107, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i84", label %bb87
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i84.loopexit": ; preds = %bb9.i.i.i.i113
br label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i84"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i84": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i84.loopexit", %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit119.loopexit, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit119
%.idx.i82 = shl nuw i32 %_0.0.sroa.speculated.i.i.i.i.i92, 2
%325 = sdiv i32 %.idx.i82, 4
%.idx.off.i83 = or i32 %.idx.i82, 3
%326 = icmp ult i32 %.idx.off.i83, 7
br i1 %326, label %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i87.preheader"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i87.preheader": ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i84"
br label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i87"
"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i87": ; preds = %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i87.preheader", %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i87"
%noborrow.0.off049.i = phi i1 [ %brmerge.i.i86, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i87" ], [ true, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i87.preheader" ]
%iter.sroa.8.048.i = phi i32 [ %329, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i87" ], [ 0, %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.exit.i87.preheader" ]
%327 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %iter.sroa.8.048.i
%328 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i32 0, i32 2, i32 %iter.sroa.8.048.i
%329 = add nuw i32 %iter.sroa.8.048.i, 1
%330 = load i32, i32* %327, align 4, !noalias !818
%331 = load i32, i32* %328, align 4, !alias.scope !818
%332 = xor i32 %331, -1
%333 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %330, i32 %332) #5
%334 = extractvalue { i32, i1 } %333, 0
%335 = extractvalue { i32, i1 } %333, 1
%..i.i85 = zext i1 %noborrow.0.off049.i to i32
%336 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %334, i32 %..i.i85) #5
%337 = extractvalue { i32, i1 } %336, 0
%338 = extractvalue { i32, i1 } %336, 1
%brmerge.i.i86 = or i1 %335, %338
store i32 %337, i32* %327, align 4, !noalias !818
%339 = icmp ult i32 %329, %325
br i1 %339, label %"_ZN84_$LT$core..iter..Zip$LT$A$C$$u20$B$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h262db3ddb1d38240E.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$4next17h262db3ddb1d38240E.exit.i87"
br i1 %brmerge.i.i86, label %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit, label %bb12.i89
bb12.i89: ; preds = %bb9.i88
call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num6bignum8Big32x403sub14_MSG_FILE_LINE17habdcba506e46e83bE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !818
unreachable
_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit: ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i84", %bb9.i88
store i32 %_0.0.sroa.speculated.i.i.i.i.i92, i32* %36, align 4, !noalias !818
%340 = add nsw i8 %d.2, 1
br label %bb87
bb87: ; preds = %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit119.loopexit, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit119, %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit
%341 = phi i32 [ %_0.0.sroa.speculated.i.i.i.i.i92, %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit ], [ %305, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit119 ], [ %305, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit119.loopexit ]
%d.3 = phi i8 [ %340, %_ZN4core3num6bignum8Big32x403sub17h976b3f94fa7e7581E.exit ], [ %d.2, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit119 ], [ %d.2, %_ZN4core3cmp10PartialOrd2ge17hc5b7836125f1a69aE.exit119.loopexit ]
%342 = icmp ult i32 %iter.sroa.0.0364, %3
br i1 %342, label %bb88, label %panic, !prof !3
bb88: ; preds = %bb87
%343 = getelementptr inbounds i8, i8* %2, i32 %iter.sroa.0.0364
%344 = add i8 %d.3, 48
store i8 %344, i8* %343, align 1
%345 = icmp ugt i32 %341, 40
br i1 %345, label %bb4.i.i.i.i48, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i49"
bb4.i.i.i.i48: ; preds = %bb88
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %341, i32 40), !noalias !821
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i49": ; preds = %bb88
%346 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %341
%347 = icmp eq i32 %341, 0
br i1 %347, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit59, label %bb6.i54.preheader
bb6.i54.preheader: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i49"
br label %bb6.i54
bb5.i51: ; preds = %bb6.i54
%348 = icmp eq i32 %356, 0
br i1 %348, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit59, label %bb8.i55
bb6.i54: ; preds = %bb6.i54.preheader, %bb6.i54
%carry.020.i52 = phi i32 [ %356, %bb6.i54 ], [ 0, %bb6.i54.preheader ]
%iter.sroa.0.0.in19.i53 = phi i32* [ %349, %bb6.i54 ], [ %186, %bb6.i54.preheader ]
%349 = getelementptr inbounds i32, i32* %iter.sroa.0.0.in19.i53, i32 1
%350 = load i32, i32* %iter.sroa.0.0.in19.i53, align 4
%351 = zext i32 %350 to i64
%352 = mul nuw nsw i64 %351, 10
%353 = zext i32 %carry.020.i52 to i64
%354 = add nuw nsw i64 %352, %353
%355 = lshr i64 %354, 32
%356 = trunc i64 %355 to i32
%357 = trunc i64 %354 to i32
store i32 %357, i32* %iter.sroa.0.0.in19.i53, align 4
%358 = icmp eq i32* %349, %346
br i1 %358, label %bb5.i51, label %bb6.i54
bb8.i55: ; preds = %bb5.i51
%359 = icmp ult i32 %341, 40
br i1 %359, label %bb10.i56, label %panic.i58, !prof !3
bb10.i56: ; preds = %bb8.i55
store i32 %356, i32* %346, align 4
%360 = add i32 %341, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit59
panic.i58: ; preds = %bb8.i55
call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %341, i32 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit59: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i49", %bb5.i51, %bb10.i56
%sz.0.i57 = phi i32 [ %360, %bb10.i56 ], [ %341, %bb5.i51 ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i49" ]
store i32 %sz.0.i57, i32* %36, align 4
%361 = icmp ugt i32 %len.0, %190
br i1 %361, label %bb57, label %bb56
bb90: ; preds = %bb36, %bb38, %bb56
%362 = phi i32 [ %123, %bb38 ], [ %306, %bb56 ], [ %123, %bb36 ]
%363 = phi i1 [ true, %bb38 ], [ false, %bb56 ], [ true, %bb36 ]
%len.0267 = phi i32 [ 0, %bb38 ], [ %len.0, %bb56 ], [ 0, %bb36 ]
%364 = icmp ugt i32 %362, 40
br i1 %364, 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_mut17ha83eb8973692a5bbE.exit.i"
bb4.i.i.i.i: ; preds = %bb90
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %362, i32 40), !noalias !824
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i": ; preds = %bb90
%365 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i32 0, i32 2, i32 %362
%366 = icmp eq i32 %362, 0
br i1 %366, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.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_mut17ha83eb8973692a5bbE.exit.i"
br label %bb6.i
bb5.i: ; preds = %bb6.i
%367 = icmp eq i32 %375, 0
br i1 %367, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit, label %bb8.i
bb6.i: ; preds = %bb6.i.preheader, %bb6.i
%carry.020.i = phi i32 [ %375, %bb6.i ], [ 0, %bb6.i.preheader ]
%iter.sroa.0.0.in19.i = phi i32* [ %368, %bb6.i ], [ %128, %bb6.i.preheader ]
%368 = getelementptr inbounds i32, i32* %iter.sroa.0.0.in19.i, i32 1
%369 = load i32, i32* %iter.sroa.0.0.in19.i, align 4
%370 = zext i32 %369 to i64
%371 = mul nuw nsw i64 %370, 5
%372 = zext i32 %carry.020.i to i64
%373 = add nuw nsw i64 %371, %372
%374 = lshr i64 %373, 32
%375 = trunc i64 %374 to i32
%376 = trunc i64 %373 to i32
store i32 %376, i32* %iter.sroa.0.0.in19.i, align 4
%377 = icmp eq i32* %368, %365
br i1 %377, label %bb5.i, label %bb6.i
bb8.i: ; preds = %bb5.i
%378 = icmp ult i32 %362, 40
br i1 %378, label %bb10.i, label %panic.i47, !prof !3
bb10.i: ; preds = %bb8.i
store i32 %375, i32* %365, align 4
%379 = add i32 %362, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit
panic.i47: ; preds = %bb8.i
call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %362, i32 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i", %bb5.i, %bb10.i
%sz.0.i = phi i32 [ %379, %bb10.i ], [ %362, %bb5.i ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i" ]
store i32 %sz.0.i, i32* %43, align 4
%380 = load i32, i32* %36, align 4, !alias.scope !827, !noalias !830
%381 = icmp uge i32 %sz.0.i, %380
%_0.0.sroa.speculated.i.i.i = select i1 %381, i32 %sz.0.i, i32 %380
%382 = icmp ugt i32 %_0.0.sroa.speculated.i.i.i, 40
br i1 %382, label %bb4.i.i.i6.i, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i"
bb4.i.i.i6.i: ; preds = %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %_0.0.sroa.speculated.i.i.i, i32 40), !noalias !832
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i": ; preds = %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit
%383 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 0
%384 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %mant, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i
%385 = ptrtoint i32* %384 to i32
%386 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %scale, i32 0, i32 2, i32 %_0.0.sroa.speculated.i.i.i
%387 = ptrtoint i32* %386 to i32
br label %bb2.i.i
bb2.i.i: ; preds = %bb12.i.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i"
%other1.sroa.4.0.i.i = phi i32 [ %387, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i" ], [ %other1.sroa.4.1.i.i, %bb12.i.i ]
%_9.sroa.4.0.i.i = phi i32 [ undef, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i" ], [ %_9.sroa.4.1.i.i, %bb12.i.i ]
%self.sroa.4.0.i.i = phi i32 [ %385, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hfb69274827e43359E.exit.i" ], [ %self.sroa.4.1.i.i, %bb12.i.i ]
%388 = inttoptr i32 %self.sroa.4.0.i.i to i32*
%389 = icmp eq i32* %388, %383
br i1 %389, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i", label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i"
"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i": ; preds = %bb2.i.i
%390 = getelementptr inbounds i32, i32* %388, i32 -1
%391 = ptrtoint i32* %390 to i32
%392 = load i32, i32* %390, align 4, !alias.scope !835, !noalias !840
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i": ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i", %bb2.i.i
%_9.sroa.4.1.i.i = phi i32 [ %_9.sroa.4.0.i.i, %bb2.i.i ], [ %392, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i" ]
%self.sroa.4.1.i.i = phi i32 [ %self.sroa.4.0.i.i, %bb2.i.i ], [ %391, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i" ]
%.sink.i.i.i.i32.i.i = phi i32 [ 0, %bb2.i.i ], [ 1, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i31.i.i" ]
%393 = inttoptr i32 %other1.sroa.4.0.i.i to i32*
%394 = icmp eq i32* %393, %128
br i1 %394, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i", label %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.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_back17hce49ac0a94ef28eaE.exit.i.i.i.i": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i"
%395 = getelementptr inbounds i32, i32* %393, i32 -1
%396 = ptrtoint i32* %395 to i32
%397 = load i32, i32* %395, align 4, !alias.scope !852, !noalias !857
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i": ; preds = %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i"
%other1.sroa.4.1.i.i = phi i32 [ %other1.sroa.4.0.i.i, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i" ], [ %396, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i" ]
%_11.sroa.4.1.i.i = phi i32 [ %_9.sroa.4.0.i.i, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i" ], [ %397, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i" ]
%.sink.i.i.i.i.i.i = phi i1 [ true, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit33.i.i" ], [ false, %"_ZN100_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..traits..DoubleEndedIterator$GT$9next_back17hce49ac0a94ef28eaE.exit.i.i.i.i" ]
%cond.i.i = icmp eq i32 %.sink.i.i.i.i32.i.i, 0
br i1 %cond.i.i, label %bb95, label %bb9.i.i
bb9.i.i: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i"
br i1 %.sink.i.i.i.i.i.i, label %bb108.loopexit, label %bb12.i.i
bb12.i.i: ; preds = %bb9.i.i
%398 = icmp eq i32 %_9.sroa.4.1.i.i, %_11.sroa.4.1.i.i
br i1 %398, label %bb2.i.i, label %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit"
"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit": ; preds = %bb12.i.i
%not. = icmp ult i32 %_9.sroa.4.1.i.i, %_11.sroa.4.1.i.i
br i1 %not., label %bb123, label %bb108
bb95: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h485847bdd985bc45E.exit.i.i"
br i1 %.sink.i.i.i.i.i.i, label %bb100, label %bb123
bb100: ; preds = %bb95
br i1 %363, label %bb108, label %bb105
bb105: ; preds = %bb100
%399 = add i32 %len.0267, -1
%400 = icmp ult i32 %399, %3
br i1 %400, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h8fb3fbda0ccff4d4E.exit", label %panic.i.i, !prof !3
panic.i.i: ; preds = %bb105
call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.2d to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %399, i32 %3), !noalias !866
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h8fb3fbda0ccff4d4E.exit": ; preds = %bb105
%401 = getelementptr inbounds i8, i8* %2, i32 %399
%402 = load i8, i8* %401, align 1
%403 = and i8 %402, 1
%not.275 = icmp eq i8 %403, 0
br i1 %not.275, label %bb123, label %bb108
bb108.loopexit: ; preds = %bb9.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$5index17h8fb3fbda0ccff4d4E.exit", %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit", %bb100
%404 = call i16 @_ZN4core3num7flt2dec8round_up17he1326f42c86fd7afE(i8* nonnull %2, i32 %3, i32 %len.0267)
%abi_cast.sroa.4.0.extract.shift = lshr i16 %404, 8
%abi_cast.sroa.4.0.extract.trunc = trunc i16 %abi_cast.sroa.4.0.extract.shift to i8
%405 = and i16 %404, 255
%cond = icmp eq i16 %405, 1
br i1 %cond, label %bb112, label %bb123
bb112: ; preds = %bb108
%406 = add i16 %k.0, 1
%407 = icmp sgt i16 %406, %4
%408 = icmp ult i32 %len.0267, %3
%or.cond = and i1 %407, %408
br i1 %or.cond, label %bb121, label %bb123
bb121: ; preds = %bb112
%409 = getelementptr inbounds i8, i8* %2, i32 %len.0267
store i8 %abi_cast.sroa.4.0.extract.trunc, i8* %409, align 1
%410 = add i32 %len.0267, 1
br label %bb123
bb123: ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h8fb3fbda0ccff4d4E.exit", %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit", %bb112, %bb95, %bb121, %bb108
%len.3 = phi i32 [ %len.0267, %bb108 ], [ %410, %bb121 ], [ %len.0267, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h8fb3fbda0ccff4d4E.exit" ], [ %len.0267, %bb95 ], [ %len.0267, %bb112 ], [ %len.0267, %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit" ]
%k.2 = phi i16 [ %k.0, %bb108 ], [ %406, %bb121 ], [ %k.0, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h8fb3fbda0ccff4d4E.exit" ], [ %k.0, %bb95 ], [ %406, %bb112 ], [ %k.0, %"_ZN62_$LT$core..num..bignum..Big32x40$u20$as$u20$core..cmp..Ord$GT$3cmp17hf6f21690b0b29cf9E.exit" ]
%411 = getelementptr inbounds { i32, [0 x i8], i16, [2 x i8] }, { i32, [0 x i8], i16, [2 x i8] }* %0, i32 0, i32 0
store i32 %len.3, i32* %411, align 4
%412 = getelementptr inbounds { i32, [0 x i8], i16, [2 x i8] }, { i32, [0 x i8], i16, [2 x i8] }* %0, i32 0, i32 2
store i16 %k.2, i16* %412, align 4
call void @llvm.lifetime.end(i64 164, i8* nonnull %39)
call void @llvm.lifetime.end(i64 164, i8* nonnull %28)
br label %bb67
panic: ; preds = %bb87
call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.5 to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %iter.sroa.0.0364, i32 %3)
unreachable
}
define void @_ZN4core3num7flt2dec8strategy5grisu12cached_power17he9878b716cdd22d6E({ i16, [6 x i8], %"num::diy_float::Fp", [0 x i8] }* noalias nocapture sret dereferenceable(24), i16, i16) unnamed_addr {
start:
%3 = sext i16 %2 to i32
%4 = mul nsw i32 %3, 80
%5 = add i32 %4, 86960
%6 = sdiv i32 %5, 2126
%7 = icmp ult i32 %6, 81
br i1 %7, label %bb4, label %panic1, !prof !3
bb4: ; preds = %start
%8 = 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_POW1017h73c189cfbdab3b9bE to [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]*), i32 0, i32 %6, i32 0
%9 = load i64, i64* %8, align 8
%10 = 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_POW1017h73c189cfbdab3b9bE to [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]*), i32 0, i32 %6, i32 2
%11 = load i16, i16* %10, align 8
%12 = 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_POW1017h73c189cfbdab3b9bE to [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]*), i32 0, i32 %6, i32 4
%13 = load i16, i16* %12, align 2
%14 = 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, i32 0, i32 0
store i16 %13, i16* %14, align 8
%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, i32 0, i32 2, i32 0
store i64 %9, i64* %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, i32 0, i32 2, i32 2
store i16 %11, i16* %16, align 8
ret void
panic1: ; preds = %start
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.c to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %6, i32 81)
unreachable
}
; Function Attrs: norecurse nounwind
define void @_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17h35cc524725f53361E({ i8, [3 x i8], i32, [0 x i8] }* noalias nocapture sret dereferenceable(8), i32) unnamed_addr #2 {
start:
%2 = icmp ult i32 %1, 10000
br i1 %2, label %bb1, label %bb2
bb1: ; preds = %start
%3 = icmp ult i32 %1, 100
br i1 %3, label %bb3, label %bb4
bb2: ; preds = %start
%4 = icmp ult i32 %1, 1000000
br i1 %4, label %bb12, label %bb13
bb3: ; preds = %bb1
%5 = icmp ult i32 %1, 10
%not. = xor i1 %5, true
%.sink2 = zext i1 %not. to i8
%.sink = select i1 %5, i32 1, i32 10
br label %bb27
bb4: ; preds = %bb1
%6 = icmp ult i32 %1, 1000
%.sink5 = select i1 %6, i8 2, i8 3
%.sink3 = select i1 %6, i32 100, i32 1000
br label %bb27
bb12: ; preds = %bb2
%7 = icmp ult i32 %1, 100000
%.sink9 = select i1 %7, i8 4, i8 5
%.sink7 = select i1 %7, i32 10000, i32 100000
br label %bb27
bb13: ; preds = %bb2
%8 = icmp ult i32 %1, 100000000
br i1 %8, label %bb17, label %bb18
bb17: ; preds = %bb13
%9 = icmp ult i32 %1, 10000000
%.sink12 = select i1 %9, i8 6, i8 7
%.sink10 = select i1 %9, i32 1000000, i32 10000000
br label %bb27
bb18: ; preds = %bb13
%10 = icmp ult i32 %1, 1000000000
%.sink15 = select i1 %10, i8 8, i8 9
%.sink13 = select i1 %10, i32 100000000, i32 1000000000
br label %bb27
bb27: ; preds = %bb12, %bb18, %bb17, %bb3, %bb4
%.sink9.sink = phi i8 [ %.sink9, %bb12 ], [ %.sink15, %bb18 ], [ %.sink12, %bb17 ], [ %.sink2, %bb3 ], [ %.sink5, %bb4 ]
%.sink13.sink.sink.sink = phi i32 [ %.sink7, %bb12 ], [ %.sink13, %bb18 ], [ %.sink10, %bb17 ], [ %.sink, %bb3 ], [ %.sink3, %bb4 ]
%.sink19 = getelementptr inbounds { i8, [3 x i8], i32, [0 x i8] }, { i8, [3 x i8], i32, [0 x i8] }* %0, i32 0, i32 0
store i8 %.sink9.sink, i8* %.sink19, align 4
%11 = getelementptr inbounds { i8, [3 x i8], i32, [0 x i8] }, { i8, [3 x i8], i32, [0 x i8] }* %0, i32 0, i32 2
store i32 %.sink13.sink.sink.sink, i32* %11, align 4
ret void
}
define void @_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt17h41fd60e9119b1356E(%"option::Option<(usize, i16)>"* noalias nocapture sret dereferenceable(12), %"num::flt2dec::decoder::Decoded"* noalias nocapture readonly dereferenceable(32), i8* nonnull, i32) unnamed_addr {
start:
%_31.i63 = alloca %"fmt::Arguments", align 4
%right_val.i64 = alloca i64*, align 4
%left_val.i65 = alloca i64*, align 4
%_19.i66 = alloca i64, align 8
%_36.i = alloca [2 x %"fmt::ArgumentV1"], align 4
%_31.i = alloca %"fmt::Arguments", align 4
%right_val.i = alloca i64*, align 4
%left_val.i = alloca i64*, align 4
%_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, i32 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 @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17h03c0a2eef0c46e44E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb2: ; preds = %start
%7 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i32 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 @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17hdc05afc980cb220cE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb4: ; preds = %bb2
%10 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i32 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 @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17h88b50752569b2930E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb6: ; preds = %bb4
%13 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %5, i64 %11) #5
%14 = extractvalue { i64, i1 } %13, 1
br i1 %14, label %bb9, label %bb10
bb9: ; preds = %bb6
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17he8226c2818f561dcE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb10: ; preds = %bb6
%15 = tail call { i64, i1 } @llvm.usub.with.overflow.i64(i64 %5, i64 %8) #5
%16 = extractvalue { i64, i1 } %15, 1
br i1 %16, label %bb13, label %bb14
bb13: ; preds = %bb10
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17hf30202a10b8bc5aaE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb14: ; preds = %bb10
%17 = icmp ult i32 %3, 17
br i1 %17, label %bb16, label %bb17
bb16: ; preds = %bb14
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17h63a668e92cde1929E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 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 @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE17h10d0c12d59406b1dE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb19: ; preds = %bb17
%20 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i32 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, i32 0, i32 0
store i64 %39, i64* %40, align 8
%41 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %_66, i32 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.i60
bb1.i: ; preds = %bb19
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num9diy_float2Fp12normalize_to14_MSG_FILE_LINE17h68fc28589dc1264dE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !871
unreachable
bb2.i60: ; preds = %bb19
%44 = bitcast i64* %_19.i to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %44), !noalias !874
%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 !874
%49 = bitcast i64** %left_val.i to i8*
call void @llvm.lifetime.start(i64 4, i8* nonnull %49), !noalias !874
store i64* %_19.i, i64** %left_val.i, align 4, !noalias !874
%50 = bitcast i64** %right_val.i to i8*
call void @llvm.lifetime.start(i64 4, i8* nonnull %50), !noalias !874
store i64* %40, i64** %right_val.i, align 4, !noalias !874
%51 = icmp eq i64 %48, %39
br i1 %51, label %bb2.i68, label %bb3.i61
bb3.i61: ; preds = %bb2.i60
%52 = bitcast %"fmt::Arguments"* %_31.i to i8*
call void @llvm.lifetime.start(i64 24, i8* nonnull %52), !noalias !874
%53 = bitcast [2 x %"fmt::ArgumentV1"]* %_36.i to i8*
call void @llvm.lifetime.start(i64 16, i8* nonnull %53), !noalias !874
%54 = ptrtoint i64** %left_val.i to i32
%55 = ptrtoint i64** %right_val.i to i32
%56 = bitcast [2 x %"fmt::ArgumentV1"]* %_36.i to i32*
store i32 %54, i32* %56, align 4, !noalias !874
%57 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36.i, i32 0, i32 0, i32 2
%58 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %57 to i32*
store i32 ptrtoint (i8 (i64**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h079588134f415d4cE" to i32), i32* %58, align 4, !noalias !874
%59 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36.i, i32 0, i32 1
%60 = bitcast %"fmt::ArgumentV1"* %59 to i32*
store i32 %55, i32* %60, align 4, !noalias !874
%61 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36.i, i32 0, i32 1, i32 2
%62 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %61 to i32*
store i32 ptrtoint (i8 (i64**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h079588134f415d4cE" to i32), i32* %62, align 4, !noalias !874
%63 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36.i, i32 0, i32 0
%64 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31.i, i32 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.3x, i32 0, i32 0), %str_slice** %64, align 4, !alias.scope !876, !noalias !879
%65 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31.i, i32 0, i32 0, i32 1
store i32 3, i32* %65, align 4, !alias.scope !876, !noalias !879
%_6.sroa.0.0..sroa_idx.i.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31.i, i32 0, i32 2
%66 = bitcast %"option::Option<&[fmt::rt::v1::Argument]>"* %_6.sroa.0.0..sroa_idx.i.i to i64*
store i64 0, i64* %66, align 4, !alias.scope !876, !noalias !879
%67 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31.i, i32 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %63, %"fmt::ArgumentV1"** %67, align 4, !alias.scope !876, !noalias !879
%68 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31.i, i32 0, i32 4, i32 1
store i32 2, i32* %68, align 4, !alias.scope !876, !noalias !879
call void @_ZN4core9panicking9panic_fmt17hc0383e0d65e634c7E(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(24) %_31.i, { %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @_ZN4core3num9diy_float2Fp12normalize_to10_FILE_LINE17hdc0ce4e16174d13aE to { %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !871
unreachable
bb2.i68: ; preds = %bb2.i60
call void @llvm.lifetime.end(i64 4, i8* nonnull %50), !noalias !874
call void @llvm.lifetime.end(i64 4, i8* nonnull %49), !noalias !874
call void @llvm.lifetime.end(i64 8, i8* nonnull %44), !noalias !874
call void @llvm.lifetime.end(i64 16, i8* nonnull %38)
%69 = bitcast %"num::diy_float::Fp"* %_74 to i8*
call void @llvm.lifetime.start(i64 16, i8* nonnull %69)
%70 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %_74, i32 0, i32 0
store i64 %5, i64* %70, align 8
%71 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %_74, i32 0, i32 2
store i16 %21, i16* %71, align 8
%72 = bitcast i64* %_19.i66 to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %72), !noalias !882
%73 = shl i64 %5, %46
%74 = lshr i64 %73, %46
store i64 %74, i64* %_19.i66, align 8, !noalias !882
%75 = bitcast i64** %left_val.i65 to i8*
call void @llvm.lifetime.start(i64 4, i8* nonnull %75), !noalias !882
store i64* %_19.i66, i64** %left_val.i65, align 4, !noalias !882
%76 = bitcast i64** %right_val.i64 to i8*
call void @llvm.lifetime.start(i64 4, i8* nonnull %76), !noalias !882
store i64* %70, i64** %right_val.i64, align 4, !noalias !882
%77 = icmp eq i64 %74, %5
br i1 %77, label %_ZN4core3num9diy_float2Fp12normalize_to17hd8d9d42a3c74e8ccE.exit71, label %bb3.i70
bb3.i70: ; preds = %bb2.i68
%78 = bitcast %"fmt::Arguments"* %_31.i63 to i8*
call void @llvm.lifetime.start(i64 24, i8* nonnull %78), !noalias !882
%79 = bitcast [2 x %"fmt::ArgumentV1"]* %_36.i to i8*
call void @llvm.lifetime.start(i64 16, i8* nonnull %79), !noalias !882
%80 = ptrtoint i64** %left_val.i65 to i32
%81 = ptrtoint i64** %right_val.i64 to i32
%82 = bitcast [2 x %"fmt::ArgumentV1"]* %_36.i to i32*
store i32 %80, i32* %82, align 4, !noalias !882
%83 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36.i, i32 0, i32 0, i32 2
%84 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %83 to i32*
store i32 ptrtoint (i8 (i64**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h079588134f415d4cE" to i32), i32* %84, align 4, !noalias !882
%85 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36.i, i32 0, i32 1
%86 = bitcast %"fmt::ArgumentV1"* %85 to i32*
store i32 %81, i32* %86, align 4, !noalias !882
%87 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36.i, i32 0, i32 1, i32 2
%88 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %87 to i32*
store i32 ptrtoint (i8 (i64**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h079588134f415d4cE" to i32), i32* %88, align 4, !noalias !882
%89 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36.i, i32 0, i32 0
%90 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31.i63, i32 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.3x, i32 0, i32 0), %str_slice** %90, align 4, !alias.scope !886, !noalias !889
%91 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31.i63, i32 0, i32 0, i32 1
store i32 3, i32* %91, align 4, !alias.scope !886, !noalias !889
%_6.sroa.0.0..sroa_idx.i.i69 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31.i63, i32 0, i32 2
%92 = bitcast %"option::Option<&[fmt::rt::v1::Argument]>"* %_6.sroa.0.0..sroa_idx.i.i69 to i64*
store i64 0, i64* %92, align 4, !alias.scope !886, !noalias !889
%93 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31.i63, i32 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %89, %"fmt::ArgumentV1"** %93, align 4, !alias.scope !886, !noalias !889
%94 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31.i63, i32 0, i32 4, i32 1
store i32 2, i32* %94, align 4, !alias.scope !886, !noalias !889
call void @_ZN4core9panicking9panic_fmt17hc0383e0d65e634c7E(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(24) %_31.i63, { %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @_ZN4core3num9diy_float2Fp12normalize_to10_FILE_LINE17hdc0ce4e16174d13aE to { %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !892
unreachable
_ZN4core3num9diy_float2Fp12normalize_to17hd8d9d42a3c74e8ccE.exit71: ; preds = %bb2.i68
call void @llvm.lifetime.end(i64 4, i8* nonnull %76), !noalias !882
call void @llvm.lifetime.end(i64 4, i8* nonnull %75), !noalias !882
call void @llvm.lifetime.end(i64 8, i8* nonnull %72), !noalias !882
call void @llvm.lifetime.end(i64 16, i8* nonnull %69)
%95 = sub i16 -96, %e.5.i
%96 = sext i16 %95 to i32
%97 = mul nsw i32 %96, 80
%98 = add i32 %97, 86960
%99 = sdiv i32 %98, 2126
%100 = icmp ult i32 %99, 81
br i1 %100, label %_ZN4core3num7flt2dec8strategy5grisu12cached_power17he9878b716cdd22d6E.exit, label %panic1.i, !prof !3
panic1.i: ; preds = %_ZN4core3num9diy_float2Fp12normalize_to17hd8d9d42a3c74e8ccE.exit71
call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.c to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %99, i32 81), !noalias !893
unreachable
_ZN4core3num7flt2dec8strategy5grisu12cached_power17he9878b716cdd22d6E.exit: ; preds = %_ZN4core3num9diy_float2Fp12normalize_to17hd8d9d42a3c74e8ccE.exit71
%101 = 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_POW1017h73c189cfbdab3b9bE to [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]*), i32 0, i32 %99, i32 0
%102 = load i64, i64* %101, align 8, !noalias !893
%103 = 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_POW1017h73c189cfbdab3b9bE to [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]*), i32 0, i32 %99, i32 2
%104 = load i16, i16* %103, align 8, !noalias !893
%105 = 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_POW1017h73c189cfbdab3b9bE to [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]*), i32 0, i32 %99, i32 4
%106 = load i16, i16* %105, align 2, !noalias !893
%107 = lshr i64 %f.5.i, 32
%108 = and i64 %f.5.i, 4294967295
%109 = lshr i64 %102, 32
%110 = and i64 %102, 4294967295
%111 = mul nuw i64 %109, %107
%112 = mul nuw i64 %109, %108
%113 = mul nuw i64 %110, %107
%114 = mul nuw i64 %110, %108
%115 = lshr i64 %114, 32
%116 = and i64 %113, 4294967295
%117 = and i64 %112, 4294967295
%118 = add nuw nsw i64 %116, 2147483648
%119 = add nuw nsw i64 %118, %115
%120 = add nuw nsw i64 %119, %117
%121 = lshr i64 %113, 32
%122 = lshr i64 %112, 32
%123 = lshr i64 %120, 32
%124 = add i16 %e.5.i, %104
%125 = lshr i64 %47, 32
%126 = and i64 %47, 4294967295
%127 = mul nuw i64 %109, %125
%128 = mul nuw i64 %109, %126
%129 = mul nuw i64 %110, %125
%130 = mul nuw i64 %110, %126
%131 = lshr i64 %130, 32
%132 = and i64 %129, 4294967295
%133 = and i64 %128, 4294967295
%134 = add nuw nsw i64 %132, 2147483648
%135 = add nuw nsw i64 %134, %131
%136 = add nuw nsw i64 %135, %133
%137 = lshr i64 %129, 32
%138 = lshr i64 %128, 32
%139 = lshr i64 %136, 32
%140 = lshr i64 %73, 32
%141 = and i64 %73, 4294967295
%142 = mul nuw i64 %109, %140
%143 = mul nuw i64 %109, %141
%144 = mul nuw i64 %110, %140
%145 = mul nuw i64 %110, %141
%146 = lshr i64 %145, 32
%147 = and i64 %144, 4294967295
%148 = and i64 %143, 4294967295
%149 = add nuw nsw i64 %147, 2147483648
%150 = add nuw nsw i64 %149, %146
%151 = add nuw nsw i64 %150, %148
%152 = lshr i64 %144, 32
%153 = add i64 %152, %142
%154 = lshr i64 %143, 32
%155 = add i64 %153, %154
%156 = lshr i64 %151, 32
%157 = add i64 %155, %156
%158 = add i64 %111, 1
%159 = add i64 %158, %121
%160 = add i64 %159, %122
%161 = add i64 %160, %123
%162 = sub i16 0, %124
%163 = and i16 %162, 63
%164 = zext i16 %163 to i64
%165 = lshr i64 %161, %164
%166 = trunc i64 %165 to i32
%167 = shl i64 1, %164
%168 = add i64 %167, -1
%169 = and i64 %161, %168
%170 = icmp ult i32 %166, 10000
br i1 %170, label %bb1.i74, label %bb2.i75
bb1.i74: ; preds = %_ZN4core3num7flt2dec8strategy5grisu12cached_power17he9878b716cdd22d6E.exit
%171 = icmp ult i32 %166, 100
br i1 %171, label %bb3.i77, label %bb4.i
bb2.i75: ; preds = %_ZN4core3num7flt2dec8strategy5grisu12cached_power17he9878b716cdd22d6E.exit
%172 = icmp ult i32 %166, 1000000
br i1 %172, label %bb12.i, label %bb13.i
bb3.i77: ; preds = %bb1.i74
%173 = icmp ult i32 %166, 10
%not..i76 = xor i1 %173, true
%.sink2.i = zext i1 %not..i76 to i8
%.sink.i = select i1 %173, i32 1, i32 10
br label %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17h35cc524725f53361E.exit
bb4.i: ; preds = %bb1.i74
%174 = icmp ult i32 %166, 1000
%.sink5.i = select i1 %174, i8 2, i8 3
%.sink3.i = select i1 %174, i32 100, i32 1000
br label %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17h35cc524725f53361E.exit
bb12.i: ; preds = %bb2.i75
%175 = icmp ult i32 %166, 100000
%.sink9.i = select i1 %175, i8 4, i8 5
%.sink7.i = select i1 %175, i32 10000, i32 100000
br label %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17h35cc524725f53361E.exit
bb13.i: ; preds = %bb2.i75
%176 = icmp ult i32 %166, 100000000
br i1 %176, label %bb17.i, label %bb18.i78
bb17.i: ; preds = %bb13.i
%177 = icmp ult i32 %166, 10000000
%.sink12.i = select i1 %177, i8 6, i8 7
%.sink10.i = select i1 %177, i32 1000000, i32 10000000
br label %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17h35cc524725f53361E.exit
bb18.i78: ; preds = %bb13.i
%178 = icmp ult i32 %166, 1000000000
%.sink15.i = select i1 %178, i8 8, i8 9
%.sink13.i = select i1 %178, i32 100000000, i32 1000000000
br label %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17h35cc524725f53361E.exit
_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17h35cc524725f53361E.exit: ; preds = %bb3.i77, %bb4.i, %bb12.i, %bb17.i, %bb18.i78
%.sink9.sink.i = phi i8 [ %.sink9.i, %bb12.i ], [ %.sink15.i, %bb18.i78 ], [ %.sink12.i, %bb17.i ], [ %.sink2.i, %bb3.i77 ], [ %.sink5.i, %bb4.i ]
%.sink13.sink.sink.sink.i = phi i32 [ %.sink7.i, %bb12.i ], [ %.sink13.i, %bb18.i78 ], [ %.sink10.i, %bb17.i ], [ %.sink.i, %bb3.i77 ], [ %.sink3.i, %bb4.i ]
%179 = zext i8 %.sink9.sink.i to i16
%180 = sub i16 %179, %106
%181 = add i16 %180, 1
%.neg116 = sub i64 1, %127
%.neg117 = sub i64 %.neg116, %137
%.neg119 = sub i64 %.neg117, %138
%.neg120 = sub i64 %.neg119, %139
%182 = add i64 %.neg120, %161
%183 = and i64 %182, %168
%184 = zext i8 %.sink9.sink.i to i32
br label %bb30
bb30: ; preds = %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17h35cc524725f53361E.exit, %bb37
%i.0144 = phi i32 [ 0, %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17h35cc524725f53361E.exit ], [ %191, %bb37 ]
%ten_kappa.0143 = phi i32 [ %.sink13.sink.sink.sink.i, %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17h35cc524725f53361E.exit ], [ %228, %bb37 ]
%remainder.0142 = phi i32 [ %166, %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17h35cc524725f53361E.exit ], [ %185, %bb37 ]
%185 = urem i32 %remainder.0142, %ten_kappa.0143
%186 = icmp ult i32 %i.0144, %3
br i1 %186, label %bb31, label %panic6, !prof !3
bb31: ; preds = %bb30
%187 = udiv i32 %remainder.0142, %ten_kappa.0143
%188 = trunc i32 %187 to i8
%189 = getelementptr inbounds i8, i8* %2, i32 %i.0144
%190 = add i8 %188, 48
store i8 %190, i8* %189, align 1
%191 = add nuw nsw i32 %i.0144, 1
%192 = zext i32 %185 to i64
%193 = shl i64 %192, %164
%194 = add i64 %193, %169
%195 = icmp ugt i64 %182, %194
br i1 %195, label %bb32, label %bb33
bb32: ; preds = %bb31
%196 = zext i32 %ten_kappa.0143 to i64
%197 = shl i64 %196, %164
%198 = icmp ugt i32 %191, %3
br i1 %198, label %bb4.i.i.i72, label %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h5dd7a799aeba3fc1E.exit.i40"
bb4.i.i.i72: ; preds = %bb32
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %191, i32 %3), !noalias !896
unreachable
"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h5dd7a799aeba3fc1E.exit.i40": ; preds = %bb32
%199 = sub i64 %161, %157
%200 = add i64 %199, 1
%201 = add i64 %199, -1
%202 = icmp ule i64 %201, %194
%203 = sub i64 %182, %194
%204 = icmp ult i64 %203, %197
%or.cond24.i39 = or i1 %202, %204
br i1 %or.cond24.i39, label %bb9.i44, label %bb10.i46.preheader
bb10.i46.preheader: ; preds = %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h5dd7a799aeba3fc1E.exit.i40"
br label %bb10.i46
bb9.i44.loopexit: ; preds = %bb18.i48, %bb20.i50
%plus1w.0.lcssa.i41.ph = phi i64 [ %207, %bb20.i50 ], [ %plus1w.025.i45, %bb18.i48 ]
%.lcssa.i42.ph = phi i1 [ %214, %bb20.i50 ], [ false, %bb18.i48 ]
br label %bb9.i44
bb9.i44: ; preds = %bb9.i44.loopexit, %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h5dd7a799aeba3fc1E.exit.i40"
%plus1w.0.lcssa.i41 = phi i64 [ %194, %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h5dd7a799aeba3fc1E.exit.i40" ], [ %plus1w.0.lcssa.i41.ph, %bb9.i44.loopexit ]
%.lcssa.i42 = phi i1 [ %204, %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h5dd7a799aeba3fc1E.exit.i40" ], [ %.lcssa.i42.ph, %bb9.i44.loopexit ]
%205 = icmp ule i64 %200, %plus1w.0.lcssa.i41
%or.cond21.i43 = or i1 %205, %.lcssa.i42
br i1 %or.cond21.i43, label %bb22.i51, label %bb23.i52
bb10.i46: ; preds = %bb10.i46.preheader, %bb20.i50
%206 = phi i8 [ %211, %bb20.i50 ], [ %190, %bb10.i46.preheader ]
%plus1w.025.i45 = phi i64 [ %207, %bb20.i50 ], [ %194, %bb10.i46.preheader ]
%207 = add i64 %plus1w.025.i45, %197
%208 = icmp ult i64 %207, %201
br i1 %208, label %bb20.i50, label %bb18.i48
bb18.i48: ; preds = %bb10.i46
%209 = sub i64 %201, %plus1w.025.i45
%210 = sub i64 %207, %201
%not..i47 = icmp ult i64 %209, %210
br i1 %not..i47, label %bb9.i44.loopexit, label %bb20.i50
bb20.i50: ; preds = %bb18.i48, %bb10.i46
%211 = add i8 %206, -1
store i8 %211, i8* %189, align 1, !noalias !899
%212 = icmp uge i64 %207, %201
%213 = sub i64 %182, %207
%214 = icmp ult i64 %213, %197
%or.cond.i49 = or i1 %212, %214
br i1 %or.cond.i49, label %bb9.i44.loopexit, label %bb10.i46
bb22.i51: ; preds = %bb31.i54, %bb9.i44
%215 = icmp ult i64 %plus1w.0.lcssa.i41, 2
%216 = add i64 %182, -4
%217 = icmp ugt i64 %plus1w.0.lcssa.i41, %216
%or.cond = or i1 %215, %217
%218 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 0
br i1 %or.cond, label %bb37.i56, label %bb40.i58
bb23.i52: ; preds = %bb9.i44
%219 = add i64 %plus1w.0.lcssa.i41, %197
%220 = icmp ult i64 %219, %200
br i1 %220, label %bb33.i55, label %bb31.i54
bb31.i54: ; preds = %bb23.i52
%221 = sub i64 %200, %plus1w.0.lcssa.i41
%222 = sub i64 %219, %200
%not.23.i53 = icmp ult i64 %221, %222
br i1 %not.23.i53, label %bb22.i51, label %bb33.i55
bb33.i55: ; preds = %bb31.i54, %bb23.i52
%223 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 0
store i32 0, i32* %223, align 4, !alias.scope !899
br label %bb36
bb37.i56: ; preds = %bb22.i51
store i32 0, i32* %218, align 4, !alias.scope !899
br label %bb36
bb40.i58: ; preds = %bb22.i51
store i32 1, i32* %218, align 4, !alias.scope !899
%224 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 2, i32 0
store i32 %191, i32* %224, align 4, !alias.scope !899
%225 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 2, i32 1
%226 = bitcast i32* %225 to i16*
store i16 %181, i16* %226, align 4, !alias.scope !899
br label %bb36
bb33: ; preds = %bb31
%227 = icmp ugt i32 %191, %184
br i1 %227, label %bb40.preheader, label %bb37
bb40.preheader: ; preds = %bb33
br label %bb40
bb36: ; preds = %bb40.i, %bb37.i, %bb33.i, %bb40.i58, %bb37.i56, %bb33.i55
ret void
bb37: ; preds = %bb33
%228 = udiv i32 %ten_kappa.0143, 10
%229 = icmp ult i32 %ten_kappa.0143, 10
br i1 %229, label %panic, label %bb30, !prof !902
bb40: ; preds = %bb40.preheader, %bb41
%threshold.0 = phi i64 [ %231, %bb41 ], [ %183, %bb40.preheader ]
%remainder1.0 = phi i64 [ %233, %bb41 ], [ %169, %bb40.preheader ]
%ulp.0 = phi i64 [ %232, %bb41 ], [ 1, %bb40.preheader ]
%i.1 = phi i32 [ %239, %bb41 ], [ %191, %bb40.preheader ]
%230 = mul i64 %remainder1.0, 10
%231 = mul i64 %threshold.0, 10
%232 = mul i64 %ulp.0, 10
%233 = and i64 %230, %168
%234 = icmp ult i32 %i.1, %3
br i1 %234, label %bb41, label %panic7, !prof !3
bb41: ; preds = %bb40
%235 = lshr i64 %230, %164
%236 = trunc i64 %235 to i8
%237 = getelementptr inbounds i8, i8* %2, i32 %i.1
%238 = add i8 %236, 48
store i8 %238, i8* %237, align 1
%239 = add i32 %i.1, 1
%240 = icmp ugt i64 %231, %233
br i1 %240, label %bb42, label %bb40
bb42: ; preds = %bb41
%241 = icmp ugt i32 %239, %3
br i1 %241, label %bb4.i.i.i, label %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h5dd7a799aeba3fc1E.exit.i"
bb4.i.i.i: ; preds = %bb42
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %239, i32 %3), !noalias !903
unreachable
"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h5dd7a799aeba3fc1E.exit.i": ; preds = %bb42
%242 = sub i64 %161, %157
%243 = mul i64 %232, %242
%244 = add i64 %243, %232
%245 = sub i64 %243, %232
%246 = icmp ule i64 %245, %233
%247 = sub i64 %231, %233
%248 = icmp ult i64 %247, %167
%or.cond24.i = or i1 %248, %246
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$6unwrap17h5dd7a799aeba3fc1E.exit.i"
br label %bb10.i
bb9.i.loopexit: ; preds = %bb18.i, %bb20.i
%plus1w.0.lcssa.i.ph = phi i64 [ %251, %bb20.i ], [ %plus1w.025.i, %bb18.i ]
%.lcssa.i.ph = phi i1 [ %258, %bb20.i ], [ false, %bb18.i ]
br label %bb9.i
bb9.i: ; preds = %bb9.i.loopexit, %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h5dd7a799aeba3fc1E.exit.i"
%plus1w.0.lcssa.i = phi i64 [ %233, %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h5dd7a799aeba3fc1E.exit.i" ], [ %plus1w.0.lcssa.i.ph, %bb9.i.loopexit ]
%.lcssa.i = phi i1 [ %248, %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h5dd7a799aeba3fc1E.exit.i" ], [ %.lcssa.i.ph, %bb9.i.loopexit ]
%249 = icmp ule i64 %244, %plus1w.0.lcssa.i
%or.cond21.i = or i1 %249, %.lcssa.i
br i1 %or.cond21.i, label %bb22.i, label %bb23.i
bb10.i: ; preds = %bb10.i.preheader, %bb20.i
%250 = phi i8 [ %255, %bb20.i ], [ %238, %bb10.i.preheader ]
%plus1w.025.i = phi i64 [ %251, %bb20.i ], [ %233, %bb10.i.preheader ]
%251 = add i64 %plus1w.025.i, %167
%252 = icmp ult i64 %251, %245
br i1 %252, label %bb20.i, label %bb18.i
bb18.i: ; preds = %bb10.i
%253 = sub i64 %245, %plus1w.025.i
%254 = sub i64 %251, %245
%not..i = icmp ult i64 %253, %254
br i1 %not..i, label %bb9.i.loopexit, label %bb20.i
bb20.i: ; preds = %bb18.i, %bb10.i
%255 = add i8 %250, -1
store i8 %255, i8* %237, align 1, !noalias !906
%256 = icmp uge i64 %251, %245
%257 = sub i64 %231, %251
%258 = icmp ult i64 %257, %167
%or.cond.i = or i1 %256, %258
br i1 %or.cond.i, label %bb9.i.loopexit, label %bb10.i
bb22.i: ; preds = %bb31.i, %bb9.i
%259 = mul i64 %ulp.0, 20
%260 = icmp ugt i64 %259, %plus1w.0.lcssa.i
br i1 %260, label %bb37.i, label %bb38.i
bb23.i: ; preds = %bb9.i
%261 = add i64 %plus1w.0.lcssa.i, %167
%262 = icmp ult i64 %261, %244
br i1 %262, label %bb33.i, label %bb31.i
bb31.i: ; preds = %bb23.i
%263 = sub i64 %244, %plus1w.0.lcssa.i
%264 = sub i64 %261, %244
%not.23.i = icmp ult i64 %263, %264
br i1 %not.23.i, label %bb22.i, label %bb33.i
bb33.i: ; preds = %bb31.i, %bb23.i
%265 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 0
store i32 0, i32* %265, align 4, !alias.scope !906
br label %bb36
bb37.i: ; preds = %bb38.i, %bb22.i
%266 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 0
store i32 0, i32* %266, align 4, !alias.scope !906
br label %bb36
bb38.i: ; preds = %bb22.i
%267 = mul i64 %ulp.0, -40
%268 = add i64 %267, %231
%269 = icmp ugt i64 %plus1w.0.lcssa.i, %268
br i1 %269, label %bb37.i, label %bb40.i
bb40.i: ; preds = %bb38.i
%270 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 0
store i32 1, i32* %270, align 4, !alias.scope !906
%271 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 2, i32 0
store i32 %239, i32* %271, align 4, !alias.scope !906
%272 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 2, i32 1
%273 = bitcast i32* %272 to i16*
store i16 %181, i16* %273, align 4, !alias.scope !906
br label %bb36
panic: ; preds = %bb37
call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @panic_loc.e to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
panic6: ; preds = %bb30
call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.h to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %i.0144, i32 %3)
unreachable
panic7: ; preds = %bb40
call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.i to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %i.1, i32 %3)
unreachable
}
define void @_ZN4core3num7flt2dec8strategy5grisu15format_shortest17hab8cdb7e6afa0a61E({ i32, [0 x i8], i16, [2 x i8] }* noalias nocapture sret dereferenceable(8), %"num::flt2dec::decoder::Decoded"* noalias nocapture readonly dereferenceable(32), i8* nonnull, i32) unnamed_addr {
start:
%_5 = alloca %"option::Option<(usize, i16)>", align 4
%4 = bitcast %"option::Option<(usize, i16)>"* %_5 to i8*
call void @llvm.lifetime.start(i64 12, i8* nonnull %4)
call void @_ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt17h41fd60e9119b1356E(%"option::Option<(usize, i16)>"* noalias nocapture nonnull sret dereferenceable(12) %_5, %"num::flt2dec::decoder::Decoded"* noalias nonnull readonly dereferenceable(32) %1, i8* nonnull %2, i32 %3)
%5 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %_5, i32 0, i32 0
%6 = load i32, i32* %5, align 4, !range !909
%cond = icmp eq i32 %6, 0
br i1 %cond, label %bb2, label %bb3
bb2: ; preds = %start
tail call void @_ZN4core3num7flt2dec8strategy6dragon15format_shortest17hff8e700651458cb4E({ i32, [0 x i8], i16, [2 x i8] }* noalias nocapture nonnull sret dereferenceable(8) %0, %"num::flt2dec::decoder::Decoded"* noalias nonnull readonly dereferenceable(32) %1, i8* nonnull %2, i32 %3)
br label %bb4
bb3: ; preds = %start
%7 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %_5, i32 0, i32 2, i32 0
%8 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %_5, i32 0, i32 2, i32 1
%9 = bitcast i32* %8 to i16*
%10 = load i32, i32* %7, align 4
%11 = load i16, i16* %9, align 4
%12 = getelementptr inbounds { i32, [0 x i8], i16, [2 x i8] }, { i32, [0 x i8], i16, [2 x i8] }* %0, i32 0, i32 0
store i32 %10, i32* %12, align 4
%13 = getelementptr inbounds { i32, [0 x i8], i16, [2 x i8] }, { i32, [0 x i8], i16, [2 x i8] }* %0, i32 0, i32 2
store i16 %11, i16* %13, align 4
br label %bb4
bb4: ; preds = %bb2, %bb3
call void @llvm.lifetime.end(i64 12, i8* nonnull %4)
ret void
}
define void @_ZN4core3num7flt2dec8strategy5grisu16format_exact_opt17h47d3a2796897bd84E(%"option::Option<(usize, i16)>"* noalias nocapture sret dereferenceable(12), %"num::flt2dec::decoder::Decoded"* noalias nocapture readonly dereferenceable(32), i8* nonnull, i32, i16) unnamed_addr {
start:
%5 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i32 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 @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec8strategy5grisu16format_exact_opt14_MSG_FILE_LINE17hb44575aabc74f5e8E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 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 @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec8strategy5grisu16format_exact_opt14_MSG_FILE_LINE17hec5105c73f37e068E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb4: ; preds = %bb2
%9 = icmp eq i32 %3, 0
br i1 %9, label %bb6, label %bb7
bb6: ; preds = %bb4
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec8strategy5grisu16format_exact_opt14_MSG_FILE_LINE17h76151b1796302830E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb7: ; preds = %bb4
%10 = getelementptr inbounds %"num::flt2dec::decoder::Decoded", %"num::flt2dec::decoder::Decoded"* %1, i32 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 = icmp ult i32 %32, 81
br i1 %33, label %_ZN4core3num7flt2dec8strategy5grisu12cached_power17he9878b716cdd22d6E.exit, label %panic1.i, !prof !3
panic1.i: ; preds = %bb7
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.c to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %32, i32 81), !noalias !910
unreachable
_ZN4core3num7flt2dec8strategy5grisu12cached_power17he9878b716cdd22d6E.exit: ; preds = %bb7
%34 = 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_POW1017h73c189cfbdab3b9bE to [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]*), i32 0, i32 %32, i32 0
%35 = load i64, i64* %34, align 8, !noalias !910
%36 = 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_POW1017h73c189cfbdab3b9bE to [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]*), i32 0, i32 %32, i32 2
%37 = load i16, i16* %36, align 8, !noalias !910
%38 = 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_POW1017h73c189cfbdab3b9bE to [81 x { i64, [0 x i8], i16, [0 x i8], i16, [4 x i8] }]*), i32 0, i32 %32, i32 4
%39 = load i16, i16* %38, align 2, !noalias !910
%40 = lshr i64 %f.5.i, 32
%41 = and i64 %f.5.i, 4294967295
%42 = lshr i64 %35, 32
%43 = and i64 %35, 4294967295
%44 = mul nuw i64 %42, %40
%45 = mul nuw i64 %42, %41
%46 = mul nuw i64 %43, %40
%47 = mul nuw i64 %43, %41
%48 = lshr i64 %47, 32
%49 = and i64 %46, 4294967295
%50 = and i64 %45, 4294967295
%51 = add nuw nsw i64 %49, 2147483648
%52 = add nuw nsw i64 %51, %48
%53 = add nuw nsw i64 %52, %50
%54 = lshr i64 %46, 32
%55 = add i64 %54, %44
%56 = lshr i64 %45, 32
%57 = add i64 %55, %56
%58 = lshr i64 %53, 32
%59 = add i64 %57, %58
%60 = add i16 %e.5.i, 64
%61 = add i16 %60, %37
%62 = sub i16 0, %61
%63 = sext i16 %62 to i32
%64 = and i32 %63, 63
%65 = zext i32 %64 to i64
%66 = lshr i64 %59, %65
%67 = trunc i64 %66 to i32
%68 = shl i64 1, %65
%69 = add i64 %68, -1
%70 = and i64 %59, %69
%71 = icmp ult i32 %67, 10000
br i1 %71, label %bb1.i, label %bb2.i
bb1.i: ; preds = %_ZN4core3num7flt2dec8strategy5grisu12cached_power17he9878b716cdd22d6E.exit
%72 = icmp ult i32 %67, 100
br i1 %72, label %bb3.i, label %bb4.i
bb2.i: ; preds = %_ZN4core3num7flt2dec8strategy5grisu12cached_power17he9878b716cdd22d6E.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 i8
%.sink.i = select i1 %74, i32 1, i32 10
br label %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17h35cc524725f53361E.exit
bb4.i: ; preds = %bb1.i
%75 = icmp ult i32 %67, 1000
%.sink5.i = select i1 %75, i8 2, i8 3
%.sink3.i = select i1 %75, i32 100, i32 1000
br label %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17h35cc524725f53361E.exit
bb12.i: ; preds = %bb2.i
%76 = icmp ult i32 %67, 100000
%.sink9.i = select i1 %76, i8 4, i8 5
%.sink7.i = select i1 %76, i32 10000, i32 100000
br label %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17h35cc524725f53361E.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, i8 6, i8 7
%.sink10.i = select i1 %78, i32 1000000, i32 10000000
br label %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17h35cc524725f53361E.exit
bb18.i: ; preds = %bb13.i
%79 = icmp ult i32 %67, 1000000000
%.sink15.i = select i1 %79, i8 8, i8 9
%.sink13.i = select i1 %79, i32 100000000, i32 1000000000
br label %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17h35cc524725f53361E.exit
_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17h35cc524725f53361E.exit: ; preds = %bb3.i, %bb4.i, %bb12.i, %bb17.i, %bb18.i
%.sink9.sink.i = phi i8 [ %.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 i32 [ %.sink7.i, %bb12.i ], [ %.sink13.i, %bb18.i ], [ %.sink10.i, %bb17.i ], [ %.sink.i, %bb3.i ], [ %.sink3.i, %bb4.i ]
%80 = zext i8 %.sink9.sink.i to i16
%81 = sub i16 %80, %39
%82 = add i16 %81, 1
%83 = icmp sgt i16 %82, %4
br i1 %83, label %bb13, label %bb14
bb13: ; preds = %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17h35cc524725f53361E.exit
%84 = sext i16 %82 to i32
%85 = sext i16 %4 to i32
%86 = sub nsw i32 %84, %85
%87 = icmp ult i32 %86, %3
%88 = sub i16 %82, %4
%89 = sext i16 %88 to i32
%len.0 = select i1 %87, i32 %89, i32 %3
%90 = zext i8 %.sink9.sink.i to i32
br label %bb24
bb14: ; preds = %_ZN4core3num7flt2dec8strategy5grisu22max_pow10_no_more_than17h35cc524725f53361E.exit
%91 = udiv i64 %59, 10
%92 = zext i32 %.sink13.sink.sink.sink.i to i64
%93 = shl i64 %92, %65
%94 = icmp ugt i64 %93, %68
br i1 %94, label %bb2.i58, label %bb1.i57
bb1.i57: ; preds = %bb14
%95 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 0
store i32 0, i32* %95, align 4, !alias.scope !913
br label %bb16
bb2.i58: ; preds = %bb14
%96 = sub i64 %93, %68
%97 = icmp ugt i64 %96, %68
br i1 %97, label %bb6.i61, label %bb5.i60
bb5.i60: ; preds = %bb2.i58
%98 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 0
store i32 0, i32* %98, align 4, !alias.scope !913
br label %bb16
bb6.i61: ; preds = %bb2.i58
%99 = sub i64 %93, %91
%100 = icmp ugt i64 %99, %91
br i1 %100, label %bb9.i63, label %bb8.i62
bb8.i62: ; preds = %bb9.i63, %bb6.i61
%101 = icmp ugt i64 %91, %68
br i1 %101, label %bb15.i66, label %bb14.i65
bb9.i63: ; preds = %bb6.i61
%102 = shl nuw nsw i64 %91, 1
%103 = sub i64 %93, %102
%104 = shl i64 %68, 1
%105 = icmp ult i64 %103, %104
br i1 %105, label %bb8.i62, label %bb11.i64
bb11.i64: ; preds = %bb9.i63
%106 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 0
store i32 1, i32* %106, align 4, !alias.scope !913
%107 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 2, i32 0
store i32 0, i32* %107, align 4, !alias.scope !913
%108 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 2, i32 1
%109 = bitcast i32* %108 to i16*
store i16 %82, i16* %109, align 4, !alias.scope !913
br label %bb16
bb14.i65: ; preds = %bb15.i66, %bb8.i62
%110 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 0
store i32 0, i32* %110, align 4, !alias.scope !913
br label %bb16
bb15.i66: ; preds = %bb8.i62
%111 = sub i64 %91, %68
%112 = sub i64 %93, %111
%113 = icmp ugt i64 %112, %111
br i1 %113, label %bb14.i65, label %bb17.i70
bb17.i70: ; preds = %bb15.i66
%114 = tail call i16 @_ZN4core3num7flt2dec8round_up17he1326f42c86fd7afE(i8* nonnull %2, i32 %3, i32 0), !noalias !913
%abi_cast.sroa.4.0.extract.shift.i67 = lshr i16 %114, 8
%abi_cast.sroa.4.0.extract.trunc.i68 = trunc i16 %abi_cast.sroa.4.0.extract.shift.i67 to i8
%115 = and i16 %114, 255
%cond.i69 = icmp eq i16 %115, 1
br i1 %cond.i69, label %bb21.i72, label %bb22.i75
bb21.i72: ; preds = %bb17.i70
%116 = add i16 %81, 2
%117 = icmp sgt i16 %116, %4
br i1 %117, label %bb30.i76, label %bb22.i75
bb22.i75: ; preds = %bb30.i76, %bb21.i72, %bb17.i70
%exp.0.i73 = phi i16 [ %82, %bb17.i70 ], [ %116, %bb30.i76 ], [ %116, %bb21.i72 ]
%len.0.i74 = phi i32 [ 0, %bb17.i70 ], [ 1, %bb30.i76 ], [ 0, %bb21.i72 ]
%118 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 0
store i32 1, i32* %118, align 4, !alias.scope !913
%119 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 2, i32 0
store i32 %len.0.i74, i32* %119, align 4, !alias.scope !913
%120 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 2, i32 1
%121 = bitcast i32* %120 to i16*
store i16 %exp.0.i73, i16* %121, align 4, !alias.scope !913
br label %bb16
bb30.i76: ; preds = %bb21.i72
store i8 %abi_cast.sroa.4.0.extract.trunc.i68, i8* %2, align 1, !noalias !913
br label %bb22.i75
bb16: ; preds = %bb22.i, %bb14.i, %bb11.i, %bb5.i, %bb1.i32, %bb22.i54, %bb14.i44, %bb11.i43, %bb5.i39, %bb1.i36, %bb22.i75, %bb14.i65, %bb11.i64, %bb5.i60, %bb1.i57, %bb34
ret void
bb24: ; preds = %bb13, %bb30
%i.0113 = phi i32 [ 0, %bb13 ], [ %128, %bb30 ]
%ten_kappa.0112 = phi i32 [ %.sink13.sink.sink.sink.i, %bb13 ], [ %167, %bb30 ]
%remainder.0111 = phi i32 [ %67, %bb13 ], [ %122, %bb30 ]
%122 = urem i32 %remainder.0111, %ten_kappa.0112
%123 = icmp ult i32 %i.0113, %3
br i1 %123, label %bb25, label %panic4, !prof !3
bb25: ; preds = %bb24
%124 = udiv i32 %remainder.0111, %ten_kappa.0112
%125 = trunc i32 %124 to i8
%126 = getelementptr inbounds i8, i8* %2, i32 %i.0113
%127 = add i8 %125, 48
store i8 %127, i8* %126, align 1
%128 = add nuw nsw i32 %i.0113, 1
%129 = icmp eq i32 %128, %len.0
br i1 %129, label %bb26, label %bb27
bb26: ; preds = %bb25
%130 = zext i32 %122 to i64
%131 = shl i64 %130, %65
%132 = add i64 %131, %70
%133 = zext i32 %ten_kappa.0112 to i64
%134 = shl i64 %133, %65
%135 = icmp ugt i64 %134, %68
br i1 %135, label %bb2.i37, label %bb1.i36
bb1.i36: ; preds = %bb26
%136 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 0
store i32 0, i32* %136, align 4, !alias.scope !916
br label %bb16
bb2.i37: ; preds = %bb26
%137 = sub i64 %134, %68
%138 = icmp ugt i64 %137, %68
br i1 %138, label %bb6.i40, label %bb5.i39
bb5.i39: ; preds = %bb2.i37
%139 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 0
store i32 0, i32* %139, align 4, !alias.scope !916
br label %bb16
bb6.i40: ; preds = %bb2.i37
%140 = sub i64 %134, %132
%141 = icmp ugt i64 %140, %132
br i1 %141, label %bb9.i42, label %bb8.i41
bb8.i41: ; preds = %bb9.i42, %bb6.i40
%142 = icmp ugt i64 %132, %68
br i1 %142, label %bb15.i45, label %bb14.i44
bb9.i42: ; preds = %bb6.i40
%143 = shl i64 %132, 1
%144 = sub i64 %134, %143
%145 = shl i64 %68, 1
%146 = icmp ult i64 %144, %145
br i1 %146, label %bb8.i41, label %bb11.i43
bb11.i43: ; preds = %bb9.i42
%147 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 0
store i32 1, i32* %147, align 4, !alias.scope !916
%148 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 2, i32 0
store i32 %len.0, i32* %148, align 4, !alias.scope !916
%149 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 2, i32 1
%150 = bitcast i32* %149 to i16*
store i16 %82, i16* %150, align 4, !alias.scope !916
br label %bb16
bb14.i44: ; preds = %bb15.i45, %bb8.i41
%151 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 0
store i32 0, i32* %151, align 4, !alias.scope !916
br label %bb16
bb15.i45: ; preds = %bb8.i41
%152 = sub i64 %132, %68
%153 = sub i64 %134, %152
%154 = icmp ugt i64 %153, %152
br i1 %154, label %bb14.i44, label %bb17.i49
bb17.i49: ; preds = %bb15.i45
%155 = tail call i16 @_ZN4core3num7flt2dec8round_up17he1326f42c86fd7afE(i8* nonnull %2, i32 %3, i32 %len.0), !noalias !916
%abi_cast.sroa.4.0.extract.shift.i46 = lshr i16 %155, 8
%abi_cast.sroa.4.0.extract.trunc.i47 = trunc i16 %abi_cast.sroa.4.0.extract.shift.i46 to i8
%156 = and i16 %155, 255
%cond.i48 = icmp eq i16 %156, 1
br i1 %cond.i48, label %bb21.i51, label %bb22.i54
bb21.i51: ; preds = %bb17.i49
%157 = add i16 %81, 2
%158 = icmp sgt i16 %157, %4
%159 = icmp ult i32 %len.0, %3
%or.cond.i50 = and i1 %158, %159
br i1 %or.cond.i50, label %bb30.i55, label %bb22.i54
bb22.i54: ; preds = %bb30.i55, %bb21.i51, %bb17.i49
%exp.0.i52 = phi i16 [ %82, %bb17.i49 ], [ %157, %bb30.i55 ], [ %157, %bb21.i51 ]
%len.0.i53 = phi i32 [ %len.0, %bb17.i49 ], [ %165, %bb30.i55 ], [ %len.0, %bb21.i51 ]
%160 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 0
store i32 1, i32* %160, align 4, !alias.scope !916
%161 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 2, i32 0
store i32 %len.0.i53, i32* %161, align 4, !alias.scope !916
%162 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 2, i32 1
%163 = bitcast i32* %162 to i16*
store i16 %exp.0.i52, i16* %163, align 4, !alias.scope !916
br label %bb16
bb30.i55: ; preds = %bb21.i51
%164 = getelementptr inbounds i8, i8* %2, i32 %len.0
store i8 %abi_cast.sroa.4.0.extract.trunc.i47, i8* %164, align 1, !noalias !916
%165 = add i32 %len.0, 1
br label %bb22.i54
bb27: ; preds = %bb25
%166 = icmp ugt i32 %128, %90
br i1 %166, label %bb31, label %bb30
bb30: ; preds = %bb27
%167 = udiv i32 %ten_kappa.0112, 10
%168 = icmp ult i32 %ten_kappa.0112, 10
br i1 %168, label %panic, label %bb24, !prof !902
bb31: ; preds = %bb27
%169 = add nsw i32 %63, 63
%170 = and i32 %169, 63
%171 = zext i32 %170 to i64
%172 = shl i64 1, %171
br label %bb33
bb33: ; preds = %bb36, %bb31
%remainder1.0 = phi i64 [ %70, %bb31 ], [ %177, %bb36 ]
%i.1 = phi i32 [ %128, %bb31 ], [ %183, %bb36 ]
%err.0 = phi i64 [ 1, %bb31 ], [ %176, %bb36 ]
%173 = icmp ult i64 %err.0, %172
br i1 %173, label %bb35, label %bb34
bb34: ; preds = %bb33
%174 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 0
store i32 0, i32* %174, align 4
br label %bb16
bb35: ; preds = %bb33
%175 = mul i64 %remainder1.0, 10
%176 = mul i64 %err.0, 10
%177 = and i64 %175, %69
%178 = icmp ult i32 %i.1, %3
br i1 %178, label %bb36, label %panic5, !prof !3
bb36: ; preds = %bb35
%179 = lshr i64 %175, %65
%180 = trunc i64 %179 to i8
%181 = getelementptr inbounds i8, i8* %2, i32 %i.1
%182 = add i8 %180, 48
store i8 %182, i8* %181, align 1
%183 = add i32 %i.1, 1
%184 = icmp eq i32 %183, %len.0
br i1 %184, label %bb37, label %bb33
bb37: ; preds = %bb36
%185 = icmp ugt i64 %68, %176
br i1 %185, label %bb2.i33, label %bb1.i32
bb1.i32: ; preds = %bb37
%186 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 0
store i32 0, i32* %186, align 4, !alias.scope !919
br label %bb16
bb2.i33: ; preds = %bb37
%187 = sub i64 %68, %176
%188 = icmp ugt i64 %187, %176
br i1 %188, label %bb6.i, label %bb5.i
bb5.i: ; preds = %bb2.i33
%189 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 0
store i32 0, i32* %189, align 4, !alias.scope !919
br label %bb16
bb6.i: ; preds = %bb2.i33
%190 = sub i64 %68, %177
%191 = icmp ugt i64 %190, %177
br i1 %191, label %bb9.i, label %bb8.i
bb8.i: ; preds = %bb9.i, %bb6.i
%192 = icmp ugt i64 %177, %176
br i1 %192, label %bb15.i, label %bb14.i
bb9.i: ; preds = %bb6.i
%193 = shl i64 %177, 1
%194 = sub i64 %68, %193
%195 = mul i64 %err.0, 20
%196 = icmp ult i64 %194, %195
br i1 %196, label %bb8.i, label %bb11.i
bb11.i: ; preds = %bb9.i
%197 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 0
store i32 1, i32* %197, align 4, !alias.scope !919
%198 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 2, i32 0
store i32 %len.0, i32* %198, align 4, !alias.scope !919
%199 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 2, i32 1
%200 = bitcast i32* %199 to i16*
store i16 %82, i16* %200, align 4, !alias.scope !919
br label %bb16
bb14.i: ; preds = %bb15.i, %bb8.i
%201 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 0
store i32 0, i32* %201, align 4, !alias.scope !919
br label %bb16
bb15.i: ; preds = %bb8.i
%202 = sub i64 %177, %176
%203 = sub i64 %68, %202
%204 = icmp ugt i64 %203, %202
br i1 %204, label %bb14.i, label %bb17.i35
bb17.i35: ; preds = %bb15.i
%205 = tail call i16 @_ZN4core3num7flt2dec8round_up17he1326f42c86fd7afE(i8* nonnull %2, i32 %3, i32 %len.0), !noalias !919
%abi_cast.sroa.4.0.extract.shift.i = lshr i16 %205, 8
%abi_cast.sroa.4.0.extract.trunc.i = trunc i16 %abi_cast.sroa.4.0.extract.shift.i to i8
%206 = and i16 %205, 255
%cond.i = icmp eq i16 %206, 1
br i1 %cond.i, label %bb21.i, label %bb22.i
bb21.i: ; preds = %bb17.i35
%207 = add i16 %81, 2
%208 = icmp sgt i16 %207, %4
%209 = icmp ult i32 %len.0, %3
%or.cond.i = and i1 %208, %209
br i1 %or.cond.i, label %bb30.i, label %bb22.i
bb22.i: ; preds = %bb30.i, %bb21.i, %bb17.i35
%exp.0.i = phi i16 [ %82, %bb17.i35 ], [ %207, %bb30.i ], [ %207, %bb21.i ]
%len.0.i = phi i32 [ %len.0, %bb17.i35 ], [ %215, %bb30.i ], [ %len.0, %bb21.i ]
%210 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 0
store i32 1, i32* %210, align 4, !alias.scope !919
%211 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 2, i32 0
store i32 %len.0.i, i32* %211, align 4, !alias.scope !919
%212 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %0, i32 0, i32 2, i32 1
%213 = bitcast i32* %212 to i16*
store i16 %exp.0.i, i16* %213, align 4, !alias.scope !919
br label %bb16
bb30.i: ; preds = %bb21.i
%214 = getelementptr inbounds i8, i8* %2, i32 %len.0
store i8 %abi_cast.sroa.4.0.extract.trunc.i, i8* %214, align 1, !noalias !919
%215 = add i32 %len.0, 1
br label %bb22.i
panic: ; preds = %bb30
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @panic_loc.j to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
panic4: ; preds = %bb24
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.l to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %i.0113, i32 %3)
unreachable
panic5: ; preds = %bb35
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.m to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %i.1, i32 %3)
unreachable
}
define void @_ZN4core3num7flt2dec8strategy5grisu12format_exact17h13ef56d25f5a24dcE({ i32, [0 x i8], i16, [2 x i8] }* noalias nocapture sret dereferenceable(8), %"num::flt2dec::decoder::Decoded"* noalias nocapture readonly dereferenceable(32), i8* nonnull, i32, i16) unnamed_addr {
start:
%_7 = alloca %"option::Option<(usize, i16)>", align 4
%5 = bitcast %"option::Option<(usize, i16)>"* %_7 to i8*
call void @llvm.lifetime.start(i64 12, i8* nonnull %5)
call void @_ZN4core3num7flt2dec8strategy5grisu16format_exact_opt17h47d3a2796897bd84E(%"option::Option<(usize, i16)>"* noalias nocapture nonnull sret dereferenceable(12) %_7, %"num::flt2dec::decoder::Decoded"* noalias nonnull readonly dereferenceable(32) %1, i8* nonnull %2, i32 %3, i16 %4)
%6 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %_7, i32 0, i32 0
%7 = load i32, i32* %6, align 4, !range !909
%cond = icmp eq i32 %7, 0
br i1 %cond, label %bb2, label %bb3
bb2: ; preds = %start
tail call void @_ZN4core3num7flt2dec8strategy6dragon12format_exact17hb3cc03ea8ced3740E({ i32, [0 x i8], i16, [2 x i8] }* noalias nocapture nonnull sret dereferenceable(8) %0, %"num::flt2dec::decoder::Decoded"* noalias nonnull readonly dereferenceable(32) %1, i8* nonnull %2, i32 %3, i16 %4)
br label %bb4
bb3: ; preds = %start
%8 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %_7, i32 0, i32 2, i32 0
%9 = getelementptr inbounds %"option::Option<(usize, i16)>", %"option::Option<(usize, i16)>"* %_7, i32 0, i32 2, i32 1
%10 = bitcast i32* %9 to i16*
%11 = load i32, i32* %8, align 4
%12 = load i16, i16* %10, align 4
%13 = getelementptr inbounds { i32, [0 x i8], i16, [2 x i8] }, { i32, [0 x i8], i16, [2 x i8] }* %0, i32 0, i32 0
store i32 %11, i32* %13, align 4
%14 = getelementptr inbounds { i32, [0 x i8], i16, [2 x i8] }, { i32, [0 x i8], i16, [2 x i8] }* %0, i32 0, i32 2
store i16 %12, i16* %14, align 4
br label %bb4
bb4: ; preds = %bb2, %bb3
call void @llvm.lifetime.end(i64 12, i8* nonnull %5)
ret void
}
define i16 @_ZN4core3num7flt2dec8round_up17he1326f42c86fd7afE(i8* nonnull, i32, i32) unnamed_addr {
start:
%3 = icmp ugt i32 %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$5index17h76e0f1fb49b59932E.exit"
bb4.i.i.i: ; preds = %start
tail call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %2, i32 %1), !noalias !922
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h76e0f1fb49b59932E.exit": ; preds = %start
%4 = getelementptr inbounds i8, i8* %0, i32 %2
%5 = ptrtoint i8* %0 to i32
br label %bb1.i.i
bb1.i.i: ; preds = %bb34.i.i, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h76e0f1fb49b59932E.exit"
%6 = phi i8* [ %4, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h76e0f1fb49b59932E.exit" ], [ %21, %bb34.i.i ]
%g.sroa.0.0.i.i = phi i32 [ %2, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h76e0f1fb49b59932E.exit" ], [ %22, %bb34.i.i ]
%7 = ptrtoint i8* %6 to i32
%8 = sub i32 %7, %5
%9 = icmp ugt i32 %8, 3
br i1 %9, label %bb4.i.i, label %bb46.i.i.preheader
bb46.i.i.preheader: ; preds = %bb1.i.i
br label %bb46.i.i
bb4.i.i: ; preds = %bb1.i.i
%10 = getelementptr inbounds i8, i8* %6, i32 -1
%11 = load i8, i8* %10, align 1, !alias.scope !925, !noalias !930
%12 = icmp eq i8 %11, 57
br i1 %12, label %bb11.i.i, label %bb12.i.i
bb11.i.i: ; preds = %bb4.i.i
%13 = getelementptr inbounds i8, i8* %6, i32 -2
%14 = load i8, i8* %13, align 1, !alias.scope !937, !noalias !942
%15 = icmp eq i8 %14, 57
br i1 %15, label %bb25.i.i, label %bb26.i.i
bb12.i.i: ; preds = %bb4.i.i
%16 = add i32 %g.sroa.0.0.i.i, -1
br label %bb7
bb25.i.i: ; preds = %bb11.i.i
%17 = getelementptr inbounds i8, i8* %6, i32 -3
%18 = load i8, i8* %17, align 1, !alias.scope !944, !noalias !949
%19 = icmp eq i8 %18, 57
br i1 %19, label %bb34.i.i, label %bb35.i.i
bb26.i.i: ; preds = %bb11.i.i
%20 = add i32 %g.sroa.0.0.i.i, -2
br label %bb7
bb34.i.i: ; preds = %bb25.i.i
%21 = getelementptr inbounds i8, i8* %6, i32 -4
%22 = add i32 %g.sroa.0.0.i.i, -4
%23 = load i8, i8* %21, align 1, !alias.scope !951, !noalias !956
%24 = icmp eq i8 %23, 57
br i1 %24, label %bb1.i.i, label %bb7.loopexit107
bb35.i.i: ; preds = %bb25.i.i
%25 = add i32 %g.sroa.0.0.i.i, -3
br label %bb7
bb46.i.i: ; preds = %bb46.i.i.preheader, %bb48.i.i
%26 = phi i8* [ %28, %bb48.i.i ], [ %6, %bb46.i.i.preheader ]
%g.sroa.0.1.i.i = phi i32 [ %29, %bb48.i.i ], [ %g.sroa.0.0.i.i, %bb46.i.i.preheader ]
%27 = icmp eq i8* %26, %0
br i1 %27, label %bb6, label %bb48.i.i
bb48.i.i: ; preds = %bb46.i.i
%28 = getelementptr inbounds i8, i8* %26, i32 -1
%29 = add i32 %g.sroa.0.1.i.i, -1
%30 = load i8, i8* %28, align 1, !alias.scope !958, !noalias !963
%31 = icmp eq i8 %30, 57
br i1 %31, label %bb46.i.i, label %bb7.loopexit
bb4: ; preds = %bb6
%32 = icmp eq i32 %1, 0
br i1 %32, label %panic3, label %bb16, !prof !902
bb6: ; preds = %bb46.i.i
%33 = icmp eq i32 %2, 0
br i1 %33, label %bb8, label %bb4
bb7.loopexit: ; preds = %bb48.i.i
br label %bb7
bb7.loopexit107: ; preds = %bb34.i.i
br label %bb7
bb7: ; preds = %bb7.loopexit107, %bb7.loopexit, %bb12.i.i, %bb26.i.i, %bb35.i.i
%_15.sroa.6.8.insert.insert.sink.i.i.off32.ph = phi i32 [ %25, %bb35.i.i ], [ %20, %bb26.i.i ], [ %16, %bb12.i.i ], [ %29, %bb7.loopexit ], [ %22, %bb7.loopexit107 ]
%34 = icmp ult i32 %_15.sroa.6.8.insert.insert.sink.i.i.off32.ph, %1
br i1 %34, label %bb9, label %panic, !prof !3
bb8.loopexit: ; preds = %bb15
br label %bb8
bb8.loopexit106: ; preds = %bb22
br label %bb8
bb8: ; preds = %bb8.loopexit106, %bb8.loopexit, %bb9, %bb16, %bb6
%_0.sroa.4.0 = phi i16 [ 12544, %bb6 ], [ 12288, %bb16 ], [ 0, %bb9 ], [ 0, %bb8.loopexit ], [ 12288, %bb8.loopexit106 ]
%_0.sroa.0.0 = phi i16 [ 1, %bb6 ], [ 1, %bb16 ], [ 0, %bb9 ], [ 0, %bb8.loopexit ], [ 1, %bb8.loopexit106 ]
%_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, i32 %_15.sroa.6.8.insert.insert.sink.i.i.off32.ph
%36 = load i8, i8* %35, align 1
%37 = add i8 %36, 1
store i8 %37, i8* %35, align 1
%iter.sroa.0.062 = add i32 %_15.sroa.6.8.insert.insert.sink.i.i.off32.ph, 1
%38 = icmp ult i32 %iter.sroa.0.062, %2
br i1 %38, label %bb14.preheader, label %bb8
bb14.preheader: ; preds = %bb9
br label %bb14
bb14: ; preds = %bb14.preheader, %bb15
%iter.sroa.0.063 = phi i32 [ %iter.sroa.0.0, %bb15 ], [ %iter.sroa.0.062, %bb14.preheader ]
%39 = icmp ult i32 %iter.sroa.0.063, %1
br i1 %39, label %bb15, label %panic2, !prof !3
bb15: ; preds = %bb14
%40 = getelementptr inbounds i8, i8* %0, i32 %iter.sroa.0.063
store i8 48, i8* %40, align 1
%iter.sroa.0.0 = add i32 %iter.sroa.0.063, 1
%41 = icmp ult i32 %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 i32 %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.061 = phi i32 [ %44, %bb22 ], [ 1, %bb21.preheader ]
%43 = icmp ult i32 %iter1.sroa.0.061, %1
br i1 %43, label %bb22, label %panic6, !prof !3
bb22: ; preds = %bb21
%44 = add nuw i32 %iter1.sroa.0.061, 1
%45 = getelementptr inbounds i8, i8* %0, i32 %iter1.sroa.0.061
store i8 48, i8* %45, align 1
%46 = icmp ult i32 %44, %2
br i1 %46, label %bb21, label %bb8.loopexit106
panic: ; preds = %bb7
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.p to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %_15.sroa.6.8.insert.insert.sink.i.i.off32.ph, i32 %1)
unreachable
panic2: ; preds = %bb14
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.q to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %iter.sroa.0.063, i32 %1)
unreachable
panic3: ; preds = %bb4
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.r to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 0, i32 0)
unreachable
panic6: ; preds = %bb21
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.s to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %iter1.sroa.0.061, i32 %1)
unreachable
}
; Function Attrs: norecurse nounwind readonly
define i32 @_ZN4core3num7flt2dec4Part3len17he9730480866ff27dE(%"num::flt2dec::Part"* noalias nocapture readonly dereferenceable(12)) unnamed_addr #3 {
start:
%1 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %0, i32 0, i32 0
%2 = load i16, i16* %1, align 2, !range !965
%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, i32 0, i32 2, i32 0
%4 = load i32, i32* %3, align 4
br label %bb4
bb2: ; preds = %start
%5 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %0, i32 0, i32 1, i32 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, i32 0, i32 2, i32 1
%9 = load i32, i32* %8, align 4
br label %bb4
bb4: ; preds = %bb8, %bb5, %bb6, %bb1, %bb3
%_0.0 = phi i32 [ %9, %bb3 ], [ %4, %bb1 ], [ %., %bb6 ], [ 1, %bb5 ], [ %.1, %bb8 ]
ret i32 %_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, i32 4, i32 5
br label %bb4
bb8: ; preds = %bb5
%12 = icmp ult i16 %6, 100
%.1 = select i1 %12, i32 2, i32 3
br label %bb4
}
define void @_ZN4core3num7flt2dec4Part5write17h46ff2839618901d0E(%"option::Option<usize>"* noalias nocapture sret dereferenceable(8), %"num::flt2dec::Part"* noalias nocapture readonly dereferenceable(12), i8* nonnull, i32) unnamed_addr {
start:
%4 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %1, i32 0, i32 0
%5 = load i16, i16* %4, align 2, !range !965, !alias.scope !966
%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, i32 0, i32 2, i32 0
%7 = load i32, i32* %6, align 4, !alias.scope !966
br label %_ZN4core3num7flt2dec4Part3len17he9730480866ff27dE.exit
bb2.i: ; preds = %start
%8 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %1, i32 0, i32 1, i32 0
%9 = load i16, i16* %8, align 2, !alias.scope !966
%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, i32 0, i32 2, i32 1
%12 = load i32, i32* %11, align 4, !alias.scope !966
br label %_ZN4core3num7flt2dec4Part3len17he9730480866ff27dE.exit
bb5.i: ; preds = %bb2.i
%13 = icmp ult i16 %9, 10
br i1 %13, label %_ZN4core3num7flt2dec4Part3len17he9730480866ff27dE.exit, label %bb8.i
bb6.i: ; preds = %bb2.i
%14 = icmp ult i16 %9, 10000
%..i = select i1 %14, i32 4, i32 5
br label %_ZN4core3num7flt2dec4Part3len17he9730480866ff27dE.exit
bb8.i: ; preds = %bb5.i
%15 = icmp ult i16 %9, 100
%.1.i = select i1 %15, i32 2, i32 3
br label %_ZN4core3num7flt2dec4Part3len17he9730480866ff27dE.exit
_ZN4core3num7flt2dec4Part3len17he9730480866ff27dE.exit: ; preds = %bb1.i, %bb3.i, %bb5.i, %bb6.i, %bb8.i
%_0.0.i = phi i32 [ %12, %bb3.i ], [ %7, %bb1.i ], [ %..i, %bb6.i ], [ 1, %bb5.i ], [ %.1.i, %bb8.i ]
%16 = icmp ugt i32 %_0.0.i, %3
br i1 %16, label %bb4, label %bb3
bb3: ; preds = %_ZN4core3num7flt2dec4Part3len17he9730480866ff27dE.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_mut17h5a0f2407d850e405E.exit22"
]
bb4: ; preds = %_ZN4core3num7flt2dec4Part3len17he9730480866ff27dE.exit
%17 = getelementptr inbounds %"option::Option<usize>", %"option::Option<usize>"* %0, i32 0, i32 0
store i32 0, i32* %17, align 4
br label %bb28
bb5: ; preds = %bb3
%18 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %1, i32 0, i32 2, i32 0
%19 = load i32, i32* %18, align 4
%20 = icmp ugt i32 %19, %3
br i1 %20, label %bb4.i.i.i19, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h5a0f2407d850e405E.exit20"
bb4.i.i.i19: ; preds = %bb5
tail call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %19, i32 %3), !noalias !969
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h5a0f2407d850e405E.exit20": ; preds = %bb5
%21 = icmp eq i32 %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_mut17h5a0f2407d850e405E.exit20"
call void @llvm.memset.p0i8.i32(i8* nonnull %2, i8 48, i32 %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_mut17h5a0f2407d850e405E.exit22": ; preds = %bb3
%22 = icmp eq i32 %_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$4next17h8948994ba5bdf262E.exit.preheader"
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h8948994ba5bdf262E.exit.preheader": ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h5a0f2407d850e405E.exit22"
%23 = getelementptr inbounds i8, i8* %2, i32 %_0.0.i
%24 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %1, i32 0, i32 1, i32 0
%25 = load i16, i16* %24, align 2
br label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h8948994ba5bdf262E.exit"
bb7: ; preds = %bb3
%26 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %1, i32 0, i32 2, i32 1
%27 = load i32, i32* %26, align 4
%28 = icmp ugt i32 %27, %3
br i1 %28, label %bb4.i.i.i, label %"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$15copy_from_slice17h413de2d1fa842e27E.exit"
bb4.i.i.i: ; preds = %bb7
tail call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %27, i32 %3), !noalias !972
unreachable
"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$15copy_from_slice17h413de2d1fa842e27E.exit": ; preds = %bb7
%29 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %1, i32 0, i32 2
%30 = bitcast [2 x i32]* %29 to i8**
%31 = load i8*, i8** %30, align 4, !nonnull !975
tail call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull %2, i8* nonnull %31, i32 %27, i32 1, i1 false)
br label %bb8
bb8.loopexit: ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h8948994ba5bdf262E.exit"
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_mut17h5a0f2407d850e405E.exit22", %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h5a0f2407d850e405E.exit20", %"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$15copy_from_slice17h413de2d1fa842e27E.exit"
%32 = getelementptr inbounds %"option::Option<usize>", %"option::Option<usize>"* %0, i32 0, i32 0
store i32 1, i32* %32, align 4
%33 = getelementptr inbounds %"option::Option<usize>", %"option::Option<usize>"* %0, i32 0, i32 2, i32 0
store i32 %_0.0.i, i32* %33, align 4
br label %bb28
"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h8948994ba5bdf262E.exit": ; preds = %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h8948994ba5bdf262E.exit.preheader", %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h8948994ba5bdf262E.exit"
%v.048 = phi i16 [ %38, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h8948994ba5bdf262E.exit" ], [ %25, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h8948994ba5bdf262E.exit.preheader" ]
%iter1.sroa.4.0.in47 = phi i8* [ %34, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h8948994ba5bdf262E.exit" ], [ %23, %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h8948994ba5bdf262E.exit.preheader" ]
%34 = getelementptr inbounds i8, i8* %iter1.sroa.4.0.in47, i32 -1
%35 = urem i16 %v.048, 10
%36 = trunc i16 %35 to i8
%37 = or i8 %36, 48
store i8 %37, i8* %34, align 1
%38 = udiv i16 %v.048, 10
%39 = icmp eq i8* %34, %2
br i1 %39, label %bb8.loopexit, label %"_ZN75_$LT$core..iter..Rev$LT$I$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h8948994ba5bdf262E.exit"
bb28: ; preds = %bb4, %bb8
ret void
}
; Function Attrs: nounwind readonly
define i32 @_ZN4core3num7flt2dec9Formatted3len17h559d72b923266831E(%"num::flt2dec::Formatted"* noalias nocapture readonly dereferenceable(16)) unnamed_addr #4 {
start:
%1 = getelementptr inbounds %"num::flt2dec::Formatted", %"num::flt2dec::Formatted"* %0, i32 0, i32 0, i32 1
%2 = load i32, i32* %1, align 4
%3 = getelementptr inbounds %"num::flt2dec::Formatted", %"num::flt2dec::Formatted"* %0, i32 0, i32 2, i32 0
%4 = load %"num::flt2dec::Part"*, %"num::flt2dec::Part"** %3, align 4, !nonnull !975
%5 = getelementptr inbounds %"num::flt2dec::Formatted", %"num::flt2dec::Formatted"* %0, i32 0, i32 2, i32 1
%6 = load i32, i32* %5, align 4
%7 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 %6
%8 = icmp eq i32 %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$4next17h17877d8c55952ab3E.exit.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h17877d8c55952ab3E.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$4next17h17877d8c55952ab3E.exit"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h17877d8c55952ab3E.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h17877d8c55952ab3E.exit.preheader", %_ZN4core3num7flt2dec4Part3len17he9730480866ff27dE.exit
%len.015 = phi i32 [ %22, %_ZN4core3num7flt2dec4Part3len17he9730480866ff27dE.exit ], [ %2, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h17877d8c55952ab3E.exit.preheader" ]
%iter.sroa.0.0.in14 = phi %"num::flt2dec::Part"* [ %9, %_ZN4core3num7flt2dec4Part3len17he9730480866ff27dE.exit ], [ %4, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h17877d8c55952ab3E.exit.preheader" ]
%9 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %iter.sroa.0.0.in14, i32 1
%10 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %iter.sroa.0.0.in14, i32 0, i32 0
%11 = load i16, i16* %10, align 2, !range !965, !alias.scope !976
%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 = %_ZN4core3num7flt2dec4Part3len17he9730480866ff27dE.exit
br label %bb5
bb5: ; preds = %bb5.loopexit, %start
%len.0.lcssa = phi i32 [ %2, %start ], [ %22, %bb5.loopexit ]
ret i32 %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$4next17h17877d8c55952ab3E.exit"
%12 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %iter.sroa.0.0.in14, i32 0, i32 2, i32 0
%13 = load i32, i32* %12, align 4, !alias.scope !976
br label %_ZN4core3num7flt2dec4Part3len17he9730480866ff27dE.exit
bb2.i: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h17877d8c55952ab3E.exit"
%14 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %iter.sroa.0.0.in14, i32 0, i32 1, i32 0
%15 = load i16, i16* %14, align 2, !alias.scope !976
%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$4next17h17877d8c55952ab3E.exit"
%17 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %iter.sroa.0.0.in14, i32 0, i32 2, i32 1
%18 = load i32, i32* %17, align 4, !alias.scope !976
br label %_ZN4core3num7flt2dec4Part3len17he9730480866ff27dE.exit
bb5.i: ; preds = %bb2.i
%19 = icmp ult i16 %15, 10
br i1 %19, label %_ZN4core3num7flt2dec4Part3len17he9730480866ff27dE.exit, label %bb8.i
bb6.i: ; preds = %bb2.i
%20 = icmp ult i16 %15, 10000
%..i = select i1 %20, i32 4, i32 5
br label %_ZN4core3num7flt2dec4Part3len17he9730480866ff27dE.exit
bb8.i: ; preds = %bb5.i
%21 = icmp ult i16 %15, 100
%.1.i = select i1 %21, i32 2, i32 3
br label %_ZN4core3num7flt2dec4Part3len17he9730480866ff27dE.exit
_ZN4core3num7flt2dec4Part3len17he9730480866ff27dE.exit: ; preds = %bb1.i, %bb3.i, %bb5.i, %bb6.i, %bb8.i
%_0.0.i = phi i32 [ %18, %bb3.i ], [ %13, %bb1.i ], [ %..i, %bb6.i ], [ 1, %bb5.i ], [ %.1.i, %bb8.i ]
%22 = add i32 %_0.0.i, %len.015
%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$4next17h17877d8c55952ab3E.exit"
}
define void @_ZN4core3num7flt2dec9Formatted5write17h2d6d7b656f8b70f9E(%"option::Option<usize>"* noalias nocapture sret dereferenceable(8), %"num::flt2dec::Formatted"* noalias nocapture readonly dereferenceable(16), i8* nonnull, i32) unnamed_addr {
start:
%_37 = alloca %"option::Option<usize>", align 4
%4 = getelementptr inbounds %"num::flt2dec::Formatted", %"num::flt2dec::Formatted"* %1, i32 0, i32 0, i32 1
%5 = load i32, i32* %4, align 4
%6 = icmp ugt i32 %5, %3
br i1 %6, label %bb3, label %"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$15copy_from_slice17h413de2d1fa842e27E.exit"
bb3: ; preds = %start
%7 = getelementptr inbounds %"option::Option<usize>", %"option::Option<usize>"* %0, i32 0, i32 0
store i32 0, i32* %7, align 4
br label %bb5
"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$15copy_from_slice17h413de2d1fa842e27E.exit": ; preds = %start
%8 = getelementptr inbounds %"num::flt2dec::Formatted", %"num::flt2dec::Formatted"* %1, i32 0, i32 0, i32 0
%9 = load i8*, i8** %8, align 4, !nonnull !975
tail call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull %2, i8* nonnull %9, i32 %5, i32 1, i1 false)
%10 = getelementptr inbounds %"num::flt2dec::Formatted", %"num::flt2dec::Formatted"* %1, i32 0, i32 2, i32 0
%11 = load %"num::flt2dec::Part"*, %"num::flt2dec::Part"** %10, align 4, !nonnull !975
%12 = getelementptr inbounds %"num::flt2dec::Formatted", %"num::flt2dec::Formatted"* %1, i32 0, i32 2, i32 1
%13 = load i32, i32* %12, align 4
%14 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %11, i32 %13
%15 = icmp eq i32 %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$4next17h17877d8c55952ab3E.exit.lr.ph"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h17877d8c55952ab3E.exit.lr.ph": ; preds = %"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$15copy_from_slice17h413de2d1fa842e27E.exit"
%16 = bitcast %"option::Option<usize>"* %_37 to i8*
%17 = getelementptr inbounds %"option::Option<usize>", %"option::Option<usize>"* %_37, i32 0, i32 0
%18 = getelementptr inbounds %"option::Option<usize>", %"option::Option<usize>"* %_37, i32 0, i32 2, i32 0
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h17877d8c55952ab3E.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$4next17h17877d8c55952ab3E.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h17877d8c55952ab3E.exit.lr.ph", %bb19
%written.026 = phi i32 [ %5, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h17877d8c55952ab3E.exit.lr.ph" ], [ %28, %bb19 ]
%iter.sroa.0.0.in25 = 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$4next17h17877d8c55952ab3E.exit.lr.ph" ], [ %19, %bb19 ]
%19 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %iter.sroa.0.0.in25, i32 1
call void @llvm.lifetime.start(i64 8, i8* nonnull %16)
%20 = icmp ugt i32 %written.026, %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_mut17hfc951aee04d9f6baE.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_slice17h413de2d1fa842e27E.exit"
%written.0.lcssa = phi i32 [ %5, %"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$15copy_from_slice17h413de2d1fa842e27E.exit" ], [ %28, %bb14.loopexit ]
%21 = getelementptr inbounds %"option::Option<usize>", %"option::Option<usize>"* %0, i32 0, i32 0
store i32 1, i32* %21, align 4
%22 = getelementptr inbounds %"option::Option<usize>", %"option::Option<usize>"* %0, i32 0, i32 2, i32 0
store i32 %written.0.lcssa, i32* %22, align 4
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$4next17h17877d8c55952ab3E.exit"
tail call void @_ZN4core5slice22slice_index_order_fail17he48b8e84e01a8b90E(i32 %written.026, i32 %3), !noalias !979
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hfc951aee04d9f6baE.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h17877d8c55952ab3E.exit"
%23 = getelementptr inbounds i8, i8* %2, i32 %written.026
%24 = sub i32 %3, %written.026
call void @_ZN4core3num7flt2dec4Part5write17h46ff2839618901d0E(%"option::Option<usize>"* noalias nocapture nonnull sret dereferenceable(8) %_37, %"num::flt2dec::Part"* noalias readonly dereferenceable(12) %iter.sroa.0.0.in25, i8* nonnull %23, i32 %24)
%25 = load i32, i32* %17, align 4, !range !909
%cond1 = icmp eq i32 %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_mut17hfc951aee04d9f6baE.exit"
%26 = getelementptr inbounds %"option::Option<usize>", %"option::Option<usize>"* %0, i32 0, i32 0
store i32 0, i32* %26, align 4
call void @llvm.lifetime.end(i64 8, 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_mut17hfc951aee04d9f6baE.exit"
%27 = load i32, i32* %18, align 4
%28 = add i32 %27, %written.026
call void @llvm.lifetime.end(i64 8, 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$4next17h17877d8c55952ab3E.exit"
}
define { %"num::flt2dec::Part"*, i32 } @_ZN4core3num7flt2dec17digits_to_dec_str17hc51ba51605327bf0E(i8* noalias nonnull readonly, i32, i16, i32, %"num::flt2dec::Part"* nonnull, i32) unnamed_addr {
start:
%6 = icmp eq i32 %1, 0
br i1 %6, label %bb2, label %bb4
bb2: ; preds = %start
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec17digits_to_dec_str14_MSG_FILE_LINE17hf2573bc24ce9c0fbE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 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 @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec17digits_to_dec_str14_MSG_FILE_LINE17h52d06348cdea351fE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb6: ; preds = %bb4
%9 = icmp ult i32 %5, 4
br i1 %9, label %bb8, label %bb9
bb8: ; preds = %bb6
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec17digits_to_dec_str14_MSG_FILE_LINE17h0281b5830c1aad57E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb9: ; preds = %bb6
%10 = icmp slt i16 %2, 1
%11 = sext i16 %2 to i32
br i1 %10, label %bb14, label %bb11
bb11: ; preds = %bb9
%12 = icmp ult i32 %11, %1
%13 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 0, i32 0
store i16 2, i16* %13, align 2
%14 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 0, i32 2
%15 = bitcast [2 x i32]* %14 to i8**
store i8* %0, i8** %15, align 4
%16 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 0, i32 2, i32 1
br i1 %12, label %bb35, label %bb46
bb14: ; preds = %bb9
%17 = sub nsw i32 0, %11
%18 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 0, i32 0
store i16 2, i16* %18, align 2
%19 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 0, i32 2
%20 = bitcast [2 x i32]* %19 to i8**
store i8* getelementptr inbounds ([2 x i8], [2 x i8]* @byte_str.u, i32 0, i32 0), i8** %20, align 4
%21 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 0, i32 2, i32 1
store i32 2, i32* %21, align 4
%22 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 1, i32 0
store i16 0, i16* %22, align 2
%23 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 1, i32 2, i32 0
store i32 %17, i32* %23, align 4
%24 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 2, i32 0
store i16 2, i16* %24, align 2
%25 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 2, i32 2
%26 = bitcast [2 x i32]* %25 to i8**
store i8* %0, i8** %26, align 4
%27 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 2, i32 2, i32 1
store i32 %1, i32* %27, align 4
%28 = icmp ugt i32 %3, %1
br i1 %28, label %bb17, label %bb55
bb17: ; preds = %bb14
%29 = sub i32 %3, %1
%30 = icmp ugt i32 %29, %17
br i1 %30, label %bb24, label %bb55
bb24: ; preds = %bb17
%31 = add i32 %29, %11
%32 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 3, i32 0
store i16 0, i16* %32, align 2
%33 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 3, i32 2, i32 0
store i32 %31, i32* %33, align 4
br label %bb55
bb35: ; preds = %bb11
store i32 %11, i32* %16, align 4
%34 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 1, i32 0
store i16 2, i16* %34, align 2
%35 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 1, i32 2
%36 = bitcast [2 x i32]* %35 to i8**
store i8* getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.A, i32 0, i32 0), i8** %36, align 4
%37 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 1, i32 2, i32 1
store i32 1, i32* %37, align 4
%38 = getelementptr inbounds i8, i8* %0, i32 %11
%39 = sub i32 %1, %11
%40 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 2, i32 0
store i16 2, i16* %40, align 2
%41 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 2, i32 2
%42 = bitcast [2 x i32]* %41 to i8**
store i8* %38, i8** %42, align 4
%43 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 2, i32 2, i32 1
store i32 %39, i32* %43, align 4
%44 = icmp ult i32 %39, %3
br i1 %44, label %bb40, label %bb55
bb40: ; preds = %bb35
%45 = sub i32 %11, %1
%46 = add i32 %45, %3
%47 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 3, i32 0
store i16 0, i16* %47, align 2
%48 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 3, i32 2, i32 0
store i32 %46, i32* %48, align 4
br label %bb55
bb46: ; preds = %bb11
store i32 %1, i32* %16, align 4
%49 = sub i32 %11, %1
%50 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 1, i32 0
store i16 0, i16* %50, align 2
%51 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 1, i32 2, i32 0
store i32 %49, i32* %51, align 4
%52 = icmp eq i32 %3, 0
br i1 %52, label %bb55, label %bb50
bb50: ; preds = %bb46
%53 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 2, i32 0
store i16 2, i16* %53, align 2
%54 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 2, i32 2
%55 = bitcast [2 x i32]* %54 to i8**
store i8* getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.A, i32 0, i32 0), i8** %55, align 4
%56 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 2, i32 2, i32 1
store i32 1, i32* %56, align 4
%57 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 3, i32 0
store i16 0, i16* %57, align 2
%58 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %4, i32 3, i32 2, i32 0
store i32 %3, i32* %58, align 4
br label %bb55
bb55: ; preds = %bb24, %bb17, %bb14, %bb46, %bb35, %bb40, %bb50
%.sink = phi i32 [ 4, %bb40 ], [ 4, %bb50 ], [ 3, %bb35 ], [ 2, %bb46 ], [ 4, %bb24 ], [ 3, %bb17 ], [ 3, %bb14 ]
%59 = icmp ugt i32 %.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$5index17hcec88cc45de9fd56E.exit"
bb4.i.i.i28: ; preds = %bb55
tail call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %.sink, i32 %5), !noalias !982
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hcec88cc45de9fd56E.exit": ; preds = %bb55
%60 = insertvalue { %"num::flt2dec::Part"*, i32 } undef, %"num::flt2dec::Part"* %4, 0
%61 = insertvalue { %"num::flt2dec::Part"*, i32 } %60, i32 %.sink, 1
ret { %"num::flt2dec::Part"*, i32 } %61
}
define { %"num::flt2dec::Part"*, i32 } @_ZN4core3num7flt2dec17digits_to_exp_str17hbc8510ebc9839ce4E(i8* noalias nonnull readonly, i32, i16, i32, i1 zeroext, %"num::flt2dec::Part"* nonnull, i32) unnamed_addr {
start:
%7 = icmp eq i32 %1, 0
br i1 %7, label %bb2, label %bb4
bb2: ; preds = %start
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec17digits_to_exp_str14_MSG_FILE_LINE17hcc60d6f793dcfdffE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 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 @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec17digits_to_exp_str14_MSG_FILE_LINE17hd23ebb8fdce14cbaE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb6: ; preds = %bb4
%10 = icmp ult i32 %6, 6
br i1 %10, label %bb8, label %bb11
bb8: ; preds = %bb6
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7flt2dec17digits_to_exp_str14_MSG_FILE_LINE17h049a9d22f43a41cfE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb11: ; preds = %bb6
%11 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i32 0, i32 0
store i16 2, i16* %11, align 2
%12 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i32 0, i32 2
%13 = bitcast [2 x i32]* %12 to i8**
store i8* %0, i8** %13, align 4
%14 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i32 0, i32 2, i32 1
store i32 1, i32* %14, align 4
%15 = or i32 %3, %1
%16 = icmp ugt i32 %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_mut17h53c8d99d94c910c8E.exit", label %bb28
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h53c8d99d94c910c8E.exit": ; preds = %bb11
%17 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i32 1, i32 0
store i16 2, i16* %17, align 2
%18 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i32 1, i32 2
%19 = bitcast [2 x i32]* %18 to i8**
store i8* getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.A, i32 0, i32 0), i8** %19, align 4
%20 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i32 1, i32 2, i32 1
store i32 1, i32* %20, align 4
%21 = getelementptr inbounds i8, i8* %0, i32 1
%22 = add i32 %1, -1
%23 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i32 2, i32 0
store i16 2, i16* %23, align 2
%24 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i32 2, i32 2
%25 = bitcast [2 x i32]* %24 to i8**
store i8* %21, i8** %25, align 4
%26 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i32 2, i32 2, i32 1
store i32 %22, i32* %26, align 4
%27 = icmp ugt i32 %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_mut17h53c8d99d94c910c8E.exit"
%28 = sub i32 %3, %1
%29 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i32 3, i32 0
store i16 0, i16* %29, align 2
%30 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i32 3, i32 2, i32 0
store i32 %28, i32* %30, align 4
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_mut17h53c8d99d94c910c8E.exit", %bb11
%n.0 = phi i32 [ 4, %bb26 ], [ 3, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h53c8d99d94c910c8E.exit" ], [ 1, %bb11 ]
%31 = sext i16 %2 to i32
%32 = add nsw i32 %31, -1
%33 = icmp slt i16 %2, 1
%34 = icmp ult i32 %n.0, %6
br i1 %33, label %bb29, label %bb30
bb29: ; preds = %bb28
br i1 %34, label %bb34, label %panic4, !prof !3
bb30: ; preds = %bb28
br i1 %34, label %bb39, label %panic5, !prof !3
bb34: ; preds = %bb29
%.sink = select i1 %4, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @byte_str.M, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @byte_str.N, i32 0, i32 0)
%35 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i32 %n.0, i32 0
store i16 2, i16* %35, align 2
%36 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i32 %n.0, i32 2
%37 = bitcast [2 x i32]* %36 to i8**
store i8* %.sink, i8** %37, align 4
%38 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i32 %n.0, i32 2, i32 1
store i32 2, i32* %38, align 4
%39 = sub nsw i32 1, %31
br label %bb41
bb39: ; preds = %bb30
%.sink7 = select i1 %4, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.P, i32 0, i32 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.Q, i32 0, i32 0)
%40 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i32 %n.0, i32 0
store i16 2, i16* %40, align 2
%41 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i32 %n.0, i32 2
%42 = bitcast [2 x i32]* %41 to i8**
store i8* %.sink7, i8** %42, align 4
%43 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i32 %n.0, i32 2, i32 1
store i32 1, i32* %43, align 4
br label %bb41
bb41: ; preds = %bb39, %bb34
%.sink8.in = phi i32 [ %32, %bb39 ], [ %39, %bb34 ]
%44 = add nuw nsw i32 %n.0, 1
%45 = icmp ult i32 %44, %6
br i1 %45, label %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h53c8d99d94c910c8E.exit36", label %panic.i.i35, !prof !3
panic.i.i35: ; preds = %bb41
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.2e to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %44, i32 %6)
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h53c8d99d94c910c8E.exit36": ; preds = %bb41
%.sink8 = trunc i32 %.sink8.in to i16
%46 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i32 %44, i32 0
store i16 1, i16* %46, align 2
%47 = getelementptr inbounds %"num::flt2dec::Part", %"num::flt2dec::Part"* %5, i32 %44, i32 1, i32 0
store i16 %.sink8, i16* %47, align 2
%48 = add nuw nsw i32 %n.0, 2
%49 = icmp ugt i32 %48, %6
br i1 %49, label %bb4.i.i.i37, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hcec88cc45de9fd56E.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_mut17h53c8d99d94c910c8E.exit36"
tail call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %48, i32 %6), !noalias !985
unreachable
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hcec88cc45de9fd56E.exit": ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17h53c8d99d94c910c8E.exit36"
%50 = insertvalue { %"num::flt2dec::Part"*, i32 } undef, %"num::flt2dec::Part"* %5, 0
%51 = insertvalue { %"num::flt2dec::Part"*, i32 } %50, i32 %48, 1
ret { %"num::flt2dec::Part"*, i32 } %51
panic4: ; preds = %bb29
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.O to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %n.0, i32 %6)
unreachable
panic5: ; preds = %bb30
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.R to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %n.0, i32 %6)
unreachable
}
; Function Attrs: norecurse nounwind readonly
define { i8*, i32 } @_ZN4core3num7flt2dec14determine_sign17h3e7bf2e07bd1b1a6E(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, i32 0, i32 0
%_9.sroa.0.0.copyload = load i64, i64* %_9.sroa.0.0..sroa_idx, align 8
%3 = trunc i64 %_9.sroa.0.0.copyload to i32
switch i32 %3, label %bb8 [
i32 0, label %bb10
i32 2, label %bb9
]
bb3: ; preds = %bb9
%.sink2 = select i1 %2, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.S, i32 0, i32 0), i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 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, i32 0, i32 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.T, i32 0, i32 0)
br label %bb10
bb6: ; preds = %bb8
%.sink7 = select i1 %2, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.S, i32 0, i32 0), i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0)
br label %bb10
bb7: ; preds = %bb8
%.sink9 = select i1 %2, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.S, i32 0, i32 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @byte_str.T, i32 0, i32 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, i32 0, i32 0), %bb4 ], [ %.sink2, %bb3 ], [ getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), %start ], [ getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 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 i32
%4 = insertvalue { i8*, i32 } undef, i8* %_7.sroa.0.0, 0
%5 = insertvalue { i8*, i32 } %4, i32 %_7.sroa.10.0, 1
ret { i8*, i32 } %5
}
; Function Attrs: norecurse nounwind readnone
define i32 @_ZN4core3num7flt2dec20estimate_max_buf_len17hd92c9016a35848aaE(i16) unnamed_addr #0 {
start:
%1 = icmp slt i16 %0, 0
%. = select i1 %1, i32 -12, i32 5
%2 = sext i16 %0 to i32
%3 = mul nsw i32 %., %2
%4 = lshr i32 %3, 4
%5 = add nuw nsw i32 %4, 21
ret i32 %5
}
define void @_ZN4core3num7dec2flt9algorithm12power_of_ten17h96b894eb400e8572E(%"num::diy_float::Fp"* noalias nocapture sret dereferenceable(16), i16) unnamed_addr {
start:
%2 = icmp slt i16 %1, -305
br i1 %2, label %bb1, label %bb2
bb1: ; preds = %start
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7dec2flt9algorithm12power_of_ten14_MSG_FILE_LINE17h3a265541bf6983daE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb2: ; preds = %start
%3 = add i16 %1, 305
%4 = sext i16 %3 to i32
%5 = icmp ult i16 %3, 611
br i1 %5, label %bb4, label %panic, !prof !3
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, i32 0, i32 0, i32 %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, i32 0, i32 1, i32 %4
%9 = load i16, i16* %8, align 2
%10 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %0, i32 0, i32 0
store i64 %7, i64* %10, align 8
%11 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %0, i32 0, i32 2
store i16 %9, i16* %11, align 8
ret void
panic: ; preds = %bb2
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.1q to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %4, i32 611)
unreachable
}
define void @_ZN4core3num7dec2flt9algorithm10make_ratio17h12e5c04c599302c5E(%"num::bignum::Big32x40"* dereferenceable(164), %"num::bignum::Big32x40"* dereferenceable(164), i16, i16) unnamed_addr {
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 i32
%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 i32
%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 i32 %6, %9
%_0.0.sroa.speculated.i.i = select i1 %12, i32 %6, i32 %9
%13 = tail call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow517h50749a9f4beebf7aE(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %0, i32 %6)
%14 = sub nsw i32 %6, %_0.0.sroa.speculated.i.i
%15 = tail call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h63cf5eeea8b6b5c3E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %13, i32 %14)
%16 = sub nsw i32 %9, %_0.0.sroa.speculated.i.i
%17 = tail call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h63cf5eeea8b6b5c3E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %1, i32 %16)
br label %bb23
bb6: ; preds = %bb3
%18 = tail call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow517h50749a9f4beebf7aE(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %0, i32 %6)
%19 = add nsw i32 %9, %6
%20 = tail call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h63cf5eeea8b6b5c3E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %18, i32 %19)
br label %bb23
bb14: ; preds = %bb4
%21 = tail call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow517h50749a9f4beebf7aE(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %1, i32 %6)
%22 = add nsw i32 %9, %6
%23 = tail call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h63cf5eeea8b6b5c3E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %21, i32 %22)
br label %bb23
bb15: ; preds = %bb4
%24 = icmp ule i32 %6, %9
%_0.0.sroa.speculated.i.i4 = select i1 %24, i32 %6, i32 %9
%25 = sub nsw i32 %9, %_0.0.sroa.speculated.i.i4
%26 = tail call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h63cf5eeea8b6b5c3E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %0, i32 %25)
%27 = tail call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow517h50749a9f4beebf7aE(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %1, i32 %6)
%28 = sub nsw i32 %6, %_0.0.sroa.speculated.i.i4
%29 = tail call dereferenceable(164) %"num::bignum::Big32x40"* @_ZN4core3num6bignum8Big32x408mul_pow217h63cf5eeea8b6b5c3E(%"num::bignum::Big32x40"* nonnull dereferenceable(164) %27, i32 %28)
br label %bb23
bb23: ; preds = %bb14, %bb15, %bb5, %bb6
ret void
}
define i8 @_ZN4core3num7dec2flt3num21compare_with_half_ulp17h7ea1aeecc0e9e17aE(%"num::bignum::Big32x40"* noalias nocapture readonly dereferenceable(164), i32) unnamed_addr {
start:
%2 = icmp eq i32 %1, 0
br i1 %2, label %bb3, label %bb2
bb2: ; preds = %start
%3 = add i32 %1, -1
%4 = lshr i32 %3, 5
%5 = icmp ult i32 %3, 1280
br i1 %5, label %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit, label %panic2.i, !prof !3
panic2.i: ; preds = %bb2
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4E to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %4, i32 40), !noalias !988
unreachable
_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit: ; preds = %bb2
%6 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2, i32 %4
%7 = load i32, i32* %6, align 4, !alias.scope !988
%8 = and i32 %3, 31
%9 = shl i32 1, %8
%10 = and i32 %7, %9
%11 = icmp eq i32 %10, 0
br i1 %11, label %bb3, label %bb10.preheader
bb10.preheader: ; preds = %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit
br label %bb10
bb3.loopexit: ; preds = %bb10, %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit4
%_0.0.ph = phi i8 [ 1, %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit4 ], [ 0, %bb10 ]
br label %bb3
bb3: ; preds = %bb3.loopexit, %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit, %start
%_0.0 = phi i8 [ -1, %start ], [ -1, %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit ], [ %_0.0.ph, %bb3.loopexit ]
ret i8 %_0.0
bb10: ; preds = %bb10.preheader, %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit4
%iter.sroa.0.0 = phi i32 [ %15, %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit4 ], [ 0, %bb10.preheader ]
%12 = icmp ult i32 %iter.sroa.0.0, %3
br i1 %12, label %bb13, label %bb3.loopexit
bb13: ; preds = %bb10
%13 = lshr i32 %iter.sroa.0.0, 5
%14 = icmp ult i32 %iter.sroa.0.0, 1280
br i1 %14, label %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit4, label %panic2.i3, !prof !3
panic2.i3: ; preds = %bb13
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4E to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %13, i32 40), !noalias !991
unreachable
_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit4: ; preds = %bb13
%15 = add nuw nsw i32 %iter.sroa.0.0, 1
%16 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2, i32 %13
%17 = load i32, i32* %16, align 4, !alias.scope !991
%18 = and i32 %iter.sroa.0.0, 31
%19 = shl i32 1, %18
%20 = and i32 %17, %19
%21 = icmp eq i32 %20, 0
br i1 %21, label %bb10, label %bb3.loopexit
}
define void @_ZN4core3num7dec2flt3num13digits_to_big17h22d793a32d54abdcE(%"num::bignum::Big32x40"* noalias nocapture sret dereferenceable(164), i8* noalias nonnull readonly, i32, i8* noalias nonnull readonly, i32) unnamed_addr {
start:
%iter = alloca %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>", align 8
%f = alloca %"num::bignum::Big32x40", align 4
%5 = bitcast %"num::bignum::Big32x40"* %f to i8*
call void @llvm.lifetime.start(i64 164, i8* nonnull %5)
%6 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %f, i32 0, i32 0
store i32 1, i32* %6, align 4, !alias.scope !994
%base.i.sroa.0.0..sroa_idx = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %f, i32 0, i32 2, i32 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 4, i1 false)
%8 = getelementptr inbounds i8, i8* %1, i32 %2
%9 = ptrtoint i8* %1 to i32
%10 = ptrtoint i8* %8 to i32
%11 = getelementptr inbounds i8, i8* %3, i32 %4
%12 = ptrtoint i8* %3 to i32
%13 = ptrtoint i8* %11 to i32
%_9.sroa.0.sroa.4.0.insert.ext = zext i32 %10 to i64
%_9.sroa.0.sroa.4.0.insert.shift = shl nuw i64 %_9.sroa.0.sroa.4.0.insert.ext, 32
%_9.sroa.0.sroa.0.0.insert.ext = zext i32 %9 to i64
%_9.sroa.0.sroa.0.0.insert.insert = or i64 %_9.sroa.0.sroa.4.0.insert.shift, %_9.sroa.0.sroa.0.0.insert.ext
%14 = bitcast %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>"* %iter to i8*
call void @llvm.lifetime.start(i64 20, i8* nonnull %14)
%_8.sroa.0.0..sroa_cast = bitcast %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>"* %iter to i64*
store i64 %_9.sroa.0.sroa.0.0.insert.insert, i64* %_8.sroa.0.0..sroa_cast, align 8
%_8.sroa.4.0..sroa_idx25 = getelementptr inbounds %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>", %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>"* %iter, i32 0, i32 2
%_8.sroa.4.0..sroa_cast = bitcast %"slice::Iter<u8>"* %_8.sroa.4.0..sroa_idx25 to i32*
store i32 %12, i32* %_8.sroa.4.0..sroa_cast, align 8
%_8.sroa.5.0..sroa_idx27 = getelementptr inbounds %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>", %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>"* %iter, i32 0, i32 2, i32 2
%_8.sroa.5.0..sroa_cast = bitcast i8** %_8.sroa.5.0..sroa_idx27 to i32*
store i32 %13, i32* %_8.sroa.5.0..sroa_cast, align 4
%_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, i32 0, i32 4
store i8 0, i8* %_8.sroa.6.0..sroa_idx, align 8
%15 = getelementptr inbounds %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>", %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>"* %iter, i32 0, i32 0, i32 0
%16 = getelementptr inbounds %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>", %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>"* %iter, i32 0, i32 2, i32 0
%17 = getelementptr inbounds %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>", %"iter::Chain<slice::Iter<u8>, slice::Iter<u8>>"* %iter, i32 0, i32 0
br label %bb5
bb5: ; preds = %bb5.backedge, %start
%18 = phi i32 [ %56, %bb5.backedge ], [ 1, %start ]
%.off0 = phi i2 [ %extract.t, %bb5.backedge ], [ 0, %start ]
switch i2 %.off0, label %bb4.i [
i2 0, label %bb1.i
i2 1, label %bb2.i
]
bb1.i: ; preds = %bb5
%19 = load i8*, i8** %15, align 8, !nonnull !975
%20 = icmp eq i8* %19, %8
br i1 %20, label %bb6.i9, label %bb8
bb2.i: ; preds = %bb5
br label %bb4.i
bb4.i: ; preds = %bb5, %bb2.i
%.sink.i = phi %"slice::Iter<u8>"* [ %17, %bb2.i ], [ %_8.sroa.4.0..sroa_idx25, %bb5 ]
%21 = getelementptr inbounds %"slice::Iter<u8>", %"slice::Iter<u8>"* %.sink.i, i32 0, i32 0
%22 = load i8*, i8** %21, align 4, !nonnull !975
%23 = getelementptr inbounds %"slice::Iter<u8>", %"slice::Iter<u8>"* %.sink.i, i32 0, i32 2
%24 = load i8*, i8** %23, align 4, !nonnull !975
%25 = icmp eq i8* %22, %24
br i1 %25, label %bb7, label %bb8
bb6.i9: ; preds = %bb1.i
store i8 2, i8* %_8.sroa.6.0..sroa_idx, align 8
%26 = load i8*, i8** %16, align 8, !nonnull !975
%27 = load i8*, i8** %_8.sroa.5.0..sroa_idx27, align 4, !nonnull !975
%28 = icmp eq i8* %26, %27
br i1 %28, label %bb7, label %bb8
bb7: ; preds = %bb4.i, %bb6.i9
call void @llvm.lifetime.end(i64 20, i8* nonnull %14)
%29 = bitcast %"num::bignum::Big32x40"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull %29, i8* nonnull %5, i32 164, i32 4, i1 false)
call void @llvm.lifetime.end(i64 164, i8* nonnull %5)
ret void
bb8: ; preds = %bb4.i, %bb1.i, %bb6.i9
%.sink12.i.sink = phi i8* [ %26, %bb6.i9 ], [ %19, %bb1.i ], [ %22, %bb4.i ]
%.sink11.i.sink = phi i8** [ %16, %bb6.i9 ], [ %15, %bb1.i ], [ %21, %bb4.i ]
%30 = getelementptr inbounds i8, i8* %.sink12.i.sink, i32 1
store i8* %30, i8** %.sink11.i.sink, align 4
%31 = load i8, i8* %.sink12.i.sink, align 1
%32 = add i8 %31, -48
%33 = zext i8 %32 to i32
%34 = icmp ugt i32 %18, 40
br i1 %34, 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_mut17ha83eb8973692a5bbE.exit.i"
bb4.i.i.i.i: ; preds = %bb8
call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %18, i32 40), !noalias !997
unreachable
"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i": ; preds = %bb8
%35 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %f, i32 0, i32 2, i32 %18
%36 = icmp eq i32 %18, 0
br i1 %36, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.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_mut17ha83eb8973692a5bbE.exit.i"
br label %bb6.i6
bb5.i5: ; preds = %bb6.i6
%37 = icmp eq i32 %45, 0
br i1 %37, label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit, label %bb8.i
bb6.i6: ; preds = %bb6.i6.preheader, %bb6.i6
%carry.020.i = phi i32 [ %45, %bb6.i6 ], [ 0, %bb6.i6.preheader ]
%iter.sroa.0.0.in19.i = phi i32* [ %38, %bb6.i6 ], [ %base.i.sroa.0.0..sroa_idx, %bb6.i6.preheader ]
%38 = getelementptr inbounds i32, i32* %iter.sroa.0.0.in19.i, i32 1
%39 = load i32, i32* %iter.sroa.0.0.in19.i, align 4
%40 = zext i32 %39 to i64
%41 = mul nuw nsw i64 %40, 10
%42 = zext i32 %carry.020.i to i64
%43 = add nuw nsw i64 %41, %42
%44 = lshr i64 %43, 32
%45 = trunc i64 %44 to i32
%46 = trunc i64 %43 to i32
store i32 %46, i32* %iter.sroa.0.0.in19.i, align 4
%47 = icmp eq i32* %38, %35
br i1 %47, label %bb5.i5, label %bb6.i6
bb8.i: ; preds = %bb5.i5
%48 = icmp ult i32 %18, 40
br i1 %48, label %bb10.i7, label %panic.i8, !prof !3
bb10.i7: ; preds = %bb8.i
store i32 %45, i32* %35, align 4
%49 = add i32 %18, 1
br label %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit
panic.i8: ; preds = %bb8.i
call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4I to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %18, i32 40)
unreachable
_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit: ; preds = %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i", %bb5.i5, %bb10.i7
%50 = phi i32 [ %49, %bb10.i7 ], [ %18, %bb5.i5 ], [ 0, %"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17ha83eb8973692a5bbE.exit.i" ]
store i32 %50, i32* %6, align 4
%51 = load i32, i32* %base.i.sroa.0.0..sroa_idx, align 4
%52 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %51, i32 %33) #5
%53 = extractvalue { i32, i1 } %52, 0
%54 = extractvalue { i32, i1 } %52, 1
store i32 %53, i32* %base.i.sroa.0.0..sroa_idx, align 4
br i1 %54, label %bb6.i.preheader, label %bb5.i
bb6.i.preheader: ; preds = %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit
br label %bb6.i
bb5.i.loopexit: ; preds = %bb7.i
br label %bb5.i
bb5.i: ; preds = %bb5.i.loopexit, %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit
%i.0.lcssa.i = phi i32 [ 1, %_ZN4core3num6bignum8Big32x409mul_small17hd3529a976d662fc9E.exit ], [ %63, %bb5.i.loopexit ]
%55 = icmp ugt i32 %i.0.lcssa.i, %50
br i1 %55, label %bb10.i, label %bb5.backedge
bb5.backedge: ; preds = %bb5.i, %bb10.i
%56 = phi i32 [ %50, %bb5.i ], [ %i.0.lcssa.i, %bb10.i ]
%.pre = load i8, i8* %_8.sroa.6.0..sroa_idx, align 8, !range !1000
%extract.t = trunc i8 %.pre to i2
br label %bb5
bb6.i: ; preds = %bb6.i.preheader, %bb7.i
%i.012.i = phi i32 [ %63, %bb7.i ], [ 1, %bb6.i.preheader ]
%57 = icmp ult i32 %i.012.i, 40
br i1 %57, label %bb7.i, label %panic.i, !prof !3
bb7.i: ; preds = %bb6.i
%58 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %f, i32 0, i32 2, i32 %i.012.i
%59 = load i32, i32* %58, align 4
%60 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %59, i32 1) #5
%61 = extractvalue { i32, i1 } %60, 0
%62 = extractvalue { i32, i1 } %60, 1
store i32 %61, i32* %58, align 4
%63 = add nuw nsw i32 %i.012.i, 1
br i1 %62, label %bb6.i, label %bb5.i.loopexit
bb10.i: ; preds = %bb5.i
store i32 %i.0.lcssa.i, i32* %6, align 4
br label %bb5.backedge
panic.i: ; preds = %bb6.i
call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4G to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %i.012.i, i32 40)
unreachable
}
define i64 @_ZN4core3num7dec2flt3num6to_u6417hf5ed72fc0e4878a3E(%"num::bignum::Big32x40"* noalias readonly dereferenceable(164)) unnamed_addr {
start:
%1 = tail call i32 @_ZN4core3num6bignum8Big32x4010bit_length17h2fc404906b63e77bE(%"num::bignum::Big32x40"* noalias nonnull readonly dereferenceable(164) %0)
%2 = icmp ugt i32 %1, 63
br i1 %2, label %bb2, label %bb3
bb2: ; preds = %start
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7dec2flt3num6to_u6414_MSG_FILE_LINE17hb9d0a03ae7a12625E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb3: ; preds = %start
%3 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 0
%4 = load i32, i32* %3, align 4, !alias.scope !1001
%5 = icmp ugt i32 %4, 40
br i1 %5, label %bb4.i.i.i.i, label %_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit
bb4.i.i.i.i: ; preds = %bb3
tail call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %4, i32 40), !noalias !1004
unreachable
_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit: ; preds = %bb3
%6 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2, i32 0
%7 = icmp ult i32 %4, 2
br i1 %7, label %bb6, label %bb10
bb6: ; preds = %_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit
%8 = icmp eq i32 %4, 0
br i1 %8, label %panic, label %bb8, !prof !902
bb8: ; preds = %bb6
%9 = load i32, i32* %6, align 4
%10 = zext i32 %9 to i64
br label %bb11
bb10: ; preds = %_ZN4core3num6bignum8Big32x406digits17h1c0bd96960638970E.exit
%11 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2, i32 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_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.1t to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 0, i32 0)
unreachable
}
define i64 @_ZN4core3num7dec2flt3num8get_bits17hae469e73dff0f872E(%"num::bignum::Big32x40"* noalias nocapture readonly dereferenceable(164), i32, i32) unnamed_addr {
start:
%3 = sub i32 %2, %1
%4 = icmp ugt i32 %3, 64
br i1 %4, label %bb1, label %bb5.preheader
bb5.preheader: ; preds = %start
%5 = icmp ugt i32 %2, %1
br i1 %5, label %bb8.preheader, label %bb7
bb8.preheader: ; preds = %bb5.preheader
br label %bb8
bb1: ; preds = %start
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7dec2flt3num8get_bits14_MSG_FILE_LINE17h39f2266519c3dd30E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb7.loopexit: ; preds = %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit
br label %bb7
bb7: ; preds = %bb7.loopexit, %bb5.preheader
%result.0.lcssa = phi i64 [ 0, %bb5.preheader ], [ %15, %bb7.loopexit ]
ret i64 %result.0.lcssa
bb8: ; preds = %bb8.preheader, %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit
%result.018 = phi i64 [ %15, %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit ], [ 0, %bb8.preheader ]
%iter.sroa.4.017 = phi i32 [ %6, %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit ], [ %2, %bb8.preheader ]
%6 = add i32 %iter.sroa.4.017, -1
%7 = lshr i32 %6, 5
%8 = icmp ult i32 %6, 1280
br i1 %8, label %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit, label %panic2.i, !prof !3
panic2.i: ; preds = %bb8
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4E to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %7, i32 40), !noalias !1007
unreachable
_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit: ; preds = %bb8
%9 = shl i64 %result.018, 1
%10 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %0, i32 0, i32 2, i32 %7
%11 = load i32, i32* %10, align 4, !alias.scope !1007
%12 = and i32 %6, 31
%13 = lshr i32 %11, %12
%.mask = and i32 %13, 1
%14 = zext i32 %.mask to i64
%15 = or i64 %14, %9
%16 = icmp ugt i32 %6, %1
br i1 %16, label %bb8, label %bb7.loopexit
}
; Function Attrs: norecurse nounwind
define void @_ZN4core3num7dec2flt5rawfp8Unpacked3new17h1a5ab5e1aa4a8ce8E(%"num::dec2flt::rawfp::Unpacked"* noalias nocapture sret dereferenceable(16), i64, i16) unnamed_addr #2 {
start:
%3 = getelementptr inbounds %"num::dec2flt::rawfp::Unpacked", %"num::dec2flt::rawfp::Unpacked"* %0, i32 0, i32 0
store i64 %1, i64* %3, align 8
%4 = getelementptr inbounds %"num::dec2flt::rawfp::Unpacked", %"num::dec2flt::rawfp::Unpacked"* %0, i32 0, i32 2
store i16 %2, i16* %4, align 8
ret void
}
; Function Attrs: norecurse nounwind
define void @"_ZN59_$LT$f32$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$14integer_decode17hca66fe5551e8273bE"({ i64, [0 x i8], i16, [0 x i8], i8, [5 x i8] }* noalias nocapture sret dereferenceable(16), float) unnamed_addr #2 {
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 = and i32 %4, 255
%6 = trunc i32 %5 to i16
%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, i32 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, i32 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, i32 0, i32 4
store i8 %., i8* %15, align 2
ret void
}
; Function Attrs: norecurse nounwind readnone
define i64 @"_ZN59_$LT$f32$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$9transmute17ha89870041ad7ed09E"(float) unnamed_addr #0 {
start:
%1 = bitcast float %0 to i32
%2 = zext i32 %1 to i64
ret i64 %2
}
define float @"_ZN59_$LT$f32$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$9from_bits17h18bddc0e7fb3b60dE"(i64) unnamed_addr {
start:
%1 = icmp ugt i64 %0, 4294967294
br i1 %1, label %bb1, label %bb2
bb1: ; preds = %start
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @"_ZN59_$LT$f32$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$9from_bits14_MSG_FILE_LINE17hb424bf0c3bbc1a4eE" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb2: ; preds = %start
%2 = trunc i64 %0 to i32
%3 = bitcast i32 %2 to float
ret float %3
}
; Function Attrs: nounwind
define void @"_ZN59_$LT$f32$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$6unpack17h7bcd5e5ba5377e41E"(%"num::dec2flt::rawfp::Unpacked"* noalias nocapture sret dereferenceable(16), float) unnamed_addr #5 {
start:
%2 = bitcast float %1 to i32
%3 = lshr i32 %2, 23
%4 = and i32 %3, 255
%5 = trunc i32 %4 to i16
%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, i32 0, i32 0
store i64 %11, i64* %12, align 8, !alias.scope !1010
%13 = getelementptr inbounds %"num::dec2flt::rawfp::Unpacked", %"num::dec2flt::rawfp::Unpacked"* %0, i32 0, i32 2
store i16 %10, i16* %13, align 8, !alias.scope !1010
ret void
}
; Function Attrs: norecurse nounwind readnone
define float @"_ZN59_$LT$f32$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$8from_int17h9ed0d72ae2f29655E"(i64) unnamed_addr #0 {
start:
%1 = uitofp i64 %0 to float
ret float %1
}
define float @"_ZN59_$LT$f32$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$16short_fast_pow1017h33e79a4c2e228006E"(i32) unnamed_addr {
start:
%1 = icmp ult i32 %0, 11
br i1 %1, label %bb1, label %panic, !prof !3
bb1: ; preds = %start
%2 = getelementptr inbounds [11 x float], [11 x float]* @const.1v, i32 0, i32 %0
%3 = load float, float* %2, align 4
ret float %3
panic: ; preds = %start
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.1x to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %0, i32 11)
unreachable
}
; Function Attrs: norecurse nounwind
define void @"_ZN59_$LT$f64$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$14integer_decode17had59b2e5060a1a2eE"({ i64, [0 x i8], i16, [0 x i8], i8, [5 x i8] }* noalias nocapture sret dereferenceable(16), double) unnamed_addr #2 {
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, i32 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, i32 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, i32 0, i32 4
store i8 %., i8* %14, align 2
ret void
}
; Function Attrs: norecurse nounwind readnone
define i64 @"_ZN59_$LT$f64$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$9transmute17h3534e92fcbd07de8E"(double) unnamed_addr #0 {
start:
%1 = bitcast double %0 to i64
ret i64 %1
}
; Function Attrs: norecurse nounwind readnone
define double @"_ZN59_$LT$f64$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$9from_bits17h9eb986de3ad2400eE"(i64) unnamed_addr #0 {
start:
%1 = bitcast i64 %0 to double
ret double %1
}
; Function Attrs: nounwind
define void @"_ZN59_$LT$f64$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$6unpack17hcf5d13d66635d1d5E"(%"num::dec2flt::rawfp::Unpacked"* noalias nocapture sret dereferenceable(16), double) unnamed_addr #5 {
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, i32 0, i32 0
store i64 %mantissa.0.i, i64* %11, align 8, !alias.scope !1013
%12 = getelementptr inbounds %"num::dec2flt::rawfp::Unpacked", %"num::dec2flt::rawfp::Unpacked"* %0, i32 0, i32 2
store i16 %10, i16* %12, align 8, !alias.scope !1013
ret void
}
; Function Attrs: norecurse nounwind readnone
define double @"_ZN59_$LT$f64$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$8from_int17h643f95cca114695aE"(i64) unnamed_addr #0 {
start:
%1 = uitofp i64 %0 to double
ret double %1
}
define double @"_ZN59_$LT$f64$u20$as$u20$core..num..dec2flt..rawfp..RawFloat$GT$16short_fast_pow1017h5bacf484efd78c1cE"(i32) unnamed_addr {
start:
%1 = icmp ult i32 %0, 23
br i1 %1, label %bb1, label %panic, !prof !3
bb1: ; preds = %start
%2 = getelementptr inbounds [23 x double], [23 x double]* @const.1y, i32 0, i32 %0
%3 = load double, double* %2, align 8
ret double %3
panic: ; preds = %start
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.1z to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %0, i32 23)
unreachable
}
define void @_ZN4core3num7dec2flt5rawfp9big_to_fp17h175a9c9b258e1132E(%"num::diy_float::Fp"* noalias nocapture sret dereferenceable(16), %"num::bignum::Big32x40"* noalias readonly dereferenceable(164)) unnamed_addr {
start:
%2 = tail call i32 @_ZN4core3num6bignum8Big32x4010bit_length17h2fc404906b63e77bE(%"num::bignum::Big32x40"* noalias nonnull readonly dereferenceable(164) %1)
%3 = icmp eq i32 %2, 0
br i1 %3, label %bb2, label %bb3
bb2: ; preds = %start
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7dec2flt5rawfp9big_to_fp14_MSG_FILE_LINE17h8a38a61b7443a964E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb3: ; preds = %start
%4 = tail call { i32, i1 } @llvm.usub.with.overflow.i32(i32 %2, i32 64) #5
%5 = extractvalue { i32, i1 } %4, 1
%6 = extractvalue { i32, i1 } %4, 0
%..i = select i1 %5, i32 0, i32 %6
%7 = sub i32 %2, %..i
%8 = icmp ugt i32 %7, 64
br i1 %8, label %bb1.i, label %bb5.preheader.i
bb5.preheader.i: ; preds = %bb3
%9 = icmp ugt i32 %2, %..i
br i1 %9, label %bb8.i.preheader, label %_ZN4core3num7dec2flt3num8get_bits17hae469e73dff0f872E.exit
bb8.i.preheader: ; preds = %bb5.preheader.i
br label %bb8.i
bb1.i: ; preds = %bb3
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num7dec2flt3num8get_bits14_MSG_FILE_LINE17h39f2266519c3dd30E to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !1016
unreachable
bb8.i: ; preds = %bb8.i.preheader, %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit.i4
%result.018.i = phi i64 [ %19, %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit.i4 ], [ 0, %bb8.i.preheader ]
%iter.sroa.4.017.i = phi i32 [ %10, %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit.i4 ], [ %2, %bb8.i.preheader ]
%10 = add i32 %iter.sroa.4.017.i, -1
%11 = lshr i32 %10, 5
%12 = icmp ult i32 %10, 1280
br i1 %12, label %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit.i4, label %panic2.i.i3, !prof !3
panic2.i.i3: ; preds = %bb8.i
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4E to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %11, i32 40), !noalias !1019
unreachable
_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit.i4: ; preds = %bb8.i
%13 = shl i64 %result.018.i, 1
%14 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %1, i32 0, i32 2, i32 %11
%15 = load i32, i32* %14, align 4, !alias.scope !1019
%16 = and i32 %10, 31
%17 = lshr i32 %15, %16
%.mask.i = and i32 %17, 1
%18 = zext i32 %.mask.i to i64
%19 = or i64 %18, %13
%20 = icmp ugt i32 %10, %..i
br i1 %20, label %bb8.i, label %_ZN4core3num7dec2flt3num8get_bits17hae469e73dff0f872E.exit.loopexit
_ZN4core3num7dec2flt3num8get_bits17hae469e73dff0f872E.exit.loopexit: ; preds = %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit.i4
br label %_ZN4core3num7dec2flt3num8get_bits17hae469e73dff0f872E.exit
_ZN4core3num7dec2flt3num8get_bits17hae469e73dff0f872E.exit: ; preds = %_ZN4core3num7dec2flt3num8get_bits17hae469e73dff0f872E.exit.loopexit, %bb5.preheader.i
%result.0.lcssa.i = phi i64 [ 0, %bb5.preheader.i ], [ %19, %_ZN4core3num7dec2flt3num8get_bits17hae469e73dff0f872E.exit.loopexit ]
%21 = trunc i32 %..i to i16
%22 = icmp ult i64 %result.0.lcssa.i, 4294967296
%23 = shl i64 %result.0.lcssa.i, 32
%24 = add i16 %21, -32
%e.0.i5 = select i1 %22, i16 %24, i16 %21
%f.0.i6 = select i1 %22, i64 %23, i64 %result.0.lcssa.i
%25 = icmp ult i64 %f.0.i6, 281474976710656
%26 = shl i64 %f.0.i6, 16
%27 = add i16 %e.0.i5, -16
%e.1.i7 = select i1 %25, i16 %27, i16 %e.0.i5
%f.1.i8 = select i1 %25, i64 %26, i64 %f.0.i6
%28 = icmp ult i64 %f.1.i8, 72057594037927936
%29 = shl i64 %f.1.i8, 8
%30 = add i16 %e.1.i7, -8
%e.2.i9 = select i1 %28, i16 %30, i16 %e.1.i7
%f.2.i10 = select i1 %28, i64 %29, i64 %f.1.i8
%31 = icmp ult i64 %f.2.i10, 1152921504606846976
%32 = shl i64 %f.2.i10, 4
%33 = add i16 %e.2.i9, -4
%e.3.i11 = select i1 %31, i16 %33, i16 %e.2.i9
%f.3.i12 = select i1 %31, i64 %32, i64 %f.2.i10
%34 = icmp ult i64 %f.3.i12, 4611686018427387904
%35 = shl i64 %f.3.i12, 2
%36 = add i16 %e.3.i11, -2
%e.4.i13 = select i1 %34, i16 %36, i16 %e.3.i11
%f.4.i14 = select i1 %34, i64 %35, i64 %f.3.i12
%f.4.lobit.i15 = ashr i64 %f.4.i14, 63
%37 = trunc i64 %f.4.lobit.i15 to i16
%.not.i16 = xor i16 %37, -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
%38 = icmp eq i32 %..i, 0
br i1 %38, label %bb13, label %bb2.i1
bb2.i1: ; preds = %_ZN4core3num7dec2flt3num8get_bits17hae469e73dff0f872E.exit
%39 = add i32 %..i, -1
%40 = lshr i32 %39, 5
%41 = icmp ult i32 %39, 1280
br i1 %41, label %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit.i, label %panic2.i.i, !prof !3
panic2.i.i: ; preds = %bb2.i1
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4E to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %40, i32 40), !noalias !1022
unreachable
_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit.i: ; preds = %bb2.i1
%42 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %1, i32 0, i32 2, i32 %40
%43 = load i32, i32* %42, align 4, !alias.scope !1022
%44 = and i32 %39, 31
%45 = shl i32 1, %44
%46 = and i32 %43, %45
%47 = icmp eq i32 %46, 0
br i1 %47, label %bb13, label %bb10.i.preheader
bb10.i.preheader: ; preds = %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit.i
br label %bb10.i
bb10.i: ; preds = %bb10.i.preheader, %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit4.i
%iter.sroa.0.0.i = phi i32 [ %51, %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit4.i ], [ 0, %bb10.i.preheader ]
%48 = icmp ult i32 %iter.sroa.0.0.i, %39
br i1 %48, label %bb13.i, label %bb12
bb13.i: ; preds = %bb10.i
%49 = lshr i32 %iter.sroa.0.0.i, 5
%50 = icmp ult i32 %iter.sroa.0.0.i, 1280
br i1 %50, label %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit4.i, label %panic2.i3.i, !prof !3
panic2.i3.i: ; preds = %bb13.i
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.4E to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 %49, i32 40), !noalias !1027
unreachable
_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit4.i: ; preds = %bb13.i
%51 = add nuw nsw i32 %iter.sroa.0.0.i, 1
%52 = getelementptr inbounds %"num::bignum::Big32x40", %"num::bignum::Big32x40"* %1, i32 0, i32 2, i32 %49
%53 = load i32, i32* %52, align 4, !alias.scope !1027
%54 = and i32 %iter.sroa.0.0.i, 31
%55 = shl i32 1, %54
%56 = and i32 %53, %55
%57 = icmp eq i32 %56, 0
br i1 %57, label %bb10.i, label %bb10.loopexit
bb10.loopexit: ; preds = %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit4.i
br label %bb10
bb10: ; preds = %bb10.loopexit, %bb12
%58 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %result.0.lcssa.i, i64 1) #5
%59 = extractvalue { i64, i1 } %58, 1
br i1 %59, label %bb15, label %bb16
bb12: ; preds = %bb10.i
%60 = and i64 %result.0.lcssa.i, 1
%61 = icmp eq i64 %60, 0
br i1 %61, label %bb13, label %bb10
bb13: ; preds = %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit.i, %_ZN4core3num7dec2flt3num8get_bits17hae469e73dff0f872E.exit, %bb12, %bb16, %bb15
%f.5.i.sink = phi i64 [ %f.5.i, %bb16 ], [ -9223372036854775808, %bb15 ], [ %f.5.i20, %bb12 ], [ %f.5.i20, %_ZN4core3num7dec2flt3num8get_bits17hae469e73dff0f872E.exit ], [ %f.5.i20, %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit.i ]
%e.5.i.sink = phi i16 [ %e.5.i, %bb16 ], [ %64, %bb15 ], [ %e.5.i17, %bb12 ], [ %e.5.i17, %_ZN4core3num7dec2flt3num8get_bits17hae469e73dff0f872E.exit ], [ %e.5.i17, %_ZN4core3num6bignum8Big32x407get_bit17h2ac385e21ea7cabfE.exit.i ]
%62 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %0, i32 0, i32 0
store i64 %f.5.i.sink, i64* %62, align 8
%63 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %0, i32 0, i32 2
store i16 %e.5.i.sink, i16* %63, align 8
ret void
bb15: ; preds = %bb10
%64 = add i16 %21, 1
br label %bb13
bb16: ; preds = %bb10
%65 = extractvalue { i64, i1 } %58, 0
%66 = icmp ult i64 %65, 4294967296
%67 = shl i64 %65, 32
%e.0.i = select i1 %66, i16 %24, i16 %21
%f.0.i = select i1 %66, i64 %67, i64 %65
%68 = icmp ult i64 %f.0.i, 281474976710656
%69 = shl i64 %f.0.i, 16
%70 = add i16 %e.0.i, -16
%e.1.i = select i1 %68, i16 %70, i16 %e.0.i
%f.1.i = select i1 %68, i64 %69, i64 %f.0.i
%71 = icmp ult i64 %f.1.i, 72057594037927936
%72 = shl i64 %f.1.i, 8
%73 = add i16 %e.1.i, -8
%e.2.i = select i1 %71, i16 %73, i16 %e.1.i
%f.2.i = select i1 %71, i64 %72, i64 %f.1.i
%74 = icmp ult i64 %f.2.i, 1152921504606846976
%75 = shl i64 %f.2.i, 4
%76 = add i16 %e.2.i, -4
%e.3.i = select i1 %74, i16 %76, i16 %e.2.i
%f.3.i = select i1 %74, i64 %75, i64 %f.2.i
%77 = icmp ult i64 %f.3.i, 4611686018427387904
%78 = shl i64 %f.3.i, 2
%79 = add i16 %e.3.i, -2
%e.4.i = select i1 %77, i16 %79, i16 %e.3.i
%f.4.i = select i1 %77, i64 %78, i64 %f.3.i
%f.4.lobit.i = ashr i64 %f.4.i, 63
%80 = trunc i64 %f.4.lobit.i to i16
%.not.i = xor i16 %80, -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
define void @_ZN4core3num7dec2flt5parse7Decimal3new17h39c3de11aba2e817E(%"num::dec2flt::parse::Decimal"* noalias nocapture sret dereferenceable(24), i8* noalias nonnull readonly, i32, i8* noalias nonnull readonly, i32, i64) unnamed_addr #2 {
start:
%6 = getelementptr inbounds %"num::dec2flt::parse::Decimal", %"num::dec2flt::parse::Decimal"* %0, i32 0, i32 2, i32 0
store i8* %1, i8** %6, align 8
%7 = getelementptr inbounds %"num::dec2flt::parse::Decimal", %"num::dec2flt::parse::Decimal"* %0, i32 0, i32 2, i32 1
store i32 %2, i32* %7, align 4
%8 = getelementptr inbounds %"num::dec2flt::parse::Decimal", %"num::dec2flt::parse::Decimal"* %0, i32 0, i32 4, i32 0
store i8* %3, i8** %8, align 8
%9 = getelementptr inbounds %"num::dec2flt::parse::Decimal", %"num::dec2flt::parse::Decimal"* %0, i32 0, i32 4, i32 1
store i32 %4, i32* %9, align 4
%10 = getelementptr inbounds %"num::dec2flt::parse::Decimal", %"num::dec2flt::parse::Decimal"* %0, i32 0, i32 0
store i64 %5, i64* %10, align 8
ret void
}
define void @_ZN4core3num7dec2flt5parse13parse_decimal17h7980a0cad9a34d13E(%"num::dec2flt::parse::ParseResult"* noalias nocapture sret dereferenceable(32), i8* noalias nonnull readonly, i32) unnamed_addr {
start:
%3 = icmp eq i32 %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, i32 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 i32 [ %i.010.i, %bb12.i ], [ %9, %bb14.i ]
%5 = icmp ugt i32 %i.0.lcssa.i, %2
br i1 %5, label %bb4.i.i.i.i, label %_ZN4core3num7dec2flt5parse10eat_digits17h812563e820e46a76E.exit
bb4.i.i.i.i: ; preds = %bb4.i
tail call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %i.0.lcssa.i, i32 %2), !noalias !1030
unreachable
bb12.i: ; preds = %bb12.i.preheader, %bb14.i
%i.010.i = phi i32 [ %9, %bb14.i ], [ 0, %bb12.i.preheader ]
%6 = getelementptr inbounds i8, i8* %1, i32 %i.010.i
%7 = load i8, i8* %6, align 1, !alias.scope !1035, !noalias !1037
%.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 i32 %i.010.i, 1
%10 = icmp ult i32 %9, %2
br i1 %10, label %bb12.i, label %bb4.i
_ZN4core3num7dec2flt5parse10eat_digits17h812563e820e46a76E.exit: ; preds = %bb4.i
%11 = getelementptr inbounds i8, i8* %1, i32 %i.0.lcssa.i
%12 = sub i32 %2, %i.0.lcssa.i
%13 = icmp eq i32 %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$5index17he97a8a2b83cb6052E.exit", %bb38, %bb12, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.exit12", %bb9, %bb2, %bb19
ret void
bb9: ; preds = %_ZN4core3num7dec2flt5parse10eat_digits17h812563e820e46a76E.exit
%14 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i32 0, i32 2
%15 = bitcast [3 x i64]* %14 to i8*
%_15.sroa.4.0..sroa_idx29 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i32 0, i32 2, i32 1
%_15.sroa.4.0..sroa_cast30 = bitcast i64* %_15.sroa.4.0..sroa_idx29 to i8**
%16 = bitcast %"num::dec2flt::parse::ParseResult"* %0 to i8*
call void @llvm.memset.p0i8.i64(i8* nonnull %16, i8 0, i64 16, i32 8, i1 false)
store i8* %1, i8** %_15.sroa.4.0..sroa_cast30, align 8
%_15.sroa.5.0..sroa_idx = getelementptr inbounds i8, i8* %15, i32 12
%_15.sroa.5.0..sroa_cast32 = bitcast i8* %_15.sroa.5.0..sroa_idx to i32*
store i32 %i.0.lcssa.i, i32* %_15.sroa.5.0..sroa_cast32, align 4
%_15.sroa.6.0..sroa_idx34 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i32 0, i32 2, i32 2
%_15.sroa.6.0..sroa_cast35 = bitcast i64* %_15.sroa.6.0..sroa_idx34 to i8**
store i8* getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), i8** %_15.sroa.6.0..sroa_cast35, align 8
%_15.sroa.7.0..sroa_idx = getelementptr inbounds i8, i8* %15, i32 20
%_15.sroa.7.0..sroa_cast37 = bitcast i8* %_15.sroa.7.0..sroa_idx to i32*
store i32 0, i32* %_15.sroa.7.0..sroa_cast37, align 4
br label %bb4
bb10: ; preds = %bb13, %bb13
%17 = icmp eq i32 %i.0.lcssa.i, 0
br i1 %17, label %bb19, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.exit12"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.exit23": ; preds = %bb13
%18 = getelementptr inbounds i8, i8* %11, i32 1
%19 = add i32 %12, -1
%20 = icmp eq i32 %19, 0
br i1 %20, label %_ZN4core3num7dec2flt5parse10eat_digits17h812563e820e46a76E.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$5index17he97a8a2b83cb6052E.exit23"
br label %bb12.i19
bb4.i14: ; preds = %bb14.i20, %bb12.i19
%i.0.lcssa.i13 = phi i32 [ %i.010.i17, %bb12.i19 ], [ %25, %bb14.i20 ]
%21 = icmp ugt i32 %i.0.lcssa.i13, %19
br i1 %21, label %bb4.i.i.i.i15, label %_ZN4core3num7dec2flt5parse10eat_digits17h812563e820e46a76E.exit21
bb4.i.i.i.i15: ; preds = %bb4.i14
tail call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %i.0.lcssa.i13, i32 %19), !noalias !1038
unreachable
bb12.i19: ; preds = %bb12.i19.preheader, %bb14.i20
%i.010.i17 = phi i32 [ %25, %bb14.i20 ], [ 0, %bb12.i19.preheader ]
%22 = getelementptr inbounds i8, i8* %18, i32 %i.010.i17
%23 = load i8, i8* %22, align 1, !alias.scope !1043, !noalias !1045
%.off.i18 = add i8 %23, -48
%24 = icmp ult i8 %.off.i18, 10
br i1 %24, label %bb14.i20, label %bb4.i14
bb14.i20: ; preds = %bb12.i19
%25 = add nuw i32 %i.010.i17, 1
%26 = icmp ult i32 %25, %19
br i1 %26, label %bb12.i19, label %bb4.i14
_ZN4core3num7dec2flt5parse10eat_digits17h812563e820e46a76E.exit21: ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.exit23", %bb4.i14
%i.0.lcssa12.i16 = phi i32 [ %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$5index17he97a8a2b83cb6052E.exit23" ]
%27 = getelementptr inbounds i8, i8* %18, i32 %i.0.lcssa12.i16
%28 = sub i32 %19, %i.0.lcssa12.i16
%29 = or i32 %i.0.lcssa12.i16, %i.0.lcssa.i
%30 = icmp eq i32 %29, 0
%31 = icmp eq i32 %28, 0
br i1 %30, label %bb26, label %bb25
bb12: ; preds = %bb13
%32 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i32 0, i32 0
store i64 3, i64* %32, align 8
br label %bb4
bb13: ; preds = %_ZN4core3num7dec2flt5parse10eat_digits17h812563e820e46a76E.exit
%33 = load i8, i8* %11, align 1
switch i8 %33, 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$5index17he97a8a2b83cb6052E.exit23"
]
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.exit12": ; preds = %bb10
%34 = getelementptr inbounds i8, i8* %11, i32 1
%35 = add i32 %12, -1
tail call fastcc void @_ZN4core3num7dec2flt5parse9parse_exp17h8fd03bfe372c3e6eE(%"num::dec2flt::parse::ParseResult"* noalias nocapture nonnull sret dereferenceable(32) %0, i8* noalias nonnull readonly %1, i32 %i.0.lcssa.i, i8* noalias nonnull readonly getelementptr inbounds ([0 x i8], [0 x i8]* @byte_str.U, i32 0, i32 0), i32 0, i8* noalias nonnull readonly %34, i32 %35)
br label %bb4
bb19: ; preds = %bb10, %bb26
%36 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i32 0, i32 0
store i64 3, i64* %36, align 8
br label %bb4
bb25: ; preds = %_ZN4core3num7dec2flt5parse10eat_digits17h812563e820e46a76E.exit21
br i1 %31, label %bb38, label %bb41
bb26: ; preds = %_ZN4core3num7dec2flt5parse10eat_digits17h812563e820e46a76E.exit21
br i1 %31, label %bb19, label %bb41
bb38: ; preds = %bb25
%37 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i32 0, i32 2
%38 = bitcast [3 x i64]* %37 to i8*
%_52.sroa.4.0..sroa_idx44 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i32 0, i32 2, i32 1
%_52.sroa.4.0..sroa_cast45 = bitcast i64* %_52.sroa.4.0..sroa_idx44 to i8**
%39 = bitcast %"num::dec2flt::parse::ParseResult"* %0 to i8*
call void @llvm.memset.p0i8.i64(i8* nonnull %39, i8 0, i64 16, i32 8, i1 false)
store i8* %1, i8** %_52.sroa.4.0..sroa_cast45, align 8
%_52.sroa.5.0..sroa_idx = getelementptr inbounds i8, i8* %38, i32 12
%_52.sroa.5.0..sroa_cast47 = bitcast i8* %_52.sroa.5.0..sroa_idx to i32*
store i32 %i.0.lcssa.i, i32* %_52.sroa.5.0..sroa_cast47, align 4
%_52.sroa.6.0..sroa_idx49 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i32 0, i32 2, i32 2
%_52.sroa.6.0..sroa_cast50 = bitcast i64* %_52.sroa.6.0..sroa_idx49 to i8**
store i8* %18, i8** %_52.sroa.6.0..sroa_cast50, align 8
%_52.sroa.7.0..sroa_idx = getelementptr inbounds i8, i8* %38, i32 20
%_52.sroa.7.0..sroa_cast52 = bitcast i8* %_52.sroa.7.0..sroa_idx to i32*
store i32 %i.0.lcssa12.i16, i32* %_52.sroa.7.0..sroa_cast52, align 4
br label %bb4
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.exit": ; preds = %bb41, %bb41
%40 = getelementptr inbounds i8, i8* %27, i32 1
%41 = add i32 %28, -1
tail call fastcc void @_ZN4core3num7dec2flt5parse9parse_exp17h8fd03bfe372c3e6eE(%"num::dec2flt::parse::ParseResult"* noalias nocapture nonnull sret dereferenceable(32) %0, i8* noalias nonnull readonly %1, i32 %i.0.lcssa.i, i8* noalias nonnull readonly %18, i32 %i.0.lcssa12.i16, i8* noalias nonnull readonly %40, i32 %41)
br label %bb4
bb40: ; preds = %bb41
%42 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i32 0, i32 0
store i64 3, i64* %42, align 8
br label %bb4
bb41: ; preds = %bb26, %bb25
%43 = load i8, i8* %27, align 1
switch i8 %43, label %bb40 [
i8 101, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.exit"
i8 69, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.exit"
]
}
define internal fastcc void @_ZN4core3num7dec2flt5parse9parse_exp17h8fd03bfe372c3e6eE(%"num::dec2flt::parse::ParseResult"* noalias nocapture sret dereferenceable(32), i8* noalias nonnull readonly, i32, i8* noalias nonnull readonly, i32, i8* noalias nonnull readonly, i32) unnamed_addr {
start:
%7 = icmp eq i32 %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$5index17he97a8a2b83cb6052E.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$5index17he97a8a2b83cb6052E.exit27"
]
bb12.i.preheader: ; preds = %bb6, %bb5
%_9.sroa.0.051.ph = phi i8 [ 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 i32 [ %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$5index17he97a8a2b83cb6052E.exit27"
%_9.sroa.0.0 = phi i8 [ 0, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.exit27" ], [ 1, %bb5 ]
%_9.sroa.65.0 = getelementptr inbounds i8, i8* %5, i32 1
%_9.sroa.10.0 = add i32 %6, -1
%9 = icmp eq i32 %_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 i32 [ %i.010.i, %bb12.i ], [ %14, %bb14.i ]
%10 = icmp ugt i32 %i.0.lcssa.i, %_9.sroa.10.049.ph
br i1 %10, label %bb4.i.i.i.i, label %_ZN4core3num7dec2flt5parse10eat_digits17h812563e820e46a76E.exit
bb4.i.i.i.i: ; preds = %bb4.i
tail call void @_ZN4core5slice20slice_index_len_fail17hb22c150a588b8773E(i32 %i.0.lcssa.i, i32 %_9.sroa.10.049.ph), !noalias !1046
unreachable
bb12.i: ; preds = %bb12.i.preheader, %bb14.i
%i.010.i = phi i32 [ %14, %bb14.i ], [ 0, %bb12.i.preheader ]
%11 = getelementptr inbounds i8, i8* %_9.sroa.65.050.ph, i32 %i.010.i
%12 = load i8, i8* %11, align 1, !alias.scope !1051, !noalias !1053
%.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 i32 %i.010.i, 1
%15 = icmp ult i32 %14, %_9.sroa.10.049.ph
br i1 %15, label %bb12.i, label %bb4.i
_ZN4core3num7dec2flt5parse10eat_digits17h812563e820e46a76E.exit: ; preds = %bb4.i
%16 = icmp eq i32 %_9.sroa.10.049.ph, %i.0.lcssa.i
br i1 %16, label %bb10.i.preheader, label %bb11
bb10.i.preheader: ; preds = %_ZN4core3num7dec2flt5parse10eat_digits17h812563e820e46a76E.exit
br label %bb10.i
bb11: ; preds = %_ZN4core3num7dec2flt5parse10eat_digits17h812563e820e46a76E.exit
%17 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i32 0, i32 0
store i64 3, i64* %17, align 8
br label %bb13
bb13: ; preds = %bb11, %bb16, %bb25, %_ZN4core3num7dec2flt3num18from_str_unchecked17hef1e15ecef29c936E.exit
ret void
bb16: ; preds = %bb6, %start
%18 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i32 0, i32 0
store i64 3, i64* %18, align 8
br label %bb13
bb10.i: ; preds = %bb10.i.preheader, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.exit"
%number.sroa.9.057 = phi i32 [ %23, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.exit" ], [ %_9.sroa.10.049.ph, %bb10.i.preheader ]
%number.sroa.0.056 = phi i8* [ %22, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.exit" ], [ %_9.sroa.65.050.ph, %bb10.i.preheader ]
%19 = load i8, i8* %number.sroa.0.056, align 1, !alias.scope !1054, !noalias !1057
%20 = icmp eq i8 %19, 48
br i1 %20, label %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.exit", label %bb19
bb19: ; preds = %bb10.i
%21 = icmp ugt i32 %number.sroa.9.057, 17
br i1 %21, label %bb25, label %bb5.i.preheader
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.exit": ; preds = %bb10.i
%22 = getelementptr inbounds i8, i8* %number.sroa.0.056, i32 1
%23 = add i32 %number.sroa.9.057, -1
%24 = icmp eq i32 %23, 0
br i1 %24, label %_ZN4core3num7dec2flt3num18from_str_unchecked17hef1e15ecef29c936E.exit.loopexit78, label %bb10.i
bb25: ; preds = %bb19
%cond2 = icmp eq i8 %_9.sroa.0.051.ph, 0
%25 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i32 0, i32 0
%.sink = select i1 %cond2, i64 1, i64 2
store i64 %.sink, i64* %25, align 8
br label %bb13
bb5.i.preheader: ; preds = %bb19
%26 = getelementptr inbounds i8, i8* %number.sroa.0.056, i32 %number.sroa.9.057
br label %bb5.i
bb5.i: ; preds = %bb5.i.preheader, %bb5.i
%result.014.i = phi i64 [ %32, %bb5.i ], [ 0, %bb5.i.preheader ]
%iter.sroa.0.0.in13.i = phi i8* [ %27, %bb5.i ], [ %number.sroa.0.056, %bb5.i.preheader ]
%27 = getelementptr inbounds i8, i8* %iter.sroa.0.0.in13.i, i32 1
%28 = load i8, i8* %iter.sroa.0.0.in13.i, align 1, !alias.scope !1063
%29 = mul i64 %result.014.i, 10
%30 = add i8 %28, -48
%31 = zext i8 %30 to i64
%32 = add i64 %31, %29
%33 = icmp eq i8* %27, %26
br i1 %33, label %_ZN4core3num7dec2flt3num18from_str_unchecked17hef1e15ecef29c936E.exit.loopexit, label %bb5.i
_ZN4core3num7dec2flt3num18from_str_unchecked17hef1e15ecef29c936E.exit.loopexit: ; preds = %bb5.i
br label %_ZN4core3num7dec2flt3num18from_str_unchecked17hef1e15ecef29c936E.exit
_ZN4core3num7dec2flt3num18from_str_unchecked17hef1e15ecef29c936E.exit.loopexit78: ; preds = %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.exit"
br label %_ZN4core3num7dec2flt3num18from_str_unchecked17hef1e15ecef29c936E.exit
_ZN4core3num7dec2flt3num18from_str_unchecked17hef1e15ecef29c936E.exit: ; preds = %_ZN4core3num7dec2flt3num18from_str_unchecked17hef1e15ecef29c936E.exit.loopexit78, %_ZN4core3num7dec2flt3num18from_str_unchecked17hef1e15ecef29c936E.exit.loopexit
%result.0.lcssa.i = phi i64 [ %32, %_ZN4core3num7dec2flt3num18from_str_unchecked17hef1e15ecef29c936E.exit.loopexit ], [ 0, %_ZN4core3num7dec2flt3num18from_str_unchecked17hef1e15ecef29c936E.exit.loopexit78 ]
%cond1 = icmp eq i8 %_9.sroa.0.051.ph, 0
%34 = sub i64 0, %result.0.lcssa.i
%e.0 = select i1 %cond1, i64 %result.0.lcssa.i, i64 %34
%35 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i32 0, i32 0
store i64 0, i64* %35, align 8
%36 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i32 0, i32 2
%37 = bitcast [3 x i64]* %36 to i8*
%_59.sroa.0.0..sroa_idx = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i32 0, i32 2, i32 0
store i64 %e.0, i64* %_59.sroa.0.0..sroa_idx, align 8
%_59.sroa.4.0..sroa_idx35 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i32 0, i32 2, i32 1
%_59.sroa.4.0..sroa_cast36 = bitcast i64* %_59.sroa.4.0..sroa_idx35 to i8**
store i8* %1, i8** %_59.sroa.4.0..sroa_cast36, align 8
%_59.sroa.5.0..sroa_idx = getelementptr inbounds i8, i8* %37, i32 12
%_59.sroa.5.0..sroa_cast38 = bitcast i8* %_59.sroa.5.0..sroa_idx to i32*
store i32 %2, i32* %_59.sroa.5.0..sroa_cast38, align 4
%_59.sroa.6.0..sroa_idx40 = getelementptr inbounds %"num::dec2flt::parse::ParseResult", %"num::dec2flt::parse::ParseResult"* %0, i32 0, i32 2, i32 2
%_59.sroa.6.0..sroa_cast41 = bitcast i64* %_59.sroa.6.0..sroa_idx40 to i8**
store i8* %3, i8** %_59.sroa.6.0..sroa_cast41, align 8
%_59.sroa.7.0..sroa_idx = getelementptr inbounds i8, i8* %37, i32 20
%_59.sroa.7.0..sroa_cast43 = bitcast i8* %_59.sroa.7.0..sroa_idx to i32*
store i32 %4, i32* %_59.sroa.7.0..sroa_cast43, align 4
br label %bb13
}
; Function Attrs: norecurse nounwind readonly
define %str_slice @_ZN4core3num7dec2flt15ParseFloatError13__description17h9aa30ae564cdce10E(%"num::dec2flt::ParseFloatError"* noalias nocapture readonly dereferenceable(1)) unnamed_addr #3 {
start:
%1 = getelementptr inbounds %"num::dec2flt::ParseFloatError", %"num::dec2flt::ParseFloatError"* %0, i32 0, i32 0
%2 = load i8, i8* %1, align 1, !range !86
%cond = icmp eq i8 %2, 0
%.sink2 = select i1 %cond, i8* getelementptr inbounds ([36 x i8], [36 x i8]* @str.1F, i32 0, i32 0), i8* getelementptr inbounds ([21 x i8], [21 x i8]* @str.1E, i32 0, i32 0)
%.sink = select i1 %cond, i32 36, i32 21
%3 = insertvalue %str_slice undef, i8* %.sink2, 0
%4 = insertvalue %str_slice %3, i32 %.sink, 1
ret %str_slice %4
}
define i8 @"_ZN74_$LT$core..num..dec2flt..ParseFloatError$u20$as$u20$core..fmt..Display$GT$3fmt17h2565c8402473760bE"(%"num::dec2flt::ParseFloatError"* noalias nocapture readonly dereferenceable(1), %"fmt::Formatter"* nocapture readonly dereferenceable(52)) unnamed_addr {
start:
%2 = getelementptr inbounds %"num::dec2flt::ParseFloatError", %"num::dec2flt::ParseFloatError"* %0, i32 0, i32 0
%3 = load i8, i8* %2, align 1, !range !86, !alias.scope !1066
%cond.i = icmp eq i8 %3, 0
%.sink2.i = select i1 %cond.i, i8* getelementptr inbounds ([36 x i8], [36 x i8]* @str.1F, i32 0, i32 0), i8* getelementptr inbounds ([21 x i8], [21 x i8]* @str.1E, i32 0, i32 0)
%.sink.i = select i1 %cond.i, i32 36, i32 21
%4 = tail call i8 @_ZN4core3fmt9Formatter3pad17h90f29ff9c3139ee8E(%"fmt::Formatter"* nonnull dereferenceable(52) %1, i8* noalias nonnull readonly %.sink2.i, i32 %.sink.i)
ret i8 %4
}
; Function Attrs: norecurse nounwind readnone
define i8 @_ZN4core3num7dec2flt9pfe_empty17ha9e664f9ffae2a1aE() unnamed_addr #0 {
start:
ret i8 0
}
; Function Attrs: norecurse nounwind readnone
define i8 @_ZN4core3num7dec2flt11pfe_invalid17h5681b63625fa1aa3E() unnamed_addr #0 {
start:
ret i8 1
}
define void @_ZN4core3num7dec2flt12extract_sign17h256577680c9c0b4aE({ i8, [3 x i8], %str_slice, [0 x i8] }* noalias nocapture sret dereferenceable(12), i8* noalias nonnull readonly, i32) unnamed_addr {
start:
%3 = icmp eq i32 %2, 0
br i1 %3, label %panic, label %bb2, !prof !902
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 i32 %2, 1
%.pre.i.i.i = getelementptr inbounds i8, i8* %1, i32 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$5index17h9e293d9972cd26d3E.exit", label %"_ZN41_$LT$str$u20$as$u20$core..str..StrExt$GT$16is_char_boundary17h9b5a23bf6884d734E.exit.i.i.i"
"_ZN41_$LT$str$u20$as$u20$core..str..StrExt$GT$16is_char_boundary17h9b5a23bf6884d734E.exit.i.i.i": ; preds = %bb3
%6 = load i8, i8* %.pre.i.i.i, align 1, !alias.scope !1069, !noalias !1076
%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$5index17h9e293d9972cd26d3E.exit", label %bb1.i.i
bb1.i.i: ; preds = %"_ZN41_$LT$str$u20$as$u20$core..str..StrExt$GT$16is_char_boundary17h9b5a23bf6884d734E.exit.i.i.i"
tail call void @_ZN4core3str16slice_error_fail17h0d2fa1bc4e666a26E(i8* noalias nonnull readonly %1, i32 %2, i32 1, i32 %2), !noalias !1078
unreachable
"_ZN4core3str6traits105_$LT$impl$u20$core..ops..index..Index$LT$core..ops..range..RangeFrom$LT$usize$GT$$GT$$u20$for$u20$str$GT$5index17h9e293d9972cd26d3E.exit": ; preds = %bb3, %"_ZN41_$LT$str$u20$as$u20$core..str..StrExt$GT$16is_char_boundary17h9b5a23bf6884d734E.exit.i.i.i"
%8 = add i32 %2, -1
br label %bb6
bb4: ; preds = %bb2
%9 = icmp eq i32 %2, 1
%.pre.i.i.i10 = getelementptr inbounds i8, i8* %1, i32 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$5index17h9e293d9972cd26d3E.exit19", label %"_ZN41_$LT$str$u20$as$u20$core..str..StrExt$GT$16is_char_boundary17h9b5a23bf6884d734E.exit.i.i.i14"
"_ZN41_$LT$str$u20$as$u20$core..str..StrExt$GT$16is_char_boundary17h9b5a23bf6884d734E.exit.i.i.i14": ; preds = %bb4
%10 = load i8, i8* %.pre.i.i.i10, align 1, !alias.scope !1084, !noalias !1091
%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$5index17h9e293d9972cd26d3E.exit19", label %bb1.i.i15
bb1.i.i15: ; preds = %"_ZN41_$LT$str$u20$as$u20$core..str..StrExt$GT$16is_char_boundary17h9b5a23bf6884d734E.exit.i.i.i14"
tail call void @_ZN4core3str16slice_error_fail17h0d2fa1bc4e666a26E(i8* noalias nonnull readonly %1, i32 %2, i32 1, i32 %2), !noalias !1093
unreachable
"_ZN4core3str6traits105_$LT$impl$u20$core..ops..index..Index$LT$core..ops..range..RangeFrom$LT$usize$GT$$GT$$u20$for$u20$str$GT$5index17h9e293d9972cd26d3E.exit19": ; preds = %bb4, %"_ZN41_$LT$str$u20$as$u20$core..str..StrExt$GT$16is_char_boundary17h9b5a23bf6884d734E.exit.i.i.i14"
%12 = add i32 %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$5index17h9e293d9972cd26d3E.exit", %"_ZN4core3str6traits105_$LT$impl$u20$core..ops..index..Index$LT$core..ops..range..RangeFrom$LT$usize$GT$$GT$$u20$for$u20$str$GT$5index17h9e293d9972cd26d3E.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$5index17h9e293d9972cd26d3E.exit" ], [ 1, %"_ZN4core3str6traits105_$LT$impl$u20$core..ops..index..Index$LT$core..ops..range..RangeFrom$LT$usize$GT$$GT$$u20$for$u20$str$GT$5index17h9e293d9972cd26d3E.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$5index17h9e293d9972cd26d3E.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$5index17h9e293d9972cd26d3E.exit19" ], [ %1, %bb2 ]
%newret3.sink = phi i32 [ %8, %"_ZN4core3str6traits105_$LT$impl$u20$core..ops..index..Index$LT$core..ops..range..RangeFrom$LT$usize$GT$$GT$$u20$for$u20$str$GT$5index17h9e293d9972cd26d3E.exit" ], [ %12, %"_ZN4core3str6traits105_$LT$impl$u20$core..ops..index..Index$LT$core..ops..range..RangeFrom$LT$usize$GT$$GT$$u20$for$u20$str$GT$5index17h9e293d9972cd26d3E.exit19" ], [ %2, %bb2 ]
%13 = getelementptr inbounds { i8, [3 x i8], %str_slice, [0 x i8] }, { i8, [3 x i8], %str_slice, [0 x i8] }* %0, i32 0, i32 0
store i8 %.sink, i8* %13, align 4
%14 = getelementptr inbounds { i8, [3 x i8], %str_slice, [0 x i8] }, { i8, [3 x i8], %str_slice, [0 x i8] }* %0, i32 0, i32 2, i32 0
store i8* %newret.sink, i8** %14, align 4
%15 = getelementptr inbounds { i8, [3 x i8], %str_slice, [0 x i8] }, { i8, [3 x i8], %str_slice, [0 x i8] }* %0, i32 0, i32 2, i32 1
store i32 %newret3.sink, i32* %15, align 4
ret void
panic: ; preds = %start
tail call void @_ZN4core9panicking18panic_bounds_check17he6127d57f1238842E({ %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @panic_bounds_check_loc.1H to { %str_slice, [0 x i8], i32, [0 x i8] }*), i32 0, i32 0)
unreachable
}
; Function Attrs: norecurse nounwind readonly
define i64 @_ZN4core3num7dec2flt25bound_intermediate_digits17hd06b002de0da1000E(%"num::dec2flt::parse::Decimal"* noalias nocapture readonly dereferenceable(24), i64) unnamed_addr #3 {
start:
%2 = getelementptr inbounds %"num::dec2flt::parse::Decimal", %"num::dec2flt::parse::Decimal"* %0, i32 0, i32 2, i32 1
%3 = load i32, i32* %2, align 4
%4 = zext i32 %3 to i64
%5 = getelementptr inbounds %"num::dec2flt::parse::Decimal", %"num::dec2flt::parse::Decimal"* %0, i32 0, i32 4, i32 1
%6 = load i32, i32* %5, align 4
%7 = zext i32 %6 to i64
%8 = add nuw nsw i64 %7, %4
%9 = icmp sgt i64 %1, -1
%10 = sub i64 17, %1
%_0.0.v = select i1 %9, i64 %1, i64 %10
%_0.0 = add i64 %8, %_0.0.v
ret i64 %_0.0
}
; Function Attrs: norecurse nounwind
define void @_ZN4core3num9diy_float2Fp3mul17h0ceee00efe7158c5E(%"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 #2 {
start:
%3 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %1, i32 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, i32 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, i32 0, i32 2
%28 = load i16, i16* %27, align 2
%29 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %2, i32 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, i32 0, i32 0
store i64 %26, i64* %33, align 8
%34 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %0, i32 0, i32 2
store i16 %32, i16* %34, align 8
ret void
}
; Function Attrs: norecurse nounwind
define void @_ZN4core3num9diy_float2Fp9normalize17h440b471cb3f8fbcbE(%"num::diy_float::Fp"* noalias nocapture sret dereferenceable(16), %"num::diy_float::Fp"* noalias nocapture readonly dereferenceable(16)) unnamed_addr #2 {
start:
%2 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %1, i32 0, i32 0
%3 = load i64, i64* %2, align 8
%4 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %1, i32 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, i32 0, i32 0
store i64 %f.5, i64* %22, align 8
%23 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %0, i32 0, i32 2
store i16 %e.5, i16* %23, align 8
ret void
}
define void @_ZN4core3num9diy_float2Fp12normalize_to17hd8d9d42a3c74e8ccE(%"num::diy_float::Fp"* noalias nocapture sret dereferenceable(16), %"num::diy_float::Fp"* noalias readonly dereferenceable(16), i16) unnamed_addr {
start:
%_36 = alloca [2 x %"fmt::ArgumentV1"], align 4
%_31 = alloca %"fmt::Arguments", align 4
%right_val = alloca i64*, align 4
%left_val = alloca i64*, align 4
%_19 = alloca i64, align 8
%3 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %1, i32 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 @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @_ZN4core3num9diy_float2Fp12normalize_to14_MSG_FILE_LINE17h68fc28589dc1264dE to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 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, i32 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 4, i8* nonnull %14)
store i64* %_19, i64** %left_val, align 4
%15 = bitcast i64** %right_val to i8*
call void @llvm.lifetime.start(i64 4, i8* nonnull %15)
store i64* %8, i64** %right_val, align 4
%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 24, i8* nonnull %17)
%18 = bitcast [2 x %"fmt::ArgumentV1"]* %_36 to i8*
call void @llvm.lifetime.start(i64 16, i8* nonnull %18)
%19 = ptrtoint i64** %left_val to i32
%20 = ptrtoint i64** %right_val to i32
%21 = bitcast [2 x %"fmt::ArgumentV1"]* %_36 to i32*
store i32 %19, i32* %21, align 4
%22 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36, i32 0, i32 0, i32 2
%23 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %22 to i32*
store i32 ptrtoint (i8 (i64**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h079588134f415d4cE" to i32), i32* %23, align 4
%24 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36, i32 0, i32 1
%25 = bitcast %"fmt::ArgumentV1"* %24 to i32*
store i32 %20, i32* %25, align 4
%26 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36, i32 0, i32 1, i32 2
%27 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %26 to i32*
store i32 ptrtoint (i8 (i64**, %"fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h079588134f415d4cE" to i32), i32* %27, align 4
%28 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_36, i32 0, i32 0
%29 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31, i32 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref.3x, i32 0, i32 0), %str_slice** %29, align 4, !alias.scope !1099, !noalias !1102
%30 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31, i32 0, i32 0, i32 1
store i32 3, i32* %30, align 4, !alias.scope !1099, !noalias !1102
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31, i32 0, i32 2
%31 = bitcast %"option::Option<&[fmt::rt::v1::Argument]>"* %_6.sroa.0.0..sroa_idx.i to i64*
store i64 0, i64* %31, align 4, !alias.scope !1099, !noalias !1102
%32 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31, i32 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %28, %"fmt::ArgumentV1"** %32, align 4, !alias.scope !1099, !noalias !1102
%33 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_31, i32 0, i32 4, i32 1
store i32 2, i32* %33, align 4, !alias.scope !1099, !noalias !1102
call void @_ZN4core9panicking9panic_fmt17hc0383e0d65e634c7E(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(24) %_31, { %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @_ZN4core3num9diy_float2Fp12normalize_to10_FILE_LINE17hdc0ce4e16174d13aE to { %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb4: ; preds = %bb2
call void @llvm.lifetime.end(i64 4, i8* nonnull %15)
call void @llvm.lifetime.end(i64 4, i8* nonnull %14)
call void @llvm.lifetime.end(i64 8, i8* nonnull %7)
%34 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %0, i32 0, i32 0
store i64 %12, i64* %34, align 8
%35 = getelementptr inbounds %"num::diy_float::Fp", %"num::diy_float::Fp"* %0, i32 0, i32 2
store i16 %2, i16* %35, align 8
ret void
}
; Function Attrs: norecurse nounwind readnone
define %str_slice @_ZN4core3num15TryFromIntError13__description17h36fbb1f934fbf001E(%"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), i32 47 }
}
define i8 @"_ZN65_$LT$core..num..TryFromIntError$u20$as$u20$core..fmt..Display$GT$3fmt17hf22708c62f2d1b0cE"(%"num::TryFromIntError"* noalias nocapture readonly, %"fmt::Formatter"* nocapture readonly dereferenceable(52)) unnamed_addr {
start:
%2 = tail call i8 @_ZN4core3fmt9Formatter3pad17h90f29ff9c3139ee8E(%"fmt::Formatter"* nonnull dereferenceable(52) %1, i8* noalias nonnull readonly getelementptr inbounds ([47 x i8], [47 x i8]* @str.1M, i32 0, i32 0), i32 47)
ret i8 %2
}
define internal fastcc void @_ZN4core3num14from_str_radix17h05f6909658b26f55E(%"result::Result<i32, num::ParseIntError>"* noalias nocapture sret dereferenceable(8), i8* noalias nonnull readonly, i32, i32) unnamed_addr {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 4
%_12 = alloca %"fmt::Arguments", align 4
%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 24, i8* nonnull %5)
%6 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %6)
%7 = ptrtoint i32* %radix to i32
%8 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i32*
store i32 %7, i32* %8, align 4
%9 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0, i32 2
%10 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %9 to i32*
store i32 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h1d4fdb5aae293c5cE" to i32), i32* %10, align 4
%11 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9x, i32 0, i32 0), %str_slice** %12, align 4, !alias.scope !1105, !noalias !1108
%13 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 1
store i32 1, i32* %13, align 4, !alias.scope !1105, !noalias !1108
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 2
%14 = bitcast %"option::Option<&[fmt::rt::v1::Argument]>"* %_6.sroa.0.0..sroa_idx.i to i64*
store i64 0, i64* %14, align 4, !alias.scope !1105, !noalias !1108
%15 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %11, %"fmt::ArgumentV1"** %15, align 4, !alias.scope !1105, !noalias !1108
%16 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 1
store i32 1, i32* %16, align 4, !alias.scope !1105, !noalias !1108
call void @_ZN4core9panicking9panic_fmt17hc0383e0d65e634c7E(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(24) %_12, { %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @_ZN4core3num14from_str_radix10_FILE_LINE17h55598895be149e83E to { %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb6: ; preds = %start
%17 = icmp eq i32 %2, 0
br i1 %17, label %bb13, label %bb18
bb12: ; preds = %bb66, %bb13
ret void
bb13.loopexit: ; preds = %bb12.i48, %bb9.i46, %bb40, %bb45
%.sink120.ph = phi i8 [ 2, %bb45 ], [ 2, %bb40 ], [ 1, %bb9.i46 ], [ 1, %bb12.i48 ]
br label %bb13
bb13.loopexit149: ; preds = %bb12.i, %bb9.i, %bb57, %bb61
%.sink120.ph150 = phi i8 [ 3, %bb61 ], [ 3, %bb57 ], [ 1, %bb9.i ], [ 1, %bb12.i ]
br label %bb13
bb13: ; preds = %bb13.loopexit149, %bb13.loopexit, %bb6, %bb23
%.sink120 = phi i8 [ 0, %bb23 ], [ 0, %bb6 ], [ %.sink120.ph, %bb13.loopexit ], [ %.sink120.ph150, %bb13.loopexit149 ]
%18 = getelementptr inbounds %"result::Result<i32, num::ParseIntError>", %"result::Result<i32, num::ParseIntError>"* %0, i32 0, i32 0
store i8 1, i8* %18, align 4
%19 = getelementptr inbounds %"result::Result<i32, num::ParseIntError>", %"result::Result<i32, num::ParseIntError>"* %0, i32 0, i32 1, i32 0
store i8 %.sink120, i8* %19, align 1
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
bb18: ; preds = %bb6
%20 = load i8, i8* %1, align 1
switch i8 %20, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.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$5index17he97a8a2b83cb6052E.exit"
]
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph.thread": ; preds = %bb18
%21 = getelementptr inbounds i8, i8* %1, i32 %2
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.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$5index17he97a8a2b83cb6052E.exit"
%.sink15.off0 = phi i1 [ false, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.exit" ], [ true, %bb18 ]
%.sink12 = getelementptr inbounds i8, i8* %1, i32 1
%.sink = add i32 %2, -1
%22 = icmp eq i32 %.sink, 0
br i1 %22, label %bb13, label %bb28
bb28: ; preds = %bb23
br i1 %.sink15.off0, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph", label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.lr.ph"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph": ; preds = %bb28
%23 = getelementptr inbounds i8, i8* %.sink12, i32 %.sink
%24 = icmp ugt i32 %3, 36
br i1 %24, label %bb1.i39.split, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph.thread", %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph"
%25 = phi i8* [ %21, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph.thread" ], [ %23, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph" ]
%.sink12110113140 = phi i8* [ %1, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph.thread" ], [ %.sink12, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph" ]
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.lr.ph": ; preds = %bb28
%.ptr135 = getelementptr inbounds i8, i8* %1, i32 %2
%26 = icmp ugt i32 %3, 36
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$4next17hf2300a5111fa653bE.exit.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.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$4next17hf2300a5111fa653bE.exit"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader", %bb49
%result.0131 = phi i32 [ %40, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader" ]
%iter.sroa.0.0.in130 = phi i8* [ %27, %bb49 ], [ %.sink12110113140, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader" ]
%27 = getelementptr inbounds i8, i8* %iter.sroa.0.0.in130, i32 1
%28 = load i8, i8* %iter.sroa.0.0.in130, align 1
%29 = zext i8 %28 to i32
%.off.i40 = add nsw i32 %29, -48
%30 = icmp ult i32 %.off.i40, 10
br i1 %30, label %bb12.i48, label %bb7.i44
bb1.i39.split: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph"
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he6eb667c9cda989aE" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !1111
unreachable
bb7.i44: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
%.off5.i43 = add nsw i32 %29, -97
%31 = icmp ult i32 %.off5.i43, 26
br i1 %31, label %bb12.i48, label %bb9.i46
bb9.i46: ; preds = %bb7.i44
%.off6.i45 = add nsw i32 %29, -65
%32 = icmp ult i32 %.off6.i45, 26
br i1 %32, label %bb12.i48, label %bb13.loopexit
bb12.i48: ; preds = %bb9.i46, %bb7.i44, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
%.sink.i47 = phi i32 [ -87, %bb7.i44 ], [ -55, %bb9.i46 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54" ]
%33 = add nsw i32 %.sink.i47, %29
%34 = icmp ult i32 %33, %3
br i1 %34, label %bb40, label %bb13.loopexit
bb40: ; preds = %bb12.i48
%35 = tail call { i32, i1 } @llvm.smul.with.overflow.i32(i32 %result.0131, i32 %3) #5
%36 = extractvalue { i32, i1 } %35, 1
br i1 %36, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%37 = extractvalue { i32, i1 } %35, 0
%38 = tail call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 %37, i32 %33) #5
%39 = extractvalue { i32, i1 } %38, 1
br i1 %39, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%40 = extractvalue { i32, i1 } %38, 0
%41 = icmp eq i8* %27, %25
br i1 %41, label %bb66.loopexit, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader", %bb65
%result.1133 = phi i32 [ %55, %bb65 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader" ]
%iter1.sroa.0.0.in132 = phi i8* [ %42, %bb65 ], [ %.sink12, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader" ]
%42 = getelementptr inbounds i8, i8* %iter1.sroa.0.0.in132, i32 1
%43 = load i8, i8* %iter1.sroa.0.0.in132, align 1
%44 = zext i8 %43 to i32
%.off.i = add nsw i32 %44, -48
%45 = icmp ult i32 %.off.i, 10
br i1 %45, label %bb12.i, 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$4next17hf2300a5111fa653bE.exit.lr.ph"
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he6eb667c9cda989aE" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !1114
unreachable
bb7.i: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit"
%.off5.i = add nsw i32 %44, -97
%46 = icmp ult i32 %.off5.i, 26
br i1 %46, label %bb12.i, label %bb9.i
bb9.i: ; preds = %bb7.i
%.off6.i = add nsw i32 %44, -65
%47 = icmp ult i32 %.off6.i, 26
br i1 %47, label %bb12.i, label %bb13.loopexit149
bb12.i: ; preds = %bb9.i, %bb7.i, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit"
%.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$4next17hf2300a5111fa653bE.exit" ]
%48 = add nsw i32 %.sink.i, %44
%49 = icmp ult i32 %48, %3
br i1 %49, label %bb57, label %bb13.loopexit149
bb57: ; preds = %bb12.i
%50 = tail call { i32, i1 } @llvm.smul.with.overflow.i32(i32 %result.1133, i32 %3) #5
%51 = extractvalue { i32, i1 } %50, 1
br i1 %51, label %bb13.loopexit149, label %bb61
bb61: ; preds = %bb57
%52 = extractvalue { i32, i1 } %50, 0
%53 = tail call { i32, i1 } @llvm.ssub.with.overflow.i32(i32 %52, i32 %48) #5
%54 = extractvalue { i32, i1 } %53, 1
br i1 %54, label %bb13.loopexit149, label %bb65
bb65: ; preds = %bb61
%55 = extractvalue { i32, i1 } %53, 0
%56 = icmp eq i8* %42, %.ptr135
br i1 %56, label %bb66.loopexit151, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit"
bb66.loopexit: ; preds = %bb49
br label %bb66
bb66.loopexit151: ; preds = %bb65
br label %bb66
bb66: ; preds = %bb66.loopexit151, %bb66.loopexit
%result.2 = phi i32 [ %40, %bb66.loopexit ], [ %55, %bb66.loopexit151 ]
%57 = getelementptr inbounds %"result::Result<i32, num::ParseIntError>", %"result::Result<i32, num::ParseIntError>"* %0, i32 0, i32 0
store i8 0, i8* %57, align 4
%58 = getelementptr inbounds %"result::Result<i32, num::ParseIntError>", %"result::Result<i32, num::ParseIntError>"* %0, i32 0, i32 2, i32 0
store i32 %result.2, i32* %58, align 4
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
}
define internal fastcc void @_ZN4core3num14from_str_radix17h0979a0dc65596b1eE(%"result::Result<u32, num::ParseIntError>"* noalias nocapture sret dereferenceable(8), i8* noalias nonnull readonly, i32, i32) unnamed_addr {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 4
%_12 = alloca %"fmt::Arguments", align 4
%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 24, i8* nonnull %5)
%6 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %6)
%7 = ptrtoint i32* %radix to i32
%8 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i32*
store i32 %7, i32* %8, align 4
%9 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0, i32 2
%10 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %9 to i32*
store i32 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h1d4fdb5aae293c5cE" to i32), i32* %10, align 4
%11 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9x, i32 0, i32 0), %str_slice** %12, align 4, !alias.scope !1117, !noalias !1120
%13 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 1
store i32 1, i32* %13, align 4, !alias.scope !1117, !noalias !1120
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 2
%14 = bitcast %"option::Option<&[fmt::rt::v1::Argument]>"* %_6.sroa.0.0..sroa_idx.i to i64*
store i64 0, i64* %14, align 4, !alias.scope !1117, !noalias !1120
%15 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %11, %"fmt::ArgumentV1"** %15, align 4, !alias.scope !1117, !noalias !1120
%16 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 1
store i32 1, i32* %16, align 4, !alias.scope !1117, !noalias !1120
call void @_ZN4core9panicking9panic_fmt17hc0383e0d65e634c7E(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(24) %_12, { %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @_ZN4core3num14from_str_radix10_FILE_LINE17h55598895be149e83E to { %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb6: ; preds = %start
%17 = icmp eq i32 %2, 0
br i1 %17, label %bb13, label %bb18
bb12: ; preds = %bb66, %bb13
ret void
bb13.loopexit: ; preds = %bb12.i48, %bb9.i46, %bb40, %bb45
%.sink.ph = phi i8 [ 2, %bb45 ], [ 2, %bb40 ], [ 1, %bb9.i46 ], [ 1, %bb12.i48 ]
br label %bb13
bb13: ; preds = %bb13.loopexit, %bb6, %bb23
%.sink = phi i8 [ 0, %bb23 ], [ 0, %bb6 ], [ %.sink.ph, %bb13.loopexit ]
%18 = getelementptr inbounds %"result::Result<u32, num::ParseIntError>", %"result::Result<u32, num::ParseIntError>"* %0, i32 0, i32 0
store i8 1, i8* %18, align 4
%19 = getelementptr inbounds %"result::Result<u32, num::ParseIntError>", %"result::Result<u32, num::ParseIntError>"* %0, i32 0, i32 1, i32 0
store i8 %.sink, i8* %19, align 1
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
bb18: ; preds = %bb6
%20 = load i8, i8* %1, align 1
%cond = icmp eq i8 %20, 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$4next17hf2300a5111fa653bE.exit54.preheader"
bb23: ; preds = %bb18
%21 = getelementptr inbounds i8, i8* %1, i32 1
%22 = add i32 %2, -1
%23 = icmp eq i32 %22, 0
br i1 %23, label %bb13, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader": ; preds = %bb18, %bb23
%.sink110 = phi i32 [ %22, %bb23 ], [ %2, %bb18 ]
%.sink12109 = phi i8* [ %21, %bb23 ], [ %1, %bb18 ]
%24 = getelementptr inbounds i8, i8* %.sink12109, i32 %.sink110
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader", %bb49
%result.0122 = phi i32 [ %38, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader" ]
%iter.sroa.0.0.in121 = phi i8* [ %25, %bb49 ], [ %.sink12109, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader" ]
%25 = getelementptr inbounds i8, i8* %iter.sroa.0.0.in121, i32 1
%26 = load i8, i8* %iter.sroa.0.0.in121, align 1
%27 = zext i8 %26 to i32
%.off.i40 = add nsw i32 %27, -48
%28 = icmp ult i32 %.off.i40, 10
br i1 %28, label %bb12.i48, label %bb7.i44
bb7.i44: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
%.off5.i43 = add nsw i32 %27, -97
%29 = icmp ult i32 %.off5.i43, 26
br i1 %29, label %bb12.i48, label %bb9.i46
bb9.i46: ; preds = %bb7.i44
%.off6.i45 = add nsw i32 %27, -65
%30 = icmp ult i32 %.off6.i45, 26
br i1 %30, label %bb12.i48, label %bb13.loopexit
bb12.i48: ; preds = %bb9.i46, %bb7.i44, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
%.sink.i47 = phi i32 [ -87, %bb7.i44 ], [ -55, %bb9.i46 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54" ]
%31 = add nsw i32 %.sink.i47, %27
%32 = icmp ult i32 %31, %3
br i1 %32, label %bb40, label %bb13.loopexit
bb40: ; preds = %bb12.i48
%33 = tail call { i32, i1 } @llvm.umul.with.overflow.i32(i32 %result.0122, i32 %3) #5
%34 = extractvalue { i32, i1 } %33, 1
br i1 %34, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%35 = extractvalue { i32, i1 } %33, 0
%36 = tail call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %35, i32 %31) #5
%37 = extractvalue { i32, i1 } %36, 1
br i1 %37, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%38 = extractvalue { i32, i1 } %36, 0
%39 = icmp eq i8* %25, %24
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$4next17hf2300a5111fa653bE.exit54"
bb66: ; preds = %bb49
%40 = getelementptr inbounds %"result::Result<u32, num::ParseIntError>", %"result::Result<u32, num::ParseIntError>"* %0, i32 0, i32 0
store i8 0, i8* %40, align 4
%41 = getelementptr inbounds %"result::Result<u32, num::ParseIntError>", %"result::Result<u32, num::ParseIntError>"* %0, i32 0, i32 2, i32 0
store i32 %38, i32* %41, align 4
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
}
define internal fastcc i16 @_ZN4core3num14from_str_radix17h0ba33ca62d227727E(i8* noalias nonnull readonly, i32, i32) unnamed_addr {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 4
%_12 = alloca %"fmt::Arguments", align 4
%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 24, i8* nonnull %4)
%5 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %5)
%6 = ptrtoint i32* %radix to i32
%7 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i32*
store i32 %6, i32* %7, align 4
%8 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0, i32 2
%9 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %8 to i32*
store i32 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h1d4fdb5aae293c5cE" to i32), i32* %9, align 4
%10 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0
%11 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9x, i32 0, i32 0), %str_slice** %11, align 4, !alias.scope !1123, !noalias !1126
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 1
store i32 1, i32* %12, align 4, !alias.scope !1123, !noalias !1126
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 2
%13 = bitcast %"option::Option<&[fmt::rt::v1::Argument]>"* %_6.sroa.0.0..sroa_idx.i to i64*
store i64 0, i64* %13, align 4, !alias.scope !1123, !noalias !1126
%14 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %10, %"fmt::ArgumentV1"** %14, align 4, !alias.scope !1123, !noalias !1126
%15 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 1
store i32 1, i32* %15, align 4, !alias.scope !1123, !noalias !1126
call void @_ZN4core9panicking9panic_fmt17hc0383e0d65e634c7E(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(24) %_12, { %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @_ZN4core3num14from_str_radix10_FILE_LINE17h55598895be149e83E to { %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb6: ; preds = %start
%16 = icmp eq i32 %1, 0
br i1 %16, label %bb13, label %bb18
bb12: ; preds = %bb66, %bb13
%_0.sroa.10.0 = phi i8 [ %_0.sroa.10.1, %bb13 ], [ %37, %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.i68, %bb12.i70
%_0.sroa.10.1.ph = phi i8 [ 1, %bb12.i70 ], [ 1, %bb9.i68 ], [ 2, %bb45 ], [ 2, %bb40 ]
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
%17 = load i8, i8* %0, align 1
%cond = icmp eq i8 %17, 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$4next17hf2300a5111fa653bE.exit76.preheader"
bb23: ; preds = %bb18
%18 = getelementptr inbounds i8, i8* %0, i32 1
%19 = add i32 %1, -1
%20 = icmp eq i32 %19, 0
br i1 %20, label %bb13, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.preheader": ; preds = %bb18, %bb23
%.sink112 = phi i32 [ %19, %bb23 ], [ %1, %bb18 ]
%.sink15111 = phi i8* [ %18, %bb23 ], [ %0, %bb18 ]
%21 = getelementptr inbounds i8, i8* %.sink15111, i32 %.sink112
%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$4next17hf2300a5111fa653bE.exit76"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.preheader", %bb49
%result.0118 = phi i8 [ %37, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.preheader" ]
%iter.sroa.0.0.in117 = phi i8* [ %23, %bb49 ], [ %.sink15111, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.preheader" ]
%23 = getelementptr inbounds i8, i8* %iter.sroa.0.0.in117, i32 1
%24 = load i8, i8* %iter.sroa.0.0.in117, align 1
%25 = zext i8 %24 to i32
%.off.i62 = add nsw i32 %25, -48
%26 = icmp ult i32 %.off.i62, 10
br i1 %26, label %bb12.i70, label %bb7.i66
bb7.i66: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76"
%.off5.i65 = add nsw i32 %25, -97
%27 = icmp ult i32 %.off5.i65, 26
br i1 %27, label %bb12.i70, label %bb9.i68
bb9.i68: ; preds = %bb7.i66
%.off6.i67 = add nsw i32 %25, -65
%28 = icmp ult i32 %.off6.i67, 26
br i1 %28, label %bb12.i70, label %bb13.loopexit
bb12.i70: ; preds = %bb9.i68, %bb7.i66, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76"
%.sink.i69 = phi i32 [ -87, %bb7.i66 ], [ -55, %bb9.i68 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76" ]
%29 = add nsw i32 %.sink.i69, %25
%30 = icmp ult i32 %29, %2
br i1 %30, label %bb40, label %bb13.loopexit
bb40: ; preds = %bb12.i70
%31 = tail call { i8, i1 } @llvm.umul.with.overflow.i8(i8 %result.0118, i8 %22) #5
%32 = extractvalue { i8, i1 } %31, 1
br i1 %32, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%33 = extractvalue { i8, i1 } %31, 0
%34 = trunc i32 %29 to i8
%35 = tail call { i8, i1 } @llvm.uadd.with.overflow.i8(i8 %33, i8 %34) #5
%36 = extractvalue { i8, i1 } %35, 1
br i1 %36, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%37 = extractvalue { i8, i1 } %35, 0
%38 = icmp eq i8* %23, %21
br i1 %38, label %bb66, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76"
bb66: ; preds = %bb49
call void @llvm.lifetime.end(i64 4, i8* nonnull %3)
br label %bb12
}
define internal fastcc void @_ZN4core3num14from_str_radix17h243756dc270c3267E(%"result::Result<i128, num::ParseIntError>"* noalias nocapture sret dereferenceable(24), i8* noalias nonnull readonly, i32, i32) unnamed_addr {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 4
%_12 = alloca %"fmt::Arguments", align 4
%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 24, i8* nonnull %5)
%6 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %6)
%7 = ptrtoint i32* %radix to i32
%8 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i32*
store i32 %7, i32* %8, align 4
%9 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0, i32 2
%10 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %9 to i32*
store i32 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h1d4fdb5aae293c5cE" to i32), i32* %10, align 4
%11 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9x, i32 0, i32 0), %str_slice** %12, align 4, !alias.scope !1129, !noalias !1132
%13 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 1
store i32 1, i32* %13, align 4, !alias.scope !1129, !noalias !1132
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 2
%14 = bitcast %"option::Option<&[fmt::rt::v1::Argument]>"* %_6.sroa.0.0..sroa_idx.i to i64*
store i64 0, i64* %14, align 4, !alias.scope !1129, !noalias !1132
%15 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %11, %"fmt::ArgumentV1"** %15, align 4, !alias.scope !1129, !noalias !1132
%16 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 1
store i32 1, i32* %16, align 4, !alias.scope !1129, !noalias !1132
call void @_ZN4core9panicking9panic_fmt17hc0383e0d65e634c7E(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(24) %_12, { %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @_ZN4core3num14from_str_radix10_FILE_LINE17h55598895be149e83E to { %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb6: ; preds = %start
%17 = icmp eq i32 %2, 0
br i1 %17, label %bb13, label %bb18
bb12: ; preds = %bb66, %bb13
ret void
bb13.loopexit: ; preds = %bb12.i48, %bb9.i46, %bb40, %bb45
%.sink120.ph = phi i8 [ 2, %bb45 ], [ 2, %bb40 ], [ 1, %bb9.i46 ], [ 1, %bb12.i48 ]
br label %bb13
bb13.loopexit149: ; preds = %bb12.i, %bb9.i, %bb57, %bb61
%.sink120.ph150 = phi i8 [ 3, %bb61 ], [ 3, %bb57 ], [ 1, %bb9.i ], [ 1, %bb12.i ]
br label %bb13
bb13: ; preds = %bb13.loopexit149, %bb13.loopexit, %bb6, %bb23
%.sink120 = phi i8 [ 0, %bb23 ], [ 0, %bb6 ], [ %.sink120.ph, %bb13.loopexit ], [ %.sink120.ph150, %bb13.loopexit149 ]
%18 = getelementptr inbounds %"result::Result<i128, num::ParseIntError>", %"result::Result<i128, num::ParseIntError>"* %0, i32 0, i32 0
store i8 1, i8* %18, align 8
%19 = getelementptr inbounds %"result::Result<i128, num::ParseIntError>", %"result::Result<i128, num::ParseIntError>"* %0, i32 0, i32 1, i32 0
store i8 %.sink120, i8* %19, align 1
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
bb18: ; preds = %bb6
%20 = load i8, i8* %1, align 1
switch i8 %20, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.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$5index17he97a8a2b83cb6052E.exit"
]
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph.thread": ; preds = %bb18
%21 = getelementptr inbounds i8, i8* %1, i32 %2
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.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$5index17he97a8a2b83cb6052E.exit"
%.sink15.off0 = phi i1 [ false, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.exit" ], [ true, %bb18 ]
%.sink12 = getelementptr inbounds i8, i8* %1, i32 1
%.sink = add i32 %2, -1
%22 = icmp eq i32 %.sink, 0
br i1 %22, label %bb13, label %bb28
bb28: ; preds = %bb23
br i1 %.sink15.off0, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph", label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.lr.ph"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph": ; preds = %bb28
%23 = getelementptr inbounds i8, i8* %.sink12, i32 %.sink
%24 = icmp ugt i32 %3, 36
br i1 %24, label %bb1.i39.split, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph.thread", %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph"
%25 = phi i8* [ %21, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph.thread" ], [ %23, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph" ]
%.sink12110113140 = phi i8* [ %1, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph.thread" ], [ %.sink12, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph" ]
%26 = 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$4next17hf2300a5111fa653bE.exit54"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.lr.ph": ; preds = %bb28
%.ptr135 = getelementptr inbounds i8, i8* %1, i32 %2
%27 = icmp ugt i32 %3, 36
%28 = zext i32 %3 to i128
br i1 %27, 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$4next17hf2300a5111fa653bE.exit.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.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$4next17hf2300a5111fa653bE.exit"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader", %bb49
%result.0131 = phi i128 [ %43, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader" ]
%iter.sroa.0.0.in130 = phi i8* [ %29, %bb49 ], [ %.sink12110113140, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader" ]
%29 = getelementptr inbounds i8, i8* %iter.sroa.0.0.in130, i32 1
%30 = load i8, i8* %iter.sroa.0.0.in130, align 1
%31 = zext i8 %30 to i32
%.off.i40 = add nsw i32 %31, -48
%32 = icmp ult i32 %.off.i40, 10
br i1 %32, label %bb12.i48, label %bb7.i44
bb1.i39.split: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph"
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he6eb667c9cda989aE" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !1135
unreachable
bb7.i44: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
%.off5.i43 = add nsw i32 %31, -97
%33 = icmp ult i32 %.off5.i43, 26
br i1 %33, label %bb12.i48, label %bb9.i46
bb9.i46: ; preds = %bb7.i44
%.off6.i45 = add nsw i32 %31, -65
%34 = icmp ult i32 %.off6.i45, 26
br i1 %34, label %bb12.i48, label %bb13.loopexit
bb12.i48: ; preds = %bb9.i46, %bb7.i44, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
%.sink.i47 = phi i32 [ -87, %bb7.i44 ], [ -55, %bb9.i46 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54" ]
%35 = add nsw i32 %.sink.i47, %31
%36 = icmp ult i32 %35, %3
br i1 %36, label %bb40, label %bb13.loopexit
bb40: ; preds = %bb12.i48
%37 = tail call { i128, i1 } @llvm.smul.with.overflow.i128(i128 %result.0131, i128 %26) #5
%38 = extractvalue { i128, i1 } %37, 1
br i1 %38, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%39 = extractvalue { i128, i1 } %37, 0
%40 = zext i32 %35 to i128
%41 = tail call { i128, i1 } @llvm.sadd.with.overflow.i128(i128 %39, i128 %40) #5
%42 = extractvalue { i128, i1 } %41, 1
br i1 %42, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%43 = extractvalue { i128, i1 } %41, 0
%44 = icmp eq i8* %29, %25
br i1 %44, label %bb66.loopexit, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader", %bb65
%result.1133 = phi i128 [ %59, %bb65 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader" ]
%iter1.sroa.0.0.in132 = phi i8* [ %45, %bb65 ], [ %.sink12, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader" ]
%45 = getelementptr inbounds i8, i8* %iter1.sroa.0.0.in132, i32 1
%46 = load i8, i8* %iter1.sroa.0.0.in132, align 1
%47 = zext i8 %46 to i32
%.off.i = add nsw i32 %47, -48
%48 = icmp ult i32 %.off.i, 10
br i1 %48, label %bb12.i, 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$4next17hf2300a5111fa653bE.exit.lr.ph"
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he6eb667c9cda989aE" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !1138
unreachable
bb7.i: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit"
%.off5.i = add nsw i32 %47, -97
%49 = icmp ult i32 %.off5.i, 26
br i1 %49, label %bb12.i, label %bb9.i
bb9.i: ; preds = %bb7.i
%.off6.i = add nsw i32 %47, -65
%50 = icmp ult i32 %.off6.i, 26
br i1 %50, label %bb12.i, label %bb13.loopexit149
bb12.i: ; preds = %bb9.i, %bb7.i, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit"
%.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$4next17hf2300a5111fa653bE.exit" ]
%51 = add nsw i32 %.sink.i, %47
%52 = icmp ult i32 %51, %3
br i1 %52, label %bb57, label %bb13.loopexit149
bb57: ; preds = %bb12.i
%53 = tail call { i128, i1 } @llvm.smul.with.overflow.i128(i128 %result.1133, i128 %28) #5
%54 = extractvalue { i128, i1 } %53, 1
br i1 %54, label %bb13.loopexit149, label %bb61
bb61: ; preds = %bb57
%55 = extractvalue { i128, i1 } %53, 0
%56 = zext i32 %51 to i128
%57 = tail call { i128, i1 } @llvm.ssub.with.overflow.i128(i128 %55, i128 %56) #5
%58 = extractvalue { i128, i1 } %57, 1
br i1 %58, label %bb13.loopexit149, label %bb65
bb65: ; preds = %bb61
%59 = extractvalue { i128, i1 } %57, 0
%60 = icmp eq i8* %45, %.ptr135
br i1 %60, label %bb66.loopexit151, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit"
bb66.loopexit: ; preds = %bb49
br label %bb66
bb66.loopexit151: ; preds = %bb65
br label %bb66
bb66: ; preds = %bb66.loopexit151, %bb66.loopexit
%result.2 = phi i128 [ %43, %bb66.loopexit ], [ %59, %bb66.loopexit151 ]
%61 = getelementptr inbounds %"result::Result<i128, num::ParseIntError>", %"result::Result<i128, num::ParseIntError>"* %0, i32 0, i32 0
store i8 0, i8* %61, align 8
%62 = getelementptr inbounds %"result::Result<i128, num::ParseIntError>", %"result::Result<i128, num::ParseIntError>"* %0, i32 0, i32 2
%63 = bitcast [2 x i64]* %62 to i128*
store i128 %result.2, i128* %63, align 8
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
}
define internal fastcc void @_ZN4core3num14from_str_radix17h298a796e67d668d8E(%"result::Result<i64, num::ParseIntError>"* noalias nocapture sret dereferenceable(16), i8* noalias nonnull readonly, i32, i32) unnamed_addr {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 4
%_12 = alloca %"fmt::Arguments", align 4
%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 24, i8* nonnull %5)
%6 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %6)
%7 = ptrtoint i32* %radix to i32
%8 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i32*
store i32 %7, i32* %8, align 4
%9 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0, i32 2
%10 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %9 to i32*
store i32 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h1d4fdb5aae293c5cE" to i32), i32* %10, align 4
%11 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9x, i32 0, i32 0), %str_slice** %12, align 4, !alias.scope !1141, !noalias !1144
%13 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 1
store i32 1, i32* %13, align 4, !alias.scope !1141, !noalias !1144
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 2
%14 = bitcast %"option::Option<&[fmt::rt::v1::Argument]>"* %_6.sroa.0.0..sroa_idx.i to i64*
store i64 0, i64* %14, align 4, !alias.scope !1141, !noalias !1144
%15 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %11, %"fmt::ArgumentV1"** %15, align 4, !alias.scope !1141, !noalias !1144
%16 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 1
store i32 1, i32* %16, align 4, !alias.scope !1141, !noalias !1144
call void @_ZN4core9panicking9panic_fmt17hc0383e0d65e634c7E(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(24) %_12, { %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @_ZN4core3num14from_str_radix10_FILE_LINE17h55598895be149e83E to { %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb6: ; preds = %start
%17 = icmp eq i32 %2, 0
br i1 %17, label %bb13, label %bb18
bb12: ; preds = %bb66, %bb13
ret void
bb13.loopexit: ; preds = %bb12.i48, %bb9.i46, %bb40, %bb45
%.sink120.ph = phi i8 [ 2, %bb45 ], [ 2, %bb40 ], [ 1, %bb9.i46 ], [ 1, %bb12.i48 ]
br label %bb13
bb13.loopexit149: ; preds = %bb12.i, %bb9.i, %bb57, %bb61
%.sink120.ph150 = phi i8 [ 3, %bb61 ], [ 3, %bb57 ], [ 1, %bb9.i ], [ 1, %bb12.i ]
br label %bb13
bb13: ; preds = %bb13.loopexit149, %bb13.loopexit, %bb6, %bb23
%.sink120 = phi i8 [ 0, %bb23 ], [ 0, %bb6 ], [ %.sink120.ph, %bb13.loopexit ], [ %.sink120.ph150, %bb13.loopexit149 ]
%18 = getelementptr inbounds %"result::Result<i64, num::ParseIntError>", %"result::Result<i64, num::ParseIntError>"* %0, i32 0, i32 0
store i8 1, i8* %18, align 8
%19 = getelementptr inbounds %"result::Result<i64, num::ParseIntError>", %"result::Result<i64, num::ParseIntError>"* %0, i32 0, i32 1, i32 0
store i8 %.sink120, i8* %19, align 1
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
bb18: ; preds = %bb6
%20 = load i8, i8* %1, align 1
switch i8 %20, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.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$5index17he97a8a2b83cb6052E.exit"
]
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph.thread": ; preds = %bb18
%21 = getelementptr inbounds i8, i8* %1, i32 %2
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.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$5index17he97a8a2b83cb6052E.exit"
%.sink15.off0 = phi i1 [ false, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.exit" ], [ true, %bb18 ]
%.sink12 = getelementptr inbounds i8, i8* %1, i32 1
%.sink = add i32 %2, -1
%22 = icmp eq i32 %.sink, 0
br i1 %22, label %bb13, label %bb28
bb28: ; preds = %bb23
br i1 %.sink15.off0, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph", label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.lr.ph"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph": ; preds = %bb28
%23 = getelementptr inbounds i8, i8* %.sink12, i32 %.sink
%24 = icmp ugt i32 %3, 36
br i1 %24, label %bb1.i39.split, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph.thread", %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph"
%25 = phi i8* [ %21, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph.thread" ], [ %23, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph" ]
%.sink12110113140 = phi i8* [ %1, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph.thread" ], [ %.sink12, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph" ]
%26 = 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$4next17hf2300a5111fa653bE.exit54"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.lr.ph": ; preds = %bb28
%.ptr135 = getelementptr inbounds i8, i8* %1, i32 %2
%27 = icmp ugt i32 %3, 36
%28 = zext i32 %3 to i64
br i1 %27, 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$4next17hf2300a5111fa653bE.exit.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.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$4next17hf2300a5111fa653bE.exit"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader", %bb49
%result.0131 = phi i64 [ %43, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader" ]
%iter.sroa.0.0.in130 = phi i8* [ %29, %bb49 ], [ %.sink12110113140, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader" ]
%29 = getelementptr inbounds i8, i8* %iter.sroa.0.0.in130, i32 1
%30 = load i8, i8* %iter.sroa.0.0.in130, align 1
%31 = zext i8 %30 to i32
%.off.i40 = add nsw i32 %31, -48
%32 = icmp ult i32 %.off.i40, 10
br i1 %32, label %bb12.i48, label %bb7.i44
bb1.i39.split: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph"
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he6eb667c9cda989aE" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !1147
unreachable
bb7.i44: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
%.off5.i43 = add nsw i32 %31, -97
%33 = icmp ult i32 %.off5.i43, 26
br i1 %33, label %bb12.i48, label %bb9.i46
bb9.i46: ; preds = %bb7.i44
%.off6.i45 = add nsw i32 %31, -65
%34 = icmp ult i32 %.off6.i45, 26
br i1 %34, label %bb12.i48, label %bb13.loopexit
bb12.i48: ; preds = %bb9.i46, %bb7.i44, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
%.sink.i47 = phi i32 [ -87, %bb7.i44 ], [ -55, %bb9.i46 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54" ]
%35 = add nsw i32 %.sink.i47, %31
%36 = icmp ult i32 %35, %3
br i1 %36, label %bb40, label %bb13.loopexit
bb40: ; preds = %bb12.i48
%37 = tail call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %result.0131, i64 %26) #5
%38 = extractvalue { i64, i1 } %37, 1
br i1 %38, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%39 = extractvalue { i64, i1 } %37, 0
%40 = zext i32 %35 to i64
%41 = tail call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %39, i64 %40) #5
%42 = extractvalue { i64, i1 } %41, 1
br i1 %42, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%43 = extractvalue { i64, i1 } %41, 0
%44 = icmp eq i8* %29, %25
br i1 %44, label %bb66.loopexit, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader", %bb65
%result.1133 = phi i64 [ %59, %bb65 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader" ]
%iter1.sroa.0.0.in132 = phi i8* [ %45, %bb65 ], [ %.sink12, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader" ]
%45 = getelementptr inbounds i8, i8* %iter1.sroa.0.0.in132, i32 1
%46 = load i8, i8* %iter1.sroa.0.0.in132, align 1
%47 = zext i8 %46 to i32
%.off.i = add nsw i32 %47, -48
%48 = icmp ult i32 %.off.i, 10
br i1 %48, label %bb12.i, 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$4next17hf2300a5111fa653bE.exit.lr.ph"
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he6eb667c9cda989aE" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !1150
unreachable
bb7.i: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit"
%.off5.i = add nsw i32 %47, -97
%49 = icmp ult i32 %.off5.i, 26
br i1 %49, label %bb12.i, label %bb9.i
bb9.i: ; preds = %bb7.i
%.off6.i = add nsw i32 %47, -65
%50 = icmp ult i32 %.off6.i, 26
br i1 %50, label %bb12.i, label %bb13.loopexit149
bb12.i: ; preds = %bb9.i, %bb7.i, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit"
%.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$4next17hf2300a5111fa653bE.exit" ]
%51 = add nsw i32 %.sink.i, %47
%52 = icmp ult i32 %51, %3
br i1 %52, label %bb57, label %bb13.loopexit149
bb57: ; preds = %bb12.i
%53 = tail call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %result.1133, i64 %28) #5
%54 = extractvalue { i64, i1 } %53, 1
br i1 %54, label %bb13.loopexit149, label %bb61
bb61: ; preds = %bb57
%55 = extractvalue { i64, i1 } %53, 0
%56 = zext i32 %51 to i64
%57 = tail call { i64, i1 } @llvm.ssub.with.overflow.i64(i64 %55, i64 %56) #5
%58 = extractvalue { i64, i1 } %57, 1
br i1 %58, label %bb13.loopexit149, label %bb65
bb65: ; preds = %bb61
%59 = extractvalue { i64, i1 } %57, 0
%60 = icmp eq i8* %45, %.ptr135
br i1 %60, label %bb66.loopexit151, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit"
bb66.loopexit: ; preds = %bb49
br label %bb66
bb66.loopexit151: ; preds = %bb65
br label %bb66
bb66: ; preds = %bb66.loopexit151, %bb66.loopexit
%result.2 = phi i64 [ %43, %bb66.loopexit ], [ %59, %bb66.loopexit151 ]
%61 = getelementptr inbounds %"result::Result<i64, num::ParseIntError>", %"result::Result<i64, num::ParseIntError>"* %0, i32 0, i32 0
store i8 0, i8* %61, align 8
%62 = getelementptr inbounds %"result::Result<i64, num::ParseIntError>", %"result::Result<i64, num::ParseIntError>"* %0, i32 0, i32 2, i32 0
store i64 %result.2, i64* %62, align 8
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
}
define internal fastcc void @_ZN4core3num14from_str_radix17h4e706a07e1ddfefaE(%"result::Result<usize, num::ParseIntError>"* noalias nocapture sret dereferenceable(8), i8* noalias nonnull readonly, i32, i32) unnamed_addr {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 4
%_12 = alloca %"fmt::Arguments", align 4
%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 24, i8* nonnull %5)
%6 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %6)
%7 = ptrtoint i32* %radix to i32
%8 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i32*
store i32 %7, i32* %8, align 4
%9 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0, i32 2
%10 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %9 to i32*
store i32 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h1d4fdb5aae293c5cE" to i32), i32* %10, align 4
%11 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9x, i32 0, i32 0), %str_slice** %12, align 4, !alias.scope !1153, !noalias !1156
%13 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 1
store i32 1, i32* %13, align 4, !alias.scope !1153, !noalias !1156
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 2
%14 = bitcast %"option::Option<&[fmt::rt::v1::Argument]>"* %_6.sroa.0.0..sroa_idx.i to i64*
store i64 0, i64* %14, align 4, !alias.scope !1153, !noalias !1156
%15 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %11, %"fmt::ArgumentV1"** %15, align 4, !alias.scope !1153, !noalias !1156
%16 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 1
store i32 1, i32* %16, align 4, !alias.scope !1153, !noalias !1156
call void @_ZN4core9panicking9panic_fmt17hc0383e0d65e634c7E(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(24) %_12, { %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @_ZN4core3num14from_str_radix10_FILE_LINE17h55598895be149e83E to { %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb6: ; preds = %start
%17 = icmp eq i32 %2, 0
br i1 %17, label %bb13, label %bb18
bb12: ; preds = %bb66, %bb13
ret void
bb13.loopexit: ; preds = %bb12.i48, %bb9.i46, %bb40, %bb45
%.sink.ph = phi i8 [ 2, %bb45 ], [ 2, %bb40 ], [ 1, %bb9.i46 ], [ 1, %bb12.i48 ]
br label %bb13
bb13: ; preds = %bb13.loopexit, %bb6, %bb23
%.sink = phi i8 [ 0, %bb23 ], [ 0, %bb6 ], [ %.sink.ph, %bb13.loopexit ]
%18 = getelementptr inbounds %"result::Result<usize, num::ParseIntError>", %"result::Result<usize, num::ParseIntError>"* %0, i32 0, i32 0
store i8 1, i8* %18, align 4
%19 = getelementptr inbounds %"result::Result<usize, num::ParseIntError>", %"result::Result<usize, num::ParseIntError>"* %0, i32 0, i32 1, i32 0
store i8 %.sink, i8* %19, align 1
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
bb18: ; preds = %bb6
%20 = load i8, i8* %1, align 1
%cond = icmp eq i8 %20, 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$4next17hf2300a5111fa653bE.exit54.preheader"
bb23: ; preds = %bb18
%21 = getelementptr inbounds i8, i8* %1, i32 1
%22 = add i32 %2, -1
%23 = icmp eq i32 %22, 0
br i1 %23, label %bb13, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader": ; preds = %bb18, %bb23
%.sink110 = phi i32 [ %22, %bb23 ], [ %2, %bb18 ]
%.sink12109 = phi i8* [ %21, %bb23 ], [ %1, %bb18 ]
%24 = getelementptr inbounds i8, i8* %.sink12109, i32 %.sink110
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader", %bb49
%result.0122 = phi i32 [ %38, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader" ]
%iter.sroa.0.0.in121 = phi i8* [ %25, %bb49 ], [ %.sink12109, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader" ]
%25 = getelementptr inbounds i8, i8* %iter.sroa.0.0.in121, i32 1
%26 = load i8, i8* %iter.sroa.0.0.in121, align 1
%27 = zext i8 %26 to i32
%.off.i40 = add nsw i32 %27, -48
%28 = icmp ult i32 %.off.i40, 10
br i1 %28, label %bb12.i48, label %bb7.i44
bb7.i44: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
%.off5.i43 = add nsw i32 %27, -97
%29 = icmp ult i32 %.off5.i43, 26
br i1 %29, label %bb12.i48, label %bb9.i46
bb9.i46: ; preds = %bb7.i44
%.off6.i45 = add nsw i32 %27, -65
%30 = icmp ult i32 %.off6.i45, 26
br i1 %30, label %bb12.i48, label %bb13.loopexit
bb12.i48: ; preds = %bb9.i46, %bb7.i44, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
%.sink.i47 = phi i32 [ -87, %bb7.i44 ], [ -55, %bb9.i46 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54" ]
%31 = add nsw i32 %.sink.i47, %27
%32 = icmp ult i32 %31, %3
br i1 %32, label %bb40, label %bb13.loopexit
bb40: ; preds = %bb12.i48
%33 = tail call { i32, i1 } @llvm.umul.with.overflow.i32(i32 %result.0122, i32 %3) #5
%34 = extractvalue { i32, i1 } %33, 1
br i1 %34, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%35 = extractvalue { i32, i1 } %33, 0
%36 = tail call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %35, i32 %31) #5
%37 = extractvalue { i32, i1 } %36, 1
br i1 %37, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%38 = extractvalue { i32, i1 } %36, 0
%39 = icmp eq i8* %25, %24
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$4next17hf2300a5111fa653bE.exit54"
bb66: ; preds = %bb49
%40 = getelementptr inbounds %"result::Result<usize, num::ParseIntError>", %"result::Result<usize, num::ParseIntError>"* %0, i32 0, i32 0
store i8 0, i8* %40, align 4
%41 = getelementptr inbounds %"result::Result<usize, num::ParseIntError>", %"result::Result<usize, num::ParseIntError>"* %0, i32 0, i32 2, i32 0
store i32 %38, i32* %41, align 4
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
}
define internal fastcc void @_ZN4core3num14from_str_radix17h5782876ca1503bf5E(%"result::Result<u64, num::ParseIntError>"* noalias nocapture sret dereferenceable(16), i8* noalias nonnull readonly, i32, i32) unnamed_addr {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 4
%_12 = alloca %"fmt::Arguments", align 4
%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 24, i8* nonnull %5)
%6 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %6)
%7 = ptrtoint i32* %radix to i32
%8 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i32*
store i32 %7, i32* %8, align 4
%9 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0, i32 2
%10 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %9 to i32*
store i32 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h1d4fdb5aae293c5cE" to i32), i32* %10, align 4
%11 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9x, i32 0, i32 0), %str_slice** %12, align 4, !alias.scope !1159, !noalias !1162
%13 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 1
store i32 1, i32* %13, align 4, !alias.scope !1159, !noalias !1162
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 2
%14 = bitcast %"option::Option<&[fmt::rt::v1::Argument]>"* %_6.sroa.0.0..sroa_idx.i to i64*
store i64 0, i64* %14, align 4, !alias.scope !1159, !noalias !1162
%15 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %11, %"fmt::ArgumentV1"** %15, align 4, !alias.scope !1159, !noalias !1162
%16 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 1
store i32 1, i32* %16, align 4, !alias.scope !1159, !noalias !1162
call void @_ZN4core9panicking9panic_fmt17hc0383e0d65e634c7E(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(24) %_12, { %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @_ZN4core3num14from_str_radix10_FILE_LINE17h55598895be149e83E to { %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb6: ; preds = %start
%17 = icmp eq i32 %2, 0
br i1 %17, label %bb13, label %bb18
bb12: ; preds = %bb66, %bb13
ret void
bb13.loopexit: ; preds = %bb12.i48, %bb9.i46, %bb40, %bb45
%.sink.ph = phi i8 [ 2, %bb45 ], [ 2, %bb40 ], [ 1, %bb9.i46 ], [ 1, %bb12.i48 ]
br label %bb13
bb13: ; preds = %bb13.loopexit, %bb6, %bb23
%.sink = phi i8 [ 0, %bb23 ], [ 0, %bb6 ], [ %.sink.ph, %bb13.loopexit ]
%18 = getelementptr inbounds %"result::Result<u64, num::ParseIntError>", %"result::Result<u64, num::ParseIntError>"* %0, i32 0, i32 0
store i8 1, i8* %18, align 8
%19 = getelementptr inbounds %"result::Result<u64, num::ParseIntError>", %"result::Result<u64, num::ParseIntError>"* %0, i32 0, i32 1, i32 0
store i8 %.sink, i8* %19, align 1
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
bb18: ; preds = %bb6
%20 = load i8, i8* %1, align 1
%cond = icmp eq i8 %20, 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$4next17hf2300a5111fa653bE.exit54.preheader"
bb23: ; preds = %bb18
%21 = getelementptr inbounds i8, i8* %1, i32 1
%22 = add i32 %2, -1
%23 = icmp eq i32 %22, 0
br i1 %23, label %bb13, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader": ; preds = %bb18, %bb23
%.sink110 = phi i32 [ %22, %bb23 ], [ %2, %bb18 ]
%.sink12109 = phi i8* [ %21, %bb23 ], [ %1, %bb18 ]
%24 = getelementptr inbounds i8, i8* %.sink12109, i32 %.sink110
%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$4next17hf2300a5111fa653bE.exit54"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader", %bb49
%result.0122 = phi i64 [ %40, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader" ]
%iter.sroa.0.0.in121 = phi i8* [ %26, %bb49 ], [ %.sink12109, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader" ]
%26 = getelementptr inbounds i8, i8* %iter.sroa.0.0.in121, i32 1
%27 = load i8, i8* %iter.sroa.0.0.in121, align 1
%28 = zext i8 %27 to i32
%.off.i40 = add nsw i32 %28, -48
%29 = icmp ult i32 %.off.i40, 10
br i1 %29, label %bb12.i48, label %bb7.i44
bb7.i44: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
%.off5.i43 = add nsw i32 %28, -97
%30 = icmp ult i32 %.off5.i43, 26
br i1 %30, label %bb12.i48, label %bb9.i46
bb9.i46: ; preds = %bb7.i44
%.off6.i45 = add nsw i32 %28, -65
%31 = icmp ult i32 %.off6.i45, 26
br i1 %31, label %bb12.i48, label %bb13.loopexit
bb12.i48: ; preds = %bb9.i46, %bb7.i44, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
%.sink.i47 = phi i32 [ -87, %bb7.i44 ], [ -55, %bb9.i46 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54" ]
%32 = add nsw i32 %.sink.i47, %28
%33 = icmp ult i32 %32, %3
br i1 %33, label %bb40, label %bb13.loopexit
bb40: ; preds = %bb12.i48
%34 = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %result.0122, i64 %25) #5
%35 = extractvalue { i64, i1 } %34, 1
br i1 %35, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%36 = extractvalue { i64, i1 } %34, 0
%37 = zext i32 %32 to i64
%38 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %36, i64 %37) #5
%39 = extractvalue { i64, i1 } %38, 1
br i1 %39, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%40 = extractvalue { i64, i1 } %38, 0
%41 = icmp eq i8* %26, %24
br i1 %41, label %bb66, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
bb66: ; preds = %bb49
%42 = getelementptr inbounds %"result::Result<u64, num::ParseIntError>", %"result::Result<u64, num::ParseIntError>"* %0, i32 0, i32 0
store i8 0, i8* %42, align 8
%43 = getelementptr inbounds %"result::Result<u64, num::ParseIntError>", %"result::Result<u64, num::ParseIntError>"* %0, i32 0, i32 2, i32 0
store i64 %40, i64* %43, align 8
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
}
define internal fastcc void @_ZN4core3num14from_str_radix17h5c107ae65a1071a5E(%"result::Result<u128, num::ParseIntError>"* noalias nocapture sret dereferenceable(24), i8* noalias nonnull readonly, i32, i32) unnamed_addr {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 4
%_12 = alloca %"fmt::Arguments", align 4
%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 24, i8* nonnull %5)
%6 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %6)
%7 = ptrtoint i32* %radix to i32
%8 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i32*
store i32 %7, i32* %8, align 4
%9 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0, i32 2
%10 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %9 to i32*
store i32 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h1d4fdb5aae293c5cE" to i32), i32* %10, align 4
%11 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9x, i32 0, i32 0), %str_slice** %12, align 4, !alias.scope !1165, !noalias !1168
%13 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 1
store i32 1, i32* %13, align 4, !alias.scope !1165, !noalias !1168
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 2
%14 = bitcast %"option::Option<&[fmt::rt::v1::Argument]>"* %_6.sroa.0.0..sroa_idx.i to i64*
store i64 0, i64* %14, align 4, !alias.scope !1165, !noalias !1168
%15 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %11, %"fmt::ArgumentV1"** %15, align 4, !alias.scope !1165, !noalias !1168
%16 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 1
store i32 1, i32* %16, align 4, !alias.scope !1165, !noalias !1168
call void @_ZN4core9panicking9panic_fmt17hc0383e0d65e634c7E(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(24) %_12, { %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @_ZN4core3num14from_str_radix10_FILE_LINE17h55598895be149e83E to { %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb6: ; preds = %start
%17 = icmp eq i32 %2, 0
br i1 %17, label %bb13, label %bb18
bb12: ; preds = %bb66, %bb13
ret void
bb13.loopexit: ; preds = %bb12.i48, %bb9.i46, %bb40, %bb45
%.sink.ph = phi i8 [ 2, %bb45 ], [ 2, %bb40 ], [ 1, %bb9.i46 ], [ 1, %bb12.i48 ]
br label %bb13
bb13: ; preds = %bb13.loopexit, %bb6, %bb23
%.sink = phi i8 [ 0, %bb23 ], [ 0, %bb6 ], [ %.sink.ph, %bb13.loopexit ]
%18 = getelementptr inbounds %"result::Result<u128, num::ParseIntError>", %"result::Result<u128, num::ParseIntError>"* %0, i32 0, i32 0
store i8 1, i8* %18, align 8
%19 = getelementptr inbounds %"result::Result<u128, num::ParseIntError>", %"result::Result<u128, num::ParseIntError>"* %0, i32 0, i32 1, i32 0
store i8 %.sink, i8* %19, align 1
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
bb18: ; preds = %bb6
%20 = load i8, i8* %1, align 1
%cond = icmp eq i8 %20, 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$4next17hf2300a5111fa653bE.exit54.preheader"
bb23: ; preds = %bb18
%21 = getelementptr inbounds i8, i8* %1, i32 1
%22 = add i32 %2, -1
%23 = icmp eq i32 %22, 0
br i1 %23, label %bb13, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader": ; preds = %bb18, %bb23
%.sink110 = phi i32 [ %22, %bb23 ], [ %2, %bb18 ]
%.sink12109 = phi i8* [ %21, %bb23 ], [ %1, %bb18 ]
%24 = getelementptr inbounds i8, i8* %.sink12109, i32 %.sink110
%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$4next17hf2300a5111fa653bE.exit54"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader", %bb49
%result.0122 = phi i128 [ %40, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader" ]
%iter.sroa.0.0.in121 = phi i8* [ %26, %bb49 ], [ %.sink12109, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader" ]
%26 = getelementptr inbounds i8, i8* %iter.sroa.0.0.in121, i32 1
%27 = load i8, i8* %iter.sroa.0.0.in121, align 1
%28 = zext i8 %27 to i32
%.off.i40 = add nsw i32 %28, -48
%29 = icmp ult i32 %.off.i40, 10
br i1 %29, label %bb12.i48, label %bb7.i44
bb7.i44: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
%.off5.i43 = add nsw i32 %28, -97
%30 = icmp ult i32 %.off5.i43, 26
br i1 %30, label %bb12.i48, label %bb9.i46
bb9.i46: ; preds = %bb7.i44
%.off6.i45 = add nsw i32 %28, -65
%31 = icmp ult i32 %.off6.i45, 26
br i1 %31, label %bb12.i48, label %bb13.loopexit
bb12.i48: ; preds = %bb9.i46, %bb7.i44, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
%.sink.i47 = phi i32 [ -87, %bb7.i44 ], [ -55, %bb9.i46 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54" ]
%32 = add nsw i32 %.sink.i47, %28
%33 = icmp ult i32 %32, %3
br i1 %33, label %bb40, label %bb13.loopexit
bb40: ; preds = %bb12.i48
%34 = tail call { i128, i1 } @llvm.umul.with.overflow.i128(i128 %result.0122, i128 %25) #5
%35 = extractvalue { i128, i1 } %34, 1
br i1 %35, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%36 = extractvalue { i128, i1 } %34, 0
%37 = zext i32 %32 to i128
%38 = tail call { i128, i1 } @llvm.uadd.with.overflow.i128(i128 %36, i128 %37) #5
%39 = extractvalue { i128, i1 } %38, 1
br i1 %39, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%40 = extractvalue { i128, i1 } %38, 0
%41 = icmp eq i8* %26, %24
br i1 %41, label %bb66, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
bb66: ; preds = %bb49
%42 = getelementptr inbounds %"result::Result<u128, num::ParseIntError>", %"result::Result<u128, num::ParseIntError>"* %0, i32 0, i32 0
store i8 0, i8* %42, align 8
%43 = getelementptr inbounds %"result::Result<u128, num::ParseIntError>", %"result::Result<u128, num::ParseIntError>"* %0, i32 0, i32 2
%44 = bitcast [2 x i64]* %43 to i128*
store i128 %40, i128* %44, align 8
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
}
define internal fastcc i32 @_ZN4core3num14from_str_radix17h6620fbbd9efca9b7E(i8* noalias nonnull readonly, i32, i32) unnamed_addr {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 4
%_12 = alloca %"fmt::Arguments", align 4
%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 24, i8* nonnull %4)
%5 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %5)
%6 = ptrtoint i32* %radix to i32
%7 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i32*
store i32 %6, i32* %7, align 4
%8 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0, i32 2
%9 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %8 to i32*
store i32 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h1d4fdb5aae293c5cE" to i32), i32* %9, align 4
%10 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0
%11 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9x, i32 0, i32 0), %str_slice** %11, align 4, !alias.scope !1171, !noalias !1174
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 1
store i32 1, i32* %12, align 4, !alias.scope !1171, !noalias !1174
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 2
%13 = bitcast %"option::Option<&[fmt::rt::v1::Argument]>"* %_6.sroa.0.0..sroa_idx.i to i64*
store i64 0, i64* %13, align 4, !alias.scope !1171, !noalias !1174
%14 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %10, %"fmt::ArgumentV1"** %14, align 4, !alias.scope !1171, !noalias !1174
%15 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 1
store i32 1, i32* %15, align 4, !alias.scope !1171, !noalias !1174
call void @_ZN4core9panicking9panic_fmt17hc0383e0d65e634c7E(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(24) %_12, { %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @_ZN4core3num14from_str_radix10_FILE_LINE17h55598895be149e83E to { %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb6: ; preds = %start
%16 = icmp eq i32 %1, 0
br i1 %16, label %bb13, label %bb18
bb12: ; preds = %bb66, %bb13
%_0.sroa.18.0 = phi i16 [ undef, %bb13 ], [ %37, %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.18.0.insert.ext = zext i16 %_0.sroa.18.0 to i32
%_0.sroa.18.0.insert.shift = shl nuw i32 %_0.sroa.18.0.insert.ext, 16
%_0.sroa.10.0.insert.ext.masked = and i32 %_0.sroa.10.0, 65280
%_0.sroa.0.0.insert.mask = or i32 %_0.sroa.18.0.insert.shift, %_0.sroa.10.0.insert.ext.masked
%_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.i100, %bb12.i102
%_0.sroa.10.1.ph = phi i32 [ 256, %bb12.i102 ], [ 256, %bb9.i100 ], [ 512, %bb45 ], [ 512, %bb40 ]
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
%17 = load i8, i8* %0, align 1
%cond = icmp eq i8 %17, 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$4next17hf2300a5111fa653bE.exit108.preheader"
bb23: ; preds = %bb18
%18 = getelementptr inbounds i8, i8* %0, i32 1
%19 = add i32 %1, -1
%20 = icmp eq i32 %19, 0
br i1 %20, label %bb13, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.preheader": ; preds = %bb18, %bb23
%.sink148 = phi i32 [ %19, %bb23 ], [ %1, %bb18 ]
%.sink15147 = phi i8* [ %18, %bb23 ], [ %0, %bb18 ]
%21 = getelementptr inbounds i8, i8* %.sink15147, i32 %.sink148
%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$4next17hf2300a5111fa653bE.exit108"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.preheader", %bb49
%result.0154 = phi i16 [ %37, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.preheader" ]
%iter.sroa.0.0.in153 = phi i8* [ %23, %bb49 ], [ %.sink15147, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.preheader" ]
%23 = getelementptr inbounds i8, i8* %iter.sroa.0.0.in153, i32 1
%24 = load i8, i8* %iter.sroa.0.0.in153, align 1
%25 = zext i8 %24 to i32
%.off.i94 = add nsw i32 %25, -48
%26 = icmp ult i32 %.off.i94, 10
br i1 %26, label %bb12.i102, label %bb7.i98
bb7.i98: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108"
%.off5.i97 = add nsw i32 %25, -97
%27 = icmp ult i32 %.off5.i97, 26
br i1 %27, label %bb12.i102, label %bb9.i100
bb9.i100: ; preds = %bb7.i98
%.off6.i99 = add nsw i32 %25, -65
%28 = icmp ult i32 %.off6.i99, 26
br i1 %28, label %bb12.i102, label %bb13.loopexit
bb12.i102: ; preds = %bb9.i100, %bb7.i98, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108"
%.sink.i101 = phi i32 [ -87, %bb7.i98 ], [ -55, %bb9.i100 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108" ]
%29 = add nsw i32 %.sink.i101, %25
%30 = icmp ult i32 %29, %2
br i1 %30, label %bb40, label %bb13.loopexit
bb40: ; preds = %bb12.i102
%31 = tail call { i16, i1 } @llvm.umul.with.overflow.i16(i16 %result.0154, i16 %22) #5
%32 = extractvalue { i16, i1 } %31, 1
br i1 %32, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%33 = extractvalue { i16, i1 } %31, 0
%34 = trunc i32 %29 to i16
%35 = tail call { i16, i1 } @llvm.uadd.with.overflow.i16(i16 %33, i16 %34) #5
%36 = extractvalue { i16, i1 } %35, 1
br i1 %36, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%37 = extractvalue { i16, i1 } %35, 0
%38 = icmp eq i8* %23, %21
br i1 %38, label %bb66, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108"
bb66: ; preds = %bb49
call void @llvm.lifetime.end(i64 4, i8* nonnull %3)
br label %bb12
}
define internal fastcc i16 @_ZN4core3num14from_str_radix17h924f6fad173b831eE(i8* noalias nonnull readonly, i32, i32) unnamed_addr {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 4
%_12 = alloca %"fmt::Arguments", align 4
%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 24, i8* nonnull %4)
%5 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %5)
%6 = ptrtoint i32* %radix to i32
%7 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i32*
store i32 %6, i32* %7, align 4
%8 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0, i32 2
%9 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %8 to i32*
store i32 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h1d4fdb5aae293c5cE" to i32), i32* %9, align 4
%10 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0
%11 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9x, i32 0, i32 0), %str_slice** %11, align 4, !alias.scope !1177, !noalias !1180
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 1
store i32 1, i32* %12, align 4, !alias.scope !1177, !noalias !1180
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 2
%13 = bitcast %"option::Option<&[fmt::rt::v1::Argument]>"* %_6.sroa.0.0..sroa_idx.i to i64*
store i64 0, i64* %13, align 4, !alias.scope !1177, !noalias !1180
%14 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %10, %"fmt::ArgumentV1"** %14, align 4, !alias.scope !1177, !noalias !1180
%15 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 1
store i32 1, i32* %15, align 4, !alias.scope !1177, !noalias !1180
call void @_ZN4core9panicking9panic_fmt17hc0383e0d65e634c7E(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(24) %_12, { %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @_ZN4core3num14from_str_radix10_FILE_LINE17h55598895be149e83E to { %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb6: ; preds = %start
%16 = icmp eq i32 %1, 0
br i1 %16, 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.i68, %bb12.i70
%_0.sroa.10.1.ph = phi i8 [ 1, %bb12.i70 ], [ 1, %bb9.i68 ], [ 2, %bb45 ], [ 2, %bb40 ]
br label %bb13
bb13.loopexit144: ; preds = %bb9.i, %bb61, %bb57, %bb12.i
%_0.sroa.10.1.ph145 = phi i8 [ 1, %bb12.i ], [ 1, %bb9.i ], [ 3, %bb61 ], [ 3, %bb57 ]
br label %bb13
bb13: ; preds = %bb13.loopexit144, %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.ph145, %bb13.loopexit144 ]
call void @llvm.lifetime.end(i64 4, i8* nonnull %3)
br label %bb12
bb18: ; preds = %bb6
%17 = load i8, i8* %0, align 1
switch i8 %17, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.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$5index17he97a8a2b83cb6052E.exit"
]
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.lr.ph.thread": ; preds = %bb18
%18 = getelementptr inbounds i8, i8* %0, i32 %1
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.preheader"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.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$5index17he97a8a2b83cb6052E.exit"
%.sink18.off0 = phi i1 [ false, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.exit" ], [ true, %bb18 ]
%.sink15 = getelementptr inbounds i8, i8* %0, i32 1
%.sink = add i32 %1, -1
%19 = icmp eq i32 %.sink, 0
br i1 %19, label %bb13, label %bb28
bb28: ; preds = %bb23
br i1 %.sink18.off0, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.lr.ph", label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.lr.ph"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.lr.ph": ; preds = %bb28
%20 = getelementptr inbounds i8, i8* %.sink15, i32 %.sink
%21 = icmp ugt i32 %2, 36
br i1 %21, label %bb1.i61.split, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.lr.ph.thread", %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.lr.ph"
%22 = phi i8* [ %18, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.lr.ph.thread" ], [ %20, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.lr.ph" ]
%.sink15112115135 = phi i8* [ %0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.lr.ph.thread" ], [ %.sink15, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.lr.ph" ]
%23 = 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$4next17hf2300a5111fa653bE.exit76"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.lr.ph": ; preds = %bb28
%.ptr130 = getelementptr inbounds i8, i8* %0, i32 %1
%24 = icmp ugt i32 %2, 36
%25 = trunc i32 %2 to i8
br i1 %24, 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$4next17hf2300a5111fa653bE.exit.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.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$4next17hf2300a5111fa653bE.exit"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.preheader", %bb49
%result.0126 = phi i8 [ %40, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.preheader" ]
%iter.sroa.0.0.in125 = phi i8* [ %26, %bb49 ], [ %.sink15112115135, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.preheader" ]
%26 = getelementptr inbounds i8, i8* %iter.sroa.0.0.in125, i32 1
%27 = load i8, i8* %iter.sroa.0.0.in125, align 1
%28 = zext i8 %27 to i32
%.off.i62 = add nsw i32 %28, -48
%29 = icmp ult i32 %.off.i62, 10
br i1 %29, label %bb12.i70, label %bb7.i66
bb1.i61.split: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76.lr.ph"
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he6eb667c9cda989aE" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !1183
unreachable
bb7.i66: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76"
%.off5.i65 = add nsw i32 %28, -97
%30 = icmp ult i32 %.off5.i65, 26
br i1 %30, label %bb12.i70, label %bb9.i68
bb9.i68: ; preds = %bb7.i66
%.off6.i67 = add nsw i32 %28, -65
%31 = icmp ult i32 %.off6.i67, 26
br i1 %31, label %bb12.i70, label %bb13.loopexit
bb12.i70: ; preds = %bb9.i68, %bb7.i66, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76"
%.sink.i69 = phi i32 [ -87, %bb7.i66 ], [ -55, %bb9.i68 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76" ]
%32 = add nsw i32 %.sink.i69, %28
%33 = icmp ult i32 %32, %2
br i1 %33, label %bb40, label %bb13.loopexit
bb40: ; preds = %bb12.i70
%34 = tail call { i8, i1 } @llvm.smul.with.overflow.i8(i8 %result.0126, i8 %23) #5
%35 = extractvalue { i8, i1 } %34, 1
br i1 %35, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%36 = extractvalue { i8, i1 } %34, 0
%37 = trunc i32 %32 to i8
%38 = tail call { i8, i1 } @llvm.sadd.with.overflow.i8(i8 %36, i8 %37) #5
%39 = extractvalue { i8, i1 } %38, 1
br i1 %39, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%40 = extractvalue { i8, i1 } %38, 0
%41 = icmp eq i8* %26, %22
br i1 %41, label %bb66.loopexit, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit76"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader", %bb65
%result.1128 = phi i8 [ %56, %bb65 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader" ]
%iter1.sroa.0.0.in127 = phi i8* [ %42, %bb65 ], [ %.sink15, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader" ]
%42 = getelementptr inbounds i8, i8* %iter1.sroa.0.0.in127, i32 1
%43 = load i8, i8* %iter1.sroa.0.0.in127, align 1
%44 = zext i8 %43 to i32
%.off.i = add nsw i32 %44, -48
%45 = icmp ult i32 %.off.i, 10
br i1 %45, label %bb12.i, 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$4next17hf2300a5111fa653bE.exit.lr.ph"
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he6eb667c9cda989aE" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !1186
unreachable
bb7.i: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit"
%.off5.i = add nsw i32 %44, -97
%46 = icmp ult i32 %.off5.i, 26
br i1 %46, label %bb12.i, label %bb9.i
bb9.i: ; preds = %bb7.i
%.off6.i = add nsw i32 %44, -65
%47 = icmp ult i32 %.off6.i, 26
br i1 %47, label %bb12.i, label %bb13.loopexit144
bb12.i: ; preds = %bb9.i, %bb7.i, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit"
%.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$4next17hf2300a5111fa653bE.exit" ]
%48 = add nsw i32 %.sink.i, %44
%49 = icmp ult i32 %48, %2
br i1 %49, label %bb57, label %bb13.loopexit144
bb57: ; preds = %bb12.i
%50 = tail call { i8, i1 } @llvm.smul.with.overflow.i8(i8 %result.1128, i8 %25) #5
%51 = extractvalue { i8, i1 } %50, 1
br i1 %51, label %bb13.loopexit144, label %bb61
bb61: ; preds = %bb57
%52 = extractvalue { i8, i1 } %50, 0
%53 = trunc i32 %48 to i8
%54 = tail call { i8, i1 } @llvm.ssub.with.overflow.i8(i8 %52, i8 %53) #5
%55 = extractvalue { i8, i1 } %54, 1
br i1 %55, label %bb13.loopexit144, label %bb65
bb65: ; preds = %bb61
%56 = extractvalue { i8, i1 } %54, 0
%57 = icmp eq i8* %42, %.ptr130
br i1 %57, label %bb66.loopexit146, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit"
bb66.loopexit: ; preds = %bb49
br label %bb66
bb66.loopexit146: ; preds = %bb65
br label %bb66
bb66: ; preds = %bb66.loopexit146, %bb66.loopexit
%result.2 = phi i8 [ %40, %bb66.loopexit ], [ %56, %bb66.loopexit146 ]
call void @llvm.lifetime.end(i64 4, i8* nonnull %3)
br label %bb12
}
define internal fastcc void @_ZN4core3num14from_str_radix17hbe591ff9fa878031E(%"result::Result<isize, num::ParseIntError>"* noalias nocapture sret dereferenceable(8), i8* noalias nonnull readonly, i32, i32) unnamed_addr {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 4
%_12 = alloca %"fmt::Arguments", align 4
%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 24, i8* nonnull %5)
%6 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %6)
%7 = ptrtoint i32* %radix to i32
%8 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i32*
store i32 %7, i32* %8, align 4
%9 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0, i32 2
%10 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %9 to i32*
store i32 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h1d4fdb5aae293c5cE" to i32), i32* %10, align 4
%11 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9x, i32 0, i32 0), %str_slice** %12, align 4, !alias.scope !1189, !noalias !1192
%13 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 1
store i32 1, i32* %13, align 4, !alias.scope !1189, !noalias !1192
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 2
%14 = bitcast %"option::Option<&[fmt::rt::v1::Argument]>"* %_6.sroa.0.0..sroa_idx.i to i64*
store i64 0, i64* %14, align 4, !alias.scope !1189, !noalias !1192
%15 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %11, %"fmt::ArgumentV1"** %15, align 4, !alias.scope !1189, !noalias !1192
%16 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 1
store i32 1, i32* %16, align 4, !alias.scope !1189, !noalias !1192
call void @_ZN4core9panicking9panic_fmt17hc0383e0d65e634c7E(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(24) %_12, { %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @_ZN4core3num14from_str_radix10_FILE_LINE17h55598895be149e83E to { %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb6: ; preds = %start
%17 = icmp eq i32 %2, 0
br i1 %17, label %bb13, label %bb18
bb12: ; preds = %bb66, %bb13
ret void
bb13.loopexit: ; preds = %bb12.i48, %bb9.i46, %bb40, %bb45
%.sink120.ph = phi i8 [ 2, %bb45 ], [ 2, %bb40 ], [ 1, %bb9.i46 ], [ 1, %bb12.i48 ]
br label %bb13
bb13.loopexit149: ; preds = %bb12.i, %bb9.i, %bb57, %bb61
%.sink120.ph150 = phi i8 [ 3, %bb61 ], [ 3, %bb57 ], [ 1, %bb9.i ], [ 1, %bb12.i ]
br label %bb13
bb13: ; preds = %bb13.loopexit149, %bb13.loopexit, %bb6, %bb23
%.sink120 = phi i8 [ 0, %bb23 ], [ 0, %bb6 ], [ %.sink120.ph, %bb13.loopexit ], [ %.sink120.ph150, %bb13.loopexit149 ]
%18 = getelementptr inbounds %"result::Result<isize, num::ParseIntError>", %"result::Result<isize, num::ParseIntError>"* %0, i32 0, i32 0
store i8 1, i8* %18, align 4
%19 = getelementptr inbounds %"result::Result<isize, num::ParseIntError>", %"result::Result<isize, num::ParseIntError>"* %0, i32 0, i32 1, i32 0
store i8 %.sink120, i8* %19, align 1
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
bb18: ; preds = %bb6
%20 = load i8, i8* %1, align 1
switch i8 %20, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.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$5index17he97a8a2b83cb6052E.exit"
]
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph.thread": ; preds = %bb18
%21 = getelementptr inbounds i8, i8* %1, i32 %2
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.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$5index17he97a8a2b83cb6052E.exit"
%.sink15.off0 = phi i1 [ false, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.exit" ], [ true, %bb18 ]
%.sink12 = getelementptr inbounds i8, i8* %1, i32 1
%.sink = add i32 %2, -1
%22 = icmp eq i32 %.sink, 0
br i1 %22, label %bb13, label %bb28
bb28: ; preds = %bb23
br i1 %.sink15.off0, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph", label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.lr.ph"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph": ; preds = %bb28
%23 = getelementptr inbounds i8, i8* %.sink12, i32 %.sink
%24 = icmp ugt i32 %3, 36
br i1 %24, label %bb1.i39.split, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph.thread", %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph"
%25 = phi i8* [ %21, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph.thread" ], [ %23, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph" ]
%.sink12110113140 = phi i8* [ %1, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph.thread" ], [ %.sink12, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph" ]
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.lr.ph": ; preds = %bb28
%.ptr135 = getelementptr inbounds i8, i8* %1, i32 %2
%26 = icmp ugt i32 %3, 36
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$4next17hf2300a5111fa653bE.exit.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.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$4next17hf2300a5111fa653bE.exit"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader", %bb49
%result.0131 = phi i32 [ %40, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader" ]
%iter.sroa.0.0.in130 = phi i8* [ %27, %bb49 ], [ %.sink12110113140, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.preheader" ]
%27 = getelementptr inbounds i8, i8* %iter.sroa.0.0.in130, i32 1
%28 = load i8, i8* %iter.sroa.0.0.in130, align 1
%29 = zext i8 %28 to i32
%.off.i40 = add nsw i32 %29, -48
%30 = icmp ult i32 %.off.i40, 10
br i1 %30, label %bb12.i48, label %bb7.i44
bb1.i39.split: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54.lr.ph"
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he6eb667c9cda989aE" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !1195
unreachable
bb7.i44: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
%.off5.i43 = add nsw i32 %29, -97
%31 = icmp ult i32 %.off5.i43, 26
br i1 %31, label %bb12.i48, label %bb9.i46
bb9.i46: ; preds = %bb7.i44
%.off6.i45 = add nsw i32 %29, -65
%32 = icmp ult i32 %.off6.i45, 26
br i1 %32, label %bb12.i48, label %bb13.loopexit
bb12.i48: ; preds = %bb9.i46, %bb7.i44, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
%.sink.i47 = phi i32 [ -87, %bb7.i44 ], [ -55, %bb9.i46 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54" ]
%33 = add nsw i32 %.sink.i47, %29
%34 = icmp ult i32 %33, %3
br i1 %34, label %bb40, label %bb13.loopexit
bb40: ; preds = %bb12.i48
%35 = tail call { i32, i1 } @llvm.smul.with.overflow.i32(i32 %result.0131, i32 %3) #5
%36 = extractvalue { i32, i1 } %35, 1
br i1 %36, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%37 = extractvalue { i32, i1 } %35, 0
%38 = tail call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 %37, i32 %33) #5
%39 = extractvalue { i32, i1 } %38, 1
br i1 %39, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%40 = extractvalue { i32, i1 } %38, 0
%41 = icmp eq i8* %27, %25
br i1 %41, label %bb66.loopexit, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit54"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader", %bb65
%result.1133 = phi i32 [ %55, %bb65 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader" ]
%iter1.sroa.0.0.in132 = phi i8* [ %42, %bb65 ], [ %.sink12, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader" ]
%42 = getelementptr inbounds i8, i8* %iter1.sroa.0.0.in132, i32 1
%43 = load i8, i8* %iter1.sroa.0.0.in132, align 1
%44 = zext i8 %43 to i32
%.off.i = add nsw i32 %44, -48
%45 = icmp ult i32 %.off.i, 10
br i1 %45, label %bb12.i, 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$4next17hf2300a5111fa653bE.exit.lr.ph"
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he6eb667c9cda989aE" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !1198
unreachable
bb7.i: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit"
%.off5.i = add nsw i32 %44, -97
%46 = icmp ult i32 %.off5.i, 26
br i1 %46, label %bb12.i, label %bb9.i
bb9.i: ; preds = %bb7.i
%.off6.i = add nsw i32 %44, -65
%47 = icmp ult i32 %.off6.i, 26
br i1 %47, label %bb12.i, label %bb13.loopexit149
bb12.i: ; preds = %bb9.i, %bb7.i, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit"
%.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$4next17hf2300a5111fa653bE.exit" ]
%48 = add nsw i32 %.sink.i, %44
%49 = icmp ult i32 %48, %3
br i1 %49, label %bb57, label %bb13.loopexit149
bb57: ; preds = %bb12.i
%50 = tail call { i32, i1 } @llvm.smul.with.overflow.i32(i32 %result.1133, i32 %3) #5
%51 = extractvalue { i32, i1 } %50, 1
br i1 %51, label %bb13.loopexit149, label %bb61
bb61: ; preds = %bb57
%52 = extractvalue { i32, i1 } %50, 0
%53 = tail call { i32, i1 } @llvm.ssub.with.overflow.i32(i32 %52, i32 %48) #5
%54 = extractvalue { i32, i1 } %53, 1
br i1 %54, label %bb13.loopexit149, label %bb65
bb65: ; preds = %bb61
%55 = extractvalue { i32, i1 } %53, 0
%56 = icmp eq i8* %42, %.ptr135
br i1 %56, label %bb66.loopexit151, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit"
bb66.loopexit: ; preds = %bb49
br label %bb66
bb66.loopexit151: ; preds = %bb65
br label %bb66
bb66: ; preds = %bb66.loopexit151, %bb66.loopexit
%result.2 = phi i32 [ %40, %bb66.loopexit ], [ %55, %bb66.loopexit151 ]
%57 = getelementptr inbounds %"result::Result<isize, num::ParseIntError>", %"result::Result<isize, num::ParseIntError>"* %0, i32 0, i32 0
store i8 0, i8* %57, align 4
%58 = getelementptr inbounds %"result::Result<isize, num::ParseIntError>", %"result::Result<isize, num::ParseIntError>"* %0, i32 0, i32 2, i32 0
store i32 %result.2, i32* %58, align 4
call void @llvm.lifetime.end(i64 4, i8* nonnull %4)
br label %bb12
}
define internal fastcc i32 @_ZN4core3num14from_str_radix17hd22132446a40356aE(i8* noalias nonnull readonly, i32, i32) unnamed_addr {
start:
%_17 = alloca [1 x %"fmt::ArgumentV1"], align 4
%_12 = alloca %"fmt::Arguments", align 4
%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 24, i8* nonnull %4)
%5 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i8*
call void @llvm.lifetime.start(i64 8, i8* nonnull %5)
%6 = ptrtoint i32* %radix to i32
%7 = bitcast [1 x %"fmt::ArgumentV1"]* %_17 to i32*
store i32 %6, i32* %7, align 4
%8 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0, i32 2
%9 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %8 to i32*
store i32 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h1d4fdb5aae293c5cE" to i32), i32* %9, align 4
%10 = getelementptr inbounds [1 x %"fmt::ArgumentV1"], [1 x %"fmt::ArgumentV1"]* %_17, i32 0, i32 0
%11 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.9x, i32 0, i32 0), %str_slice** %11, align 4, !alias.scope !1201, !noalias !1204
%12 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 0, i32 1
store i32 1, i32* %12, align 4, !alias.scope !1201, !noalias !1204
%_6.sroa.0.0..sroa_idx.i = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 2
%13 = bitcast %"option::Option<&[fmt::rt::v1::Argument]>"* %_6.sroa.0.0..sroa_idx.i to i64*
store i64 0, i64* %13, align 4, !alias.scope !1201, !noalias !1204
%14 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %10, %"fmt::ArgumentV1"** %14, align 4, !alias.scope !1201, !noalias !1204
%15 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_12, i32 0, i32 4, i32 1
store i32 1, i32* %15, align 4, !alias.scope !1201, !noalias !1204
call void @_ZN4core9panicking9panic_fmt17hc0383e0d65e634c7E(%"fmt::Arguments"* noalias nocapture nonnull dereferenceable(24) %_12, { %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(12) bitcast ({ %str_slice, i32 }* @_ZN4core3num14from_str_radix10_FILE_LINE17h55598895be149e83E to { %str_slice, [0 x i8], i32, [0 x i8] }*))
unreachable
bb6: ; preds = %start
%16 = icmp eq i32 %1, 0
br i1 %16, label %bb13, label %bb18
bb12: ; preds = %bb66, %bb13
%_0.sroa.18.0 = phi i16 [ undef, %bb13 ], [ %result.2, %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.18.0.insert.ext = zext i16 %_0.sroa.18.0 to i32
%_0.sroa.18.0.insert.shift = shl nuw i32 %_0.sroa.18.0.insert.ext, 16
%_0.sroa.10.0.insert.ext.masked = and i32 %_0.sroa.10.0, 65280
%_0.sroa.0.0.insert.mask = or i32 %_0.sroa.18.0.insert.shift, %_0.sroa.10.0.insert.ext.masked
%_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.i100, %bb12.i102
%_0.sroa.10.1.ph = phi i32 [ 256, %bb12.i102 ], [ 256, %bb9.i100 ], [ 512, %bb45 ], [ 512, %bb40 ]
br label %bb13
bb13.loopexit180: ; preds = %bb9.i, %bb61, %bb57, %bb12.i
%_0.sroa.10.1.ph181 = phi i32 [ 256, %bb12.i ], [ 256, %bb9.i ], [ 768, %bb61 ], [ 768, %bb57 ]
br label %bb13
bb13: ; preds = %bb13.loopexit180, %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.ph181, %bb13.loopexit180 ]
call void @llvm.lifetime.end(i64 4, i8* nonnull %3)
br label %bb12
bb18: ; preds = %bb6
%17 = load i8, i8* %0, align 1
switch i8 %17, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.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$5index17he97a8a2b83cb6052E.exit"
]
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.lr.ph.thread": ; preds = %bb18
%18 = getelementptr inbounds i8, i8* %0, i32 %1
br label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.preheader"
"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.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$5index17he97a8a2b83cb6052E.exit"
%.sink18.off0 = phi i1 [ false, %"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he97a8a2b83cb6052E.exit" ], [ true, %bb18 ]
%.sink15 = getelementptr inbounds i8, i8* %0, i32 1
%.sink = add i32 %1, -1
%19 = icmp eq i32 %.sink, 0
br i1 %19, label %bb13, label %bb28
bb28: ; preds = %bb23
br i1 %.sink18.off0, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.lr.ph", label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.lr.ph"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.lr.ph": ; preds = %bb28
%20 = getelementptr inbounds i8, i8* %.sink15, i32 %.sink
%21 = icmp ugt i32 %2, 36
br i1 %21, label %bb1.i93.split, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.lr.ph.thread", %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.lr.ph"
%22 = phi i8* [ %18, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.lr.ph.thread" ], [ %20, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.lr.ph" ]
%.sink15148151171 = phi i8* [ %0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.lr.ph.thread" ], [ %.sink15, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.lr.ph" ]
%23 = 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$4next17hf2300a5111fa653bE.exit108"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.lr.ph": ; preds = %bb28
%.ptr166 = getelementptr inbounds i8, i8* %0, i32 %1
%24 = icmp ugt i32 %2, 36
%25 = trunc i32 %2 to i16
br i1 %24, 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$4next17hf2300a5111fa653bE.exit.preheader"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.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$4next17hf2300a5111fa653bE.exit"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.preheader", %bb49
%result.0162 = phi i16 [ %40, %bb49 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.preheader" ]
%iter.sroa.0.0.in161 = phi i8* [ %26, %bb49 ], [ %.sink15148151171, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.preheader" ]
%26 = getelementptr inbounds i8, i8* %iter.sroa.0.0.in161, i32 1
%27 = load i8, i8* %iter.sroa.0.0.in161, align 1
%28 = zext i8 %27 to i32
%.off.i94 = add nsw i32 %28, -48
%29 = icmp ult i32 %.off.i94, 10
br i1 %29, label %bb12.i102, label %bb7.i98
bb1.i93.split: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108.lr.ph"
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he6eb667c9cda989aE" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !1207
unreachable
bb7.i98: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108"
%.off5.i97 = add nsw i32 %28, -97
%30 = icmp ult i32 %.off5.i97, 26
br i1 %30, label %bb12.i102, label %bb9.i100
bb9.i100: ; preds = %bb7.i98
%.off6.i99 = add nsw i32 %28, -65
%31 = icmp ult i32 %.off6.i99, 26
br i1 %31, label %bb12.i102, label %bb13.loopexit
bb12.i102: ; preds = %bb9.i100, %bb7.i98, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108"
%.sink.i101 = phi i32 [ -87, %bb7.i98 ], [ -55, %bb9.i100 ], [ -48, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108" ]
%32 = add nsw i32 %.sink.i101, %28
%33 = icmp ult i32 %32, %2
br i1 %33, label %bb40, label %bb13.loopexit
bb40: ; preds = %bb12.i102
%34 = tail call { i16, i1 } @llvm.smul.with.overflow.i16(i16 %result.0162, i16 %23) #5
%35 = extractvalue { i16, i1 } %34, 1
br i1 %35, label %bb13.loopexit, label %bb45
bb45: ; preds = %bb40
%36 = extractvalue { i16, i1 } %34, 0
%37 = trunc i32 %32 to i16
%38 = tail call { i16, i1 } @llvm.sadd.with.overflow.i16(i16 %36, i16 %37) #5
%39 = extractvalue { i16, i1 } %38, 1
br i1 %39, label %bb13.loopexit, label %bb49
bb49: ; preds = %bb45
%40 = extractvalue { i16, i1 } %38, 0
%41 = icmp eq i8* %26, %22
br i1 %41, label %bb66.loopexit, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit108"
"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit": ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader", %bb65
%result.1164 = phi i16 [ %56, %bb65 ], [ 0, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader" ]
%iter1.sroa.0.0.in163 = phi i8* [ %42, %bb65 ], [ %.sink15, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit.preheader" ]
%42 = getelementptr inbounds i8, i8* %iter1.sroa.0.0.in163, i32 1
%43 = load i8, i8* %iter1.sroa.0.0.in163, align 1
%44 = zext i8 %43 to i32
%.off.i = add nsw i32 %44, -48
%45 = icmp ult i32 %.off.i, 10
br i1 %45, label %bb12.i, 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$4next17hf2300a5111fa653bE.exit.lr.ph"
tail call void @_ZN4core9panicking5panic17h56f6ed82907c49dcE({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }* noalias readonly dereferenceable(20) bitcast ({ %str_slice, %str_slice, i32 }* @"_ZN44_$LT$char$u20$as$u20$core..char..CharExt$GT$8to_digit14_MSG_FILE_LINE17he6eb667c9cda989aE" to { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [0 x i8] }*)), !noalias !1210
unreachable
bb7.i: ; preds = %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit"
%.off5.i = add nsw i32 %44, -97
%46 = icmp ult i32 %.off5.i, 26
br i1 %46, label %bb12.i, label %bb9.i
bb9.i: ; preds = %bb7.i
%.off6.i = add nsw i32 %44, -65
%47 = icmp ult i32 %.off6.i, 26
br i1 %47, label %bb12.i, label %bb13.loopexit180
bb12.i: ; preds = %bb9.i, %bb7.i, %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit"
%.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$4next17hf2300a5111fa653bE.exit" ]
%48 = add nsw i32 %.sink.i, %44
%49 = icmp ult i32 %48, %2
br i1 %49, label %bb57, label %bb13.loopexit180
bb57: ; preds = %bb12.i
%50 = tail call { i16, i1 } @llvm.smul.with.overflow.i16(i16 %result.1164, i16 %25) #5
%51 = extractvalue { i16, i1 } %50, 1
br i1 %51, label %bb13.loopexit180, label %bb61
bb61: ; preds = %bb57
%52 = extractvalue { i16, i1 } %50, 0
%53 = trunc i32 %48 to i16
%54 = tail call { i16, i1 } @llvm.ssub.with.overflow.i16(i16 %52, i16 %53) #5
%55 = extractvalue { i16, i1 } %54, 1
br i1 %55, label %bb13.loopexit180, label %bb65
bb65: ; preds = %bb61
%56 = extractvalue { i16, i1 } %54, 0
%57 = icmp eq i8* %42, %.ptr166
br i1 %57, label %bb66.loopexit182, label %"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hf2300a5111fa653bE.exit"
bb66.loopexit: ; preds = %bb49
br label %bb66
bb66.loopexit182: ; preds = %bb65
br label %bb66
bb66: ; preds = %bb66.loopexit182, %bb66.loopexit
%result.2 = phi i16 [ %40, %bb66.loopexit ], [ %56, %bb66.loopexit182 ]
call void @llvm.lifetime.end(i64 4, i8* nonnull %3)
br label %bb12
}
; Function Attrs: norecurse nounwind readonly
define %str_slice @_ZN4core3num13ParseIntError13__description17he8e7e7c4cca59ee4E(%"num::ParseIntError"* noalias nocapture readonly dereferenceable(1)) unnamed_addr #3 {
start:
%1 = getelementptr inbounds %"num::ParseIntError", %"num::ParseIntError"* %0, i32 0, i32 0
%2 = load i8, i8* %1, align 1, !range !1213
%3 = zext i8 %2 to i32
%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, i32 0, i32 %3
%switch.load = load i8*, i8** %switch.gep, align 4
%switch.gep4 = getelementptr inbounds [3 x i32], [3 x i32]* @switch.table.1, i32 0, i32 %3
%switch.load5 = load i32, i32* %switch.gep4, align 4
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, i32 0, i32 0), %start ]
%.sink = phi i32 [ %switch.load5, %switch.lookup ], [ 38, %start ]
%5 = insertvalue %str_slice undef, i8* %.sink2, 0
%6 = insertvalue %str_slice %5, i32 %.sink, 1
ret %str_slice %6
}
define i8 @"_ZN63_$LT$core..num..ParseIntError$u20$as$u20$core..fmt..Display$GT$3fmt17hd30b0d04f91ccf20E"(%"num::ParseIntError"* noalias nocapture readonly dereferenceable(1), %"fmt::Formatter"* nocapture readonly dereferenceable(52)) unnamed_addr {
start:
%2 = getelementptr inbounds %"num::ParseIntError", %"num::ParseIntError"* %0, i32 0, i32 0
%3 = load i8, i8* %2, align 1, !range !1213, !alias.scope !1214
%4 = zext i8 %3 to i32
%5 = icmp eq i8 %3, 3
br i1 %5, label %_ZN4core3num13ParseIntError13__description17he8e7e7c4cca59ee4E.exit, label %switch.lookup.i
switch.lookup.i: ; preds = %start
%switch.gep.i = getelementptr inbounds [3 x i8*], [3 x i8*]* @switch.table, i32 0, i32 %4
%switch.load.i = load i8*, i8** %switch.gep.i, align 4, !noalias !1214
%switch.gep4.i = getelementptr inbounds [3 x i32], [3 x i32]* @switch.table.1, i32 0, i32 %4
%switch.load5.i = load i32, i32* %switch.gep4.i, align 4, !noalias !1214
br label %_ZN4core3num13ParseIntError13__description17he8e7e7c4cca59ee4E.exit
_ZN4core3num13ParseIntError13__description17he8e7e7c4cca59ee4E.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, i32 0, i32 0), %start ]
%.sink.i = phi i32 [ %switch.load5.i, %switch.lookup.i ], [ 38, %start ]
%6 = tail call i8 @_ZN4core3fmt9Formatter3pad17h90f29ff9c3139ee8E(%"fmt::Formatter"* nonnull dereferenceable(52) %1, i8* noalias nonnull readonly %.sink2.i, i32 %.sink.i)
ret i8 %6
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h0b5620575545b636E(%"marker::PhantomData<hash::sip::Sip24Rounds>"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h0f7e3edb894a19f8E(%"str::Lines"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h1ac483e1f82929f6E(%"fmt::Write::write_fmt::Adapter<fmt::builders::PadAdapter>"* nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h20d9900d8d5c97b7E(%"fmt::builders::PadAdapter"* nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h257c4a0aaf81ddb9E(i8** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h2a5d662c9b9bd1ebE(i32** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h33262bd9e35eefa1E(%"hash::sip::SipHasher24"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h37959c04e469ba0dE(i32* nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h3c0a93e39219de05E({}** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h3fbf211df45a4fb0E(i64** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h425267c3932e08faE(i8** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h436682d5f4f88d02E(%"char::EscapeDefault"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h46845186c56eb209E(i8** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h4857720116818bb9E(%"str::pattern::StrSearcherImpl"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h4c2ccf6e0e47fc8fE(%"str::pattern::CharEqSearcher<&[char]>"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h4d414d5cb3bf6a12E(i16* nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h5caff6de4606e963E(i32* nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h60d85eea07cc4291E(%"num::dec2flt::parse::Decimal"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h67b41d4a705f020eE(%"str::pattern::CharEqSearcher<char>"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h68ec3c2bac07eeb5E(%"char::EscapeDefaultState"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h69d72049864fa159E(%"slice::Iter<u8>"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h6cf1b4a6db6e74fbE(%"iter::Cloned<slice::Iter<u8>>"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h701218e111a4be82E(i32** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h7249faa5c5aa69cbE(%"str::pattern::TwoWaySearcher"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h782426078ce8d3b9E(i8* nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h787b054d39c6e895E(i64** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h78ff46025e2eae31E(%"hash::sip::State"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h79c07684db528245E({ i8*, i32 }* nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h7a165b78f550ebb9E(i8* nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h7cb2f5719523ed27E(%"iter::Map<str::SplitTerminator<char>, str::LinesAnyMap>"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h7e3cd2c4bdba63f8E(%"hash::sip::Hasher<hash::sip::Sip24Rounds>"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h8a6318ea0294c8d5E(%"num::flt2dec::decoder::Decoded"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h8b45db744d153fffE(i16* nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h914446d50a94ff42E(%"str::Chars"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h93b80db886cc564fE(i8** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h954575d65357abb9E(%"str::SplitInternal<char>"* nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h9b9899fc9b1b14f4E(i8** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17h9c63e3c8237e6ae3E(i16** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17hac5307d9de46b924E(%str_slice** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17hb142d7908064bbc9E(%"str::SplitTerminator<char>"* nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17hbb75f1936ab7ac8eE(%"str::pattern::CharSearcher"* nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17hbccf04238592c5d6E(i32* nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17hbd620a898f1b0c1cE({ i32*, i32 }** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17hcbfdf48b2b174537E({ i8*, i32 }** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17hcee9b7e953e00140E(%"str::CharIndices"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17hd2838c18a90e14ffE(%"option::Option<u8>"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17hd53f1a25f9d0318eE(i16** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17hd7e19857a706982fE(%"str::pattern::EmptyNeedle"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17he547feaeafa12bffE(%"char::EscapeUnicode"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17heccfe8741d2c7e0fE(%"hash::sip::Hasher<hash::sip::Sip13Rounds>"** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17hf0a36843fb9a52d5E(i32* nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17hf29c856550f8b672E(i8* nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17hf60ad699a51fe2a6E(i8** nocapture) unnamed_addr #0 {
start:
ret void
}
; Function Attrs: norecurse nounwind readnone
define internal void @_ZN4core3ptr13drop_in_place17hf8c3dd270b2563ecE(%"marker::PhantomData<hash::sip::Sip13Rounds>"** nocapture) unnamed_addr #0 {
start:
ret void
}
define i8 @"_ZN64_$LT$core..ops..range..RangeFull$u20$as$u20$core..fmt..Debug$GT$3fmt17h00db1e876373084bE"(%"ops::range::RangeFull"* noalias nocapture readonly, %"fmt::Formatter"* nocapture readonly dereferenceable(52)) unnamed_addr {
start:
%_7.i = alloca %"fmt::Arguments", align 4
%2 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i32 0, i32 8
%3 = bitcast { i8*, void (i8*)** }* %2 to {}**
%4 = load {}*, {}** %3, align 4, !noalias !1217, !nonnull !975
%5 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i32 0, i32 8, i32 1
%6 = bitcast void (i8*)*** %5 to {}**
%7 = load {}*, {}** %6, align 4, !noalias !1217, !nonnull !975
%8 = bitcast %"fmt::Arguments"* %_7.i to i8*
call void @llvm.lifetime.start(i64 24, i8* nonnull %8), !noalias !1217
%_6.sroa.0.0..sroa_idx = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7.i, i32 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref.5u, i32 0, i32 0), %str_slice** %_6.sroa.0.0..sroa_idx, align 4
%_6.sroa.4.0..sroa_idx3 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7.i, i32 0, i32 0, i32 1
store i32 1, i32* %_6.sroa.4.0..sroa_idx3, align 4
%_6.sroa.5.0..sroa_idx5 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7.i, i32 0, i32 2
%_6.sroa.5.0..sroa_cast6 = bitcast %"option::Option<&[fmt::rt::v1::Argument]>"* %_6.sroa.5.0..sroa_idx5 to i64*
store i64 0, i64* %_6.sroa.5.0..sroa_cast6, align 4
%_6.sroa.6.0..sroa_idx8 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7.i, i32 0, i32 4, i32 0
store %"fmt::ArgumentV1"* getelementptr inbounds ([0 x %"fmt::ArgumentV1"], [0 x %"fmt::ArgumentV1"]* @ref.1W, i32 0, i32 0), %"fmt::ArgumentV1"** %_6.sroa.6.0..sroa_idx8, align 4
%_6.sroa.7.0..sroa_idx10 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7.i, i32 0, i32 4, i32 1
store i32 0, i32* %_6.sroa.7.0..sroa_idx10, align 4
%9 = call i8 @_ZN4core3fmt5write17h5ee8b78243ab22b8E({}* nonnull %4, {}* noalias nonnull readonly %7, %"fmt::Arguments"* noalias nocapture nonnull dereferenceable(24) %_7.i), !noalias !1217
call void @llvm.lifetime.end(i64 24, i8* nonnull %8), !noalias !1217
ret i8 %9
}
define internal i8 @"_ZN71_$LT$core..ops..range..Range$LT$Idx$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17hdb0767fa991eeaa0E"(%"ops::range::Range<usize>"* noalias readonly dereferenceable(8), %"fmt::Formatter"* nocapture readonly dereferenceable(52)) unnamed_addr {
start:
%_7.i = alloca %"fmt::Arguments", align 4
%_11 = alloca [2 x %"fmt::ArgumentV1"], align 4
%2 = bitcast [2 x %"fmt::ArgumentV1"]* %_11 to i8*
call void @llvm.lifetime.start(i64 16, i8* nonnull %2)
%3 = getelementptr inbounds %"ops::range::Range<usize>", %"ops::range::Range<usize>"* %0, i32 0, i32 2
%4 = ptrtoint %"ops::range::Range<usize>"* %0 to i32
%5 = ptrtoint i32* %3 to i32
%6 = bitcast [2 x %"fmt::ArgumentV1"]* %_11 to i32*
store i32 %4, i32* %6, align 4
%7 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_11, i32 0, i32 0, i32 2
%8 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %7 to i32*
store i32 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$usize$GT$3fmt17h5eee555fe2606740E" to i32), i32* %8, align 4
%9 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_11, i32 0, i32 1
%10 = bitcast %"fmt::ArgumentV1"* %9 to i32*
store i32 %5, i32* %10, align 4
%11 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_11, i32 0, i32 1, i32 2
%12 = bitcast i8 (%"fmt::Void"*, %"fmt::Formatter"*)** %11 to i32*
store i32 ptrtoint (i8 (i32*, %"fmt::Formatter"*)* @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$usize$GT$3fmt17h5eee555fe2606740E" to i32), i32* %12, align 4
%13 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %_11, i32 0, i32 0
%14 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i32 0, i32 8
%15 = bitcast { i8*, void (i8*)** }* %14 to {}**
%16 = load {}*, {}** %15, align 4, !noalias !1220, !nonnull !975
%17 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i32 0, i32 8, i32 1
%18 = bitcast void (i8*)*** %17 to {}**
%19 = load {}*, {}** %18, align 4, !noalias !1220, !nonnull !975
%20 = bitcast %"fmt::Arguments"* %_7.i to i8*
call void @llvm.lifetime.start(i64 24, i8* nonnull %20), !noalias !1220
%_6.sroa.0.0..sroa_idx = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7.i, i32 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref.5v, i32 0, i32 0), %str_slice** %_6.sroa.0.0..sroa_idx, align 4
%_6.sroa.4.0..sroa_idx6 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7.i, i32 0, i32 0, i32 1
store i32 2, i32* %_6.sroa.4.0..sroa_idx6, align 4
%_6.sroa.5.0..sroa_idx8 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7.i, i32 0, i32 2
%_6.sroa.5.0..sroa_cast9 = bitcast %"option::Option<&[fmt::rt::v1::Argument]>"* %_6.sroa.5.0..sroa_idx8 to i64*
store i64 0, i64* %_6.sroa.5.0..sroa_cast9, align 4
%_6.sroa.6.0..sroa_idx11 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7.i, i32 0, i32 4, i32 0
store %"fmt::ArgumentV1"* %13, %"fmt::ArgumentV1"** %_6.sroa.6.0..sroa_idx11, align 4
%_6.sroa.7.0..sroa_idx13 = getelementptr inbounds %"fmt::Arguments", %"fmt::Arguments"* %_7.i, i32 0, i32 4, i32 1
store i32 2, i32* %_6.sroa.7.0..sroa_idx13, align 4
%21 = call i8 @_ZN4core3fmt5write17h5ee8b78243ab22b8E({}* nonnull %16, {}* noalias nonnull readonly %19, %"fmt::Arguments"* noalias nocapture nonnull dereferenceable(24) %_7.i), !noalias !1220
call void @llvm.lifetime.end(i64 24, i8* nonnull %20), !noalias !1220
call void @llvm.lifetime.end(i64 16, i8* nonnull %2)
ret i8 %21
}
; Function Attrs: norecurse noreturn nounwind readnone
define zeroext i1 @"_ZN4core3cmp5impls56_$LT$impl$u20$core..cmp..PartialEq$u20$for$u20$$u21$$GT$2eq17hd5aae4b111e31270E"({}* noalias nocapture readonly, {}* noalias nocapture readonly) unnamed_addr #6 {
start:
unreachable
}
; Function Attrs: norecurse noreturn nounwind readnone
define i16 @"_ZN4core3cmp5impls57_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$$u21$$GT$11partial_cmp17h9f25add0e9f60e0cE"({}* noalias nocapture readonly, {}* noalias nocapture readonly) unnamed_addr #6 {
start:
unreachable
}
; Function Attrs: norecurse noreturn nounwind readnone
define i8 @"_ZN4core3cmp5impls50_$LT$impl$u20$core..cmp..Ord$u20$for$u20$$u21$$GT$3cmp17h940122af35f58a40E"({}* noalias nocapture readonly, {}* noalias nocapture readonly) unnamed_addr #6 {
start:
unreachable
}
define i8 @"_ZN77_$LT$core..any..Any$u20$$u2b$$u20$$u27$static$u20$as$u20$core..fmt..Debug$GT$3fmt17h64746e55aac36a7bE"({}* nocapture nonnull readnone, {}* noalias nocapture nonnull readonly, %"fmt::Formatter"* nocapture readonly dereferenceable(52)) unnamed_addr {
start:
%3 = tail call i8 @_ZN4core3fmt9Formatter3pad17h90f29ff9c3139ee8E(%"fmt::Formatter"* nonnull dereferenceable(52) %2, i8* noalias nonnull readonly getelementptr inbounds ([3 x i8], [3 x i8]* @str.1X, i32 0, i32 0), i32 3)
ret i8 %3
}
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$3fmt17h8447300ae05481c3E"({}* nocapture nonnull readnone, {}* noalias nocapture nonnull readonly, %"fmt::Formatter"* nocapture readonly dereferenceable(52)) unnamed_addr {
start:
%3 = tail call i8 @_ZN4core3fmt9Formatter3pad17h90f29ff9c3139ee8E(%"fmt::Formatter"* nonnull dereferenceable(52) %2, i8* noalias nonnull readonly getelementptr inbounds ([3 x i8], [3 x i8]* @str.1X, i32 0, i32 0), i32 3)
ret i8 %3
}
; Function Attrs: norecurse nounwind readnone
define i8 @"_ZN73_$LT$core..sync..atomic..AtomicBool$u20$as$u20$core..default..Default$GT$7default17haa5d663457602772E"() unnamed_addr #0 {
start:
ret i8 0
}
define i8 @"_ZN67_$LT$core..sync..atomic..AtomicBool$u20$as$u20$core..fmt..Debug$GT$3fmt17h4a3b780ae3fd2965E"(%"sync::atomic::AtomicBool"* nocapture readonly dereferenceable(1), %"fmt::Formatter"* dereferenceable(52)) unnamed_addr {
start:
%_15 = alloca i8, align 1
%_8 = alloca %"fmt::builders::DebugTuple", align 4
%2 = bitcast %"fmt::builders::DebugTuple"* %_8 to i8*
call void @llvm.lifetime.start(i64 12, i8* nonnull %2)
%3 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i32 0, i32 8
%4 = bitcast { i8*, void (i8*)** }* %3 to {}**
%5 = load {}*, {}** %4, align 4, !noalias !1223, !nonnull !975
%6 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i32 0, i32 8, i32 1
%7 = load void (i8*)**, void (i8*)*** %6, align 4, !noalias !1223, !nonnull !975
%8 = getelementptr inbounds void (i8*)*, void (i8*)** %7, i32 3
%9 = bitcast void (i8*)** %8 to i8 ({}*, i8*, i32)**
%10 = load i8 ({}*, i8*, i32)*, i8 ({}*, i8*, i32)** %9, align 4, !invariant.load !975, !noalias !1223, !nonnull !975
%11 = tail call i8 %10({}* nonnull %5, i8* noalias nonnull readonly getelementptr inbounds ([10 x i8], [10 x i8]* @str.1Y, i32 0, i32 0), i32 10), !noalias !1232
%12 = getelementptr inbounds %"fmt::builders::DebugTuple", %"fmt::builders::DebugTuple"* %_8, i32 0, i32 0
store %"fmt::Formatter"* %1, %"fmt::Formatter"** %12, align 4, !alias.scope !1232, !noalias !1233
%_9.sroa.0.0..sroa_idx.i.i = getelementptr inbounds %"fmt::builders::DebugTuple", %"fmt::builders::DebugTuple"* %_8, i32 0, i32 4, i32 0
store i8 %11, i8* %_9.sroa.0.0..sroa_idx.i.i, align 4, !alias.scope !1232, !noalias !1233
%13 = getelementptr inbounds %"fmt::builders::DebugTuple", %"fmt::builders::DebugTuple"* %_8, i32 0, i32 2
store i32 0, i32* %13, align 4, !alias.scope !1232, !noalias !1233
%14 = getelementptr inbounds %"fmt::builders::DebugTuple", %"fmt::builders::DebugTuple"* %_8, i32 0, i32 6
store i8 0, i8* %14, align 1, !alias.scope !1232, !noalias !1233
call void @llvm.lifetime.start(i64 1, i8* nonnull %_15)
%15 = getelementptr inbounds %"sync::atomic::AtomicBool", %"sync::atomic::AtomicBool"* %0, i32 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(12) %"fmt::builders::DebugTuple"* @_ZN4core3fmt8builders10DebugTuple5field17habc110559ba06d99E(%"fmt::builders::DebugTuple"* nonnull dereferenceable(12) %_8, {}* nonnull %19, {}* noalias nonnull readonly bitcast ({ void (i8*)*, i32, i32, i8 (i8*, %"fmt::Formatter"*)* }* @vtable.1Z to {}*))
%21 = getelementptr inbounds %"fmt::builders::DebugTuple", %"fmt::builders::DebugTuple"* %20, i32 0, i32 2
%22 = load i32, i32* %21, align 4
%23 = icmp eq i32 %22, 0
%_10.sroa.0.0..sroa_idx.phi.trans.insert.i = getelementptr inbounds %"fmt::builders::DebugTuple", %"fmt::builders::DebugTuple"* %20, i32 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 %_ZN4core3fmt8builders10DebugTuple6finish17h87db45a86d99684aE.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 %bb1.i.i, label %"_ZN47_$LT$core..result..Result$LT$T$C$$u20$E$GT$$GT$8and_then17h07eada70aa6be957E.exit.i"
bb1.i.i: ; preds = %bb1.i
%24 = getelementptr inbounds %"fmt::builders::DebugTuple", %"fmt::builders::DebugTuple"* %20, i32 0, i32 0
%25 = load %"fmt::Formatter"*, %"fmt::Formatter"** %24, align 4, !alias.scope !1234, !nonnull !975
%26 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %25, i32 0, i32 0
%27 = load i32, i32* %26, align 4, !alias.scope !1237, !noalias !1234
%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 = %bb1.i.i
%30 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %25, i32 0, i32 8
%31 = bitcast { i8*, void (i8*)** }* %30 to {}**
%32 = load {}*, {}** %31, align 4, !noalias !1240, !nonnull !975
%33 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %25, i32 0, i32 8, i32 1
%34 = load void (i8*)**, void (i8*)*** %33, align 4, !noalias !1240, !nonnull !975
%35 = getelementptr inbounds void (i8*)*, void (i8*)** %34, i32 3
%36 = bitcast void (i8*)** %35 to i8 ({}*, i8*, i32)**
%37 = load i8 ({}*, i8*, i32)*, i8 ({}*, i8*, i32)** %36, align 4, !invariant.load !975, !noalias !1240, !nonnull !975
%38 = call i8 %37({}* nonnull %32, i8* noalias nonnull readonly getelementptr inbounds ([1 x i8], [1 x i8]* @str.2G, i32 0, i32 0), i32 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_then17h07eada70aa6be957E.exit.i"
bb2.bb11_crit_edge.i.i.i: ; preds = %bb2.i.i.i
%.pre.i = load i32, i32* %21, align 4
br label %bb11.i.i.i
bb11.i.i.i: ; preds = %bb2.bb11_crit_edge.i.i.i, %bb1.i.i
%39 = phi i32 [ %.pre.i, %bb2.bb11_crit_edge.i.i.i ], [ %22, %bb1.i.i ]
%40 = icmp eq i32 %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, i32 0, i32 6
%42 = load i8, i8* %41, align 1, !range !86
%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 4, !nonnull !975
%45 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %44, i32 0, i32 8
%46 = bitcast { i8*, void (i8*)** }* %45 to {}**
%47 = load {}*, {}** %46, align 4, !noalias !1243, !nonnull !975
%48 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %44, i32 0, i32 8, i32 1
%49 = load void (i8*)**, void (i8*)*** %48, align 4, !noalias !1243, !nonnull !975
%50 = getelementptr inbounds void (i8*)*, void (i8*)** %49, i32 3
%51 = bitcast void (i8*)** %50 to i8 ({}*, i8*, i32)**
%52 = load i8 ({}*, i8*, i32)*, i8 ({}*, i8*, i32)** %51, align 4, !invariant.load !975, !noalias !1243, !nonnull !975
%53 = call i8 %52({}* nonnull %47, i8* noalias nonnull readonly getelementptr inbounds ([1 x i8], [1 x i8]* @str.2z, i32 0, i32 0), i32 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_then17h07eada70aa6be957E.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 4, !nonnull !975
%55 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %54, i32 0, i32 8
%56 = bitcast { i8*, void (i8*)** }* %55 to {}**
%57 = load {}*, {}** %56, align 4, !noalias !1246, !nonnull !975
%58 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %54, i32 0, i32 8, i32 1
%59 = load void (i8*)**, void (i8*)*** %58, align 4, !noalias !1246, !nonnull !975
%60 = getelementptr inbounds void (i8*)*, void (i8*)** %59, i32 3
%61 = bitcast void (i8*)** %60 to i8 ({}*, i8*, i32)**
%62 = load i8 ({}*, i8*, i32)*, i8 ({}*, i8*, i32)** %61, align 4, !invariant.load !975, !noalias !1246, !nonnull !975
%63 = call i8 %62({}* nonnull %57, i8* noalias nonnull readonly getelementptr inbounds ([1 x i8], [1 x i8]* @str.2H, i32 0, i32 0), i32 1)
br label %"_ZN47_$LT$core..result..Result$LT$T$C$$u20$E$GT$$GT$8and_then17h07eada70aa6be957E.exit.i"
"_ZN47_$LT$core..result..Result$LT$T$C$$u20$E$GT$$GT$8and_then17h07eada70aa6be957E.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 %_ZN4core3fmt8builders10DebugTuple6finish17h87db45a86d99684aE.exit
_ZN4core3fmt8builders10DebugTuple6finish17h87db45a86d99684aE.exit: ; preds = %start, %"_ZN47_$LT$core..result..Result$LT$T$C$$u20$E$GT$$GT$8and_then17h07eada70aa6be957E.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_then17h07eada70aa6be957E.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 12, i8* nonnull %2)
ret i8 %_10.sroa.0.0.copyload.i
}
define i8 @"_ZN60_$LT$core..cell..BorrowError$u20$as$u20$core..fmt..Debug$GT$3fmt17h2f100c9a4ef9d4f2E"(%"cell::BorrowError"* noalias nocapture readonly, %"fmt::Formatter"* dereferenceable(52)) unnamed_addr {
_ZN4core3fmt8builders11DebugStruct6finish17h891f8ea293871246E.exit:
%2 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i32 0, i32 8
%3 = bitcast { i8*, void (i8*)** }* %2 to {}**
%4 = load {}*, {}** %3, align 4, !noalias !1249, !nonnull !975
%5 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i32 0, i32 8, i32 1
%6 = load void (i8*)**, void (i8*)*** %5, align 4, !noalias !1249, !nonnull !975
%7 = getelementptr inbounds void (i8*)*, void (i8*)** %6, i32 3
%8 = bitcast void (i8*)** %7 to i8 ({}*, i8*, i32)**
%9 = load i8 ({}*, i8*, i32)*, i8 ({}*, i8*, i32)** %8, align 4, !invariant.load !975, !noalias !1249, !nonnull !975
%10 = tail call i8 %9({}* nonnull %4, i8* noalias nonnull readonly getelementptr inbounds ([11 x i8], [11 x i8]* @str.20, i32 0, i32 0), i32 11), !noalias !1258
ret i8 %10
}
define i8 @"_ZN62_$LT$core..cell..BorrowError$u20$as$u20$core..fmt..Display$GT$3fmt17h330c593b91c33883E"(%"cell::BorrowError"* noalias nocapture readonly, %"fmt::Formatter"* nocapture readonly dereferenceable(52)) unnamed_addr {
start:
%2 = tail call i8 @_ZN4core3fmt9Formatter3pad17h90f29ff9c3139ee8E(%"fmt::Formatter"* nonnull dereferenceable(52) %1, i8* noalias nonnull readonly getelementptr inbounds ([24 x i8], [24 x i8]* @str.21, i32 0, i32 0), i32 24)
ret i8 %2
}
define i8 @"_ZN63_$LT$core..cell..BorrowMutError$u20$as$u20$core..fmt..Debug$GT$3fmt17hca6ba61bb4c84ea5E"(%"cell::BorrowMutError"* noalias nocapture readonly, %"fmt::Formatter"* dereferenceable(52)) unnamed_addr {
_ZN4core3fmt8builders11DebugStruct6finish17h891f8ea293871246E.exit:
%2 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i32 0, i32 8
%3 = bitcast { i8*, void (i8*)** }* %2 to {}**
%4 = load {}*, {}** %3, align 4, !noalias !1259, !nonnull !975
%5 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i32 0, i32 8, i32 1
%6 = load void (i8*)**, void (i8*)*** %5, align 4, !noalias !1259, !nonnull !975
%7 = getelementptr inbounds void (i8*)*, void (i8*)** %6, i32 3
%8 = bitcast void (i8*)** %7 to i8 ({}*, i8*, i32)**
%9 = load i8 ({}*, i8*, i32)*, i8 ({}*, i8*, i32)** %8, align 4, !invariant.load !975, !noalias !1259, !nonnull !975
%10 = tail call i8 %9({}* nonnull %4, i8* noalias nonnull readonly getelementptr inbounds ([14 x i8], [14 x i8]* @str.22, i32 0, i32 0), i32 14), !noalias !1268
ret i8 %10
}
define i8 @"_ZN65_$LT$core..cell..BorrowMutError$u20$as$u20$core..fmt..Display$GT$3fmt17h49408475d356bb90E"(%"cell::BorrowMutError"* noalias nocapture readonly, %"fmt::Formatter"* nocapture readonly dereferenceable(52)) unnamed_addr {
start:
%2 = tail call i8 @_ZN4core3fmt9Formatter3pad17h90f29ff9c3139ee8E(%"fmt::Formatter"* nonnull dereferenceable(52) %1, i8* noalias nonnull readonly getelementptr inbounds ([16 x i8], [16 x i8]* @str.23, i32 0, i32 0), i32 16)
ret i8 %2
}
; Function Attrs: norecurse nounwind readonly
define %str_slice @_ZN4core4char14ParseCharError13__description17h128fd220efce3177E(%"char::ParseCharError"* noalias nocapture readonly dereferenceable(1)) unnamed_addr #3 {
start:
%1 = getelementptr inbounds %"char::ParseCharError", %"char::ParseCharError"* %0, i32 0, i32 0
%2 = load i8, i8* %1, align 1, !range !86
%cond = icmp eq i8 %2, 0
%.sink2 = select i1 %cond, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str.26, i32 0, i32 0), i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str.25, i32 0, i32 0)
%.sink = select i1 %cond, i32 35, i32 29
%3 = insertvalue %str_slice undef, i8* %.sink2, 0
%4 = insertvalue %str_slice %3, i32 %.sink, 1
ret %str_slice %4
}
define i8 @"_ZN65_$LT$core..char..ParseCharError$u20$as$u20$core..fmt..Display$GT$3fmt17h1ba744ecb847063bE"(%"char::ParseCharError"* noalias nocapture readonly dereferenceable(1), %"fmt::Formatter"* nocapture readonly dereferenceable(52)) unnamed_addr {
start:
%2 = getelementptr inbounds %"char::ParseCharError", %"char::ParseCharError"* %0, i32 0, i32 0
%3 = load i8, i8* %2, align 1, !range !86, !alias.scope !1269
%cond.i = icmp eq i8 %3, 0
%.sink2.i = select i1 %cond.i, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str.26, i32 0, i32 0), i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str.25, i32 0, i32 0)
%.sink.i = select i1 %cond.i, i32 35, i32 29
%4 = tail call i8 @_ZN4core3fmt9Formatter3pad17h90f29ff9c3139ee8E(%"fmt::Formatter"* nonnull dereferenceable(52) %1, i8* noalias nonnull readonly %.sink2.i, i32 %.sink.i)
ret i8 %4
}
define i8 @"_ZN67_$LT$core..char..CharTryFromError$u20$as$u20$core..fmt..Display$GT$3fmt17h7bcc63b9ff4289aeE"(%"char::CharTryFromError"* noalias nocapture readonly, %"fmt::Formatter"* nocapture readonly dereferenceable(52)) unnamed_addr {
start:
%2 = tail call i8 @_ZN4core3fmt9Formatter3pad17h90f29ff9c3139ee8E(%"fmt::Formatter"* nonnull dereferenceable(52) %1, i8* noalias nonnull readonly getelementptr inbounds ([41 x i8], [41 x i8]* @str.27, i32 0, i32 0), i32 41)
ret i8 %2
}
define void @"_ZN76_$LT$core..char..EscapeUnicode$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h4bdb6744b34c8bf7E"(%"option::Option<char>"* noalias nocapture sret dereferenceable(8), %"char::EscapeUnicode"* nocapture dereferenceable(12)) unnamed_addr {
start:
%2 = getelementptr inbounds %"char::EscapeUnicode", %"char::EscapeUnicode"* %1, i32 0, i32 4
%3 = load i8, i8* %2, align 1, !range !1272
%trunc = trunc i8 %3 to i3
switch i3 %trunc, label %bb1 [
i3 0, label %bb6
i3 1, label %bb5
i3 2, label %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h93aa89969ebaea30E.exit"
i3 3, label %bb3
i3 -4, label %bb2
]
bb1: ; preds = %start
store i8 4, i8* %2, align 1
%4 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 0
store i32 1, i32* %4, align 4
%5 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 2, i32 0
store i32 92, i32* %5, align 4
br label %bb7
bb2: ; preds = %start
store i8 3, i8* %2, align 1
%6 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 0
store i32 1, i32* %6, align 4
%7 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 2, i32 0
store i32 117, i32* %7, align 4
br label %bb7
bb3: ; preds = %start
store i8 2, i8* %2, align 1
%8 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 0
store i32 1, i32* %8, align 4
%9 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 2, i32 0
store i32 123, i32* %9, align 4
br label %bb7
"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h93aa89969ebaea30E.exit": ; preds = %start
%10 = getelementptr inbounds %"char::EscapeUnicode", %"char::EscapeUnicode"* %1, i32 0, i32 0
%11 = load i32, i32* %10, align 4, !range !1273
%12 = getelementptr inbounds %"char::EscapeUnicode", %"char::EscapeUnicode"* %1, i32 0, i32 2
%13 = load i32, i32* %12, align 4
%14 = shl i32 %13, 2
%15 = and i32 %14, 28
%16 = lshr i32 %11, %15
%17 = and i32 %16, 15
%18 = trunc i32 %17 to i8
%19 = icmp ult i8 %18, 10
%.sink4.v.i = select i1 %19, i32 48, i32 87
%.sink4.i = add nuw nsw i32 %.sink4.v.i, %17
%20 = icmp eq i32 %13, 0
br i1 %20, label %bb10, label %bb11
bb5: ; preds = %start
store i8 0, i8* %2, align 1
%21 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 0
store i32 1, i32* %21, align 4
%22 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 2, i32 0
store i32 125, i32* %22, align 4
br label %bb7
bb6: ; preds = %start
%23 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 0
store i32 0, i32* %23, align 4
br label %bb7
bb7: ; preds = %bb6, %bb5, %bb12, %bb3, %bb2, %bb1
ret void
bb10: ; preds = %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h93aa89969ebaea30E.exit"
store i8 1, i8* %2, align 1
br label %bb12
bb11: ; preds = %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h93aa89969ebaea30E.exit"
%24 = add i32 %13, -1
store i32 %24, i32* %12, align 4
br label %bb12
bb12: ; preds = %bb11, %bb10
%25 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 0
store i32 1, i32* %25, align 4
%26 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 2, i32 0
store i32 %.sink4.i, i32* %26, align 4
br label %bb7
}
; Function Attrs: norecurse nounwind
define void @"_ZN76_$LT$core..char..EscapeUnicode$u20$as$u20$core..iter..iterator..Iterator$GT$4last17hc900c33247519676E"(%"option::Option<char>"* noalias nocapture sret dereferenceable(8), %"char::EscapeUnicode"* noalias nocapture readonly dereferenceable(12)) unnamed_addr #2 {
start:
%self.sroa.3.0..sroa_idx = getelementptr inbounds %"char::EscapeUnicode", %"char::EscapeUnicode"* %1, i32 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
%2 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 0
br i1 %cond, label %bb1, label %bb2
bb1: ; preds = %start
store i32 0, i32* %2, align 4
br label %bb3
bb2: ; preds = %start
store i32 1, i32* %2, align 4
%3 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 2, i32 0
store i32 125, i32* %3, align 4
br label %bb3
bb3: ; preds = %bb1, %bb2
ret void
}
define i8 @"_ZN64_$LT$core..char..EscapeUnicode$u20$as$u20$core..fmt..Display$GT$3fmt17h289565714719f3c0E"(%"char::EscapeUnicode"* noalias nocapture readonly dereferenceable(12), %"fmt::Formatter"* nocapture readonly dereferenceable(52)) unnamed_addr {
start:
%2 = getelementptr inbounds %"char::EscapeUnicode", %"char::EscapeUnicode"* %0, i32 0, i32 0
%3 = getelementptr inbounds %"char::EscapeUnicode", %"char::EscapeUnicode"* %0, i32 0, i32 4
%4 = getelementptr inbounds %"char::EscapeUnicode", %"char::EscapeUnicode"* %0, i32 0, i32 2
%5 = load i32, i32* %2, align 4, !range !1273, !alias.scope !1274, !noalias !1279
%6 = load i8, i8* %3, align 1, !range !1272, !alias.scope !1281, !noalias !1279
%trunc.i.i = trunc i8 %6 to i3
switch i3 %trunc.i.i, label %bb6.i.i [
i3 0, label %"_ZN64_$LT$core..char..EscapeUnicode$u20$as$u20$core..clone..Clone$GT$5clone17h80461cccb445f356E.exit"
i3 1, label %bb2.i.i
i3 2, label %bb3.i.i
i3 3, label %bb4.i.i
i3 -4, label %bb5.i.i
]
bb2.i.i: ; preds = %start
br label %"_ZN64_$LT$core..char..EscapeUnicode$u20$as$u20$core..clone..Clone$GT$5clone17h80461cccb445f356E.exit"
bb3.i.i: ; preds = %start
br label %"_ZN64_$LT$core..char..EscapeUnicode$u20$as$u20$core..clone..Clone$GT$5clone17h80461cccb445f356E.exit"
bb4.i.i: ; preds = %start
br label %"_ZN64_$LT$core..char..EscapeUnicode$u20$as$u20$core..clone..Clone$GT$5clone17h80461cccb445f356E.exit"
bb5.i.i: ; preds = %start
br label %"_ZN64_$LT$core..char..EscapeUnicode$u20$as$u20$core..clone..Clone$GT$5clone17h80461cccb445f356E.exit"
bb6.i.i: ; preds = %start
br label %"_ZN64_$LT$core..char..EscapeUnicode$u20$as$u20$core..clone..Clone$GT$5clone17h80461cccb445f356E.exit"
"_ZN64_$LT$core..char..EscapeUnicode$u20$as$u20$core..clone..Clone$GT$5clone17h80461cccb445f356E.exit": ; preds = %start, %bb2.i.i, %bb3.i.i, %bb4.i.i, %bb5.i.i, %bb6.i.i
%_0.0.i.i = phi i8 [ 5, %bb6.i.i ], [ 4, %bb5.i.i ], [ 3, %bb4.i.i ], [ 2, %bb3.i.i ], [ 1, %bb2.i.i ], [ 0, %start ]
%7 = load i32, i32* %4, align 4, !alias.scope !1284, !noalias !1279
%8 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i32 0, i32 8
%9 = bitcast { i8*, void (i8*)** }* %8 to {}**
%10 = getelementptr inbounds %"fmt::Formatter", %"fmt::Formatter"* %1, i32 0, i32 8, i32 1
br label %bb3
bb3: ; preds = %bb6, %"_ZN64_$LT$core..char..EscapeUnicode$u20$as$u20$core..clone..Clone$GT$5clone17h80461cccb445f356E.exit"
%iter.sroa.5.0 = phi i32 [ %7, %"_ZN64_$LT$core..char..EscapeUnicode$u20$as$u20$core..clone..Clone$GT$5clone17h80461cccb445f356E.exit" ], [ %iter.sroa.5.2.ph, %bb6 ]
%iter.sroa.8.0 = phi i8 [ %_0.0.i.i, %"_ZN64_$LT$core..char..EscapeUnicode$u20$as$u20$core..clone..Clone$GT$5clone17h80461cccb445f356E.exit" ], [ %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 %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h93aa89969ebaea30E.exit.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
"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h93aa89969ebaea30E.exit.i": ; preds = %bb3
%11 = shl i32 %iter.sroa.5.0, 2
%12 = and i32 %11, 28
%13 = lshr i32 %5, %12
%14 = and i32 %13, 15
%15 = trunc i32 %14 to i8
%16 = icmp ult i8 %15, 10
%.sink4.v.i.i = select i1 %16, i32 48, i32 87
%.sink4.i.i = add nuw nsw i32 %.sink4.v.i.i, %14
%17 = icmp eq i32 %iter.sroa.5.0, 0
%18 = add i32 %iter.sroa.5.0, -1
%. = select i1 %17, i32 0, i32 %18
%.iter.sroa.8.0 = select i1 %17, i8 1, i8 %iter.sroa.8.0
br label %bb6
bb5.i: ; preds = %bb3
br label %bb6
bb6: ; preds = %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h93aa89969ebaea30E.exit.i", %bb2.i, %bb3.i, %bb5.i, %bb3
%iter.sroa.5.2.ph = phi i32 [ %iter.sroa.5.0, %bb3 ], [ %iter.sroa.5.0, %bb5.i ], [ %iter.sroa.5.0, %bb3.i ], [ %iter.sroa.5.0, %bb2.i ], [ %., %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h93aa89969ebaea30E.exit.i" ]
%iter.sroa.8.2.ph = phi i8 [ 4, %bb3 ], [ 0, %bb5.i ], [ 2, %bb3.i ], [ 3, %bb2.i ], [ %.iter.sroa.8.0, %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h93aa89969ebaea30E.exit.i" ]
%_13.sroa.10.1.ph = phi i32 [ 92, %bb3 ], [ 125, %bb5.i ], [ 123, %bb3.i ], [ 117, %bb2.i ], [ %.sink4.i.i, %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h93aa89969ebaea30E.exit.i" ]
%19 = load {}*, {}** %9, align 4, !nonnull !975
%20 = load void (i8*)**, void (i8*)*** %10, align 4, !nonnull !975
%21 = getelementptr inbounds void (i8*)*, void (i8*)** %20, i32 4
%22 = bitcast void (i8*)** %21 to i8 ({}*, i32)**
%23 = load i8 ({}*, i32)*, i8 ({}*, i32)** %22, align 4, !invariant.load !975, !nonnull !975
%24 = tail call i8 %23({}* nonnull %19, i32 %_13.sroa.10.1.ph)
%cond3 = icmp eq i8 %24, 0
br i1 %cond3, label %bb3, label %bb13
bb13: ; preds = %bb6, %bb3
%_0.sroa.0.0 = phi i8 [ 0, %bb3 ], [ 1, %bb6 ]
ret i8 %_0.sroa.0.0
}
; Function Attrs: norecurse
define void @"_ZN76_$LT$core..char..EscapeDefault$u20$as$u20$core..iter..iterator..Iterator$GT$4next17hb7ece70166d4f984E"(%"option::Option<char>"* noalias nocapture sret dereferenceable(8), %"char::EscapeDefault"* nocapture dereferenceable(16)) unnamed_addr #7 {
start:
%2 = getelementptr inbounds %"char::EscapeDefault", %"char::EscapeDefault"* %1, i32 0, i32 0, i32 0
%3 = load i32, i32* %2, align 4, !range !1287
%trunc = trunc i32 %3 to i2
switch i2 %trunc, label %bb4 [
i2 0, label %bb1
i2 1, label %bb2
i2 -2, label %bb3
]
bb1: ; preds = %start
%4 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 0
store i32 0, i32* %4, align 4
br label %bb5
bb2: ; preds = %start
%5 = getelementptr inbounds %"char::EscapeDefault", %"char::EscapeDefault"* %1, i32 0, i32 0, i32 2, i32 0
%6 = load i32, i32* %5, align 4, !range !1273
store i32 0, i32* %2, align 4
%7 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 0
store i32 1, i32* %7, align 4
%8 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 2, i32 0
store i32 %6, i32* %8, align 4
br label %bb5
bb3: ; preds = %start
store i32 1, i32* %2, align 4
%9 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 0
store i32 1, i32* %9, align 4
%10 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 2, i32 0
store i32 92, i32* %10, align 4
br label %bb5
bb4: ; preds = %start
%11 = getelementptr inbounds %"char::EscapeDefault", %"char::EscapeDefault"* %1, i32 0, i32 0, i32 2, i32 2
%12 = bitcast i32* %11 to i8*
%13 = load i8, i8* %12, align 1, !range !1272, !noalias !1288
%trunc.i = trunc i8 %13 to i3
switch i3 %trunc.i, label %bb1.i [
i3 0, label %bb6.i
i3 1, label %bb5.i
i3 2, label %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h93aa89969ebaea30E.exit.i"
i3 3, label %bb3.i
i3 -4, label %bb2.i
]
bb1.i: ; preds = %bb4
store i8 4, i8* %12, align 1, !noalias !1288
%14 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 0
store i32 1, i32* %14, align 4, !alias.scope !1288
%15 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 2, i32 0
store i32 92, i32* %15, align 4, !alias.scope !1288
br label %bb5
bb2.i: ; preds = %bb4
store i8 3, i8* %12, align 1, !noalias !1288
%16 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 0
store i32 1, i32* %16, align 4, !alias.scope !1288
%17 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 2, i32 0
store i32 117, i32* %17, align 4, !alias.scope !1288
br label %bb5
bb3.i: ; preds = %bb4
store i8 2, i8* %12, align 1, !noalias !1288
%18 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 0
store i32 1, i32* %18, align 4, !alias.scope !1288
%19 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 2, i32 0
store i32 123, i32* %19, align 4, !alias.scope !1288
br label %bb5
"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h93aa89969ebaea30E.exit.i": ; preds = %bb4
%20 = getelementptr inbounds %"char::EscapeDefault", %"char::EscapeDefault"* %1, i32 0, i32 0, i32 2, i32 0
%21 = load i32, i32* %20, align 4, !range !1273, !noalias !1288
%22 = getelementptr inbounds %"char::EscapeDefault", %"char::EscapeDefault"* %1, i32 0, i32 0, i32 2, i32 1
%23 = load i32, i32* %22, align 4, !noalias !1288
%24 = shl i32 %23, 2
%25 = and i32 %24, 28
%26 = lshr i32 %21, %25
%27 = and i32 %26, 15
%28 = trunc i32 %27 to i8
%29 = icmp ult i8 %28, 10
%.sink4.v.i.i = select i1 %29, i32 48, i32 87
%.sink4.i.i = add nuw nsw i32 %.sink4.v.i.i, %27
%30 = icmp eq i32 %23, 0
br i1 %30, label %bb10.i, label %bb11.i
bb5.i: ; preds = %bb4
store i8 0, i8* %12, align 1, !noalias !1288
%31 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 0
store i32 1, i32* %31, align 4, !alias.scope !1288
%32 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 2, i32 0
store i32 125, i32* %32, align 4, !alias.scope !1288
br label %bb5
bb6.i: ; preds = %bb4
%33 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 0
store i32 0, i32* %33, align 4, !alias.scope !1288
br label %bb5
bb10.i: ; preds = %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h93aa89969ebaea30E.exit.i"
store i8 1, i8* %12, align 1, !noalias !1288
br label %bb12.i
bb11.i: ; preds = %"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h93aa89969ebaea30E.exit.i"
%34 = add i32 %23, -1
store i32 %34, i32* %22, align 4, !noalias !1288
br label %bb12.i
bb12.i: ; preds = %bb11.i, %bb10.i
%35 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 0
store i32 1, i32* %35, align 4, !alias.scope !1288
%36 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 2, i32 0
store i32 %.sink4.i.i, i32* %36, align 4, !alias.scope !1288
br label %bb5
bb5: ; preds = %bb12.i, %bb6.i, %bb5.i, %bb3.i, %bb2.i, %bb1.i, %bb1, %bb2, %bb3
ret void
}
; Function Attrs: norecurse
define void @"_ZN76_$LT$core..char..EscapeDefault$u20$as$u20$core..iter..iterator..Iterator$GT$3nth17h360a923170e363cbE"(%"option::Option<char>"* noalias nocapture sret dereferenceable(8), %"char::EscapeDefault"* nocapture dereferenceable(16), i32) unnamed_addr #7 {
start:
%3 = getelementptr inbounds %"char::EscapeDefault", %"char::EscapeDefault"* %1, i32 0, i32 0, i32 0
%4 = load i32, i32* %3, align 4, !range !1287
%trunc = trunc i32 %4 to i2
switch i2 %trunc, label %bb7 [
i2 0, label %bb4
i2 1, label %bb5
i2 -2, label %bb6
]
bb1: ; preds = %bb6
store i32 1, i32* %3, align 4
%5 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 0
store i32 1, i32* %5, align 4
%6 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 2, i32 0
store i32 92, i32* %6, align 4
br label %bb13
bb2: ; preds = %bb8
store i32 1, i32* %36, align 4
%7 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 2, i32 0
store i32 %14, i32* %7, align 4
br label %bb13
bb3: ; preds = %bb8
store i32 0, i32* %36, align 4
br label %bb13
bb4: ; preds = %start
%8 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %0, i32 0, i32 0
store i32 0, i32* %8, align 4
br label %bb13
bb5: ; preds = %start
%9 = getelementptr inbounds %"char::EscapeDefault", %"char::EscapeDefault"* %1, i32 0, i32 0, i32 2, i32 0
%10 = load i32, i32* %9, align 4, !ra
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment