Skip to content

Instantly share code, notes, and snippets.

@richo
Created June 29, 2015 06:32
Show Gist options
  • Select an option

  • Save richo/ceae595c0170f6e49d7c to your computer and use it in GitHub Desktop.

Select an option

Save richo/ceae595c0170f6e49d7c to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
; ModuleID = 'x86_64-apple-darwin/stage1/lib/rustlib/x86_64-apple-darwin/lib/core-7e44814b.0.no-opt.bc'
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-apple-darwin"
%str_slice = type { i8*, i64 }
%"marker::PhantomData<&'static u32>" = type {}
%closure.0 = type {}
%"marker::PhantomData<&'static mut u32>" = type {}
%closure.4 = type {}
%"fmt::Formatter" = type { i32, i32, i8, %"option::Option<usize>", %"option::Option<usize>", { i8*, void (i8*)** }, %"slice::Iter<fmt::ArgumentV1>", { %"fmt::ArgumentV1"*, i64 } }
%"option::Option<usize>" = type { i64, [0 x i64], [1 x i64] }
%"slice::Iter<fmt::ArgumentV1>" = type { %"fmt::ArgumentV1"*, %"fmt::ArgumentV1"*, %"marker::PhantomData<&'static fmt::ArgumentV1>" }
%"fmt::ArgumentV1" = type { %"fmt::Void"*, i8 (%"fmt::Void"*, %"fmt::Formatter"*)* }
%"fmt::Void" = type {}
%"marker::PhantomData<&'static fmt::ArgumentV1>" = type {}
%"fmt::rt::v1::Argument" = type { %"fmt::rt::v1::Position", %"fmt::rt::v1::FormatSpec" }
%"fmt::rt::v1::Position" = type { i64, [0 x i64], [1 x i64] }
%"fmt::rt::v1::FormatSpec" = type { i32, i8, i32, %"fmt::rt::v1::Count", %"fmt::rt::v1::Count" }
%"fmt::rt::v1::Count" = type { i64, [0 x i64], [1 x i64] }
%"marker::PhantomData<&'static u8>" = type {}
%closure.5 = type {}
%"marker::PhantomData<&'static mut u8>" = type {}
%closure.9 = type {}
%"num::flt2dec::decoder::Decoded" = type { i64, i64, i64, i16, i8 }
%closure.10 = type {}
%"num::flt2dec::Part" = type { i8, [7 x i8], [2 x i64] }
%"marker::PhantomData<&'static num::flt2dec::Part>" = type {}
%"marker::PhantomData<&'static char>" = type {}
%closure.12 = type {}
%closure.13 = type {}
%closure.14 = type {}
%closure.15 = type {}
%closure.16 = type {}
%"str::pattern::CharSearcher" = type { %"str::pattern::CharEqSearcher<char>" }
%"str::pattern::CharEqSearcher<char>" = type { i32, %str_slice, %"str::CharIndices", i8 }
%"str::CharIndices" = type { i64, %"str::Chars" }
%"str::Chars" = type { %"slice::Iter<u8>" }
%"slice::Iter<u8>" = type { i8*, i8*, %"marker::PhantomData<&'static u8>" }
%"str::pattern::CharSliceSearcher" = type { %"str::pattern::CharEqSearcher<&'static [char]>" }
%"str::pattern::CharEqSearcher<&'static [char]>" = type { { i32*, i64 }, %str_slice, %"str::CharIndices", i8 }
%"str::pattern::CharEqPattern<&'static [char]>" = type { { i32*, i64 } }
%closure.17 = type {}
%closure.18 = type {}
%closure.19 = type {}
%closure.20 = type {}
%closure.21 = type {}
%closure.22 = type {}
%closure.23 = type {}
%closure.28 = type {}
%"str::BytesDeref" = type {}
%"str::LinesAnyMap" = type {}
%closure.31 = type {}
%"fmt::num::Decimal" = type {}
%"fmt::num::Binary" = type {}
%"fmt::num::Octal" = type {}
%"fmt::num::LowerHex" = type {}
%"fmt::num::UpperHex" = type {}
%closure.32 = type {}
%"fmt::Write::write_fmt::Adapter<fmt::builders::PadAdapter>" = type { %"fmt::builders::PadAdapter"* }
%"fmt::builders::PadAdapter" = type { %"fmt::Formatter"*, i8 }
%"fmt::Arguments" = type { { %str_slice*, i64 }, %"option::Option<&'static [fmt::rt::v1::Argument]>", { %"fmt::ArgumentV1"*, i64 } }
%"option::Option<&'static [fmt::rt::v1::Argument]>" = type { { %"fmt::rt::v1::Argument"*, i64 } }
%"marker::PhantomData<&'static &'static str>" = type {}
%"marker::PhantomData<&'static fmt::rt::v1::Argument>" = type {}
%closure.47 = type {}
%closure.53 = type {}
%closure.55 = type {}
%"char::EscapeDefault" = type { %"char::EscapeDefaultState" }
%"char::EscapeDefaultState" = type { i8, [7 x i8], [3 x i64] }
%"result::Result<f32, num::ParseFloatError>" = type { i8, [3 x i8], [1 x i32] }
%"option::Option<(char, &'static str)>" = type { { i32, %str_slice } }
%"iter::Enumerate<str::Chars>" = type { %"str::Chars", i64 }
%"option::Option<(char, usize)>" = type { i64, [0 x i64], [2 x i64] }
%"option::Option<(usize, char)>" = type { i64, [0 x i64], [2 x i64] }
%"option::Option<u32>" = type { i32, [0 x i32], [1 x i32] }
%"ops::RangeFrom<usize>" = type { i64 }
%"result::Result<usize, num::ParseIntError>" = type { i8, [7 x i8], [1 x i64] }
%"num::ParseIntError" = type { i8 }
%"option::Option<char>" = type { i32, [0 x i32], [1 x i32] }
%closure = type { %"iter::Enumerate<str::Chars>"** }
%"result::Result<f64, num::ParseFloatError>" = type { i8, [7 x i8], [1 x i64] }
%"num::Wrapping<u8>" = type { i8 }
%"num::Wrapping<u16>" = type { i16 }
%"num::Wrapping<u32>" = type { i32 }
%"num::Wrapping<u64>" = type { i64 }
%"num::Wrapping<usize>" = type { i64 }
%"num::Wrapping<i8>" = type { i8 }
%"num::Wrapping<i16>" = type { i16 }
%"num::Wrapping<i32>" = type { i32 }
%"num::Wrapping<i64>" = type { i64 }
%"num::Wrapping<isize>" = type { i64 }
%"num::flt2dec::bignum::Big32x36" = type { i64, [36 x i32] }
%"slice::Iter<u32>" = type { i32*, i32*, %"marker::PhantomData<&'static u32>" }
%"ops::RangeTo<usize>" = type { i64 }
%"raw::Slice<u32>" = type { i32*, i64 }
%"ops::Range<usize>" = type { i64, i64 }
%"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>" = type { %"slice::IterMut<u32>", %"slice::Iter<u32>" }
%"slice::IterMut<u32>" = type { i32*, i32*, %"marker::PhantomData<&'static mut u32>" }
%"option::Option<(&'static mut u32, &'static u32)>" = type { { i32*, i32* } }
%closure.1 = type { %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"** }
%closure.2 = type { i32* }
%"iter::Rev<ops::Range<usize>>" = type { %"ops::Range<usize>" }
%"iter::Enumerate<slice::Iter<u32>>" = type { %"slice::Iter<u32>", i64 }
%"option::Option<(usize, &'static u32)>" = type { { i64, i32* } }
%closure.3 = type { %"iter::Enumerate<slice::Iter<u32>>"** }
%"iter::Rev<slice::IterMut<u32>>" = type { %"slice::IterMut<u32>" }
%"ops::RangeFull" = type {}
%"option::Option<cmp::Ordering>" = type { i8, [0 x i8], [1 x i8] }
%"iter::Rev<iter::Cloned<slice::Iter<u32>>>" = type { %"iter::Cloned<slice::Iter<u32>>" }
%"iter::Cloned<slice::Iter<u32>>" = type { %"slice::Iter<u32>" }
%"result::Result<(), fmt::Error>" = type { i8, [0 x i8], [0 x i8] }
%"fmt::Error" = type {}
%"iter::Rev<slice::Iter<u32>>" = type { %"slice::Iter<u32>" }
%"num::flt2dec::bignum::tests::Big8x3" = type { i64, [3 x i8] }
%"raw::Slice<u8>" = type { i8*, i64 }
%"iter::Zip<slice::IterMut<u8>, slice::Iter<u8>>" = type { %"slice::IterMut<u8>", %"slice::Iter<u8>" }
%"slice::IterMut<u8>" = type { i8*, i8*, %"marker::PhantomData<&'static mut u8>" }
%"option::Option<(&'static mut u8, &'static u8)>" = type { { i8*, i8* } }
%closure.6 = type { %"iter::Zip<slice::IterMut<u8>, slice::Iter<u8>>"** }
%closure.7 = type { i8* }
%"iter::Enumerate<slice::Iter<u8>>" = type { %"slice::Iter<u8>", i64 }
%"option::Option<(usize, &'static u8)>" = type { { i64, i8* } }
%closure.8 = type { %"iter::Enumerate<slice::Iter<u8>>"** }
%"iter::Rev<slice::IterMut<u8>>" = type { %"slice::IterMut<u8>" }
%"iter::Rev<iter::Cloned<slice::Iter<u8>>>" = type { %"iter::Cloned<slice::Iter<u8>>" }
%"iter::Cloned<slice::Iter<u8>>" = type { %"slice::Iter<u8>" }
%"option::Option<u8>" = type { i8, [0 x i8], [1 x i8] }
%"iter::Rev<slice::Iter<u8>>" = type { %"slice::Iter<u8>" }
%"fmt::builders::DebugStruct" = type { %"fmt::Formatter"*, %"result::Result<(), fmt::Error>", i8 }
%closure.34 = type { %"fmt::builders::DebugStruct"** }
%closure.33 = type { %"fmt::builders::DebugStruct"**, %str_slice*, { i8*, void (i8*)** }* }
%"num::flt2dec::decoder::FullDecoded" = type { i64, [0 x i64], [4 x i64] }
%"fmt::builders::DebugTuple" = type { %"fmt::Formatter"*, %"result::Result<(), fmt::Error>", i8 }
%closure.36 = type { %"fmt::builders::DebugTuple"** }
%closure.35 = type { %"fmt::builders::DebugTuple"**, { i8*, void (i8*)** }* }
%"option::Option<u64>" = type { i64, [0 x i64], [1 x i64] }
%"num::flt2dec::strategy::grisu::Fp" = type { i64, i16 }
%"raw::Slice<(u64, i16, i16)>" = type { { i64, i16, i16 }*, i64 }
%"option::Option<(usize, i16)>" = type { i64, [0 x i64], [2 x i64] }
%"fmt::builders::DebugList" = type { %"fmt::builders::DebugInner" }
%"fmt::builders::DebugInner" = type { %"fmt::Formatter"*, %"result::Result<(), fmt::Error>", i8 }
%closure.40 = type { %"fmt::builders::DebugList"** }
%"num::flt2dec::Formatted" = type { { i8*, i64 }, { %"num::flt2dec::Part"*, i64 } }
%"slice::Iter<num::flt2dec::Part>" = type { %"num::flt2dec::Part"*, %"num::flt2dec::Part"*, %"marker::PhantomData<&'static num::flt2dec::Part>" }
%"raw::Slice<num::flt2dec::Part>" = type { %"num::flt2dec::Part"*, i64 }
%"result::Result<i8, num::ParseIntError>" = type { i8, [0 x i8], [1 x i8] }
%"option::Option<i8>" = type { i8, [0 x i8], [1 x i8] }
%"result::Result<i16, num::ParseIntError>" = type { i8, [1 x i8], [1 x i16] }
%"option::Option<i16>" = type { i16, [0 x i16], [1 x i16] }
%"result::Result<i32, num::ParseIntError>" = type { i8, [3 x i8], [1 x i32] }
%"option::Option<i32>" = type { i32, [0 x i32], [1 x i32] }
%"result::Result<i64, num::ParseIntError>" = type { i8, [7 x i8], [1 x i64] }
%"option::Option<i64>" = type { i64, [0 x i64], [1 x i64] }
%"result::Result<isize, num::ParseIntError>" = type { i8, [7 x i8], [1 x i64] }
%"option::Option<isize>" = type { i64, [0 x i64], [1 x i64] }
%"result::Result<u8, num::ParseIntError>" = type { i8, [0 x i8], [1 x i8] }
%"result::Result<u16, num::ParseIntError>" = type { i8, [1 x i8], [1 x i16] }
%"option::Option<u16>" = type { i16, [0 x i16], [1 x i16] }
%"result::Result<u32, num::ParseIntError>" = type { i8, [3 x i8], [1 x i32] }
%"result::Result<u64, num::ParseIntError>" = type { i8, [7 x i8], [1 x i64] }
%"num::ParseFloatError" = type { i8 }
%"marker::NoCopy" = type {}
%closure.51 = type { %str_slice* }
%"any::TypeId" = type { i64 }
%"atomic::AtomicBool" = type { %"cell::UnsafeCell<usize>" }
%"cell::UnsafeCell<usize>" = type { i64 }
%"atomic::AtomicIsize" = type { %"cell::UnsafeCell<isize>" }
%"cell::UnsafeCell<isize>" = type { i64 }
%"atomic::AtomicUsize" = type { %"cell::UnsafeCell<usize>" }
%"option::Option<cell::BorrowRef>" = type { %"cell::BorrowRef" }
%"cell::BorrowRef" = type { %"cell::Cell<usize>"*, i8 }
%"cell::Cell<usize>" = type { %"cell::UnsafeCell<usize>" }
%"cell::BorrowRefMut" = type { %"cell::Cell<usize>"*, i8 }
%"option::Option<cell::BorrowRefMut>" = type { %"cell::BorrowRefMut" }
%"char::EscapeUnicode" = type { i32, %"char::EscapeUnicodeState" }
%"char::EscapeUnicodeState" = type { i64, [0 x i64], [1 x i64] }
%"raw::Slice<u16>" = type { i16*, i64 }
%"raw::TraitObject" = type { {}*, {}* }
%"str::pattern::SearchStep" = type { i64, [0 x i64], [2 x i64] }
%"slice::Iter<char>" = type { i32*, i32*, %"marker::PhantomData<&'static char>" }
%closure.11 = type { i32* }
%"raw::Slice<char>" = type { i32*, i64 }
%"str::pattern::StrSearcher" = type { %str_slice, %str_slice, i64, i64, %"str::pattern::State" }
%"str::pattern::State" = type { i64, [0 x i64], [2 x i64] }
%"str::CharRange" = type { i32, i64 }
%"iter::Rev<str::Chars>" = type { %"str::Chars" }
%"option::Option<(usize, usize)>" = type { i64, [0 x i64], [2 x i64] }
%"str::pattern::CharEqPattern<char>" = type { i32 }
%"result::Result<bool, str::ParseBoolError>" = type { i8, [0 x i8], [1 x i8] }
%"str::ParseBoolError" = type { {} }
%"str::Utf8Error" = type { i64 }
%"result::Result<&'static str, str::Utf8Error>" = type { i64, [0 x i64], [2 x i64] }
%"result::Result<(), str::Utf8Error>" = type { i64, [0 x i64], [1 x i64] }
%"str::Bytes" = type { %"iter::Map<slice::Iter<u8>, str::BytesDeref>" }
%"iter::Map<slice::Iter<u8>, str::BytesDeref>" = type { %"slice::Iter<u8>", %"str::BytesDeref" }
%closure.24 = type { %"iter::Map<slice::Iter<u8>, str::BytesDeref>"** }
%closure.25 = type { %"iter::Map<slice::Iter<u8>, str::BytesDeref>"** }
%"str::Lines" = type { %"str::SplitTerminator<char>" }
%"str::SplitTerminator<char>" = type { %"str::SplitInternal<char>" }
%"str::SplitInternal<char>" = type { i64, i64, %"str::pattern::CharSearcher", i8, i8 }
%"option::Option<&'static str>" = type { %str_slice }
%"str::LinesAny" = type { %"iter::Map<str::Lines, str::LinesAnyMap>" }
%"iter::Map<str::Lines, str::LinesAnyMap>" = type { %"str::Lines", %"str::LinesAnyMap" }
%closure.26 = type { %"iter::Map<str::Lines, str::LinesAnyMap>"** }
%closure.27 = type { %"iter::Map<str::Lines, str::LinesAnyMap>"** }
%"str::TwoWaySearcher" = type { i64, i64, i64, i64, i64 }
%"str::OldSearcher" = type { i64, [0 x i64], [5 x i64] }
%"str::OldMatchIndices" = type { %str_slice, %str_slice, %"str::OldSearcher" }
%"iter::Zip<str::Bytes, str::Bytes>" = type { %"str::Bytes", %"str::Bytes" }
%"option::Option<(u8, u8)>" = type { i8, [0 x i8], [2 x i8] }
%closure.29 = type { %"iter::Zip<str::Bytes, str::Bytes>"** }
%closure.30 = type { i8 }
%"str::Split<char>" = type { %"str::SplitInternal<char>" }
%"hash::sip::SipHasher" = type { i64, i64, i64, i64, i64, i64, i64, i64, i64 }
%"fmt::num::Radix" = type { i8 }
%closure.48 = type { %"option::Option<char>"*, i8*, %str_slice* }
%closure.49 = type { %str_slice* }
%closure.50 = type { %closure.48*, %str_slice* }
%"fmt::num::RadixFmt<isize, fmt::num::Radix>" = type { i64, %"fmt::num::Radix" }
%"fmt::num::RadixFmt<usize, fmt::num::Radix>" = type { i64, %"fmt::num::Radix" }
%"fmt::num::RadixFmt<i8, fmt::num::Radix>" = type { i8, %"fmt::num::Radix" }
%"fmt::num::RadixFmt<u8, fmt::num::Radix>" = type { i8, %"fmt::num::Radix" }
%"fmt::num::RadixFmt<i16, fmt::num::Radix>" = type { i16, %"fmt::num::Radix" }
%"fmt::num::RadixFmt<u16, fmt::num::Radix>" = type { i16, %"fmt::num::Radix" }
%"fmt::num::RadixFmt<i32, fmt::num::Radix>" = type { i32, %"fmt::num::Radix" }
%"fmt::num::RadixFmt<u32, fmt::num::Radix>" = type { i32, %"fmt::num::Radix" }
%"fmt::num::RadixFmt<i64, fmt::num::Radix>" = type { i64, %"fmt::num::Radix" }
%"fmt::num::RadixFmt<u64, fmt::num::Radix>" = type { i64, %"fmt::num::Radix" }
%"slice::Iter<&'static str>" = type { %str_slice*, %str_slice*, %"marker::PhantomData<&'static &'static str>" }
%"iter::Zip<slice::Iter<fmt::ArgumentV1>, &'static mut slice::Iter<&'static str>>" = type { %"slice::Iter<fmt::ArgumentV1>", %"slice::Iter<&'static str>"* }
%"option::Option<(&'static fmt::ArgumentV1, &'static &'static str)>" = type { { %"fmt::ArgumentV1"*, %str_slice* } }
%"iter::Zip<slice::Iter<fmt::rt::v1::Argument>, &'static mut slice::Iter<&'static str>>" = type { %"slice::Iter<fmt::rt::v1::Argument>", %"slice::Iter<&'static str>"* }
%"slice::Iter<fmt::rt::v1::Argument>" = type { %"fmt::rt::v1::Argument"*, %"fmt::rt::v1::Argument"*, %"marker::PhantomData<&'static fmt::rt::v1::Argument>" }
%"option::Option<(&'static fmt::rt::v1::Argument, &'static &'static str)>" = type { { %"fmt::rt::v1::Argument"*, %str_slice* } }
%closure.37 = type { %"fmt::builders::DebugInner"**, { i8*, void (i8*)** }* }
%closure.38 = type { %"fmt::builders::DebugInner"**, %str_slice* }
%"fmt::builders::DebugSet" = type { %"fmt::builders::DebugInner" }
%closure.39 = type { %"fmt::builders::DebugSet"** }
%"fmt::builders::DebugMap" = type { %"fmt::Formatter"*, %"result::Result<(), fmt::Error>", i8 }
%closure.41 = type { %"fmt::builders::DebugMap"**, { i8*, void (i8*)** }*, { i8*, void (i8*)** }* }
%closure.42 = type { %"fmt::builders::DebugMap"**, %str_slice* }
%"raw::Slice<fmt::ArgumentV1>" = type { %"fmt::ArgumentV1"*, i64 }
%"raw::Slice<&'static str>" = type { %str_slice*, i64 }
%closure.43 = type { %"iter::Zip<slice::Iter<fmt::ArgumentV1>, &'static mut slice::Iter<&'static str>>"** }
%closure.44 = type { %"fmt::ArgumentV1"* }
%"raw::Slice<fmt::rt::v1::Argument>" = type { %"fmt::rt::v1::Argument"*, i64 }
%closure.45 = type { %"iter::Zip<slice::Iter<fmt::rt::v1::Argument>, &'static mut slice::Iter<&'static str>>"** }
%closure.46 = type { %"fmt::rt::v1::Argument"* }
%closure.52 = type { %"num::flt2dec::Formatted"* }
%"iter::FlatMap<str::Chars, char::EscapeDefault, [closure((char,)) -> char::EscapeDefault]>" = type { %"str::Chars", %closure.53, %"option::Option<char::EscapeDefault>", %"option::Option<char::EscapeDefault>" }
%"option::Option<char::EscapeDefault>" = type { i64, [0 x i64], [4 x i64] }
%closure.54 = type { %"iter::FlatMap<str::Chars, char::EscapeDefault, [closure((char,)) -> char::EscapeDefault]>"** }
@const43511 = internal unnamed_addr constant float 0x7FF8000000000000
@const43512 = internal unnamed_addr constant float 0x7FF0000000000000
@const43513 = internal unnamed_addr constant float 0xFFF0000000000000
@const43514 = internal unnamed_addr constant float 0.000000e+00
@const43515 = internal unnamed_addr constant float -0.000000e+00
@const43516 = internal unnamed_addr constant float 1.000000e+00
@str43517 = internal constant [3 x i8] c"inf"
@str43518 = internal constant [4 x i8] c"-inf"
@str43519 = internal constant [3 x i8] c"NaN"
@str43520 = internal constant [0 x i8] zeroinitializer
@const43521 = internal unnamed_addr constant { i8, { i8 }, [6 x i8] } { i8 1, { i8 } zeroinitializer, [6 x i8] undef }
@const43522 = internal unnamed_addr constant i8 0
@const43523 = internal unnamed_addr constant i8 1
@const43524 = internal unnamed_addr constant i64 0
@const43525 = internal unnamed_addr constant { i64, [16 x i8] } { i64 0, [16 x i8] undef }
@const43528 = internal unnamed_addr constant i64 1
@const43529 = internal unnamed_addr constant { i8, { i8 }, [6 x i8] } { i8 1, { i8 } { i8 1 }, [6 x i8] undef }
@const43530 = internal unnamed_addr constant i32 10
@const43531 = internal unnamed_addr constant i32 16
@const43532 = internal unnamed_addr constant float 1.000000e+01
@const43533 = internal unnamed_addr constant float 2.000000e+00
@const43534 = internal unnamed_addr constant i8 4
@const43535 = internal unnamed_addr constant i32 8388607
@const43536 = internal unnamed_addr constant i32 2139095040
@const43537 = internal unnamed_addr constant i8 2
@const43538 = internal unnamed_addr constant i8 3
@const43539 = internal unnamed_addr constant i32 31
@const43540 = internal unnamed_addr constant i32 0
@const43541 = internal unnamed_addr constant i8 -1
@const43542 = internal unnamed_addr constant i32 23
@const43543 = internal unnamed_addr constant i32 255
@const43544 = internal unnamed_addr constant i16 0
@const43545 = internal unnamed_addr constant i32 1
@const43546 = internal unnamed_addr constant i32 8388608
@const43547 = internal unnamed_addr constant i16 150
@const43548 = internal unnamed_addr constant float 0x400921FB60000000
@const43549 = internal unnamed_addr constant float 0x404CA5DC00000000
@const43550 = internal unnamed_addr constant float 1.800000e+02
@const43551 = internal unnamed_addr constant double 0x7FF8000000000000
@const43552 = internal unnamed_addr constant double 0x7FF0000000000000
@const43553 = internal unnamed_addr constant double 0xFFF0000000000000
@const43554 = internal unnamed_addr constant double 0.000000e+00
@const43555 = internal unnamed_addr constant double -0.000000e+00
@const43556 = internal unnamed_addr constant double 1.000000e+00
@const43557 = internal unnamed_addr constant { i8, { i8 }, [14 x i8] } { i8 1, { i8 } zeroinitializer, [14 x i8] undef }
@const43558 = internal unnamed_addr constant { i8, { i8 }, [14 x i8] } { i8 1, { i8 } { i8 1 }, [14 x i8] undef }
@const43559 = internal unnamed_addr constant double 1.000000e+01
@const43560 = internal unnamed_addr constant double 2.000000e+00
@const43561 = internal unnamed_addr constant i64 4503599627370495
@const43562 = internal unnamed_addr constant i64 9218868437227405312
@const43563 = internal unnamed_addr constant i32 63
@const43564 = internal unnamed_addr constant i32 52
@const43565 = internal unnamed_addr constant i64 2047
@const43566 = internal unnamed_addr constant i64 4503599627370496
@const43567 = internal unnamed_addr constant i16 1075
@const43568 = internal unnamed_addr constant double 0x400921FB54442D18
@const43569 = internal unnamed_addr constant double 0x404CA5DC1A63C1F8
@const43570 = internal unnamed_addr constant double 1.800000e+02
@const43571 = internal unnamed_addr constant i64 8
@const43572 = internal unnamed_addr constant i8 -128
@str43573 = internal constant [27 x i8] c"attempted to divide by zero"
@str43575 = internal constant [27 x i8] c"src/libcore/num/wrapping.rs"
@panic_loc43576 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43573, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43575, i32 0, i32 0), i64 27 }, i32 207 }
@str43577 = internal constant [33 x i8] c"attempted to divide with overflow"
@panic_loc43578 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43577, i32 0, i32 0), i64 33 }, %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43575, i32 0, i32 0), i64 27 }, i32 207 }
@const43579 = internal unnamed_addr constant { i8, i1 } { i8 0, i1 true }
@str43580 = internal constant [42 x i8] c"attempted remainder with a divisor of zero"
@panic_loc43581 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43580, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43575, i32 0, i32 0), i64 27 }, i32 215 }
@str43582 = internal constant [33 x i8] c"attempted remainder with overflow"
@panic_loc43583 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43582, i32 0, i32 0), i64 33 }, %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43575, i32 0, i32 0), i64 27 }, i32 215 }
@const43584 = internal unnamed_addr constant i32 7
@const43585 = internal unnamed_addr constant { i8, i1 } { i8 -128, i1 true }
@const43586 = internal unnamed_addr constant i64 16
@const43587 = internal unnamed_addr constant i16 -32768
@const43588 = internal unnamed_addr constant i16 -1
@const43589 = internal unnamed_addr constant { i16, i1, [1 x i8] } { i16 0, i1 true, [1 x i8] undef }
@const43590 = internal unnamed_addr constant i32 15
@const43591 = internal unnamed_addr constant { i16, i1, [1 x i8] } { i16 -32768, i1 true, [1 x i8] undef }
@const43592 = internal unnamed_addr constant i64 32
@const43593 = internal unnamed_addr constant i32 -2147483648
@const43594 = internal unnamed_addr constant i32 -1
@const43595 = internal unnamed_addr constant { i32, i1, [3 x i8] } { i32 0, i1 true, [3 x i8] undef }
@const43596 = internal unnamed_addr constant { i32, i1, [3 x i8] } { i32 -2147483648, i1 true, [3 x i8] undef }
@const43597 = internal unnamed_addr constant i64 64
@const43598 = internal unnamed_addr constant i64 -9223372036854775808
@const43599 = internal unnamed_addr constant i64 -1
@const43600 = internal unnamed_addr constant { i64, i1, [7 x i8] } { i64 0, i1 true, [7 x i8] undef }
@const43601 = internal unnamed_addr constant { i64, i1, [7 x i8] } { i64 -9223372036854775808, i1 true, [7 x i8] undef }
@panic_loc43602 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43573, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43575, i32 0, i32 0), i64 27 }, i32 266 }
@panic_loc43603 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43580, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43575, i32 0, i32 0), i64 27 }, i32 270 }
@const43604 = internal unnamed_addr constant i16 1
@const43605 = internal unnamed_addr constant i64 1292913986
@const43606 = internal unnamed_addr constant i32 32
@str43607 = internal constant [33 x i8] c"src/libcore/num/flt2dec/bignum.rs"
@panic_loc43608 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43573, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 80 }
@panic_loc43609 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43580, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 80 }
@str43610 = internal constant [32 x i8] c"assertion failed: borrow < other"
@_ZN3num7flt2dec6bignum10u8.FullOps12full_div_rem14_MSG_FILE_LINE20h6e428c54043941afxdcE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([32 x i8], [32 x i8]* @str43610, i32 0, i32 0), i64 32 }, %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 87, [4 x i8] undef }
@_ZN3num7flt2dec6bignum11u16.FullOps12full_div_rem14_MSG_FILE_LINE20h6e428c54043941afxhcE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([32 x i8], [32 x i8]* @str43610, i32 0, i32 0), i64 32 }, %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 87, [4 x i8] undef }
@_ZN3num7flt2dec6bignum11u32.FullOps12full_div_rem14_MSG_FILE_LINE20h6e428c54043941afxlcE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([32 x i8], [32 x i8]* @str43610, i32 0, i32 0), i64 32 }, %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 87, [4 x i8] undef }
@panic_bounds_check_loc43611 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 119 }
@panic_bounds_check_loc43612 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 130 }
@const43613 = internal unnamed_addr constant i32* null
@const43614 = internal unnamed_addr constant i8* null
@const43615 = internal unnamed_addr constant i32* inttoptr (i64 1 to i32*)
@const43618 = internal unnamed_addr constant %"marker::PhantomData<&'static u32>" zeroinitializer
@str43619 = internal constant [42 x i8] c"assertion failed: index.start <= index.end"
@str43620 = internal constant [20 x i8] c"src/libcore/slice.rs"
@"_ZN5slice54_$u5b$T$u5d$.ops..Index$LT$ops..Range$LT$usize$GT$$GT$5index14_MSG_FILE_LINE20h6e428c54043941af1QGE" = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43619, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @str43620, i32 0, i32 0), i64 20 }, i32 543, [4 x i8] undef }
@str43621 = internal constant [41 x i8] c"assertion failed: index.end <= self.len()"
@"_ZN5slice54_$u5b$T$u5d$.ops..Index$LT$ops..Range$LT$usize$GT$$GT$5index14_MSG_FILE_LINE20h6e428c54043941afuRGE" = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43621, i32 0, i32 0), i64 41 }, %str_slice { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @str43620, i32 0, i32 0), i64 20 }, i32 544, [4 x i8] undef }
@const43622 = internal unnamed_addr constant %closure.0 zeroinitializer
@const43623 = internal unnamed_addr constant %"marker::PhantomData<&'static mut u32>" zeroinitializer
@"_ZN5slice57_$u5b$T$u5d$.ops..IndexMut$LT$ops..Range$LT$usize$GT$$GT$9index_mut14_MSG_FILE_LINE20h6e428c54043941afUTGE" = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43619, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @str43620, i32 0, i32 0), i64 20 }, i32 585, [4 x i8] undef }
@"_ZN5slice57_$u5b$T$u5d$.ops..IndexMut$LT$ops..Range$LT$usize$GT$$GT$9index_mut14_MSG_FILE_LINE20h6e428c54043941afnUGE" = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43621, i32 0, i32 0), i64 41 }, %str_slice { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @str43620, i32 0, i32 0), i64 20 }, i32 586, [4 x i8] undef }
@const43626 = internal unnamed_addr constant { { i8*, i8* } } zeroinitializer
@panic_bounds_check_loc43632 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 155 }
@str43633 = internal constant [26 x i8] c"assertion failed: noborrow"
@_ZN3num7flt2dec6bignum8Big32x363sub14_MSG_FILE_LINE20h6e428c54043941afHrcE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @str43633, i32 0, i32 0), i64 26 }, %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 349, [4 x i8] undef }
@panic_bounds_check_loc43634 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 192 }
@panic_loc43635 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43573, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 204 }
@panic_loc43636 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43580, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 205 }
@const43637 = internal unnamed_addr constant i64 36
@str43638 = internal constant [29 x i8] c"assertion failed: digits < 36"
@_ZN3num7flt2dec6bignum8Big32x368mul_pow214_MSG_FILE_LINE20h6e428c54043941afoucE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str43638, i32 0, i32 0), i64 29 }, %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 349, [4 x i8] undef }
@const43639 = internal unnamed_addr constant { i64, [8 x i8] } { i64 0, [8 x i8] undef }
@panic_bounds_check_loc43640 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 213 }
@str43641 = internal constant [36 x i8] c"assertion failed: index < self.len()"
@"_ZN5slice39_$u5b$T$u5d$.ops..IndexMut$LT$usize$GT$9index_mut14_MSG_FILE_LINE20h6e428c54043941af0PGE" = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([36 x i8], [36 x i8]* @str43641, i32 0, i32 0), i64 36 }, %str_slice { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @str43620, i32 0, i32 0), i64 20 }, i32 531, [4 x i8] undef }
@"_ZN5slice36_$u5b$T$u5d$.ops..Index$LT$usize$GT$5index14_MSG_FILE_LINE20h6e428c54043941af5OGE" = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([36 x i8], [36 x i8]* @str43641, i32 0, i32 0), i64 36 }, %str_slice { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @str43620, i32 0, i32 0), i64 20 }, i32 521, [4 x i8] undef }
@panic_bounds_check_loc43642 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 225 }
@panic_bounds_check_loc43643 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 232 }
@str43644 = internal constant [66 x i8] c"assertion failed: self.base[36 - digits..].iter().all(|&v| v == 0)"
@_ZN3num7flt2dec6bignum8Big32x368mul_pow214_MSG_FILE_LINE20h6e428c54043941af8ucE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([66 x i8], [66 x i8]* @str43644, i32 0, i32 0), i64 66 }, %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 349, [4 x i8] undef }
@str43645 = internal constant [86 x i8] c"assertion failed: bits == 0 || (self.base[36 - digits - 1] >> (digitbits - bits)) == 0"
@_ZN3num7flt2dec6bignum8Big32x368mul_pow214_MSG_FILE_LINE20h6e428c54043941afUvcE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([86 x i8], [86 x i8]* @str43645, i32 0, i32 0), i64 86 }, %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 349, [4 x i8] undef }
@const43648 = internal unnamed_addr constant { { i64, i8* } } zeroinitializer
@str43649 = internal constant [27 x i8] c"assertion failed: other > 0"
@_ZN3num7flt2dec6bignum8Big32x3613div_rem_small14_MSG_FILE_LINE20h6e428c54043941afuDcE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43649, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 349, [4 x i8] undef }
@const43652 = internal unnamed_addr constant { i32, [4 x i8] } { i32 0, [4 x i8] undef }
@const43653 = internal unnamed_addr constant %closure.4 zeroinitializer
@const43654 = internal unnamed_addr constant i64 2
@ref43655 = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str43520, i32 0, i32 0), i64 0 }]
@_ZN3num7flt2dec6bignum21Big32x36...fmt..Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69ayHcE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@const43656 = internal unnamed_addr constant i8 (i32*, %"fmt::Formatter"*)* @_ZN3fmt3num17u32.fmt..LowerHex3fmt20he5385789b8dee095CoME
@ref43657 = internal unnamed_addr constant { { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } } } { { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } } { { i64, [8 x i8] } { i64 0, [8 x i8] undef }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } { i32 32, i8 3, i32 4, { i64, [8 x i8] } { i64 3, [8 x i8] undef }, { i64, [8 x i8] } { i64 3, [8 x i8] undef } } } }
@_ZN3num7flt2dec6bignum21Big32x36...fmt..Debug3fmt16__STATIC_FMTARGS20h43474a3853fea22a3HcE = internal constant { %"fmt::rt::v1::Argument"*, i64 } { %"fmt::rt::v1::Argument"* bitcast ({ { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } } }* @ref43657 to %"fmt::rt::v1::Argument"*), i64 1 }
@str43658 = internal constant [1 x i8] c"_"
@ref43659 = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str43658, i32 0, i32 0), i64 1 }]
@_ZN3num7flt2dec6bignum21Big32x36...fmt..Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69acJcE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43659, i32 0, i32 0), i64 1 }
@ref43660 = internal unnamed_addr constant { { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, i64, [0 x i8] } } } } { { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, i64, [0 x i8] } } } { { i64, [8 x i8] } { i64 0, [8 x i8] undef }, { i32, i8, i32, { i64, [8 x i8] }, { i64, i64, [0 x i8] } } { i32 32, i8 3, i32 8, { i64, [8 x i8] } { i64 3, [8 x i8] undef }, { i64, i64, [0 x i8] } { i64 1, i64 1, [0 x i8] undef } } } }
@_ZN3num7flt2dec6bignum21Big32x36...fmt..Debug3fmt16__STATIC_FMTARGS20h43474a3853fea22aIJcE = internal constant { %"fmt::rt::v1::Argument"*, i64 } { %"fmt::rt::v1::Argument"* bitcast ({ { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, i64, [0 x i8] } } } }* @ref43660 to %"fmt::rt::v1::Argument"*), i64 1 }
@const43661 = internal unnamed_addr constant { i8, {}, [0 x i8] } { i8 0, {} zeroinitializer, [0 x i8] undef }
@const43662 = internal unnamed_addr constant i8* inttoptr (i64 1 to i8*)
@const43665 = internal unnamed_addr constant %"marker::PhantomData<&'static u8>" zeroinitializer
@const43666 = internal unnamed_addr constant %closure.5 zeroinitializer
@const43667 = internal unnamed_addr constant %"marker::PhantomData<&'static mut u8>" zeroinitializer
@_ZN3num7flt2dec6bignum5tests6Big8x33sub14_MSG_FILE_LINE20h6e428c54043941afrPcE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @str43633, i32 0, i32 0), i64 26 }, %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 355, [4 x i8] undef }
@const43675 = internal unnamed_addr constant i64 3
@str43676 = internal constant [28 x i8] c"assertion failed: digits < 3"
@_ZN3num7flt2dec6bignum5tests6Big8x38mul_pow214_MSG_FILE_LINE20h6e428c54043941af8RcE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str43676, i32 0, i32 0), i64 28 }, %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 355, [4 x i8] undef }
@str43677 = internal constant [65 x i8] c"assertion failed: self.base[3 - digits..].iter().all(|&v| v == 0)"
@_ZN3num7flt2dec6bignum5tests6Big8x38mul_pow214_MSG_FILE_LINE20h6e428c54043941afSScE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([65 x i8], [65 x i8]* @str43677, i32 0, i32 0), i64 65 }, %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 355, [4 x i8] undef }
@str43678 = internal constant [85 x i8] c"assertion failed: bits == 0 || (self.base[3 - digits - 1] >> (digitbits - bits)) == 0"
@_ZN3num7flt2dec6bignum5tests6Big8x38mul_pow214_MSG_FILE_LINE20h6e428c54043941afETcE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([85 x i8], [85 x i8]* @str43678, i32 0, i32 0), i64 85 }, %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 355, [4 x i8] undef }
@_ZN3num7flt2dec6bignum5tests6Big8x313div_rem_small14_MSG_FILE_LINE20h6e428c54043941afe1cE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43649, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43607, i32 0, i32 0), i64 33 }, i32 355, [4 x i8] undef }
@const43683 = internal unnamed_addr constant { i8, [1 x i8] } { i8 0, [1 x i8] undef }
@const43684 = internal unnamed_addr constant %closure.9 zeroinitializer
@_ZN3num7flt2dec6bignum5tests19Big8x3...fmt..Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69ai5cE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@const43685 = internal unnamed_addr constant i8 (i8*, %"fmt::Formatter"*)* @_ZN3fmt3num16u8.fmt..LowerHex3fmt20hc1fa3cc9d04e27a70cME
@_ZN3num7flt2dec6bignum5tests19Big8x3...fmt..Debug3fmt16__STATIC_FMTARGS20h43474a3853fea22aN5cE = internal constant { %"fmt::rt::v1::Argument"*, i64 } { %"fmt::rt::v1::Argument"* bitcast ({ { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } } }* @ref43657 to %"fmt::rt::v1::Argument"*), i64 1 }
@_ZN3num7flt2dec6bignum5tests19Big8x3...fmt..Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aW6cE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43659, i32 0, i32 0), i64 1 }
@_ZN3num7flt2dec6bignum5tests19Big8x3...fmt..Debug3fmt16__STATIC_FMTARGS20h43474a3853fea22as7cE = internal constant { %"fmt::rt::v1::Argument"*, i64 } { %"fmt::rt::v1::Argument"* bitcast ({ { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, i64, [0 x i8] } } } }* @ref43660 to %"fmt::rt::v1::Argument"*), i64 1 }
@str43686 = internal constant [7 x i8] c"Decoded"
@const43687 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @str43686, i32 0, i32 0), i64 7 }
@str43688 = internal constant [4 x i8] c"mant"
@const43689 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str43688, i32 0, i32 0), i64 4 }
@vtable43692 = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 (i64**, %"fmt::Formatter"*)* } { void (i8*)* @_ZN2i810drop.4369017hf93d5aa1ca3b13d4E, i64 8, i64 8, i8 (i64**, %"fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt21h17041635676690956572E" }
@str43693 = internal constant [5 x i8] c"minus"
@const43694 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str43693, i32 0, i32 0), i64 5 }
@str43695 = internal constant [4 x i8] c"plus"
@const43696 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str43695, i32 0, i32 0), i64 4 }
@str43697 = internal constant [3 x i8] c"exp"
@const43698 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @str43697, i32 0, i32 0), i64 3 }
@vtable43699 = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 (i16**, %"fmt::Formatter"*)* } { void (i8*)* @_ZN2i810drop.4369017hf93d5aa1ca3b13d4E, i64 8, i64 8, i8 (i16**, %"fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt20h1013388175772577210E" }
@str43700 = internal constant [9 x i8] c"inclusive"
@const43701 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @str43700, i32 0, i32 0), i64 9 }
@vtable43702 = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 (i8**, %"fmt::Formatter"*)* } { void (i8*)* @_ZN2i810drop.4369017hf93d5aa1ca3b13d4E, i64 8, i64 8, i8 (i8**, %"fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt19h683225509240654250E" }
@str43703 = internal constant [3 x i8] c"Nan"
@const43704 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @str43703, i32 0, i32 0), i64 3 }
@str43705 = internal constant [8 x i8] c"Infinite"
@const43706 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @str43705, i32 0, i32 0), i64 8 }
@str43707 = internal constant [4 x i8] c"Zero"
@const43708 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str43707, i32 0, i32 0), i64 4 }
@str43709 = internal constant [6 x i8] c"Finite"
@const43710 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str43709, i32 0, i32 0), i64 6 }
@vtable43711 = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 (%"num::flt2dec::decoder::Decoded"**, %"fmt::Formatter"*)* } { void (i8*)* @_ZN2i810drop.4369017hf93d5aa1ca3b13d4E, i64 8, i64 8, i8 (%"num::flt2dec::decoder::Decoded"**, %"fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt20h7637840904210903642E" }
@const43712 = internal unnamed_addr constant { i64, [32 x i8] } { i64 0, [32 x i8] undef }
@const43713 = internal unnamed_addr constant { i64, [32 x i8] } { i64 1, [32 x i8] undef }
@const43714 = internal unnamed_addr constant { i64, [32 x i8] } { i64 2, [32 x i8] undef }
@const43715 = internal unnamed_addr constant float 0x3810000000000000
@const43716 = internal unnamed_addr constant double 0x10000000000000
@_ZN3num7flt2dec8strategy6dragon5POW1020h93256e22e2f5732clkdE = 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]
@_ZN3num7flt2dec8strategy6dragon8TWOPOW1020h93256e22e2f5732cAkdE = internal constant [10 x i32] [i32 2, i32 20, i32 200, i32 2000, i32 20000, i32 200000, i32 2000000, i32 20000000, i32 200000000, i32 2000000000]
@_ZN3num7flt2dec8strategy6dragon9POW10TO1620hf0bca70d3d708dd2PkdE = internal constant [2 x i32] [i32 1874919424, i32 2328306]
@_ZN3num7flt2dec8strategy6dragon9POW10TO3220hd3a955cedaf7f84dWkdE = internal constant [4 x i32] [i32 0, i32 -2052264063, i32 762134875, i32 1262]
@_ZN3num7flt2dec8strategy6dragon9POW10TO6420h4c96b9e6888465ce5kdE = internal constant [7 x i32] [i32 0, i32 0, i32 -1083564287, i32 1849224548, i32 -626550803, i32 -381683212, i32 1593091]
@_ZN3num7flt2dec8strategy6dragon10POW10TO12820h9b6bb1c60e7824b7hldE = 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]
@_ZN3num7flt2dec8strategy6dragon10POW10TO25620h337297416a9ce319AldE = 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]
@const43717 = internal unnamed_addr constant i64 7
@str43718 = internal constant [42 x i8] c"src/libcore/num/flt2dec/strategy/dragon.rs"
@panic_bounds_check_loc43719 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 48 }
@const43720 = internal unnamed_addr constant i64 128
@const43721 = internal unnamed_addr constant i64 256
@str43722 = internal constant [25 x i8] c"assertion failed: n < 512"
@_ZN3num7flt2dec8strategy6dragon9mul_pow1014_MSG_FILE_LINE20h6e428c54043941afzmdE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @str43722, i32 0, i32 0), i64 25 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 46, [4 x i8] undef }
@panic_bounds_check_loc43723 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 60 }
@panic_bounds_check_loc43724 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 63 }
@const43725 = internal unnamed_addr constant i8 8
@str43726 = internal constant [29 x i8] c"assertion failed: *x < *scale"
@_ZN3num7flt2dec8strategy6dragon15div_rem_upto_1614_MSG_FILE_LINE20h6e428c54043941afXqdE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str43726, i32 0, i32 0), i64 29 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 75, [4 x i8] undef }
@str43727 = internal constant [28 x i8] c"assertion failed: d.mant > 0"
@_ZN3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE20h6e428c54043941afHrdE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str43727, i32 0, i32 0), i64 28 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 93, [4 x i8] undef }
@str43728 = internal constant [29 x i8] c"assertion failed: d.minus > 0"
@_ZN3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE20h6e428c54043941af9rdE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str43728, i32 0, i32 0), i64 29 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 94, [4 x i8] undef }
@str43729 = internal constant [28 x i8] c"assertion failed: d.plus > 0"
@_ZN3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE20h6e428c54043941afBsdE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str43729, i32 0, i32 0), i64 28 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 95, [4 x i8] undef }
@str43730 = internal constant [54 x i8] c"assertion failed: d.mant.checked_add(d.plus).is_some()"
@_ZN3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE20h6e428c54043941af5sdE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([54 x i8], [54 x i8]* @str43730, i32 0, i32 0), i64 54 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 96, [4 x i8] undef }
@str43731 = internal constant [55 x i8] c"assertion failed: d.mant.checked_sub(d.minus).is_some()"
@_ZN3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE20h6e428c54043941afztdE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([55 x i8], [55 x i8]* @str43731, i32 0, i32 0), i64 55 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 97, [4 x i8] undef }
@const43732 = internal unnamed_addr constant i64 17
@str43733 = internal constant [45 x i8] c"assertion failed: buf.len() >= MAX_SIG_DIGITS"
@_ZN3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE20h6e428c54043941af1tdE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str43733, i32 0, i32 0), i64 45 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 98, [4 x i8] undef }
@const43734 = internal unnamed_addr constant i8 48
@panic_bounds_check_loc43735 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 166 }
@panic_bounds_check_loc43736 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 220 }
@str43737 = internal constant [24 x i8] c"assertion failed: d < 10"
@_ZN3num7flt2dec8strategy6dragon15format_shortest14_MSG_FILE_LINE20h6e428c54043941af2xdE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([24 x i8], [24 x i8]* @str43737, i32 0, i32 0), i64 24 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 165, [4 x i8] undef }
@_ZN3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE20h6e428c54043941afkAdE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str43727, i32 0, i32 0), i64 28 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 231, [4 x i8] undef }
@_ZN3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE20h6e428c54043941afMAdE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str43728, i32 0, i32 0), i64 29 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 232, [4 x i8] undef }
@_ZN3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE20h6e428c54043941afeBdE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str43729, i32 0, i32 0), i64 28 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 233, [4 x i8] undef }
@_ZN3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE20h6e428c54043941afIBdE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([54 x i8], [54 x i8]* @str43730, i32 0, i32 0), i64 54 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 234, [4 x i8] undef }
@_ZN3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE20h6e428c54043941afcCdE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([55 x i8], [55 x i8]* @str43731, i32 0, i32 0), i64 55 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 235, [4 x i8] undef }
@panic_bounds_check_loc43738 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 303 }
@const43739 = internal unnamed_addr constant i32 5
@panic_bounds_check_loc43740 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 322 }
@str43741 = internal constant [30 x i8] c"assertion failed: mant < scale"
@_ZN3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE20h6e428c54043941afuHdE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43741, i32 0, i32 0), i64 30 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 301, [4 x i8] undef }
@_ZN3num7flt2dec8strategy6dragon12format_exact14_MSG_FILE_LINE20h6e428c54043941afZHdE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([24 x i8], [24 x i8]* @str43737, i32 0, i32 0), i64 24 }, %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43718, i32 0, i32 0), i64 42 }, i32 302, [4 x i8] undef }
@str43742 = internal constant [2 x i8] c"Fp"
@const43743 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str43742, i32 0, i32 0), i64 2 }
@str43744 = internal constant [1 x i8] c"f"
@const43745 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str43744, i32 0, i32 0), i64 1 }
@str43746 = internal constant [1 x i8] c"e"
@const43747 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str43746, i32 0, i32 0), i64 1 }
@const43748 = internal unnamed_addr constant i64 4294967295
@const43749 = internal unnamed_addr constant i64 2147483648
@const43750 = internal unnamed_addr constant i16 64
@const43751 = internal unnamed_addr constant i16 32
@const43752 = internal unnamed_addr constant i32 48
@const43753 = internal unnamed_addr constant i16 16
@const43754 = internal unnamed_addr constant i32 56
@const43755 = internal unnamed_addr constant i32 8
@const43756 = internal unnamed_addr constant i16 8
@const43757 = internal unnamed_addr constant i32 60
@const43758 = internal unnamed_addr constant i32 4
@const43759 = internal unnamed_addr constant i16 4
@const43760 = internal unnamed_addr constant i32 62
@const43761 = internal unnamed_addr constant i32 2
@const43762 = internal unnamed_addr constant i16 2
@str43763 = internal constant [32 x i8] c"assertion failed: f >= (1 >> 63)"
@str43764 = internal constant [41 x i8] c"src/libcore/num/flt2dec/strategy/grisu.rs"
@_ZN3num7flt2dec8strategy5grisu2Fp9normalize14_MSG_FILE_LINE20h6e428c54043941afpPdE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([32 x i8], [32 x i8]* @str43763, i32 0, i32 0), i64 32 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 62, [4 x i8] undef }
@str43765 = internal constant [29 x i8] c"assertion failed: edelta >= 0"
@_ZN3num7flt2dec8strategy5grisu2Fp12normalize_to14_MSG_FILE_LINE20h6e428c54043941afaQdE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str43765, i32 0, i32 0), i64 29 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 70, [4 x i8] undef }
@str43766 = internal constant [44 x i8] c"assertion failed: `(left == right)` (left: `"
@str43767 = internal constant [11 x i8] c"`, right: `"
@str43768 = internal constant [2 x i8] c"`)"
@ref43769 = internal unnamed_addr constant [3 x %str_slice] [%str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str43766, i32 0, i32 0), i64 44 }, %str_slice { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @str43767, i32 0, i32 0), i64 11 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str43768, i32 0, i32 0), i64 2 }]
@_ZN3num7flt2dec8strategy5grisu2Fp12normalize_to15__STATIC_FMTSTR20h9a0d40d93917c69alRdE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref43769, i32 0, i32 0), i64 3 }
@const43770 = internal unnamed_addr constant i8 (i64*, %"fmt::Formatter"*)* @_ZN3fmt3num14u64.fmt..Debug3fmt20h0924acd5913f48feXvME
@_ZN3num7flt2dec8strategy5grisu2Fp12normalize_to10_FILE_LINE20hd3cd7f37ba62d99d5QdE = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 72, [4 x i8] undef }
@_ZN3num7flt2dec8strategy5grisu12CACHED_POW1020h0324b830f4821be3bSdE = 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 } }
@const43771 = internal unnamed_addr constant i16 -1087
@const43772 = internal unnamed_addr constant i32 -1087
@const43773 = internal unnamed_addr constant i16 1039
@const43774 = internal unnamed_addr constant i32 2126
@panic_loc43775 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43573, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 184 }
@panic_loc43776 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43577, i32 0, i32 0), i64 33 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 184 }
@panic_bounds_check_loc43777 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 185 }
@str43778 = internal constant [42 x i8] c"assertion failed: alpha <= e && e <= gamma"
@_ZN3num7flt2dec8strategy5grisu12cached_power14_MSG_FILE_LINE20h6e428c54043941afe0dE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43778, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 186, [4 x i8] undef }
@const43779 = internal unnamed_addr constant i32 10000
@const43780 = internal unnamed_addr constant i32 100
@const43781 = internal unnamed_addr constant { i8, i32 } { i8 0, i32 1 }
@const43782 = internal unnamed_addr constant { i8, i32 } { i8 1, i32 10 }
@const43783 = internal unnamed_addr constant i32 1000
@const43784 = internal unnamed_addr constant { i8, i32 } { i8 2, i32 100 }
@const43785 = internal unnamed_addr constant { i8, i32 } { i8 3, i32 1000 }
@const43786 = internal unnamed_addr constant i32 1000000
@const43787 = internal unnamed_addr constant i32 100000
@const43788 = internal unnamed_addr constant { i8, i32 } { i8 4, i32 10000 }
@const43789 = internal unnamed_addr constant { i8, i32 } { i8 5, i32 100000 }
@const43790 = internal unnamed_addr constant i32 100000000
@const43791 = internal unnamed_addr constant i32 10000000
@const43792 = internal unnamed_addr constant { i8, i32 } { i8 6, i32 1000000 }
@const43793 = internal unnamed_addr constant { i8, i32 } { i8 7, i32 10000000 }
@const43794 = internal unnamed_addr constant i32 1000000000
@const43795 = internal unnamed_addr constant { i8, i32 } { i8 8, i32 100000000 }
@const43796 = internal unnamed_addr constant { i8, i32 } { i8 9, i32 1000000000 }
@str43797 = internal constant [23 x i8] c"assertion failed: x > 0"
@_ZN3num7flt2dec8strategy5grisu22max_pow10_no_more_than14_MSG_FILE_LINE20h6e428c54043941afX0dE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str43797, i32 0, i32 0), i64 23 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 193, [4 x i8] undef }
@_ZN3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE20h6e428c54043941afI3dE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str43727, i32 0, i32 0), i64 28 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 220, [4 x i8] undef }
@_ZN3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE20h6e428c54043941afa4dE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str43728, i32 0, i32 0), i64 29 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 221, [4 x i8] undef }
@_ZN3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE20h6e428c54043941afC4dE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str43729, i32 0, i32 0), i64 28 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 222, [4 x i8] undef }
@_ZN3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE20h6e428c54043941af64dE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([54 x i8], [54 x i8]* @str43730, i32 0, i32 0), i64 54 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 223, [4 x i8] undef }
@_ZN3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE20h6e428c54043941afA5dE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([55 x i8], [55 x i8]* @str43731, i32 0, i32 0), i64 55 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 224, [4 x i8] undef }
@_ZN3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE20h6e428c54043941af25dE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str43733, i32 0, i32 0), i64 45 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 225, [4 x i8] undef }
@const43798 = internal unnamed_addr constant i64 2305843009213693952
@str43799 = internal constant [45 x i8] c"assertion failed: d.mant + d.plus < (1 << 61)"
@_ZN3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE20h6e428c54043941afA6dE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str43799, i32 0, i32 0), i64 45 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 226, [4 x i8] undef }
@const43800 = internal unnamed_addr constant i16 -60
@const43801 = internal unnamed_addr constant i16 -32
@panic_loc43802 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43573, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 317 }
@panic_loc43803 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43580, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 318 }
@panic_bounds_check_loc43804 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 320 }
@const43805 = internal unnamed_addr constant i64 10
@panic_bounds_check_loc43806 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 363 }
@_ZN3num7flt2dec8strategy5grisu19format_shortest_opt10_FILE_LINE20hd3cd7f37ba62d99dE8dE = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 253, [4 x i8] undef }
@_ZN3num7flt2dec8strategy5grisu19format_shortest_opt15__STATIC_FMTSTR20h9a0d40d93917c69aU8dE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref43769, i32 0, i32 0), i64 3 }
@_ZN3num7flt2dec8strategy5grisu19format_shortest_opt10_FILE_LINE20hd3cd7f37ba62d99d29dE = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 254, [4 x i8] undef }
@_ZN3num7flt2dec8strategy5grisu19format_shortest_opt15__STATIC_FMTSTR20h9a0d40d93917c69aiaeE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref43769, i32 0, i32 0), i64 3 }
@str43807 = internal constant [24 x i8] c"assertion failed: q < 10"
@_ZN3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE20h6e428c54043941afUceE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([24 x i8], [24 x i8]* @str43807, i32 0, i32 0), i64 24 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 319, [4 x i8] undef }
@_ZN3num7flt2dec8strategy5grisu19format_shortest_opt10_FILE_LINE20hd3cd7f37ba62d99dMeeE = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 333, [4 x i8] undef }
@_ZN3num7flt2dec8strategy5grisu19format_shortest_opt15__STATIC_FMTSTR20h9a0d40d93917c69a2eeE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref43769, i32 0, i32 0), i64 3 }
@_ZN3num7flt2dec8strategy5grisu19format_shortest_opt10_FILE_LINE20hd3cd7f37ba62d99d8feE = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 334, [4 x i8] undef }
@_ZN3num7flt2dec8strategy5grisu19format_shortest_opt15__STATIC_FMTSTR20h9a0d40d93917c69aogeE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref43769, i32 0, i32 0), i64 3 }
@_ZN3num7flt2dec8strategy5grisu19format_shortest_opt14_MSG_FILE_LINE20h6e428c54043941af9heE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([24 x i8], [24 x i8]* @str43807, i32 0, i32 0), i64 24 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 362, [4 x i8] undef }
@str43808 = internal constant [33 x i8] c"assertion failed: !buf.is_empty()"
@_ZN3num7flt2dec8strategy5grisu19format_shortest_opt14round_and_weed14_MSG_FILE_LINE20h6e428c54043941afYjeE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43808, i32 0, i32 0), i64 33 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 395, [4 x i8] undef }
@str43809 = internal constant [43 x i8] c"called `Option::unwrap()` on a `None` value"
@str43810 = internal constant [21 x i8] c"src/libcore/option.rs"
@"_ZN6option15Option$LT$T$GT$6unwrap14_MSG_FILE_LINE20h6e428c54043941afy1EE" = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str43809, i32 0, i32 0), i64 43 }, %str_slice { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @str43810, i32 0, i32 0), i64 21 }, i32 362, [4 x i8] undef }
@const43811 = internal unnamed_addr constant i64 4
@str43812 = internal constant [30 x i8] c"assertion failed: *last > b'0'"
@_ZN3num7flt2dec8strategy5grisu19format_shortest_opt14round_and_weed14_MSG_FILE_LINE20h6e428c54043941afqleE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43812, i32 0, i32 0), i64 30 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 454, [4 x i8] undef }
@_ZN3num7flt2dec8strategy5grisu16format_exact_opt14_MSG_FILE_LINE20h6e428c54043941afDneE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str43727, i32 0, i32 0), i64 28 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 498, [4 x i8] undef }
@str43813 = internal constant [36 x i8] c"assertion failed: d.mant < (1 << 61)"
@_ZN3num7flt2dec8strategy5grisu16format_exact_opt14_MSG_FILE_LINE20h6e428c54043941af8neE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([36 x i8], [36 x i8]* @str43813, i32 0, i32 0), i64 36 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 499, [4 x i8] undef }
@_ZN3num7flt2dec8strategy5grisu16format_exact_opt14_MSG_FILE_LINE20h6e428c54043941afzoeE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43808, i32 0, i32 0), i64 33 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 500, [4 x i8] undef }
@panic_loc43814 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43573, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 564 }
@panic_loc43815 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43580, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 565 }
@panic_bounds_check_loc43816 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 567 }
@panic_bounds_check_loc43817 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 618 }
@str43818 = internal constant [25 x i8] c"assertion failed: len > 0"
@_ZN3num7flt2dec8strategy5grisu16format_exact_opt14_MSG_FILE_LINE20h6e428c54043941afrreE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @str43818, i32 0, i32 0), i64 25 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 550, [4 x i8] undef }
@_ZN3num7flt2dec8strategy5grisu16format_exact_opt14_MSG_FILE_LINE20h6e428c54043941afpseE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([24 x i8], [24 x i8]* @str43807, i32 0, i32 0), i64 24 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 566, [4 x i8] undef }
@_ZN3num7flt2dec8strategy5grisu16format_exact_opt10_FILE_LINE20hd3cd7f37ba62d99d8teE = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 579, [4 x i8] undef }
@_ZN3num7flt2dec8strategy5grisu16format_exact_opt15__STATIC_FMTSTR20h9a0d40d93917c69aoueE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref43769, i32 0, i32 0), i64 3 }
@_ZN3num7flt2dec8strategy5grisu16format_exact_opt10_FILE_LINE20hd3cd7f37ba62d99duveE = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 580, [4 x i8] undef }
@_ZN3num7flt2dec8strategy5grisu16format_exact_opt15__STATIC_FMTSTR20h9a0d40d93917c69aKveE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref43769, i32 0, i32 0), i64 3 }
@_ZN3num7flt2dec8strategy5grisu16format_exact_opt14_MSG_FILE_LINE20h6e428c54043941afvxeE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([24 x i8], [24 x i8]* @str43807, i32 0, i32 0), i64 24 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 617, [4 x i8] undef }
@panic_bounds_check_loc43819 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 726 }
@str43820 = internal constant [39 x i8] c"assertion failed: remainder < ten_kappa"
@_ZN3num7flt2dec8strategy5grisu16format_exact_opt14possibly_round14_MSG_FILE_LINE20h6e428c54043941af9yeE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([39 x i8], [39 x i8]* @str43820, i32 0, i32 0), i64 39 }, %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43764, i32 0, i32 0), i64 41 }, i32 645, [4 x i8] undef }
@panic_loc43821 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43573, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @str43620, i32 0, i32 0), i64 20 }, i32 687 }
@_ZN4iter17ExactSizeIterator3len15__STATIC_FMTSTR20h9a0d40d93917c69aaECE = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref43769, i32 0, i32 0), i64 3 }
@str43822 = internal constant [4 x i8] c"None"
@const43823 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str43822, i32 0, i32 0), i64 4 }
@str43824 = internal constant [4 x i8] c"Some"
@const43825 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str43824, i32 0, i32 0), i64 4 }
@vtable43826 = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 (i64**, %"fmt::Formatter"*)* } { void (i8*)* @_ZN2i810drop.4369017hf93d5aa1ca3b13d4E, i64 8, i64 8, i8 (i64**, %"fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt20h1177523575725226049E" }
@const43827 = internal unnamed_addr constant i8 (%"option::Option<usize>"*, %"fmt::Formatter"*)* @"_ZN6option34Option$LT$T$GT$...core..fmt..Debug3fmt20h4772712150664615958E"
@str43828 = internal constant [19 x i8] c"src/libcore/iter.rs"
@_ZN4iter17ExactSizeIterator3len10_FILE_LINE20hd3cd7f37ba62d99dUDCE = constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str43828, i32 0, i32 0), i64 19 }, i32 1265, [4 x i8] undef }
@const43831 = internal unnamed_addr constant i8 57
@const43832 = internal unnamed_addr constant %closure.10 zeroinitializer
@str43833 = internal constant [30 x i8] c"src/libcore/num/flt2dec/mod.rs"
@panic_bounds_check_loc43834 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 161 }
@const43835 = internal unnamed_addr constant i8 49
@panic_bounds_check_loc43836 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 166 }
@const43837 = internal unnamed_addr constant { i8, i8, [0 x i8] } { i8 1, i8 48, [0 x i8] undef }
@const43838 = internal unnamed_addr constant { i8, i8, [0 x i8] } { i8 1, i8 49, [0 x i8] undef }
@str43839 = internal constant [3 x i8] c"Num"
@const43840 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @str43839, i32 0, i32 0), i64 3 }
@vtable43841 = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 (i16**, %"fmt::Formatter"*)* } { void (i8*)* @_ZN2i810drop.4369017hf93d5aa1ca3b13d4E, i64 8, i64 8, i8 (i16**, %"fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt21h12332953969394747409E" }
@str43842 = internal constant [4 x i8] c"Copy"
@const43843 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str43842, i32 0, i32 0), i64 4 }
@vtable43844 = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 (i8**, %"fmt::Formatter"*)* } { void (i8*)* @_ZN2i810drop.4369017hf93d5aa1ca3b13d4E, i64 8, i64 8, i8 (i8**, %"fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt20h2840334149919998212E" }
@vtable43845 = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 ({ i8*, i64 }**, %"fmt::Formatter"*)* } { void (i8*)* @_ZN2i810drop.4369017hf93d5aa1ca3b13d4E, i64 8, i64 8, i8 ({ i8*, i64 }**, %"fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt20h7738688765772388627E" }
@const43846 = internal unnamed_addr constant i16 1000
@const43847 = internal unnamed_addr constant i16 10
@const43848 = internal unnamed_addr constant i16 100
@const43849 = internal unnamed_addr constant i16 10000
@const43850 = internal unnamed_addr constant i64 5
@const43851 = internal unnamed_addr constant %"num::flt2dec::Part"* inttoptr (i64 1 to %"num::flt2dec::Part"*)
@const43852 = internal unnamed_addr constant %"num::flt2dec::Part"* null
@const43853 = internal unnamed_addr constant %"marker::PhantomData<&'static num::flt2dec::Part>" zeroinitializer
@_ZN3num7flt2dec17digits_to_dec_str14_MSG_FILE_LINE20h6e428c54043941af5QeE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43808, i32 0, i32 0), i64 33 }, %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 273, [4 x i8] undef }
@panic_bounds_check_loc43854 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 274 }
@str43855 = internal constant [31 x i8] c"assertion failed: buf[0] > b'0'"
@_ZN3num7flt2dec17digits_to_dec_str14_MSG_FILE_LINE20h6e428c54043941afyReE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @str43855, i32 0, i32 0), i64 31 }, %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 274, [4 x i8] undef }
@str43856 = internal constant [34 x i8] c"assertion failed: parts.len() >= 4"
@_ZN3num7flt2dec17digits_to_dec_str14_MSG_FILE_LINE20h6e428c54043941af0ReE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str43856, i32 0, i32 0), i64 34 }, %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 275, [4 x i8] undef }
@binary43857 = internal unnamed_addr constant [2 x i8] c"0."
@const43858 = internal unnamed_addr constant { i8, { i8*, i64 }, [0 x i8] } { i8 2, { i8*, i64 } { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @binary43857, i32 0, i32 0), i64 2 }, [0 x i8] undef }
@panic_bounds_check_loc43859 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 293 }
@panic_bounds_check_loc43860 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 294 }
@panic_bounds_check_loc43861 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 295 }
@panic_bounds_check_loc43862 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 297 }
@panic_bounds_check_loc43863 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 306 }
@binary43864 = internal unnamed_addr constant [1 x i8] c"."
@const43865 = internal unnamed_addr constant { i8, { i8*, i64 }, [0 x i8] } { i8 2, { i8*, i64 } { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @binary43864, i32 0, i32 0), i64 1 }, [0 x i8] undef }
@panic_bounds_check_loc43866 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 307 }
@panic_bounds_check_loc43867 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 308 }
@panic_bounds_check_loc43868 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 310 }
@panic_bounds_check_loc43869 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 317 }
@panic_bounds_check_loc43870 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 318 }
@panic_bounds_check_loc43871 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 320 }
@panic_bounds_check_loc43872 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 321 }
@_ZN3num7flt2dec17digits_to_exp_str14_MSG_FILE_LINE20h6e428c54043941afmWeE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43808, i32 0, i32 0), i64 33 }, %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 341, [4 x i8] undef }
@panic_bounds_check_loc43873 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 342 }
@_ZN3num7flt2dec17digits_to_exp_str14_MSG_FILE_LINE20h6e428c54043941afPWeE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @str43855, i32 0, i32 0), i64 31 }, %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 342, [4 x i8] undef }
@const43874 = internal unnamed_addr constant i64 6
@str43875 = internal constant [34 x i8] c"assertion failed: parts.len() >= 6"
@_ZN3num7flt2dec17digits_to_exp_str14_MSG_FILE_LINE20h6e428c54043941afhXeE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str43875, i32 0, i32 0), i64 34 }, %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 343, [4 x i8] undef }
@panic_bounds_check_loc43876 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 347 }
@panic_bounds_check_loc43877 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 351 }
@panic_bounds_check_loc43878 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 355 }
@binary43879 = internal unnamed_addr constant [2 x i8] c"E-"
@const43880 = internal unnamed_addr constant { i8*, i64 } { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @binary43879, i32 0, i32 0), i64 2 }
@binary43881 = internal unnamed_addr constant [2 x i8] c"e-"
@const43882 = internal unnamed_addr constant { i8*, i64 } { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @binary43881, i32 0, i32 0), i64 2 }
@panic_bounds_check_loc43883 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 363 }
@binary43884 = internal unnamed_addr constant [1 x i8] c"E"
@const43885 = internal unnamed_addr constant { i8*, i64 } { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @binary43884, i32 0, i32 0), i64 1 }
@binary43886 = internal unnamed_addr constant [1 x i8] c"e"
@const43887 = internal unnamed_addr constant { i8*, i64 } { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @binary43886, i32 0, i32 0), i64 1 }
@panic_bounds_check_loc43888 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 366 }
@str43889 = internal constant [5 x i8] c"Minus"
@const43890 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str43889, i32 0, i32 0), i64 5 }
@str43891 = internal constant [8 x i8] c"MinusRaw"
@const43892 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @str43891, i32 0, i32 0), i64 8 }
@str43893 = internal constant [9 x i8] c"MinusPlus"
@const43894 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @str43893, i32 0, i32 0), i64 9 }
@str43895 = internal constant [12 x i8] c"MinusPlusRaw"
@const43896 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @str43895, i32 0, i32 0), i64 12 }
@binary43897 = internal unnamed_addr constant [0 x i8] zeroinitializer
@const43898 = internal unnamed_addr constant { i8*, i64 } { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @binary43897, i32 0, i32 0), i64 0 }
@binary43899 = internal unnamed_addr constant [1 x i8] c"-"
@const43900 = internal unnamed_addr constant { i8*, i64 } { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @binary43899, i32 0, i32 0), i64 1 }
@binary43901 = internal unnamed_addr constant [1 x i8] c"+"
@const43902 = internal unnamed_addr constant { i8*, i64 } { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @binary43901, i32 0, i32 0), i64 1 }
@_ZN3num7flt2dec15to_shortest_str14_MSG_FILE_LINE20h6e428c54043941af56eE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str43856, i32 0, i32 0), i64 34 }, %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 421, [4 x i8] undef }
@_ZN3num7flt2dec15to_shortest_str14_MSG_FILE_LINE20h6e428c54043941afx7eE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str43733, i32 0, i32 0), i64 45 }, %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 422, [4 x i8] undef }
@_ZN3num7flt2dec19to_shortest_exp_str14_MSG_FILE_LINE20h6e428c54043941afRafE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str43875, i32 0, i32 0), i64 34 }, %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 476, [4 x i8] undef }
@_ZN3num7flt2dec19to_shortest_exp_str14_MSG_FILE_LINE20h6e428c54043941afjbfE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str43733, i32 0, i32 0), i64 45 }, %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 477, [4 x i8] undef }
@str43903 = internal constant [46 x i8] c"assertion failed: dec_bounds.0 <= dec_bounds.1"
@_ZN3num7flt2dec19to_shortest_exp_str14_MSG_FILE_LINE20h6e428c54043941afMbfE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([46 x i8], [46 x i8]* @str43903, i32 0, i32 0), i64 46 }, %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 478, [4 x i8] undef }
@const43904 = internal unnamed_addr constant i64 21
@const43905 = internal unnamed_addr constant i32 -12
@_ZN3num7flt2dec16to_exact_exp_str14_MSG_FILE_LINE20h6e428c54043941af4ffE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str43875, i32 0, i32 0), i64 34 }, %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 555, [4 x i8] undef }
@str43906 = internal constant [29 x i8] c"assertion failed: ndigits > 0"
@_ZN3num7flt2dec16to_exact_exp_str14_MSG_FILE_LINE20h6e428c54043941afvgfE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str43906, i32 0, i32 0), i64 29 }, %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 556, [4 x i8] undef }
@str43907 = internal constant [61 x i8] c"assertion failed: buf.len() >= ndigits || buf.len() >= maxlen"
@_ZN3num7flt2dec16to_exact_exp_str14_MSG_FILE_LINE20h6e428c54043941afejfE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([61 x i8], [61 x i8]* @str43907, i32 0, i32 0), i64 61 }, %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 582, [4 x i8] undef }
@_ZN3num7flt2dec18to_exact_fixed_str14_MSG_FILE_LINE20h6e428c54043941af6kfE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str43856, i32 0, i32 0), i64 34 }, %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 611, [4 x i8] undef }
@str43908 = internal constant [37 x i8] c"assertion failed: buf.len() >= maxlen"
@_ZN3num7flt2dec18to_exact_fixed_str14_MSG_FILE_LINE20h6e428c54043941afonfE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([37 x i8], [37 x i8]* @str43908, i32 0, i32 0), i64 37 }, %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 636, [4 x i8] undef }
@_ZN3num7flt2dec18to_exact_fixed_str10_FILE_LINE20hd3cd7f37ba62d99dKofE = constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 647, [4 x i8] undef }
@_ZN3num7flt2dec18to_exact_fixed_str15__STATIC_FMTSTR20h9a0d40d93917c69a0ofE = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref43769, i32 0, i32 0), i64 3 }
@const43909 = internal unnamed_addr constant i32 36
@str43910 = internal constant [60 x i8] c"from_str_radix_int: must lie in the range `[2, 36]` - found "
@ref43911 = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([60 x i8], [60 x i8]* @str43910, i32 0, i32 0), i64 60 }]
@_ZN3num14from_str_radix15__STATIC_FMTSTR20h9a0d40d93917c69acHhE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43911, i32 0, i32 0), i64 1 }
@const43912 = internal unnamed_addr constant i8 (i32*, %"fmt::Formatter"*)* @_ZN3fmt3num16u32.fmt..Display3fmt20ha168fd65afccbafbynME
@str43913 = internal constant [22 x i8] c"src/libcore/num/mod.rs"
@_ZN3num14from_str_radix10_FILE_LINE20hd3cd7f37ba62d99dWGhE = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str43913, i32 0, i32 0), i64 22 }, i32 1449, [4 x i8] undef }
@const43914 = internal unnamed_addr constant { i8, { i8 }, [0 x i8] } { i8 1, { i8 } zeroinitializer, [0 x i8] undef }
@const43915 = internal unnamed_addr constant { i8, { i8 }, [0 x i8] } { i8 1, { i8 } { i8 1 }, [0 x i8] undef }
@const43916 = internal unnamed_addr constant { i8, { i8 }, [0 x i8] } { i8 1, { i8 } { i8 3 }, [0 x i8] undef }
@const43917 = internal unnamed_addr constant { i8, { i8 }, [0 x i8] } { i8 1, { i8 } { i8 2 }, [0 x i8] undef }
@panic_loc43918 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43573, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str43913, i32 0, i32 0), i64 22 }, i32 404 }
@panic_loc43919 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43577, i32 0, i32 0), i64 33 }, %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str43913, i32 0, i32 0), i64 22 }, i32 404 }
@const43920 = internal unnamed_addr constant { i8, { i8 }, [2 x i8] } { i8 1, { i8 } zeroinitializer, [2 x i8] undef }
@const43921 = internal unnamed_addr constant { i8, { i8 }, [2 x i8] } { i8 1, { i8 } { i8 1 }, [2 x i8] undef }
@const43922 = internal unnamed_addr constant { i8, { i8 }, [2 x i8] } { i8 1, { i8 } { i8 3 }, [2 x i8] undef }
@const43923 = internal unnamed_addr constant { i8, { i8 }, [2 x i8] } { i8 1, { i8 } { i8 2 }, [2 x i8] undef }
@const43924 = internal unnamed_addr constant { i16, [2 x i8] } { i16 0, [2 x i8] undef }
@const43925 = internal unnamed_addr constant { i8, { i8 }, [6 x i8] } { i8 1, { i8 } { i8 3 }, [6 x i8] undef }
@const43926 = internal unnamed_addr constant { i8, { i8 }, [6 x i8] } { i8 1, { i8 } { i8 2 }, [6 x i8] undef }
@const43927 = internal unnamed_addr constant { i8, { i8 }, [14 x i8] } { i8 1, { i8 } { i8 3 }, [14 x i8] undef }
@const43928 = internal unnamed_addr constant { i8, { i8 }, [14 x i8] } { i8 1, { i8 } { i8 2 }, [14 x i8] undef }
@const43929 = internal unnamed_addr constant i16 256
@panic_loc43930 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43573, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str43913, i32 0, i32 0), i64 22 }, i32 974 }
@panic_loc43931 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43580, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str43913, i32 0, i32 0), i64 22 }, i32 1142 }
@const43932 = internal unnamed_addr constant i32 64
@str43933 = internal constant [9 x i8] c"Subnormal"
@const43934 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @str43933, i32 0, i32 0), i64 9 }
@str43935 = internal constant [6 x i8] c"Normal"
@const43936 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str43935, i32 0, i32 0), i64 6 }
@str43937 = internal constant [13 x i8] c"ParseIntError"
@const43938 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @str43937, i32 0, i32 0), i64 13 }
@str43939 = internal constant [4 x i8] c"kind"
@const43940 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str43939, i32 0, i32 0), i64 4 }
@vtable43941 = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 (i8**, %"fmt::Formatter"*)* } { void (i8*)* @_ZN2i810drop.4369017hf93d5aa1ca3b13d4E, i64 8, i64 8, i8 (i8**, %"fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt20h3010391765239031569E" }
@str43942 = internal constant [5 x i8] c"Empty"
@const43943 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str43942, i32 0, i32 0), i64 5 }
@str43944 = internal constant [12 x i8] c"InvalidDigit"
@const43945 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @str43944, i32 0, i32 0), i64 12 }
@str43946 = internal constant [8 x i8] c"Overflow"
@const43947 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @str43946, i32 0, i32 0), i64 8 }
@str43948 = internal constant [9 x i8] c"Underflow"
@const43949 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @str43948, i32 0, i32 0), i64 9 }
@str43950 = internal constant [38 x i8] c"cannot parse integer from empty string"
@const43951 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([38 x i8], [38 x i8]* @str43950, i32 0, i32 0), i64 38 }
@str43952 = internal constant [29 x i8] c"invalid digit found in string"
@const43953 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @str43952, i32 0, i32 0), i64 29 }
@str43954 = internal constant [38 x i8] c"number too large to fit in target type"
@const43955 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([38 x i8], [38 x i8]* @str43954, i32 0, i32 0), i64 38 }
@str43956 = internal constant [38 x i8] c"number too small to fit in target type"
@const43957 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([38 x i8], [38 x i8]* @str43956, i32 0, i32 0), i64 38 }
@str43958 = internal constant [15 x i8] c"ParseFloatError"
@const43959 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @str43958, i32 0, i32 0), i64 15 }
@str43960 = internal constant [6 x i8] c"__kind"
@const43961 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str43960, i32 0, i32 0), i64 6 }
@vtable43962 = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 (i8**, %"fmt::Formatter"*)* } { void (i8*)* @_ZN2i810drop.4369017hf93d5aa1ca3b13d4E, i64 8, i64 8, i8 (i8**, %"fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt20h1145400927438734453E" }
@str43963 = internal constant [7 x i8] c"Invalid"
@const43964 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @str43963, i32 0, i32 0), i64 7 }
@str43965 = internal constant [36 x i8] c"cannot parse float from empty string"
@const43966 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([36 x i8], [36 x i8]* @str43965, i32 0, i32 0), i64 36 }
@str43967 = internal constant [21 x i8] c"invalid float literal"
@const43968 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @str43967, i32 0, i32 0), i64 21 }
@const43969 = internal unnamed_addr constant { i8, i8, [0 x i8] } { i8 1, i8 0, [0 x i8] undef }
@str43971 = internal constant [18 x i8] c"src/libcore/ops.rs"
@panic_loc43972 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43573, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @str43971, i32 0, i32 0), i64 18 }, i32 361 }
@panic_loc43973 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43577, i32 0, i32 0), i64 33 }, %str_slice { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @str43971, i32 0, i32 0), i64 18 }, i32 361 }
@panic_loc43974 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43580, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @str43971, i32 0, i32 0), i64 18 }, i32 415 }
@panic_loc43975 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str43582, i32 0, i32 0), i64 33 }, %str_slice { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @str43971, i32 0, i32 0), i64 18 }, i32 415 }
@str43976 = internal constant [2 x i8] c".."
@ref43977 = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str43976, i32 0, i32 0), i64 2 }]
@_ZN3ops20RangeFull.fmt..Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aQ5rE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43977, i32 0, i32 0), i64 1 }
@const43978 = internal unnamed_addr constant {} zeroinitializer
@ref43979 = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str43520, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str43976, i32 0, i32 0), i64 2 }]
@"_ZN3ops27Range$LT$Idx$GT$.fmt..Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69ag9rE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref43979, i32 0, i32 0), i64 2 }
@"_ZN3ops31RangeFrom$LT$Idx$GT$.fmt..Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69alcsE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref43979, i32 0, i32 0), i64 2 }
@"_ZN3ops29RangeTo$LT$Idx$GT$.fmt..Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69arfsE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43977, i32 0, i32 0), i64 1 }
@str43980 = internal constant [4 x i8] c"Less"
@const43981 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str43980, i32 0, i32 0), i64 4 }
@str43982 = internal constant [5 x i8] c"Equal"
@const43983 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str43982, i32 0, i32 0), i64 5 }
@str43984 = internal constant [7 x i8] c"Greater"
@const43985 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @str43984, i32 0, i32 0), i64 7 }
@const43986 = internal unnamed_addr constant { i8, i8, [0 x i8] } { i8 1, i8 1, [0 x i8] undef }
@const43987 = internal unnamed_addr constant { i8, i8, [0 x i8] } { i8 1, i8 -1, [0 x i8] undef }
@str43988 = internal constant [3 x i8] c"Any"
@const43989 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @str43988, i32 0, i32 0), i64 3 }
@str43990 = internal constant [6 x i8] c"TypeId"
@const43991 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str43990, i32 0, i32 0), i64 6 }
@str43992 = internal constant [1 x i8] c"t"
@const43993 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str43992, i32 0, i32 0), i64 1 }
@str43994 = internal constant [40 x i8] c"there is no such thing as a release load"
@str43995 = internal constant [21 x i8] c"src/libcore/atomic.rs"
@_ZN6atomic11atomic_load14_MSG_FILE_LINE20h6e428c54043941afSlBE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([40 x i8], [40 x i8]* @str43994, i32 0, i32 0), i64 40 }, %str_slice { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @str43995, i32 0, i32 0), i64 21 }, i32 962, [4 x i8] undef }
@str43996 = internal constant [49 x i8] c"there is no such thing as an acquire/release load"
@_ZN6atomic11atomic_load14_MSG_FILE_LINE20h6e428c54043941afdmBE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([49 x i8], [49 x i8]* @str43996, i32 0, i32 0), i64 49 }, %str_slice { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @str43995, i32 0, i32 0), i64 21 }, i32 963, [4 x i8] undef }
@str43997 = internal constant [42 x i8] c"there is no such thing as an acquire store"
@_ZN6atomic12atomic_store14_MSG_FILE_LINE20h6e428c54043941afMkBE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43997, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @str43995, i32 0, i32 0), i64 21 }, i32 950, [4 x i8] undef }
@str43998 = internal constant [50 x i8] c"there is no such thing as an acquire/release store"
@_ZN6atomic12atomic_store14_MSG_FILE_LINE20h6e428c54043941af7kBE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([50 x i8], [50 x i8]* @str43998, i32 0, i32 0), i64 50 }, %str_slice { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @str43995, i32 0, i32 0), i64 21 }, i32 951, [4 x i8] undef }
@str43999 = internal constant [41 x i8] c"there is no such thing as a relaxed fence"
@_ZN6atomic5fence14_MSG_FILE_LINE20h6e428c54043941afssBE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str43999, i32 0, i32 0), i64 41 }, %str_slice { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @str43995, i32 0, i32 0), i64 21 }, i32 1097, [4 x i8] undef }
@str44000 = internal constant [7 x i8] c"Reading"
@const44001 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @str44000, i32 0, i32 0), i64 7 }
@str44002 = internal constant [7 x i8] c"Writing"
@const44003 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @str44002, i32 0, i32 0), i64 7 }
@str44004 = internal constant [6 x i8] c"Unused"
@const44005 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str44004, i32 0, i32 0), i64 6 }
@str44006 = internal constant [45 x i8] c"assertion failed: self.borrow.get() == UNUSED"
@str44007 = internal constant [19 x i8] c"src/libcore/cell.rs"
@"_ZN4cell16RefCell$LT$T$GT$10into_inner14_MSG_FILE_LINE20h6e428c54043941afIABE" = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str44006, i32 0, i32 0), i64 45 }, %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44007, i32 0, i32 0), i64 19 }, i32 332, [4 x i8] undef }
@str44008 = internal constant [35 x i8] c"RefCell<T> already mutably borrowed"
@"_ZN4cell16RefCell$LT$T$GT$6borrow14_MSG_FILE_LINE20h6e428c54043941afWBBE" = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str44008, i32 0, i32 0), i64 35 }, %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44007, i32 0, i32 0), i64 19 }, i32 395, [4 x i8] undef }
@str44009 = internal constant [27 x i8] c"RefCell<T> already borrowed"
@"_ZN4cell16RefCell$LT$T$GT$10borrow_mut14_MSG_FILE_LINE20h6e428c54043941afJCBE" = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str44009, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44007, i32 0, i32 0), i64 19 }, i32 441, [4 x i8] undef }
@const44010 = internal unnamed_addr constant { { i8*, i8 } } zeroinitializer
@str44011 = internal constant [55 x i8] c"assertion failed: borrow != WRITING && borrow != UNUSED"
@"_ZN4cell28BorrowRef$LT$$u27$b$GT$.Drop4drop14_MSG_FILE_LINE20h6e428c54043941afOFBE" = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([55 x i8], [55 x i8]* @str44011, i32 0, i32 0), i64 55 }, %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44007, i32 0, i32 0), i64 19 }, i32 509, [4 x i8] undef }
@"_ZN4cell29BorrowRef$LT$$u27$b$GT$.Clone5clone14_MSG_FILE_LINE20h6e428c54043941afOGBE" = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([55 x i8], [55 x i8]* @str44011, i32 0, i32 0), i64 55 }, %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44007, i32 0, i32 0), i64 19 }, i32 520, [4 x i8] undef }
@str44012 = internal constant [35 x i8] c"assertion failed: borrow == WRITING"
@"_ZN4cell31BorrowRefMut$LT$$u27$b$GT$.Drop4drop14_MSG_FILE_LINE20h6e428c54043941afCLBE" = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str44012, i32 0, i32 0), i64 35 }, %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44007, i32 0, i32 0), i64 19 }, i32 726, [4 x i8] undef }
@const44013 = internal unnamed_addr constant i32 1114111
@const44014 = internal unnamed_addr constant i32 55296
@const44015 = internal unnamed_addr constant i32 57343
@str44016 = internal constant [42 x i8] c"from_digit: radix is too high (maximum 36)"
@str44017 = internal constant [19 x i8] c"src/libcore/char.rs"
@_ZN4char10from_digit14_MSG_FILE_LINE20h6e428c54043941afVPBE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str44016, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44017, i32 0, i32 0), i64 19 }, i32 116, [4 x i8] undef }
@const44018 = internal unnamed_addr constant i32 97
@str44019 = internal constant [40 x i8] c"to_digit: radix is too high (maximum 36)"
@_ZN4char12char.CharExt8to_digit14_MSG_FILE_LINE20h6e428c54043941afuSBE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([40 x i8], [40 x i8]* @str44019, i32 0, i32 0), i64 40 }, %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44017, i32 0, i32 0), i64 19 }, i32 157, [4 x i8] undef }
@const44020 = internal unnamed_addr constant i32 65
@const44021 = internal unnamed_addr constant { i8, i32, [24 x i8] } { i8 0, i32 116, [24 x i8] undef }
@const44022 = internal unnamed_addr constant { i8, i32, [24 x i8] } { i8 0, i32 114, [24 x i8] undef }
@const44023 = internal unnamed_addr constant { i8, i32, [24 x i8] } { i8 0, i32 110, [24 x i8] undef }
@const44024 = internal unnamed_addr constant { i8, i32, [24 x i8] } { i8 0, i32 92, [24 x i8] undef }
@const44025 = internal unnamed_addr constant { i8, i32, [24 x i8] } { i8 0, i32 39, [24 x i8] undef }
@const44026 = internal unnamed_addr constant { i8, i32, [24 x i8] } { i8 0, i32 34, [24 x i8] undef }
@const44027 = internal unnamed_addr constant i32 128
@const44028 = internal unnamed_addr constant i32 2048
@const44029 = internal unnamed_addr constant i32 65536
@const44030 = internal unnamed_addr constant i32 65535
@panic_bounds_check_loc44031 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44017, i32 0, i32 0), i64 19 }, i32 232 }
@const44032 = internal unnamed_addr constant { i64, i64, [0 x i8] } { i64 1, i64 1, [0 x i8] undef }
@const44033 = internal unnamed_addr constant i32 6
@const44034 = internal unnamed_addr constant i8 -64
@panic_bounds_check_loc44035 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44017, i32 0, i32 0), i64 19 }, i32 235 }
@panic_bounds_check_loc44036 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44017, i32 0, i32 0), i64 19 }, i32 236 }
@const44037 = internal unnamed_addr constant { i64, i64, [0 x i8] } { i64 1, i64 2, [0 x i8] undef }
@const44038 = internal unnamed_addr constant i32 12
@const44039 = internal unnamed_addr constant i8 -32
@panic_bounds_check_loc44040 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44017, i32 0, i32 0), i64 19 }, i32 239 }
@panic_bounds_check_loc44041 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44017, i32 0, i32 0), i64 19 }, i32 240 }
@panic_bounds_check_loc44042 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44017, i32 0, i32 0), i64 19 }, i32 241 }
@const44043 = internal unnamed_addr constant { i64, i64, [0 x i8] } { i64 1, i64 3, [0 x i8] undef }
@const44044 = internal unnamed_addr constant i32 18
@const44045 = internal unnamed_addr constant i8 -16
@panic_bounds_check_loc44046 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44017, i32 0, i32 0), i64 19 }, i32 244 }
@panic_bounds_check_loc44047 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44017, i32 0, i32 0), i64 19 }, i32 245 }
@panic_bounds_check_loc44048 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44017, i32 0, i32 0), i64 19 }, i32 246 }
@panic_bounds_check_loc44049 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44017, i32 0, i32 0), i64 19 }, i32 247 }
@const44050 = internal unnamed_addr constant { i64, i64, [0 x i8] } { i64 1, i64 4, [0 x i8] undef }
@panic_bounds_check_loc44051 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44017, i32 0, i32 0), i64 19 }, i32 267 }
@const44052 = internal unnamed_addr constant i16 -10240
@panic_bounds_check_loc44053 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44017, i32 0, i32 0), i64 19 }, i32 272 }
@const44054 = internal unnamed_addr constant i16 -9216
@const44055 = internal unnamed_addr constant i16 1023
@panic_bounds_check_loc44056 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44017, i32 0, i32 0), i64 19 }, i32 273 }
@const44057 = internal unnamed_addr constant { i64, [8 x i8] } { i64 1, [8 x i8] undef }
@const44058 = internal unnamed_addr constant { i64, [8 x i8] } { i64 2, [8 x i8] undef }
@const44059 = internal unnamed_addr constant { i64, [8 x i8] } { i64 4, [8 x i8] undef }
@const44060 = internal unnamed_addr constant { i64, [8 x i8] } { i64 5, [8 x i8] undef }
@const44061 = internal unnamed_addr constant { i32, i32, [0 x i8] } { i32 1, i32 92, [0 x i8] undef }
@const44062 = internal unnamed_addr constant { i32, i32, [0 x i8] } { i32 1, i32 117, [0 x i8] undef }
@const44063 = internal unnamed_addr constant { i32, i32, [0 x i8] } { i32 1, i32 123, [0 x i8] undef }
@const44064 = internal unnamed_addr constant { i32, i32, [0 x i8] } { i32 1, i32 125, [0 x i8] undef }
@const44065 = internal unnamed_addr constant { i8, [31 x i8] } { i8 2, [31 x i8] undef }
@ref44066 = internal unnamed_addr constant [0 x %"fmt::ArgumentV1"] zeroinitializer
@const44067 = internal unnamed_addr constant { %"fmt::ArgumentV1"*, i64 } { %"fmt::ArgumentV1"* getelementptr inbounds ([0 x %"fmt::ArgumentV1"], [0 x %"fmt::ArgumentV1"]* @ref44066, i32 0, i32 0), i64 0 }
@str44068 = internal constant [32 x i8] c"index out of bounds: the len is "
@str44069 = internal constant [18 x i8] c" but the index is "
@ref44070 = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([32 x i8], [32 x i8]* @str44068, i32 0, i32 0), i64 32 }, %str_slice { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @str44069, i32 0, i32 0), i64 18 }]
@_ZN9panicking18panic_bounds_check15__STATIC_FMTSTR20h9a0d40d93917c69ab8BE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref44070, i32 0, i32 0), i64 2 }
@const44071 = internal unnamed_addr constant i8 (i64*, %"fmt::Formatter"*)* @_ZN3fmt3num18usize.fmt..Display3fmt20h1307f0a0aaa587a885LE
@str44072 = internal constant [40 x i8] c"internal error: entered unreachable code"
@"_ZN4iter41Zip$LT$A$C$$u20$B$GT$.DoubleEndedIterator9next_back14_MSG_FILE_LINE20h6e428c54043941afM5CE" = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([40 x i8], [40 x i8]* @str44072, i32 0, i32 0), i64 40 }, %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str43828, i32 0, i32 0), i64 19 }, i32 1667, [4 x i8] undef }
@panic_loc44073 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43580, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str43828, i32 0, i32 0), i64 19 }, i32 2635 }
@panic_loc44074 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43573, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str43828, i32 0, i32 0), i64 19 }, i32 2636 }
@panic_loc44075 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43573, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str43828, i32 0, i32 0), i64 19 }, i32 2638 }
@const44076 = internal unnamed_addr constant { i64, i64, [0 x i8] } { i64 1, i64 0, [0 x i8] undef }
@panic_loc44077 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str43580, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str43828, i32 0, i32 0), i64 19 }, i32 2676 }
@panic_loc44078 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43573, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str43828, i32 0, i32 0), i64 19 }, i32 2677 }
@panic_loc44079 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43573, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str43828, i32 0, i32 0), i64 19 }, i32 2679 }
@"_ZN6option15Option$LT$T$GT$6expect10_FILE_LINE20hd3cd7f37ba62d99dD0EE" = constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @str43810, i32 0, i32 0), i64 21 }, i32 330, [4 x i8] undef }
@"_ZN6option15Option$LT$T$GT$6expect15__STATIC_FMTSTR20h9a0d40d93917c69aT0EE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@str44080 = internal constant [21 x i8] c"src/libcore/result.rs"
@"_ZN6result24Result$LT$T$C$$u20$E$GT$6unwrap10_FILE_LINE20hd3cd7f37ba62d99dCIFE" = constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @str44080, i32 0, i32 0), i64 21 }, i32 731, [4 x i8] undef }
@str44081 = internal constant [45 x i8] c"called `Result::unwrap()` on an `Err` value: "
@ref44082 = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str44081, i32 0, i32 0), i64 45 }]
@"_ZN6result24Result$LT$T$C$$u20$E$GT$6unwrap15__STATIC_FMTSTR20h9a0d40d93917c69aSIFE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44082, i32 0, i32 0), i64 1 }
@"_ZN6result24Result$LT$T$C$$u20$E$GT$6expect10_FILE_LINE20hd3cd7f37ba62d99dCJFE" = constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @str44080, i32 0, i32 0), i64 21 }, i32 751, [4 x i8] undef }
@str44083 = internal constant [2 x i8] c": "
@ref44084 = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str43520, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str44083, i32 0, i32 0), i64 2 }]
@"_ZN6result24Result$LT$T$C$$u20$E$GT$6expect15__STATIC_FMTSTR20h9a0d40d93917c69aSJFE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref44084, i32 0, i32 0), i64 2 }
@"_ZN6result24Result$LT$T$C$$u20$E$GT$10unwrap_err10_FILE_LINE20hd3cd7f37ba62d99dLKFE" = constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @str44080, i32 0, i32 0), i64 21 }, i32 781, [4 x i8] undef }
@str44085 = internal constant [48 x i8] c"called `Result::unwrap_err()` on an `Ok` value: "
@ref44086 = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([48 x i8], [48 x i8]* @str44085, i32 0, i32 0), i64 48 }]
@"_ZN6result24Result$LT$T$C$$u20$E$GT$10unwrap_err15__STATIC_FMTSTR20h9a0d40d93917c69a1KFE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44086, i32 0, i32 0), i64 1 }
@str44087 = internal constant [5 x i8] c"i8x16"
@const44088 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str44087, i32 0, i32 0), i64 5 }
@vtable44089 = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 (i8**, %"fmt::Formatter"*)* } { void (i8*)* @_ZN2i810drop.4369017hf93d5aa1ca3b13d4E, i64 8, i64 8, i8 (i8**, %"fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt20h6020435801676114187E" }
@str44090 = internal constant [5 x i8] c"i16x8"
@const44091 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str44090, i32 0, i32 0), i64 5 }
@str44092 = internal constant [5 x i8] c"i32x4"
@const44093 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str44092, i32 0, i32 0), i64 5 }
@vtable44094 = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 (i32**, %"fmt::Formatter"*)* } { void (i8*)* @_ZN2i810drop.4369017hf93d5aa1ca3b13d4E, i64 8, i64 8, i8 (i32**, %"fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt19h362432119984124948E" }
@str44095 = internal constant [5 x i8] c"i64x2"
@const44096 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str44095, i32 0, i32 0), i64 5 }
@vtable44097 = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 (i64**, %"fmt::Formatter"*)* } { void (i8*)* @_ZN2i810drop.4369017hf93d5aa1ca3b13d4E, i64 8, i64 8, i8 (i64**, %"fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt21h10707663369023453137E" }
@str44098 = internal constant [5 x i8] c"u8x16"
@const44099 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str44098, i32 0, i32 0), i64 5 }
@str44100 = internal constant [5 x i8] c"u16x8"
@const44101 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str44100, i32 0, i32 0), i64 5 }
@str44102 = internal constant [5 x i8] c"u32x4"
@const44103 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str44102, i32 0, i32 0), i64 5 }
@vtable44104 = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 (i32**, %"fmt::Formatter"*)* } { void (i8*)* @_ZN2i810drop.4369017hf93d5aa1ca3b13d4E, i64 8, i64 8, i8 (i32**, %"fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt21h10391898542323497893E" }
@str44105 = internal constant [5 x i8] c"u64x2"
@const44106 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str44105, i32 0, i32 0), i64 5 }
@str44107 = internal constant [5 x i8] c"f32x4"
@const44108 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str44107, i32 0, i32 0), i64 5 }
@vtable44109 = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 (float**, %"fmt::Formatter"*)* } { void (i8*)* @_ZN2i810drop.4369017hf93d5aa1ca3b13d4E, i64 8, i64 8, i8 (float**, %"fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt20h8199377383719412690E" }
@str44110 = internal constant [5 x i8] c"f64x2"
@const44111 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str44110, i32 0, i32 0), i64 5 }
@vtable44112 = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 (double**, %"fmt::Formatter"*)* } { void (i8*)* @_ZN2i810drop.4369017hf93d5aa1ca3b13d4E, i64 8, i64 8, i8 (double**, %"fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt21h11116938081325264325E" }
@str44113 = internal constant [27 x i8] c"assertion failed: size != 0"
@"_ZN5slice21_$u5b$T$u5d$.SliceExt7windows14_MSG_FILE_LINE20h6e428c54043941afVuGE" = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str44113, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @str43620, i32 0, i32 0), i64 20 }, i32 217, [4 x i8] undef }
@"_ZN5slice21_$u5b$T$u5d$.SliceExt6chunks14_MSG_FILE_LINE20h6e428c54043941afAvGE" = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str44113, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @str43620, i32 0, i32 0), i64 20 }, i32 223, [4 x i8] undef }
@str44114 = internal constant [32 x i8] c"assertion failed: chunk_size > 0"
@"_ZN5slice21_$u5b$T$u5d$.SliceExt10chunks_mut14_MSG_FILE_LINE20h6e428c54043941af2EGE" = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([32 x i8], [32 x i8]* @str44114, i32 0, i32 0), i64 32 }, %str_slice { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @str43620, i32 0, i32 0), i64 20 }, i32 374, [4 x i8] undef }
@str44115 = internal constant [38 x i8] c"assertion failed: dst.len() >= len_src"
@_ZN5slice5bytes11copy_memory14_MSG_FILE_LINE20h6e428c54043941afALHE = constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([38 x i8], [38 x i8]* @str44115, i32 0, i32 0), i64 38 }, %str_slice { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @str43620, i32 0, i32 0), i64 20 }, i32 1442, [4 x i8] undef }
@str44116 = internal constant [5 x i8] c"Match"
@const44117 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str44116, i32 0, i32 0), i64 5 }
@str44118 = internal constant [6 x i8] c"Reject"
@const44119 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str44118, i32 0, i32 0), i64 6 }
@str44120 = internal constant [4 x i8] c"Done"
@const44121 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str44120, i32 0, i32 0), i64 4 }
@const44122 = internal unnamed_addr constant { i64, [16 x i8] } { i64 2, [16 x i8] undef }
@const44125 = internal unnamed_addr constant %"marker::PhantomData<&'static char>" zeroinitializer
@const44128 = internal unnamed_addr constant %closure.12 zeroinitializer
@const44129 = internal unnamed_addr constant { i64, [16 x i8] } { i64 1, [16 x i8] undef }
@const44134 = internal unnamed_addr constant %closure.13 zeroinitializer
@const44135 = internal unnamed_addr constant %closure.14 zeroinitializer
@const44140 = internal unnamed_addr constant %closure.15 zeroinitializer
@const44141 = internal unnamed_addr constant %closure.16 zeroinitializer
@const44142 = internal unnamed_addr constant void (%"str::pattern::CharSearcher"*, %"str::pattern::CharEqSearcher<char>"*)* @_ZN3str7pattern12CharSearcher21h15293924572909790887E
@const44143 = internal unnamed_addr constant i32 (i32)* @_ZN3str7pattern13CharEqPattern20h5249094003598820047E
@const44144 = internal unnamed_addr constant void (%"str::pattern::CharSliceSearcher"*, %"str::pattern::CharEqSearcher<&'static [char]>"*)* @_ZN3str7pattern17CharSliceSearcher21h10065558484671655556E
@const44145 = internal unnamed_addr constant void (%"str::pattern::CharEqPattern<&'static [char]>"*, i32*, i64)* @_ZN3str7pattern13CharEqPattern20h2284958137704046113E
@autoref44148 = internal unnamed_addr constant %closure.17 zeroinitializer
@const44149 = internal unnamed_addr constant %closure.17* @autoref44148
@autoref44152 = internal unnamed_addr constant %closure.18 zeroinitializer
@const44153 = internal unnamed_addr constant %closure.18* @autoref44152
@autoref44156 = internal unnamed_addr constant %closure.19 zeroinitializer
@const44157 = internal unnamed_addr constant %closure.19* @autoref44156
@autoref44160 = internal unnamed_addr constant %closure.20 zeroinitializer
@const44161 = internal unnamed_addr constant %closure.20* @autoref44160
@autoref44164 = internal unnamed_addr constant %closure.21 zeroinitializer
@const44165 = internal unnamed_addr constant %closure.21* @autoref44164
@str44166 = internal constant [4 x i8] c"true"
@str44167 = internal constant [5 x i8] c"false"
@const44168 = internal unnamed_addr constant { i8, i1, [0 x i8] } { i8 0, i1 true, [0 x i8] undef }
@const44169 = internal unnamed_addr constant { i8, i1, [0 x i8] } { i8 0, i1 false, [0 x i8] undef }
@const44170 = internal unnamed_addr constant { i8, { {} }, [1 x i8] } { i8 1, { {} } zeroinitializer, [1 x i8] undef }
@str44171 = internal constant [14 x i8] c"ParseBoolError"
@const44172 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([14 x i8], [14 x i8]* @str44171, i32 0, i32 0), i64 14 }
@str44173 = internal constant [5 x i8] c"_priv"
@const44174 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str44173, i32 0, i32 0), i64 5 }
@vtable44175 = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 ({}**, %"fmt::Formatter"*)* } { void (i8*)* @_ZN2i810drop.4369017hf93d5aa1ca3b13d4E, i64 8, i64 8, i8 ({}**, %"fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt19h188549729837635983E" }
@str44176 = internal constant [41 x i8] c"provided string was not `true` or `false`"
@const44177 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([41 x i8], [41 x i8]* @str44176, i32 0, i32 0), i64 41 }
@str44178 = internal constant [9 x i8] c"Utf8Error"
@const44179 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @str44178, i32 0, i32 0), i64 9 }
@str44180 = internal constant [11 x i8] c"valid_up_to"
@const44181 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @str44180, i32 0, i32 0), i64 11 }
@str44182 = internal constant [39 x i8] c"invalid utf-8: invalid byte near index "
@ref44183 = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([39 x i8], [39 x i8]* @str44182, i32 0, i32 0), i64 39 }]
@_ZN3str22Utf8Error.fmt..Display3fmt15__STATIC_FMTSTR20h9a0d40d93917c69akQIE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44183, i32 0, i32 0), i64 1 }
@const44184 = internal unnamed_addr constant i8 127
@const44185 = internal unnamed_addr constant i8 63
@const44186 = internal unnamed_addr constant i32 3
@const44189 = internal unnamed_addr constant %closure.22 zeroinitializer
@const44192 = internal unnamed_addr constant %closure.23 zeroinitializer
@const44197 = internal unnamed_addr constant { i64, { i64, [8 x i8] } } { i64 0, { i64, [8 x i8] } { i64 0, [8 x i8] undef } }
@const44210 = internal unnamed_addr constant i8 13
@const44217 = internal unnamed_addr constant %closure.28 zeroinitializer
@str44218 = internal constant [22 x i8] c"src/libcore/str/mod.rs"
@panic_bounds_check_loc44219 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1080 }
@panic_bounds_check_loc44220 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1084 }
@str44221 = internal constant [19 x i8] c"not yet implemented"
@_ZN3str11OldSearcher3new14_MSG_FILE_LINE20h6e428c54043941afqGJE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44221, i32 0, i32 0), i64 19 }, %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1126, [4 x i8] undef }
@const44222 = internal unnamed_addr constant i64 20
@_ZN3str11OldSearcher3new14_MSG_FILE_LINE20h6e428c54043941afTGJE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str44221, i32 0, i32 0), i64 19 }, %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1133, [4 x i8] undef }
@panic_loc44223 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str43573, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @str43620, i32 0, i32 0), i64 20 }, i32 738 }
@const44224 = internal unnamed_addr constant { i64, {}, [8 x i8] } { i64 0, {} zeroinitializer, [8 x i8] undef }
@_ZN3str15UTF8_CHAR_WIDTH20h38928376f06d7bdcyPJE = internal 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"
@panic_bounds_check_loc44225 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1239 }
@const44228 = internal unnamed_addr constant { i8, [2 x i8] } { i8 0, [2 x i8] undef }
@str44234 = internal constant [30 x i8] c"assertion failed: begin <= end"
@_ZN3str16slice_error_fail14_MSG_FILE_LINE20h6e428c54043941afz8JE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str44234, i32 0, i32 0), i64 30 }, %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1533, [4 x i8] undef }
@str44235 = internal constant [6 x i8] c"index "
@str44236 = internal constant [8 x i8] c" and/or "
@str44237 = internal constant [5 x i8] c" in `"
@str44238 = internal constant [34 x i8] c"` do not lie on character boundary"
@ref44239 = internal unnamed_addr constant [4 x %str_slice] [%str_slice { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str44235, i32 0, i32 0), i64 6 }, %str_slice { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @str44236, i32 0, i32 0), i64 8 }, %str_slice { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str44237, i32 0, i32 0), i64 5 }, %str_slice { i8* getelementptr inbounds ([34 x i8], [34 x i8]* @str44238, i32 0, i32 0), i64 34 }]
@_ZN3str16slice_error_fail15__STATIC_FMTSTR20h9a0d40d93917c69aa9JE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([4 x %str_slice], [4 x %str_slice]* @ref44239, i32 0, i32 0), i64 4 }
@const44240 = internal unnamed_addr constant i8 (%str_slice*, %"fmt::Formatter"*)* @"_ZN3fmt25_$RF$$u27$a$u20$T.Display3fmt21h16359573014518962453E"
@_ZN3str16slice_error_fail10_FILE_LINE20hd3cd7f37ba62d99dU8JE = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1534, [4 x i8] undef }
@const44241 = internal unnamed_addr constant %"str::BytesDeref" zeroinitializer
@const44245 = internal unnamed_addr constant %"str::LinesAnyMap" zeroinitializer
@const44248 = internal unnamed_addr constant %closure.31 zeroinitializer
@_ZN3str10str.StrExt11slice_chars14_MSG_FILE_LINE20h6e428c54043941afdgKE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str44234, i32 0, i32 0), i64 30 }, %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1649, [4 x i8] undef }
@str44249 = internal constant [44 x i8] c"slice_chars: `begin` is beyond end of string"
@_ZN3str10str.StrExt11slice_chars14_MSG_FILE_LINE20h6e428c54043941afgiKE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str44249, i32 0, i32 0), i64 44 }, %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1665, [4 x i8] undef }
@str44250 = internal constant [42 x i8] c"slice_chars: `end` is beyond end of string"
@_ZN3str10str.StrExt11slice_chars14_MSG_FILE_LINE20h6e428c54043941afDiKE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str44250, i32 0, i32 0), i64 42 }, %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1666, [4 x i8] undef }
@panic_bounds_check_loc44251 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @str43620, i32 0, i32 0), i64 20 }, i32 229 }
@panic_bounds_check_loc44252 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1760 }
@panic_bounds_check_loc44253 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1761 }
@panic_bounds_check_loc44254 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1767 }
@panic_bounds_check_loc44255 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1771 }
@panic_bounds_check_loc44256 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1772 }
@str44257 = internal constant [24 x i8] c"assertion failed: w != 0"
@_ZN3str10str.StrExt21char_range_at_reverse31multibyte_char_range_at_reverse14_MSG_FILE_LINE20h6e428c54043941afApKE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([24 x i8], [24 x i8]* @str44257, i32 0, i32 0), i64 24 }, %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1773, [4 x i8] undef }
@const44258 = internal unnamed_addr constant { { i32, { i8*, i8* } } } zeroinitializer
@str44259 = internal constant [36 x i8] c"assertion failed: a_start <= b_start"
@_ZN3str10str.StrExt15subslice_offset14_MSG_FILE_LINE20h6e428c54043941af2uKE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([36 x i8], [36 x i8]* @str44259, i32 0, i32 0), i64 36 }, %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1844, [4 x i8] undef }
@str44260 = internal constant [32 x i8] c"assertion failed: b_end <= a_end"
@_ZN3str10str.StrExt15subslice_offset14_MSG_FILE_LINE20h6e428c54043941aftvKE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([32 x i8], [32 x i8]* @str44260, i32 0, i32 0), i64 32 }, %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1845, [4 x i8] undef }
@panic_bounds_check_loc44261 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1876 }
@panic_bounds_check_loc44262 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1877 }
@panic_bounds_check_loc44263 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1882 }
@panic_bounds_check_loc44264 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1883 }
@_ZN3str17char_range_at_raw23multibyte_char_range_at14_MSG_FILE_LINE20h6e428c54043941af1xKE = internal constant { %str_slice, %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([24 x i8], [24 x i8]* @str44257, i32 0, i32 0), i64 24 }, %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44218, i32 0, i32 0), i64 22 }, i32 1884, [4 x i8] undef }
@const44265 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str43520, i32 0, i32 0), i64 0 }
@const44266 = internal unnamed_addr constant i64 8317987319222330741
@const44267 = internal unnamed_addr constant i64 7237128888997146477
@const44268 = internal unnamed_addr constant i64 7816392313619706465
@const44269 = internal unnamed_addr constant i64 8387220255154660723
@const44270 = internal unnamed_addr constant i32 13
@const44271 = internal unnamed_addr constant i32 21
@const44272 = internal unnamed_addr constant i32 17
@const44273 = internal unnamed_addr constant i64 -8
@const44274 = internal unnamed_addr constant i32 24
@const44275 = internal unnamed_addr constant i32 40
@const44276 = internal unnamed_addr constant i64 255
@str44277 = internal constant [2 x i8] c"0b"
@const44278 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str44277, i32 0, i32 0), i64 2 }
@str44279 = internal constant [27 x i8] c"number not in the range 0.."
@ref44280 = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str44279, i32 0, i32 0), i64 27 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str44083, i32 0, i32 0), i64 2 }]
@_ZN3fmt3num19Binary.GenericRadix5digit15__STATIC_FMTSTR20h9a0d40d93917c69aqQLE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref44280, i32 0, i32 0), i64 2 }
@const44281 = internal unnamed_addr constant i8 (i8*, %"fmt::Formatter"*)* @_ZN3fmt3num15u8.fmt..Display3fmt20hf06f1214092bd9c2WbME
@str44282 = internal constant [22 x i8] c"src/libcore/fmt/num.rs"
@_ZN3fmt3num19Binary.GenericRadix5digit10_FILE_LINE20hd3cd7f37ba62d99daQLE = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44282, i32 0, i32 0), i64 22 }, i32 120, [4 x i8] undef }
@str44283 = internal constant [2 x i8] c"0o"
@const44284 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str44283, i32 0, i32 0), i64 2 }
@_ZN3fmt3num18Octal.GenericRadix5digit15__STATIC_FMTSTR20h9a0d40d93917c69aZRLE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref44280, i32 0, i32 0), i64 2 }
@_ZN3fmt3num18Octal.GenericRadix5digit10_FILE_LINE20hd3cd7f37ba62d99dJRLE = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44282, i32 0, i32 0), i64 22 }, i32 121, [4 x i8] undef }
@const44285 = internal unnamed_addr constant i8 10
@_ZN3fmt3num20Decimal.GenericRadix5digit15__STATIC_FMTSTR20h9a0d40d93917c69ayTLE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref44280, i32 0, i32 0), i64 2 }
@_ZN3fmt3num20Decimal.GenericRadix5digit10_FILE_LINE20hd3cd7f37ba62d99diTLE = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44282, i32 0, i32 0), i64 22 }, i32 122, [4 x i8] undef }
@const44286 = internal unnamed_addr constant i8 16
@str44287 = internal constant [2 x i8] c"0x"
@const44288 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str44287, i32 0, i32 0), i64 2 }
@const44289 = internal unnamed_addr constant i8 97
@_ZN3fmt3num21LowerHex.GenericRadix5digit15__STATIC_FMTSTR20h9a0d40d93917c69ahVLE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref44280, i32 0, i32 0), i64 2 }
@_ZN3fmt3num21LowerHex.GenericRadix5digit10_FILE_LINE20hd3cd7f37ba62d99d1ULE = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44282, i32 0, i32 0), i64 22 }, i32 123, [4 x i8] undef }
@const44290 = internal unnamed_addr constant i8 65
@_ZN3fmt3num21UpperHex.GenericRadix5digit15__STATIC_FMTSTR20h9a0d40d93917c69a0WLE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref44280, i32 0, i32 0), i64 2 }
@_ZN3fmt3num21UpperHex.GenericRadix5digit10_FILE_LINE20hd3cd7f37ba62d99dKWLE = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44282, i32 0, i32 0), i64 22 }, i32 125, [4 x i8] undef }
@const44291 = internal unnamed_addr constant i8 36
@str44292 = internal constant [40 x i8] c"the base must be in the range of 2..36: "
@ref44293 = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([40 x i8], [40 x i8]* @str44292, i32 0, i32 0), i64 40 }]
@_ZN3fmt3num5Radix3new15__STATIC_FMTSTR20h9a0d40d93917c69aMZLE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44293, i32 0, i32 0), i64 1 }
@_ZN3fmt3num5Radix3new10_FILE_LINE20hd3cd7f37ba62d99dwZLE = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44282, i32 0, i32 0), i64 22 }, i32 138, [4 x i8] undef }
@_ZN3fmt3num18Radix.GenericRadix5digit15__STATIC_FMTSTR20h9a0d40d93917c69ad1LE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref44280, i32 0, i32 0), i64 2 }
@_ZN3fmt3num18Radix.GenericRadix5digit10_FILE_LINE20hd3cd7f37ba62d99dX0LE = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44282, i32 0, i32 0), i64 22 }, i32 149, [4 x i8] undef }
@autoref44294 = internal unnamed_addr constant %"fmt::num::Decimal" zeroinitializer
@const44295 = internal unnamed_addr constant %"fmt::num::Decimal"* @autoref44294
@autoref44296 = internal unnamed_addr constant %"fmt::num::Binary" zeroinitializer
@const44297 = internal unnamed_addr constant %"fmt::num::Binary"* @autoref44296
@autoref44298 = internal unnamed_addr constant %"fmt::num::Octal" zeroinitializer
@const44299 = internal unnamed_addr constant %"fmt::num::Octal"* @autoref44298
@autoref44300 = internal unnamed_addr constant %"fmt::num::LowerHex" zeroinitializer
@const44301 = internal unnamed_addr constant %"fmt::num::LowerHex"* @autoref44300
@autoref44302 = internal unnamed_addr constant %"fmt::num::UpperHex" zeroinitializer
@const44303 = internal unnamed_addr constant %"fmt::num::UpperHex"* @autoref44302
@str44304 = internal constant [4 x i8] c" "
@const44305 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str44304, i32 0, i32 0), i64 4 }
@const44308 = internal unnamed_addr constant %closure.32 zeroinitializer
@str44311 = internal constant [1 x i8] c","
@const44312 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str44311, i32 0, i32 0), i64 1 }
@str44313 = internal constant [2 x i8] c" {"
@const44314 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str44313, i32 0, i32 0), i64 2 }
@vtable44315 = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 (%"fmt::Write::write_fmt::Adapter<fmt::builders::PadAdapter>"*, i8*, i64)*, i8 (%"fmt::Write::write_fmt::Adapter<fmt::builders::PadAdapter>"*, i32)*, i8 (%"fmt::Write::write_fmt::Adapter<fmt::builders::PadAdapter>"*, %"fmt::Arguments"*)* } { void (i8*)* @_ZN2i810drop.4369017hf93d5aa1ca3b13d4E, i64 8, i64 8, i8 (%"fmt::Write::write_fmt::Adapter<fmt::builders::PadAdapter>"*, i8*, i64)* @"_ZN3fmt5Write9write_fmt36Adapter$LT$$u27$a$C$$u20$T$GT$.Write9write_str21h11221762009410138539E", i8 (%"fmt::Write::write_fmt::Adapter<fmt::builders::PadAdapter>"*, i32)* @_ZN3fmt5Write10write_char20h1472929341506298381E, i8 (%"fmt::Write::write_fmt::Adapter<fmt::builders::PadAdapter>"*, %"fmt::Arguments"*)* @"_ZN3fmt5Write9write_fmt36Adapter$LT$$u27$a$C$$u20$T$GT$.Write9write_fmt21h16120111082928536936E" }
@vtable44316 = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 (%"fmt::builders::PadAdapter"*, i8*, i64)*, i8 (%"fmt::builders::PadAdapter"*, i32)*, i8 (%"fmt::builders::PadAdapter"*, %"fmt::Arguments"*)* } { void (i8*)* @_ZN2i810drop.4369017hf93d5aa1ca3b13d4E, i64 16, i64 8, i8 (%"fmt::builders::PadAdapter"*, i8*, i64)* @"_ZN3fmt8builders49PadAdapter$LT$$u27$a$C$$u20$$u27$b$GT$.fmt..Write9write_str20h08dd22d535601e01VwME", i8 (%"fmt::builders::PadAdapter"*, i32)* @_ZN3fmt5Write10write_char21h18389409636991870185E, i8 (%"fmt::builders::PadAdapter"*, %"fmt::Arguments"*)* @_ZN3fmt5Write9write_fmt21h16247563877983074486E }
@str44317 = internal constant [1 x i8] c"\0A"
@ref44318 = internal unnamed_addr constant [3 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str43520, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str44317, i32 0, i32 0), i64 1 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str44083, i32 0, i32 0), i64 2 }]
@"_ZN3fmt8builders39DebugStruct$LT$$u27$a$C$$u20$$u27$b$GT$5field15__STATIC_FMTSTR20h9a0d40d93917c69avAME" = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref44318, i32 0, i32 0), i64 3 }
@const44322 = internal unnamed_addr constant i8 ({ i8*, void (i8*)** }*, %"fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt20h8386821840881117222E"
@ref44323 = internal unnamed_addr constant { { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } }, { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } }, { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } } } { { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } } { { i64, [8 x i8] } { i64 0, [8 x i8] undef }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } { i32 32, i8 3, i32 0, { i64, [8 x i8] } { i64 3, [8 x i8] undef }, { i64, [8 x i8] } { i64 3, [8 x i8] undef } } }, { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } } { { i64, [8 x i8] } { i64 0, [8 x i8] undef }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } { i32 32, i8 3, i32 0, { i64, [8 x i8] } { i64 3, [8 x i8] undef }, { i64, [8 x i8] } { i64 3, [8 x i8] undef } } }, { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } } { { i64, [8 x i8] } { i64 0, [8 x i8] undef }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } { i32 32, i8 3, i32 4, { i64, [8 x i8] } { i64 3, [8 x i8] undef }, { i64, [8 x i8] } { i64 3, [8 x i8] undef } } } }
@"_ZN3fmt8builders39DebugStruct$LT$$u27$a$C$$u20$$u27$b$GT$5field16__STATIC_FMTARGS20h43474a3853fea22abBME" = internal constant { %"fmt::rt::v1::Argument"*, i64 } { %"fmt::rt::v1::Argument"* bitcast ({ { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } }, { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } }, { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } } }* @ref44323 to %"fmt::rt::v1::Argument"*), i64 3 }
@str44324 = internal constant [1 x i8] c" "
@ref44325 = internal unnamed_addr constant [3 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str43520, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str44324, i32 0, i32 0), i64 1 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str44083, i32 0, i32 0), i64 2 }]
@"_ZN3fmt8builders39DebugStruct$LT$$u27$a$C$$u20$$u27$b$GT$5field15__STATIC_FMTSTR20h9a0d40d93917c69aRBME" = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref44325, i32 0, i32 0), i64 3 }
@str44328 = internal constant [2 x i8] c"\0A}"
@const44329 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str44328, i32 0, i32 0), i64 2 }
@str44330 = internal constant [2 x i8] c" }"
@const44331 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str44330, i32 0, i32 0), i64 2 }
@const44334 = internal unnamed_addr constant { %str_slice, %str_slice } { %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str44311, i32 0, i32 0), i64 1 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str44324, i32 0, i32 0), i64 1 } }
@str44335 = internal constant [1 x i8] c"("
@const44336 = internal unnamed_addr constant { %str_slice, %str_slice } { %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str44335, i32 0, i32 0), i64 1 }, %str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str43520, i32 0, i32 0), i64 0 } }
@ref44337 = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str43520, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str44317, i32 0, i32 0), i64 1 }]
@"_ZN3fmt8builders38DebugTuple$LT$$u27$a$C$$u20$$u27$b$GT$5field15__STATIC_FMTSTR20h9a0d40d93917c69arFME" = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref44337, i32 0, i32 0), i64 2 }
@ref44338 = internal unnamed_addr constant { { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } }, { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } } } { { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } } { { i64, [8 x i8] } { i64 0, [8 x i8] undef }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } { i32 32, i8 3, i32 0, { i64, [8 x i8] } { i64 3, [8 x i8] undef }, { i64, [8 x i8] } { i64 3, [8 x i8] undef } } }, { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } } { { i64, [8 x i8] } { i64 0, [8 x i8] undef }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } { i32 32, i8 3, i32 4, { i64, [8 x i8] } { i64 3, [8 x i8] undef }, { i64, [8 x i8] } { i64 3, [8 x i8] undef } } } }
@"_ZN3fmt8builders38DebugTuple$LT$$u27$a$C$$u20$$u27$b$GT$5field16__STATIC_FMTARGS20h43474a3853fea22aZFME" = internal constant { %"fmt::rt::v1::Argument"*, i64 } { %"fmt::rt::v1::Argument"* bitcast ({ { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } }, { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } } }* @ref44338 to %"fmt::rt::v1::Argument"*), i64 2 }
@ref44339 = internal unnamed_addr constant [3 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str43520, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str43520, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str43520, i32 0, i32 0), i64 0 }]
@"_ZN3fmt8builders38DebugTuple$LT$$u27$a$C$$u20$$u27$b$GT$5field15__STATIC_FMTSTR20h9a0d40d93917c69axGME" = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref44339, i32 0, i32 0), i64 3 }
@str44342 = internal constant [2 x i8] c"\0A)"
@const44343 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str44342, i32 0, i32 0), i64 2 }
@str44344 = internal constant [1 x i8] c")"
@const44345 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str44344, i32 0, i32 0), i64 1 }
@"_ZN3fmt8builders38DebugInner$LT$$u27$a$C$$u20$$u27$b$GT$5entry15__STATIC_FMTSTR20h9a0d40d93917c69avJME" = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref44337, i32 0, i32 0), i64 2 }
@"_ZN3fmt8builders38DebugInner$LT$$u27$a$C$$u20$$u27$b$GT$5entry16__STATIC_FMTARGS20h43474a3853fea22a3JME" = internal constant { %"fmt::rt::v1::Argument"*, i64 } { %"fmt::rt::v1::Argument"* bitcast ({ { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } }, { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } } }* @ref44338 to %"fmt::rt::v1::Argument"*), i64 2 }
@str44348 = internal constant [2 x i8] c", "
@const44349 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str44348, i32 0, i32 0), i64 2 }
@ref44350 = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str43520, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str43520, i32 0, i32 0), i64 0 }]
@"_ZN3fmt8builders38DebugInner$LT$$u27$a$C$$u20$$u27$b$GT$5entry15__STATIC_FMTSTR20h9a0d40d93917c69aMKME" = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref44350, i32 0, i32 0), i64 2 }
@const44351 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str44317, i32 0, i32 0), i64 1 }
@str44354 = internal constant [1 x i8] c"{"
@ref44355 = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str44354, i32 0, i32 0), i64 1 }]
@_ZN3fmt8builders13debug_set_new15__STATIC_FMTSTR20h9a0d40d93917c69aUMME = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44355, i32 0, i32 0), i64 1 }
@str44358 = internal constant [1 x i8] c"}"
@const44359 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str44358, i32 0, i32 0), i64 1 }
@str44360 = internal constant [1 x i8] c"["
@ref44361 = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str44360, i32 0, i32 0), i64 1 }]
@_ZN3fmt8builders14debug_list_new15__STATIC_FMTSTR20h9a0d40d93917c69atPME = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44361, i32 0, i32 0), i64 1 }
@str44364 = internal constant [1 x i8] c"]"
@const44365 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str44364, i32 0, i32 0), i64 1 }
@_ZN3fmt8builders13debug_map_new15__STATIC_FMTSTR20h9a0d40d93917c69a7RME = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44355, i32 0, i32 0), i64 1 }
@"_ZN3fmt8builders36DebugMap$LT$$u27$a$C$$u20$$u27$b$GT$5entry15__STATIC_FMTSTR20h9a0d40d93917c69atTME" = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref44318, i32 0, i32 0), i64 3 }
@ref44368 = internal unnamed_addr constant { { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } }, { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } }, { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } } } { { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } } { { i64, [8 x i8] } { i64 0, [8 x i8] undef }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } { i32 32, i8 3, i32 0, { i64, [8 x i8] } { i64 3, [8 x i8] undef }, { i64, [8 x i8] } { i64 3, [8 x i8] undef } } }, { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } } { { i64, [8 x i8] } { i64 0, [8 x i8] undef }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } { i32 32, i8 3, i32 4, { i64, [8 x i8] } { i64 3, [8 x i8] undef }, { i64, [8 x i8] } { i64 3, [8 x i8] undef } } }, { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } } { { i64, [8 x i8] } { i64 0, [8 x i8] undef }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } { i32 32, i8 3, i32 4, { i64, [8 x i8] } { i64 3, [8 x i8] undef }, { i64, [8 x i8] } { i64 3, [8 x i8] undef } } } }
@"_ZN3fmt8builders36DebugMap$LT$$u27$a$C$$u20$$u27$b$GT$5entry16__STATIC_FMTARGS20h43474a3853fea22a9TME" = internal constant { %"fmt::rt::v1::Argument"*, i64 } { %"fmt::rt::v1::Argument"* bitcast ({ { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } }, { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } }, { { i64, [8 x i8] }, { i32, i8, i32, { i64, [8 x i8] }, { i64, [8 x i8] } } } }* @ref44368 to %"fmt::rt::v1::Argument"*), i64 3 }
@ref44369 = internal unnamed_addr constant [3 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str43520, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str43520, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str44083, i32 0, i32 0), i64 2 }]
@"_ZN3fmt8builders36DebugMap$LT$$u27$a$C$$u20$$u27$b$GT$5entry15__STATIC_FMTSTR20h9a0d40d93917c69a0UME" = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref44369, i32 0, i32 0), i64 3 }
@ref44372 = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str43520, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str44358, i32 0, i32 0), i64 1 }]
@"_ZN3fmt8builders36DebugMap$LT$$u27$a$C$$u20$$u27$b$GT$6finish15__STATIC_FMTSTR20h9a0d40d93917c69ajXME" = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref44372, i32 0, i32 0), i64 2 }
@const44373 = internal unnamed_addr constant { i64, [8 x i8] } { i64 3, [8 x i8] undef }
@str44374 = internal constant [5 x i8] c"Error"
@const44375 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str44374, i32 0, i32 0), i64 5 }
@const44376 = internal unnamed_addr constant i8 (i64*, %"fmt::Formatter"*)* @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$10show_usize20heec48704035d573cY8ME"
@const44377 = internal unnamed_addr constant %"fmt::ArgumentV1"* inttoptr (i64 1 to %"fmt::ArgumentV1"*)
@const44378 = internal unnamed_addr constant %"fmt::ArgumentV1"* null
@const44379 = internal unnamed_addr constant %"marker::PhantomData<&'static fmt::ArgumentV1>" zeroinitializer
@const44380 = internal unnamed_addr constant %str_slice* inttoptr (i64 1 to %str_slice*)
@const44381 = internal unnamed_addr constant %str_slice* null
@const44382 = internal unnamed_addr constant %"marker::PhantomData<&'static &'static str>" zeroinitializer
@const44390 = internal unnamed_addr constant %"fmt::rt::v1::Argument"* inttoptr (i64 1 to %"fmt::rt::v1::Argument"*)
@const44391 = internal unnamed_addr constant %"fmt::rt::v1::Argument"* null
@const44392 = internal unnamed_addr constant %"marker::PhantomData<&'static fmt::rt::v1::Argument>" zeroinitializer
@str44401 = internal constant [22 x i8] c"src/libcore/fmt/mod.rs"
@panic_bounds_check_loc44402 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44401, i32 0, i32 0), i64 22 }, i32 463 }
@panic_bounds_check_loc44403 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44401, i32 0, i32 0), i64 22 }, i32 475 }
@const44406 = internal unnamed_addr constant %closure.47 zeroinitializer
@const44407 = internal unnamed_addr constant { i32, i32, [0 x i8] } { i32 1, i32 45, [0 x i8] undef }
@const44408 = internal unnamed_addr constant { i32, i32, [0 x i8] } { i32 1, i32 43, [0 x i8] undef }
@str44419 = internal constant [64 x i8] c"0000000000000000000000000000000000000000000000000000000000000000"
@const44420 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([64 x i8], [64 x i8]* @str44419, i32 0, i32 0), i64 64 }
@str44421 = internal constant [45 x i8] c"an error occurred when formatting an argument"
@const44422 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @str44421, i32 0, i32 0), i64 45 }
@const44423 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str44166, i32 0, i32 0), i64 4 }
@const44424 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str44167, i32 0, i32 0), i64 5 }
@str44425 = internal constant [1 x i8] c"\22"
@ref44426 = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str44425, i32 0, i32 0), i64 1 }]
@_ZN3fmt9str.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a8ONE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44426, i32 0, i32 0), i64 1 }
@const44432 = internal unnamed_addr constant %closure.53 zeroinitializer
@const44437 = internal unnamed_addr constant %closure.55 zeroinitializer
@const44441 = internal unnamed_addr constant void (%"char::EscapeDefault"*, %"char::EscapeDefault"*)* @_ZN4iter14I.IntoIterator9into_iter20h4960763972163423828E
@_ZN3fmt9str.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69ahQNE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@const44442 = internal unnamed_addr constant i8 (i32*, %"fmt::Formatter"*)* @_ZN3fmt12char.Display3fmt20h0528d7157ea73c8e2TNE
@_ZN3fmt9str.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aXQNE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44426, i32 0, i32 0), i64 1 }
@str44443 = internal constant [1 x i8] c"'"
@ref44444 = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str44443, i32 0, i32 0), i64 1 }]
@_ZN3fmt10char.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a1RNE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44444, i32 0, i32 0), i64 1 }
@_ZN3fmt10char.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a2SNE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@_ZN3fmt10char.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aITNE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44444, i32 0, i32 0), i64 1 }
@const44445 = internal unnamed_addr constant { i8, i64, [8 x i8] } { i8 0, i64 0, [8 x i8] undef }
@binary44446 = internal unnamed_addr constant [3 x i8] c"NaN"
@const44447 = internal unnamed_addr constant { i8, { i8*, i64 }, [0 x i8] } { i8 2, { i8*, i64 } { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @binary44446, i32 0, i32 0), i64 3 }, [0 x i8] undef }
@panic_bounds_check_loc44448 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 617 }
@binary44449 = internal unnamed_addr constant [3 x i8] c"inf"
@const44450 = internal unnamed_addr constant { i8, { i8*, i64 }, [0 x i8] } { i8 2, { i8*, i64 } { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @binary44449, i32 0, i32 0), i64 3 }, [0 x i8] undef }
@panic_bounds_check_loc44451 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 621 }
@panic_bounds_check_loc44452 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 626 }
@panic_bounds_check_loc44453 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 627 }
@binary44454 = internal unnamed_addr constant [1 x i8] c"0"
@const44455 = internal unnamed_addr constant { i8, { i8*, i64 }, [0 x i8] } { i8 2, { i8*, i64 } { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @binary44454, i32 0, i32 0), i64 1 }, [0 x i8] undef }
@panic_bounds_check_loc44456 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 630 }
@const44457 = internal unnamed_addr constant i64 32768
@panic_bounds_check_loc44461 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 649 }
@panic_bounds_check_loc44462 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 650 }
@panic_bounds_check_loc44463 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 653 }
@const44464 = internal unnamed_addr constant void ({ i64, i16 }*, %"num::flt2dec::decoder::Decoded"*, i8*, i64, i16)* @_ZN3num7flt2dec8strategy5grisu12format_exact20hf929d7acbaed7f7d8AeE
@panic_bounds_check_loc44465 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 428 }
@panic_bounds_check_loc44466 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 432 }
@panic_bounds_check_loc44467 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 437 }
@panic_bounds_check_loc44468 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 438 }
@panic_bounds_check_loc44469 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 441 }
@const44473 = internal unnamed_addr constant void ({ i64, i16 }*, %"num::flt2dec::decoder::Decoded"*, i8*, i64)* @_ZN3num7flt2dec8strategy5grisu15format_shortest20h9b02ceac064ee058FmeE
@panic_bounds_check_loc44474 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 562 }
@panic_bounds_check_loc44475 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 566 }
@panic_bounds_check_loc44476 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 571 }
@panic_bounds_check_loc44477 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 572 }
@binary44478 = internal unnamed_addr constant [2 x i8] c"E0"
@const44479 = internal unnamed_addr constant { i8*, i64 } { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @binary44478, i32 0, i32 0), i64 2 }
@binary44480 = internal unnamed_addr constant [2 x i8] c"e0"
@const44481 = internal unnamed_addr constant { i8*, i64 } { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @binary44480, i32 0, i32 0), i64 2 }
@panic_bounds_check_loc44482 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 573 }
@binary44483 = internal unnamed_addr constant [3 x i8] c"0E0"
@const44484 = internal unnamed_addr constant { i8*, i64 } { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @binary44483, i32 0, i32 0), i64 3 }
@binary44485 = internal unnamed_addr constant [3 x i8] c"0e0"
@const44486 = internal unnamed_addr constant { i8*, i64 } { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @binary44485, i32 0, i32 0), i64 3 }
@panic_bounds_check_loc44487 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 576 }
@panic_bounds_check_loc44488 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 484 }
@panic_bounds_check_loc44489 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 488 }
@panic_bounds_check_loc44490 = internal unnamed_addr constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([30 x i8], [30 x i8]* @str43833, i32 0, i32 0), i64 30 }, i32 492 }
@const44491 = internal unnamed_addr constant { i16, i16 } zeroinitializer
@ref44492 = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str44335, i32 0, i32 0), i64 1 }]
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aN4NE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44492, i32 0, i32 0), i64 1 }
@ref44493 = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str44348, i32 0, i32 0), i64 2 }]
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aS5NE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aw6NE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69as7NE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a67NE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a28NE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aG9NE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aCaOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69agbOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69accOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aQcOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aMdOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aqeOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69amfOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a0fOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aWgOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aAhOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69awiOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aajOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a6jOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aKkOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aGlOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69akmOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69agnOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aUnOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@ref44494 = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str44311, i32 0, i32 0), i64 1 }]
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aQoOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44494, i32 0, i32 0), i64 1 }
@ref44495 = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str44344, i32 0, i32 0), i64 1 }]
@"_ZN3fmt129_$LP$T0$C$$u20$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69ampOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44495, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aGqOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44492, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aKrOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aosOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aktOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aYtOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aUuOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69ayvOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69auwOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a8wOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a4xOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aIyOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aEzOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aiAOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aeBOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aSBOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aOCOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69asDOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aoEOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a2EOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aYFOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aCGOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69ayHOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69acIOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a8IOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44494, i32 0, i32 0), i64 1 }
@"_ZN3fmt119_$LP$T1$C$$u20$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aEJOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44495, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aVKOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44492, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aYLOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aCMOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69ayNOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69acOOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a8OOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aMPOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aIQOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69amROE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aiSOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aWSOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aSTOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69awUOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69asVOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a6VOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a2WOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aGXOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aCYOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69agZOE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69ac0OE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aQ0OE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aM1OE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44494, i32 0, i32 0), i64 1 }
@"_ZN3fmt109_$LP$T2$C$$u20$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69ai2OE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44495, i32 0, i32 0), i64 1 }
@"_ZN3fmt99_$LP$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aw3OE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44492, i32 0, i32 0), i64 1 }
@"_ZN3fmt99_$LP$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69ay4OE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt99_$LP$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69ac5OE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt99_$LP$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a85OE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt99_$LP$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aM6OE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt99_$LP$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aI7OE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt99_$LP$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69am8OE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt99_$LP$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69ai9OE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt99_$LP$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aW9OE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt99_$LP$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aSaPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt99_$LP$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69awbPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt99_$LP$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69ascPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt99_$LP$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a6cPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt99_$LP$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a2dPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt99_$LP$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aGePE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt99_$LP$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aCfPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt99_$LP$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aggPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt99_$LP$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69achPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt99_$LP$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aQhPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt99_$LP$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aMiPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44494, i32 0, i32 0), i64 1 }
@"_ZN3fmt99_$LP$T3$C$$u20$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aijPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44495, i32 0, i32 0), i64 1 }
@"_ZN3fmt89_$LP$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69atkPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44492, i32 0, i32 0), i64 1 }
@"_ZN3fmt89_$LP$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aulPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt89_$LP$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a8lPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt89_$LP$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a4mPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt89_$LP$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aInPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt89_$LP$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aEoPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt89_$LP$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aipPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt89_$LP$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aeqPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt89_$LP$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aSqPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt89_$LP$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aOrPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt89_$LP$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69assPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt89_$LP$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aotPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt89_$LP$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a2tPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt89_$LP$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aYuPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt89_$LP$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aCvPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt89_$LP$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aywPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt89_$LP$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69acxPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt89_$LP$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a8xPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44494, i32 0, i32 0), i64 1 }
@"_ZN3fmt89_$LP$T4$C$$u20$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aEyPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44495, i32 0, i32 0), i64 1 }
@"_ZN3fmt79_$LP$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aMzPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44492, i32 0, i32 0), i64 1 }
@"_ZN3fmt79_$LP$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aMAPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt79_$LP$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aqBPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt79_$LP$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69amCPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt79_$LP$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a0CPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt79_$LP$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aWDPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt79_$LP$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aAEPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt79_$LP$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69awFPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt79_$LP$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aaGPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt79_$LP$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a6GPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt79_$LP$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aKHPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt79_$LP$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aGIPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt79_$LP$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69akJPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt79_$LP$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69agKPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt79_$LP$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aUKPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt79_$LP$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aQLPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44494, i32 0, i32 0), i64 1 }
@"_ZN3fmt79_$LP$T5$C$$u20$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69amMPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44495, i32 0, i32 0), i64 1 }
@"_ZN3fmt69_$LP$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69arNPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44492, i32 0, i32 0), i64 1 }
@"_ZN3fmt69_$LP$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aqOPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt69_$LP$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a4OPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt69_$LP$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a0PPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt69_$LP$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aEQPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt69_$LP$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aARPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt69_$LP$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aeSPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt69_$LP$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aaTPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt69_$LP$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aOTPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt69_$LP$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aKUPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt69_$LP$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aoVPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt69_$LP$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69akWPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt69_$LP$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aYWPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt69_$LP$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aUXPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44494, i32 0, i32 0), i64 1 }
@"_ZN3fmt69_$LP$T6$C$$u20$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aqYPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44495, i32 0, i32 0), i64 1 }
@"_ZN3fmt59_$LP$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69asZPE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44492, i32 0, i32 0), i64 1 }
@"_ZN3fmt59_$LP$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aq0PE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt59_$LP$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a40PE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt59_$LP$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a01PE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt59_$LP$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aE2PE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt59_$LP$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aA3PE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt59_$LP$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69ae4PE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt59_$LP$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aa5PE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt59_$LP$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aO5PE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt59_$LP$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aK6PE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt59_$LP$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69ao7PE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt59_$LP$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69ak8PE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44494, i32 0, i32 0), i64 1 }
@"_ZN3fmt59_$LP$T7$C$$u20$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aQ8PE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44495, i32 0, i32 0), i64 1 }
@"_ZN3fmt49_$LP$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aP9PE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44492, i32 0, i32 0), i64 1 }
@"_ZN3fmt49_$LP$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aMaQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt49_$LP$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aqbQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt49_$LP$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69amcQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt49_$LP$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a0cQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt49_$LP$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aWdQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt49_$LP$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aAeQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt49_$LP$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69awfQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt49_$LP$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aagQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt49_$LP$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a6gQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44494, i32 0, i32 0), i64 1 }
@"_ZN3fmt49_$LP$T8$C$$u20$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aChQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44495, i32 0, i32 0), i64 1 }
@"_ZN3fmt39_$LP$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69ayiQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44492, i32 0, i32 0), i64 1 }
@"_ZN3fmt39_$LP$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aujQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt39_$LP$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a8jQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt39_$LP$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a4kQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt39_$LP$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aIlQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt39_$LP$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aEmQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt39_$LP$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69ainQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt39_$LP$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aeoQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44494, i32 0, i32 0), i64 1 }
@"_ZN3fmt39_$LP$T9$C$$u20$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aKoQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44495, i32 0, i32 0), i64 1 }
@"_ZN3fmt29_$LP$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aDpQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44492, i32 0, i32 0), i64 1 }
@"_ZN3fmt29_$LP$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69ayqQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt29_$LP$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69acrQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt29_$LP$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a8rQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt29_$LP$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aMsQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt29_$LP$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aItQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44494, i32 0, i32 0), i64 1 }
@"_ZN3fmt29_$LP$T10$C$$u20$T11$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aeuQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44495, i32 0, i32 0), i64 1 }
@"_ZN3fmt21_$LP$T11$C$$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a4uQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44492, i32 0, i32 0), i64 1 }
@"_ZN3fmt21_$LP$T11$C$$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aYvQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44493, i32 0, i32 0), i64 1 }
@"_ZN3fmt21_$LP$T11$C$$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aCwQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref43655, i32 0, i32 0), i64 1 }
@"_ZN3fmt21_$LP$T11$C$$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69ayxQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44494, i32 0, i32 0), i64 1 }
@"_ZN3fmt21_$LP$T11$C$$RP$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69a4xQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44495, i32 0, i32 0), i64 1 }
@str44496 = internal constant [2 x i8] c"()"
@const44497 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str44496, i32 0, i32 0), i64 2 }
@str44498 = internal constant [14 x i8] c"Cell { value: "
@ref44499 = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([14 x i8], [14 x i8]* @str44498, i32 0, i32 0), i64 14 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str44330, i32 0, i32 0), i64 2 }]
@"_ZN3fmt19Cell$LT$T$GT$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aJzQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref44499, i32 0, i32 0), i64 2 }
@str44500 = internal constant [17 x i8] c"RefCell { value: "
@ref44501 = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @str44500, i32 0, i32 0), i64 17 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str44330, i32 0, i32 0), i64 2 }]
@"_ZN3fmt22RefCell$LT$T$GT$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69aFAQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref44501, i32 0, i32 0), i64 2 }
@str44502 = internal constant [22 x i8] c"RefCell { <borrowed> }"
@ref44503 = internal unnamed_addr constant [1 x %str_slice] [%str_slice { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @str44502, i32 0, i32 0), i64 22 }]
@"_ZN3fmt22RefCell$LT$T$GT$.Debug3fmt15__STATIC_FMTSTR20h9a0d40d93917c69acBQE" = constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([1 x %str_slice], [1 x %str_slice]* @ref44503, i32 0, i32 0), i64 1 }
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float3nan20h96a4717cfc7a7c18TfaE() unnamed_addr #0 {
entry-block:
ret float 0x7FF8000000000000
}
declare i32 @rust_eh_personality(...) unnamed_addr #1
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float8infinity20h6ec1d6c56e54b7d5YfaE() unnamed_addr #0 {
entry-block:
ret float 0x7FF0000000000000
}
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float12neg_infinity20h6adc134f1b5bae443faE() unnamed_addr #0 {
entry-block:
ret float 0xFFF0000000000000
}
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float4zero20h9687bc314ac19e9b8faE() unnamed_addr #0 {
entry-block:
ret float 0.000000e+00
}
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float8neg_zero20h794abe4bdbfd8709dgaE() unnamed_addr #0 {
entry-block:
ret float -0.000000e+00
}
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float3one20h22aeffd009d5448ejgaE() unnamed_addr #0 {
entry-block:
ret float 1.000000e+00
}
; Function Attrs: uwtable
define i64 @_ZN3f329f32.Float14from_str_radix20h8e23e737994ad8b3ogaE(i8* noalias nonnull readonly, i64, i32) unnamed_addr #2 {
entry-block:
%sret_slot = alloca %"result::Result<f32, num::ParseFloatError>"
%src = alloca %str_slice
%radix = alloca i32
%to_ref = alloca %str_slice
%to_ref5 = alloca %str_slice
%to_ref8 = alloca %str_slice
%3 = alloca { i8, %str_slice }
%4 = alloca %"option::Option<(char, &'static str)>"
%__llmatch = alloca %str_slice*
%src13 = alloca %str_slice
%to_ref22 = alloca %str_slice
%is_positive = alloca i8
%src25 = alloca %str_slice
%sig = alloca float
%prev_sig = alloca float
%cs = alloca %"iter::Enumerate<str::Chars>"
%5 = alloca %"str::Chars"
%exp_info = alloca %"option::Option<(char, usize)>"
%result = alloca {}
%6 = alloca %"iter::Enumerate<str::Chars>"*
%7 = alloca %"iter::Enumerate<str::Chars>"*
%match = alloca %"iter::Enumerate<str::Chars>"*
%iter = alloca %"iter::Enumerate<str::Chars>"**
%8 = alloca %"option::Option<(usize, char)>"
%__llmatch29 = alloca i64*
%i = alloca i64
%__llmatch30 = alloca i32*
%c = alloca i32
%9 = alloca %"option::Option<u32>"
%match34 = alloca %"option::Option<u32>"
%__llmatch36 = alloca i32*
%digit = alloca i32
%10 = alloca %"option::Option<(char, usize)>"
%11 = alloca i8
%power = alloca float
%result77 = alloca {}
%12 = alloca %"iter::Enumerate<str::Chars>"*
%13 = alloca %"iter::Enumerate<str::Chars>"*
%match78 = alloca %"iter::Enumerate<str::Chars>"*
%iter80 = alloca %"iter::Enumerate<str::Chars>"**
%14 = alloca %"option::Option<(usize, char)>"
%__llmatch84 = alloca i64*
%i85 = alloca i64
%__llmatch86 = alloca i32*
%c87 = alloca i32
%15 = alloca %"option::Option<u32>"
%match91 = alloca %"option::Option<u32>"
%__llmatch93 = alloca i32*
%digit94 = alloca i32
%16 = alloca float
%17 = alloca %"option::Option<(char, usize)>"
%exp = alloca float
%__llmatch129 = alloca i32*
%c130 = alloca i32
%__llmatch131 = alloca i64*
%offset = alloca i64
%base = alloca float
%src155 = alloca %str_slice
%18 = alloca %"ops::RangeFrom<usize>"
%overloaded_index_elt = alloca %str_slice
%__fat_ptr = alloca %str_slice
%19 = alloca { i8, %"result::Result<usize, num::ParseIntError>" }
%20 = alloca %"option::Option<(char, &'static str)>"
%__llmatch157 = alloca %str_slice*
%src158 = alloca %str_slice
%__llmatch160 = alloca %str_slice*
%src161 = alloca %str_slice
%is_positive172 = alloca i8
%exp173 = alloca %"result::Result<usize, num::ParseIntError>"
%21 = alloca { i8, %"result::Result<usize, num::ParseIntError>" }
%__llmatch175 = alloca i64*
%exp176 = alloca i64
%__llmatch178 = alloca i64*
%exp179 = alloca i64
%22 = alloca float
%23 = insertvalue %str_slice undef, i8* %0, 0
%24 = insertvalue %str_slice %23, i64 %1, 1
%25 = bitcast %str_slice* %src to i8*
call void @llvm.lifetime.start(i64 16, i8* %25)
store %str_slice %24, %str_slice* %src, align 8
%26 = bitcast i32* %radix to i8*
call void @llvm.lifetime.start(i64 4, i8* %26)
store i32 %2, i32* %radix, align 4
%27 = bitcast %str_slice* %to_ref to i8*
call void @llvm.lifetime.start(i64 16, i8* %27)
store %str_slice { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @str43517, i32 0, i32 0), i64 3 }, %str_slice* %to_ref, align 8
%28 = getelementptr inbounds %str_slice, %str_slice* %src, i32 0, i32 0
%29 = load i8*, i8** %28
%30 = getelementptr inbounds %str_slice, %str_slice* %src, i32 0, i32 1
%31 = load i64, i64* %30
%32 = getelementptr inbounds %str_slice, %str_slice* %to_ref, i32 0, i32 0
%33 = load i8*, i8** %32
%34 = getelementptr inbounds %str_slice, %str_slice* %to_ref, i32 0, i32 1
%35 = load i64, i64* %34
%36 = call zeroext i1 @_ZN3str8eq_slice20hcc8bfaf38dd0c426ZJJE(i8* noalias nonnull readonly %29, i64 %31, i8* noalias nonnull readonly %33, i64 %35)
br i1 %36, label %match_case, label %compare_next
case_body: ; preds = %match_case
%37 = bitcast %"result::Result<f32, num::ParseFloatError>"* %sret_slot to { i8, float }*
%38 = getelementptr inbounds { i8, float }, { i8, float }* %37, i32 0, i32 1
%39 = call float @_ZN3f329f32.Float8infinity20h6ec1d6c56e54b7d5YfaE()
store float %39, float* %38, align 4
%40 = getelementptr inbounds %"result::Result<f32, num::ParseFloatError>", %"result::Result<f32, num::ParseFloatError>"* %sret_slot, i32 0, i32 0
store i8 0, i8* %40
br label %clean_custom_
case_body1: ; preds = %match_case4
%41 = bitcast %"result::Result<f32, num::ParseFloatError>"* %sret_slot to { i8, float }*
%42 = getelementptr inbounds { i8, float }, { i8, float }* %41, i32 0, i32 1
%43 = call float @_ZN3f329f32.Float12neg_infinity20h6adc134f1b5bae443faE()
store float %43, float* %42, align 4
%44 = getelementptr inbounds %"result::Result<f32, num::ParseFloatError>", %"result::Result<f32, num::ParseFloatError>"* %sret_slot, i32 0, i32 0
store i8 0, i8* %44
br label %clean_custom_
case_body2: ; preds = %match_case7
%45 = bitcast %"result::Result<f32, num::ParseFloatError>"* %sret_slot to { i8, float }*
%46 = getelementptr inbounds { i8, float }, { i8, float }* %45, i32 0, i32 1
%47 = call float @_ZN3f329f32.Float3nan20h96a4717cfc7a7c18TfaE()
store float %47, float* %46, align 4
%48 = getelementptr inbounds %"result::Result<f32, num::ParseFloatError>", %"result::Result<f32, num::ParseFloatError>"* %sret_slot, i32 0, i32 0
store i8 0, i8* %48
br label %clean_custom_
case_body3: ; preds = %match_else
br label %join
match_else: ; preds = %compare_next9
br label %case_body3
match_case: ; preds = %entry-block
br label %case_body
compare_next: ; preds = %entry-block
%49 = bitcast %str_slice* %to_ref5 to i8*
call void @llvm.lifetime.start(i64 16, i8* %49)
store %str_slice { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str43518, i32 0, i32 0), i64 4 }, %str_slice* %to_ref5, align 8
%50 = getelementptr inbounds %str_slice, %str_slice* %src, i32 0, i32 0
%51 = load i8*, i8** %50
%52 = getelementptr inbounds %str_slice, %str_slice* %src, i32 0, i32 1
%53 = load i64, i64* %52
%54 = getelementptr inbounds %str_slice, %str_slice* %to_ref5, i32 0, i32 0
%55 = load i8*, i8** %54
%56 = getelementptr inbounds %str_slice, %str_slice* %to_ref5, i32 0, i32 1
%57 = load i64, i64* %56
%58 = call zeroext i1 @_ZN3str8eq_slice20hcc8bfaf38dd0c426ZJJE(i8* noalias nonnull readonly %51, i64 %53, i8* noalias nonnull readonly %55, i64 %57)
br i1 %58, label %match_case4, label %compare_next6
match_case4: ; preds = %compare_next
br label %case_body1
compare_next6: ; preds = %compare_next
%59 = bitcast %str_slice* %to_ref8 to i8*
call void @llvm.lifetime.start(i64 16, i8* %59)
store %str_slice { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @str43519, i32 0, i32 0), i64 3 }, %str_slice* %to_ref8, align 8
%60 = getelementptr inbounds %str_slice, %str_slice* %src, i32 0, i32 0
%61 = load i8*, i8** %60
%62 = getelementptr inbounds %str_slice, %str_slice* %src, i32 0, i32 1
%63 = load i64, i64* %62
%64 = getelementptr inbounds %str_slice, %str_slice* %to_ref8, i32 0, i32 0
%65 = load i8*, i8** %64
%66 = getelementptr inbounds %str_slice, %str_slice* %to_ref8, i32 0, i32 1
%67 = load i64, i64* %66
%68 = call zeroext i1 @_ZN3str8eq_slice20hcc8bfaf38dd0c426ZJJE(i8* noalias nonnull readonly %61, i64 %63, i8* noalias nonnull readonly %65, i64 %67)
br i1 %68, label %match_case7, label %compare_next9
match_case7: ; preds = %compare_next6
br label %case_body2
compare_next9: ; preds = %compare_next6
br label %match_else
clean_custom_: ; preds = %join188, %clean_ast_398_, %clean_ast_430_, %case_body2, %case_body1, %case_body
%69 = bitcast i32* %radix to i8*
call void @llvm.lifetime.end(i64 4, i8* %69)
%70 = bitcast %str_slice* %src to i8*
call void @llvm.lifetime.end(i64 16, i8* %70)
br label %return
join: ; preds = %case_body3
%71 = bitcast { i8, %str_slice }* %3 to i8*
call void @llvm.lifetime.start(i64 24, i8* %71)
%72 = bitcast %"option::Option<(char, &'static str)>"* %4 to i8*
call void @llvm.lifetime.start(i64 24, i8* %72)
%73 = getelementptr inbounds %str_slice, %str_slice* %src, i32 0, i32 0
%74 = load i8*, i8** %73
%75 = getelementptr inbounds %str_slice, %str_slice* %src, i32 0, i32 1
%76 = load i64, i64* %75
call void @_ZN3str10str.StrExt16slice_shift_char20h763b6d43914ac21cBtKE(%"option::Option<(char, &'static str)>"* noalias nocapture sret dereferenceable(24) %4, i8* noalias nonnull readonly %74, i64 %76)
%77 = getelementptr inbounds %"option::Option<(char, &'static str)>", %"option::Option<(char, &'static str)>"* %4, i32 0, i32 0, i32 1, i32 0
%78 = load i8*, i8** %77
%79 = icmp ne i8* %78, null
switch i1 %79, label %match_else15 [
i1 false, label %match_case16
]
case_body10: ; preds = %match_case16
%80 = bitcast %"result::Result<f32, num::ParseFloatError>"* %sret_slot to { i8, { i8 }, [6 x i8] }*
%81 = bitcast { i8, { i8 }, [6 x i8] }* %80 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %81, i8* getelementptr inbounds ({ i8, { i8 }, [6 x i8] }, { i8, { i8 }, [6 x i8] }* @const43521, i32 0, i32 0), i64 8, i32 4, i1 false)
br label %clean_ast_430_
case_body11: ; preds = %match_case21
%82 = bitcast %"result::Result<f32, num::ParseFloatError>"* %sret_slot to { i8, { i8 }, [6 x i8] }*
%83 = bitcast { i8, { i8 }, [6 x i8] }* %82 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %83, i8* getelementptr inbounds ({ i8, { i8 }, [6 x i8] }, { i8, { i8 }, [6 x i8] }* @const43521, i32 0, i32 0), i64 8, i32 4, i1 false)
br label %clean_ast_430_
case_body12: ; preds = %match_else20
%84 = load %str_slice*, %str_slice** %__llmatch
%85 = bitcast %str_slice* %src13 to i8*
call void @llvm.lifetime.start(i64 16, i8* %85)
%86 = bitcast %str_slice* %84 to i8*
%87 = bitcast %str_slice* %src13 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %87, i8* %86, i64 16, i32 8, i1 false)
%88 = getelementptr inbounds { i8, %str_slice }, { i8, %str_slice }* %3, i32 0, i32 0
store i8 0, i8* %88, align 1
%89 = getelementptr inbounds { i8, %str_slice }, { i8, %str_slice }* %3, i32 0, i32 1
%90 = bitcast %str_slice* %src13 to i8*
%91 = bitcast %str_slice* %89 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %91, i8* %90, i64 16, i32 8, i1 false)
%92 = bitcast %str_slice** %__llmatch to i8*
call void @llvm.lifetime.end(i64 8, i8* %92)
%93 = bitcast %str_slice* %src13 to i8*
call void @llvm.lifetime.end(i64 16, i8* %93)
br label %join24
case_body14: ; preds = %match_else17
%94 = getelementptr inbounds { i8, %str_slice }, { i8, %str_slice }* %3, i32 0, i32 0
store i8 1, i8* %94, align 1
%95 = getelementptr inbounds { i8, %str_slice }, { i8, %str_slice }* %3, i32 0, i32 1
%96 = bitcast %str_slice* %src to i8*
%97 = bitcast %str_slice* %95 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %97, i8* %96, i64 16, i32 8, i1 false)
br label %join24
match_else15: ; preds = %join
%98 = getelementptr inbounds %"option::Option<(char, &'static str)>", %"option::Option<(char, &'static str)>"* %4, i32 0, i32 0
%99 = getelementptr inbounds { i32, %str_slice }, { i32, %str_slice }* %98, i32 0, i32 0
%100 = getelementptr inbounds { i32, %str_slice }, { i32, %str_slice }* %98, i32 0, i32 1
%101 = load i32, i32* %99, align 4, !range !0
%102 = icmp eq i32 %101, 45
br i1 %102, label %match_case18, label %compare_next19
match_case16: ; preds = %join
br label %case_body10
match_else17: ; preds = %compare_next19
br label %case_body14
match_case18: ; preds = %match_else15
%103 = bitcast %str_slice* %to_ref22 to i8*
call void @llvm.lifetime.start(i64 16, i8* %103)
store %str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str43520, i32 0, i32 0), i64 0 }, %str_slice* %to_ref22, align 8
%104 = getelementptr inbounds %str_slice, %str_slice* %100, i32 0, i32 0
%105 = load i8*, i8** %104
%106 = getelementptr inbounds %str_slice, %str_slice* %100, i32 0, i32 1
%107 = load i64, i64* %106
%108 = getelementptr inbounds %str_slice, %str_slice* %to_ref22, i32 0, i32 0
%109 = load i8*, i8** %108
%110 = getelementptr inbounds %str_slice, %str_slice* %to_ref22, i32 0, i32 1
%111 = load i64, i64* %110
%112 = call zeroext i1 @_ZN3str8eq_slice20hcc8bfaf38dd0c426ZJJE(i8* noalias nonnull readonly %105, i64 %107, i8* noalias nonnull readonly %109, i64 %111)
br i1 %112, label %match_case21, label %compare_next23
compare_next19: ; preds = %match_else15
br label %match_else17
match_else20: ; preds = %compare_next23
%113 = bitcast %str_slice** %__llmatch to i8*
call void @llvm.lifetime.start(i64 8, i8* %113)
store %str_slice* %100, %str_slice** %__llmatch
br label %case_body12
match_case21: ; preds = %match_case18
br label %case_body11
compare_next23: ; preds = %match_case18
br label %match_else20
clean_ast_430_: ; preds = %case_body11, %case_body10
%114 = bitcast %"option::Option<(char, &'static str)>"* %4 to i8*
call void @llvm.lifetime.end(i64 24, i8* %114)
br label %clean_custom_
join24: ; preds = %case_body14, %case_body12
%115 = getelementptr inbounds { i8, %str_slice }, { i8, %str_slice }* %3, i32 0, i32 0
call void @llvm.lifetime.start(i64 1, i8* %is_positive)
%116 = load i8, i8* %115, align 1, !range !1
%117 = trunc i8 %116 to i1
%118 = zext i1 %117 to i8
store i8 %118, i8* %is_positive, align 1
%119 = getelementptr inbounds { i8, %str_slice }, { i8, %str_slice }* %3, i32 0, i32 1
%120 = bitcast %str_slice* %src25 to i8*
call void @llvm.lifetime.start(i64 16, i8* %120)
%121 = bitcast %str_slice* %119 to i8*
%122 = bitcast %str_slice* %src25 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %122, i8* %121, i64 16, i32 8, i1 false)
%123 = bitcast { i8, %str_slice }* %3 to i8*
call void @llvm.lifetime.end(i64 24, i8* %123)
%124 = bitcast %"option::Option<(char, &'static str)>"* %4 to i8*
call void @llvm.lifetime.end(i64 24, i8* %124)
%125 = bitcast float* %sig to i8*
call void @llvm.lifetime.start(i64 4, i8* %125)
%126 = load i8, i8* %is_positive, align 1, !range !1
%127 = trunc i8 %126 to i1
br i1 %127, label %then-block-475-, label %else-block
then-block-475-: ; preds = %join24
store float 0.000000e+00, float* %sig, align 4
br label %join26
else-block: ; preds = %join24
store float -0.000000e+00, float* %sig, align 4
br label %join26
join26: ; preds = %else-block, %then-block-475-
%128 = bitcast float* %prev_sig to i8*
call void @llvm.lifetime.start(i64 4, i8* %128)
%129 = load float, float* %sig, align 4
store float %129, float* %prev_sig, align 4
%130 = bitcast %"iter::Enumerate<str::Chars>"* %cs to i8*
call void @llvm.lifetime.start(i64 24, i8* %130)
%131 = bitcast %"str::Chars"* %5 to i8*
call void @llvm.lifetime.start(i64 16, i8* %131)
%132 = getelementptr inbounds %str_slice, %str_slice* %src25, i32 0, i32 0
%133 = load i8*, i8** %132
%134 = getelementptr inbounds %str_slice, %str_slice* %src25, i32 0, i32 1
%135 = load i64, i64* %134
call void @_ZN3str10str.StrExt5chars20h72e52c290c5f0a7craKE(%"str::Chars"* noalias nocapture sret dereferenceable(16) %5, i8* noalias nonnull readonly %133, i64 %135)
call void @_ZN4iter8Iterator9enumerate20h5216804230006291893E(%"iter::Enumerate<str::Chars>"* noalias nocapture sret dereferenceable(24) %cs, %"str::Chars"* noalias nocapture dereferenceable(16) %5)
%136 = bitcast %"str::Chars"* %5 to i8*
call void @llvm.lifetime.end(i64 16, i8* %136)
%137 = bitcast %"option::Option<(char, usize)>"* %exp_info to i8*
call void @llvm.lifetime.start(i64 24, i8* %137)
%138 = bitcast %"option::Option<(char, usize)>"* %exp_info to { i64, [16 x i8] }*
%139 = bitcast { i64, [16 x i8] }* %138 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %139, i8* bitcast ({ i64, [16 x i8] }* @const43525 to i8*), i64 24, i32 8, i1 false)
%140 = bitcast {}* %result to i8*
call void @llvm.lifetime.start(i64 0, i8* %140)
%141 = bitcast %"iter::Enumerate<str::Chars>"** %6 to i8*
call void @llvm.lifetime.start(i64 8, i8* %141)
%142 = bitcast %"iter::Enumerate<str::Chars>"** %7 to i8*
call void @llvm.lifetime.start(i64 8, i8* %142)
%143 = call dereferenceable(24) %"iter::Enumerate<str::Chars>"* @_ZN4iter8Iterator6by_ref21h16646711982226617443E(%"iter::Enumerate<str::Chars>"* noalias dereferenceable(24) %cs)
store %"iter::Enumerate<str::Chars>"* %143, %"iter::Enumerate<str::Chars>"** %7, align 8
%144 = load %"iter::Enumerate<str::Chars>"*, %"iter::Enumerate<str::Chars>"** %7, align 8, !nonnull !2
%145 = bitcast %"iter::Enumerate<str::Chars>"** %7 to i8*
call void @llvm.lifetime.end(i64 8, i8* %145)
%146 = call dereferenceable(24) %"iter::Enumerate<str::Chars>"* @_ZN4iter14I.IntoIterator9into_iter20h6563255094920483013E(%"iter::Enumerate<str::Chars>"* noalias dereferenceable(24) %144)
store %"iter::Enumerate<str::Chars>"* %146, %"iter::Enumerate<str::Chars>"** %6, align 8
%147 = load %"iter::Enumerate<str::Chars>"*, %"iter::Enumerate<str::Chars>"** %6, align 8, !nonnull !2
%148 = bitcast %"iter::Enumerate<str::Chars>"** %6 to i8*
call void @llvm.lifetime.end(i64 8, i8* %148)
%149 = bitcast %"iter::Enumerate<str::Chars>"** %match to i8*
call void @llvm.lifetime.start(i64 8, i8* %149)
store %"iter::Enumerate<str::Chars>"* %147, %"iter::Enumerate<str::Chars>"** %match, align 8
%150 = bitcast %"iter::Enumerate<str::Chars>"*** %iter to i8*
call void @llvm.lifetime.start(i64 8, i8* %150)
store %"iter::Enumerate<str::Chars>"** %match, %"iter::Enumerate<str::Chars>"*** %iter
br label %case_body27
case_body27: ; preds = %join26
%151 = load %"iter::Enumerate<str::Chars>"**, %"iter::Enumerate<str::Chars>"*** %iter
br label %loop_body
loop_exit: ; preds = %clean_ast_511_70
%152 = bitcast %"iter::Enumerate<str::Chars>"*** %iter to i8*
call void @llvm.lifetime.end(i64 8, i8* %152)
br label %join76
loop_body: ; preds = %join75, %case_body27
%153 = bitcast %"option::Option<(usize, char)>"* %8 to i8*
call void @llvm.lifetime.start(i64 24, i8* %153)
call void @"_ZN4iter34_$RF$$u27$a$u20$mut$u20$I.Iterator4next21h12474813853625106210E"(%"option::Option<(usize, char)>"* noalias nocapture sret dereferenceable(24) %8, %"iter::Enumerate<str::Chars>"** noalias dereferenceable(8) %151)
%154 = getelementptr inbounds %"option::Option<(usize, char)>", %"option::Option<(usize, char)>"* %8, i32 0, i32 0
%155 = load i64, i64* %154, !range !3
switch i64 %155, label %match_else32 [
i64 1, label %match_case33
]
case_body28: ; preds = %match_case33
%156 = load i64*, i64** %__llmatch29
%157 = bitcast i64* %i to i8*
call void @llvm.lifetime.start(i64 8, i8* %157)
%158 = load i64, i64* %156, align 8
store i64 %158, i64* %i, align 8
%159 = load i32*, i32** %__llmatch30
%160 = bitcast i32* %c to i8*
call void @llvm.lifetime.start(i64 4, i8* %160)
%161 = load i32, i32* %159, align 4, !range !0
store i32 %161, i32* %c, align 4
%162 = bitcast %"option::Option<u32>"* %9 to i8*
call void @llvm.lifetime.start(i64 8, i8* %162)
%163 = load i32, i32* %c, align 4, !range !0
%164 = load i32, i32* %radix, align 4
%165 = call i64 @_ZN4char12char.CharExt8to_digit20h151cfc3f68bf51e09RBE(i32 %163, i32 %164)
%166 = bitcast %"option::Option<u32>"* %9 to i64*
store i64 %165, i64* %166, align 4
%167 = bitcast %"option::Option<u32>"* %9 to i64*
%168 = load i64, i64* %167, align 4
%169 = bitcast %"option::Option<u32>"* %9 to i8*
call void @llvm.lifetime.end(i64 8, i8* %169)
%170 = bitcast %"option::Option<u32>"* %match34 to i8*
call void @llvm.lifetime.start(i64 8, i8* %170)
%171 = bitcast %"option::Option<u32>"* %match34 to i64*
store i64 %168, i64* %171, align 4
%172 = getelementptr inbounds %"option::Option<u32>", %"option::Option<u32>"* %match34, i32 0, i32 0
%173 = load i32, i32* %172, !range !4
switch i32 %173, label %match_else38 [
i32 1, label %match_case39
]
case_body31: ; preds = %match_else32
br label %clean_ast_511_70
match_else32: ; preds = %loop_body
br label %case_body31
match_case33: ; preds = %loop_body
%174 = bitcast %"option::Option<(usize, char)>"* %8 to { i64, { i64, i32 } }*
%175 = getelementptr inbounds { i64, { i64, i32 } }, { i64, { i64, i32 } }* %174, i32 0, i32 1
%176 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %175, i32 0, i32 0
%177 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %175, i32 0, i32 1
%178 = bitcast i32** %__llmatch30 to i8*
call void @llvm.lifetime.start(i64 8, i8* %178)
store i32* %177, i32** %__llmatch30
%179 = bitcast i64** %__llmatch29 to i8*
call void @llvm.lifetime.start(i64 8, i8* %179)
store i64* %176, i64** %__llmatch29
br label %case_body28
case_body35: ; preds = %match_case39
%180 = load i32*, i32** %__llmatch36
%181 = bitcast i32* %digit to i8*
call void @llvm.lifetime.start(i64 4, i8* %181)
%182 = load i32, i32* %180, align 4
store i32 %182, i32* %digit, align 4
%183 = load i32, i32* %radix, align 4
%184 = uitofp i32 %183 to float
%185 = load float, float* %sig, align 4
%186 = fmul float %185, %184
store float %186, float* %sig, align 4
%187 = load i8, i8* %is_positive, align 1, !range !1
%188 = trunc i8 %187 to i1
br i1 %188, label %then-block-543-, label %else-block40
case_body37: ; preds = %match_else38
%189 = load i32, i32* %c, align 4, !range !0
%190 = icmp eq i32 %189, 101
br i1 %190, label %match_case60, label %compare_next61
match_else38: ; preds = %case_body28
br label %case_body37
match_case39: ; preds = %case_body28
%191 = bitcast %"option::Option<u32>"* %match34 to { i32, i32 }*
%192 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %191, i32 0, i32 1
%193 = bitcast i32** %__llmatch36 to i8*
call void @llvm.lifetime.start(i64 8, i8* %193)
store i32* %192, i32** %__llmatch36
br label %case_body35
then-block-543-: ; preds = %case_body35
%194 = load i32, i32* %digit, align 4
%195 = zext i32 %194 to i64
%196 = sitofp i64 %195 to float
%197 = load float, float* %sig, align 4
%198 = fadd float %197, %196
store float %198, float* %sig, align 4
br label %join41
else-block40: ; preds = %case_body35
%199 = load i32, i32* %digit, align 4
%200 = zext i32 %199 to i64
%201 = sitofp i64 %200 to float
%202 = load float, float* %sig, align 4
%203 = fsub float %202, %201
store float %203, float* %sig, align 4
br label %join41
join41: ; preds = %else-block40, %then-block-543-
%204 = load float, float* %prev_sig, align 4
%205 = fcmp une float %204, 0.000000e+00
br i1 %205, label %then-block-575-, label %next-block55
then-block-575-: ; preds = %join41
%206 = load i8, i8* %is_positive, align 1, !range !1
%207 = trunc i8 %206 to i1
br i1 %207, label %before_rhs, label %join42
join42: ; preds = %before_rhs, %then-block-575-
%208 = phi i1 [ %207, %then-block-575- ], [ %211, %before_rhs ]
br i1 %208, label %then-block-583-, label %next-block
before_rhs: ; preds = %then-block-575-
%209 = load float, float* %sig, align 4
%210 = load float, float* %prev_sig, align 4
%211 = fcmp ole float %209, %210
br label %join42
then-block-583-: ; preds = %join42
%212 = bitcast %"result::Result<f32, num::ParseFloatError>"* %sret_slot to { i8, float }*
%213 = getelementptr inbounds { i8, float }, { i8, float }* %212, i32 0, i32 1
%214 = call float @_ZN3f329f32.Float8infinity20h6ec1d6c56e54b7d5YfaE()
store float %214, float* %213, align 4
%215 = getelementptr inbounds %"result::Result<f32, num::ParseFloatError>", %"result::Result<f32, num::ParseFloatError>"* %sret_slot, i32 0, i32 0
store i8 0, i8* %215
br label %clean_custom_45
clean_ast_398_: ; preds = %clean_custom_153, %clean_ast_704_, %clean_ast_501_
%216 = bitcast %"option::Option<(char, usize)>"* %exp_info to i8*
call void @llvm.lifetime.end(i64 24, i8* %216)
%217 = bitcast %"iter::Enumerate<str::Chars>"* %cs to i8*
call void @llvm.lifetime.end(i64 24, i8* %217)
%218 = bitcast float* %prev_sig to i8*
call void @llvm.lifetime.end(i64 4, i8* %218)
%219 = bitcast float* %sig to i8*
call void @llvm.lifetime.end(i64 4, i8* %219)
%220 = bitcast %str_slice* %src25 to i8*
call void @llvm.lifetime.end(i64 16, i8* %220)
call void @llvm.lifetime.end(i64 1, i8* %is_positive)
br label %clean_custom_
clean_ast_501_: ; preds = %clean_custom_43
%221 = bitcast %"iter::Enumerate<str::Chars>"** %match to i8*
call void @llvm.lifetime.end(i64 8, i8* %221)
br label %clean_ast_398_
clean_custom_43: ; preds = %clean_ast_511_
%222 = bitcast %"iter::Enumerate<str::Chars>"*** %iter to i8*
call void @llvm.lifetime.end(i64 8, i8* %222)
br label %clean_ast_501_
clean_ast_511_: ; preds = %clean_custom_44
%223 = bitcast %"option::Option<(usize, char)>"* %8 to i8*
call void @llvm.lifetime.end(i64 24, i8* %223)
br label %clean_custom_43
clean_custom_44: ; preds = %clean_ast_521_
%224 = bitcast i32** %__llmatch30 to i8*
call void @llvm.lifetime.end(i64 8, i8* %224)
%225 = bitcast i32* %c to i8*
call void @llvm.lifetime.end(i64 4, i8* %225)
%226 = bitcast i64** %__llmatch29 to i8*
call void @llvm.lifetime.end(i64 8, i8* %226)
%227 = bitcast i64* %i to i8*
call void @llvm.lifetime.end(i64 8, i8* %227)
br label %clean_ast_511_
clean_ast_521_: ; preds = %case_body58, %clean_custom_45
%228 = bitcast %"option::Option<u32>"* %match34 to i8*
call void @llvm.lifetime.end(i64 8, i8* %228)
br label %clean_custom_44
clean_custom_45: ; preds = %then-block-646-, %then-block-622-, %then-block-598-, %then-block-583-
%229 = bitcast i32** %__llmatch36 to i8*
call void @llvm.lifetime.end(i64 8, i8* %229)
%230 = bitcast i32* %digit to i8*
call void @llvm.lifetime.end(i64 4, i8* %230)
br label %clean_ast_521_
next-block: ; preds = %join42
%231 = load i8, i8* %is_positive, align 1, !range !1
%232 = trunc i8 %231 to i1
%233 = xor i1 %232, true
br i1 %233, label %before_rhs47, label %join46
join46: ; preds = %before_rhs47, %next-block
%234 = phi i1 [ %233, %next-block ], [ %237, %before_rhs47 ]
br i1 %234, label %then-block-598-, label %next-block48
before_rhs47: ; preds = %next-block
%235 = load float, float* %sig, align 4
%236 = load float, float* %prev_sig, align 4
%237 = fcmp oge float %235, %236
br label %join46
then-block-598-: ; preds = %join46
%238 = bitcast %"result::Result<f32, num::ParseFloatError>"* %sret_slot to { i8, float }*
%239 = getelementptr inbounds { i8, float }, { i8, float }* %238, i32 0, i32 1
%240 = call float @_ZN3f329f32.Float12neg_infinity20h6adc134f1b5bae443faE()
store float %240, float* %239, align 4
%241 = getelementptr inbounds %"result::Result<f32, num::ParseFloatError>", %"result::Result<f32, num::ParseFloatError>"* %sret_slot, i32 0, i32 0
store i8 0, i8* %241
br label %clean_custom_45
next-block48: ; preds = %join46
%242 = load i8, i8* %is_positive, align 1, !range !1
%243 = trunc i8 %242 to i1
br i1 %243, label %before_rhs50, label %join49
join49: ; preds = %before_rhs50, %next-block48
%244 = phi i1 [ %243, %next-block48 ], [ %253, %before_rhs50 ]
br i1 %244, label %then-block-622-, label %next-block51
before_rhs50: ; preds = %next-block48
%245 = load i32, i32* %digit, align 4
%246 = uitofp i32 %245 to float
%247 = load float, float* %sig, align 4
%248 = fsub float %247, %246
%249 = load i32, i32* %radix, align 4
%250 = uitofp i32 %249 to float
%251 = fdiv float %248, %250
%252 = load float, float* %prev_sig, align 4
%253 = fcmp une float %252, %251
br label %join49
then-block-622-: ; preds = %join49
%254 = bitcast %"result::Result<f32, num::ParseFloatError>"* %sret_slot to { i8, float }*
%255 = getelementptr inbounds { i8, float }, { i8, float }* %254, i32 0, i32 1
%256 = call float @_ZN3f329f32.Float8infinity20h6ec1d6c56e54b7d5YfaE()
store float %256, float* %255, align 4
%257 = getelementptr inbounds %"result::Result<f32, num::ParseFloatError>", %"result::Result<f32, num::ParseFloatError>"* %sret_slot, i32 0, i32 0
store i8 0, i8* %257
br label %clean_custom_45
next-block51: ; preds = %join49
%258 = load i8, i8* %is_positive, align 1, !range !1
%259 = trunc i8 %258 to i1
%260 = xor i1 %259, true
br i1 %260, label %before_rhs53, label %join52
join52: ; preds = %before_rhs53, %next-block51
%261 = phi i1 [ %260, %next-block51 ], [ %270, %before_rhs53 ]
br i1 %261, label %then-block-646-, label %next-block54
before_rhs53: ; preds = %next-block51
%262 = load i32, i32* %digit, align 4
%263 = uitofp i32 %262 to float
%264 = load float, float* %sig, align 4
%265 = fadd float %264, %263
%266 = load i32, i32* %radix, align 4
%267 = uitofp i32 %266 to float
%268 = fdiv float %265, %267
%269 = load float, float* %prev_sig, align 4
%270 = fcmp une float %269, %268
br label %join52
then-block-646-: ; preds = %join52
%271 = bitcast %"result::Result<f32, num::ParseFloatError>"* %sret_slot to { i8, float }*
%272 = getelementptr inbounds { i8, float }, { i8, float }* %271, i32 0, i32 1
%273 = call float @_ZN3f329f32.Float12neg_infinity20h6adc134f1b5bae443faE()
store float %273, float* %272, align 4
%274 = getelementptr inbounds %"result::Result<f32, num::ParseFloatError>", %"result::Result<f32, num::ParseFloatError>"* %sret_slot, i32 0, i32 0
store i8 0, i8* %274
br label %clean_custom_45
next-block54: ; preds = %join52
br label %next-block55
next-block55: ; preds = %next-block54, %join41
%275 = load float, float* %sig, align 4
store float %275, float* %prev_sig, align 4
%276 = bitcast i32** %__llmatch36 to i8*
call void @llvm.lifetime.end(i64 8, i8* %276)
%277 = bitcast i32* %digit to i8*
call void @llvm.lifetime.end(i64 4, i8* %277)
br label %join74
case_body56: ; preds = %match_case66, %match_case64, %match_case62, %match_case60
%278 = bitcast %"option::Option<(char, usize)>"* %10 to i8*
call void @llvm.lifetime.start(i64 24, i8* %278)
%279 = bitcast %"option::Option<(char, usize)>"* %10 to { i64, { i32, i64 } }*
%280 = getelementptr inbounds { i64, { i32, i64 } }, { i64, { i32, i64 } }* %279, i32 0, i32 1
%281 = getelementptr inbounds { i32, i64 }, { i32, i64 }* %280, i32 0, i32 0
%282 = load i32, i32* %c, align 4, !range !0
store i32 %282, i32* %281, align 4
%283 = getelementptr inbounds { i32, i64 }, { i32, i64 }* %280, i32 0, i32 1
%284 = load i64, i64* %i, align 8
%285 = add i64 %284, 1
store i64 %285, i64* %283, align 8
%286 = getelementptr inbounds %"option::Option<(char, usize)>", %"option::Option<(char, usize)>"* %10, i32 0, i32 0
store i64 1, i64* %286
%287 = bitcast %"option::Option<(char, usize)>"* %10 to i8*
%288 = bitcast %"option::Option<(char, usize)>"* %exp_info to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %288, i8* %287, i64 24, i32 8, i1 false)
%289 = bitcast %"option::Option<(char, usize)>"* %10 to i8*
call void @llvm.lifetime.end(i64 24, i8* %289)
br label %clean_ast_521_72
case_body57: ; preds = %match_case68
br label %clean_ast_521_72
case_body58: ; preds = %match_else59
%290 = bitcast %"result::Result<f32, num::ParseFloatError>"* %sret_slot to { i8, { i8 }, [6 x i8] }*
%291 = bitcast { i8, { i8 }, [6 x i8] }* %290 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %291, i8* getelementptr inbounds ({ i8, { i8 }, [6 x i8] }, { i8, { i8 }, [6 x i8] }* @const43529, i32 0, i32 0), i64 8, i32 4, i1 false)
br label %clean_ast_521_
match_else59: ; preds = %compare_next69
br label %case_body58
match_case60: ; preds = %case_body37
br label %case_body56
compare_next61: ; preds = %case_body37
%292 = icmp eq i32 %189, 69
br i1 %292, label %match_case62, label %compare_next63
match_case62: ; preds = %compare_next61
br label %case_body56
compare_next63: ; preds = %compare_next61
%293 = icmp eq i32 %189, 112
br i1 %293, label %match_case64, label %compare_next65
match_case64: ; preds = %compare_next63
br label %case_body56
compare_next65: ; preds = %compare_next63
%294 = icmp eq i32 %189, 80
br i1 %294, label %match_case66, label %compare_next67
match_case66: ; preds = %compare_next65
br label %case_body56
compare_next67: ; preds = %compare_next65
%295 = icmp eq i32 %189, 46
br i1 %295, label %match_case68, label %compare_next69
match_case68: ; preds = %compare_next67
br label %case_body57
compare_next69: ; preds = %compare_next67
br label %match_else59
clean_ast_511_70: ; preds = %clean_custom_71, %case_body31
%296 = bitcast %"option::Option<(usize, char)>"* %8 to i8*
call void @llvm.lifetime.end(i64 24, i8* %296)
br label %loop_exit
clean_custom_71: ; preds = %clean_ast_521_72
%297 = bitcast i32** %__llmatch30 to i8*
call void @llvm.lifetime.end(i64 8, i8* %297)
%298 = bitcast i32* %c to i8*
call void @llvm.lifetime.end(i64 4, i8* %298)
%299 = bitcast i64** %__llmatch29 to i8*
call void @llvm.lifetime.end(i64 8, i8* %299)
%300 = bitcast i64* %i to i8*
call void @llvm.lifetime.end(i64 8, i8* %300)
br label %clean_ast_511_70
clean_ast_521_72: ; preds = %case_body57, %case_body56
%301 = bitcast %"option::Option<u32>"* %match34 to i8*
call void @llvm.lifetime.end(i64 8, i8* %301)
br label %clean_custom_71
join73: ; No predecessors!
unreachable
join74: ; preds = %next-block55
%302 = bitcast %"option::Option<u32>"* %match34 to i8*
call void @llvm.lifetime.end(i64 8, i8* %302)
%303 = bitcast i32** %__llmatch30 to i8*
call void @llvm.lifetime.end(i64 8, i8* %303)
%304 = bitcast i32* %c to i8*
call void @llvm.lifetime.end(i64 4, i8* %304)
%305 = bitcast i64** %__llmatch29 to i8*
call void @llvm.lifetime.end(i64 8, i8* %305)
%306 = bitcast i64* %i to i8*
call void @llvm.lifetime.end(i64 8, i8* %306)
br label %join75
join75: ; preds = %join74
%307 = bitcast %"option::Option<(usize, char)>"* %8 to i8*
call void @llvm.lifetime.end(i64 24, i8* %307)
br label %loop_body
join76: ; preds = %loop_exit
%308 = bitcast %"iter::Enumerate<str::Chars>"** %match to i8*
call void @llvm.lifetime.end(i64 8, i8* %308)
%309 = bitcast {}* %result to i8*
call void @llvm.lifetime.end(i64 0, i8* %309)
call void @llvm.lifetime.start(i64 1, i8* %11)
%310 = call zeroext i1 @"_ZN6option15Option$LT$T$GT$7is_none20h1578896107712481053E"(%"option::Option<(char, usize)>"* noalias readonly dereferenceable(24) %exp_info)
%311 = zext i1 %310 to i8
store i8 %311, i8* %11, align 1
%312 = load i8, i8* %11, align 1, !range !1
%313 = trunc i8 %312 to i1
call void @llvm.lifetime.end(i64 1, i8* %11)
br i1 %313, label %then-block-704-, label %next-block127
then-block-704-: ; preds = %join76
%314 = bitcast float* %power to i8*
call void @llvm.lifetime.start(i64 4, i8* %314)
store float 1.000000e+00, float* %power, align 4
%315 = bitcast {}* %result77 to i8*
call void @llvm.lifetime.start(i64 0, i8* %315)
%316 = bitcast %"iter::Enumerate<str::Chars>"** %12 to i8*
call void @llvm.lifetime.start(i64 8, i8* %316)
%317 = bitcast %"iter::Enumerate<str::Chars>"** %13 to i8*
call void @llvm.lifetime.start(i64 8, i8* %317)
%318 = call dereferenceable(24) %"iter::Enumerate<str::Chars>"* @_ZN4iter8Iterator6by_ref21h16646711982226617443E(%"iter::Enumerate<str::Chars>"* noalias dereferenceable(24) %cs)
store %"iter::Enumerate<str::Chars>"* %318, %"iter::Enumerate<str::Chars>"** %13, align 8
%319 = load %"iter::Enumerate<str::Chars>"*, %"iter::Enumerate<str::Chars>"** %13, align 8, !nonnull !2
%320 = bitcast %"iter::Enumerate<str::Chars>"** %13 to i8*
call void @llvm.lifetime.end(i64 8, i8* %320)
%321 = call dereferenceable(24) %"iter::Enumerate<str::Chars>"* @_ZN4iter14I.IntoIterator9into_iter20h6563255094920483013E(%"iter::Enumerate<str::Chars>"* noalias dereferenceable(24) %319)
store %"iter::Enumerate<str::Chars>"* %321, %"iter::Enumerate<str::Chars>"** %12, align 8
%322 = load %"iter::Enumerate<str::Chars>"*, %"iter::Enumerate<str::Chars>"** %12, align 8, !nonnull !2
%323 = bitcast %"iter::Enumerate<str::Chars>"** %12 to i8*
call void @llvm.lifetime.end(i64 8, i8* %323)
%324 = bitcast %"iter::Enumerate<str::Chars>"** %match78 to i8*
call void @llvm.lifetime.start(i64 8, i8* %324)
store %"iter::Enumerate<str::Chars>"* %322, %"iter::Enumerate<str::Chars>"** %match78, align 8
%325 = bitcast %"iter::Enumerate<str::Chars>"*** %iter80 to i8*
call void @llvm.lifetime.start(i64 8, i8* %325)
store %"iter::Enumerate<str::Chars>"** %match78, %"iter::Enumerate<str::Chars>"*** %iter80
br label %case_body79
case_body79: ; preds = %then-block-704-
%326 = load %"iter::Enumerate<str::Chars>"**, %"iter::Enumerate<str::Chars>"*** %iter80
br label %loop_body82
loop_exit81: ; preds = %clean_ast_721_120
%327 = bitcast %"iter::Enumerate<str::Chars>"*** %iter80 to i8*
call void @llvm.lifetime.end(i64 8, i8* %327)
br label %join126
loop_body82: ; preds = %join125, %case_body79
%328 = bitcast %"option::Option<(usize, char)>"* %14 to i8*
call void @llvm.lifetime.start(i64 24, i8* %328)
call void @"_ZN4iter34_$RF$$u27$a$u20$mut$u20$I.Iterator4next21h12474813853625106210E"(%"option::Option<(usize, char)>"* noalias nocapture sret dereferenceable(24) %14, %"iter::Enumerate<str::Chars>"** noalias dereferenceable(8) %326)
%329 = getelementptr inbounds %"option::Option<(usize, char)>", %"option::Option<(usize, char)>"* %14, i32 0, i32 0
%330 = load i64, i64* %329, !range !3
switch i64 %330, label %match_else89 [
i64 1, label %match_case90
]
case_body83: ; preds = %match_case90
%331 = load i32*, i32** %__llmatch86
%332 = bitcast i32* %c87 to i8*
call void @llvm.lifetime.start(i64 4, i8* %332)
%333 = load i32, i32* %331, align 4, !range !0
store i32 %333, i32* %c87, align 4
%334 = load i64*, i64** %__llmatch84
%335 = bitcast i64* %i85 to i8*
call void @llvm.lifetime.start(i64 8, i8* %335)
%336 = load i64, i64* %334, align 8
store i64 %336, i64* %i85, align 8
%337 = bitcast %"option::Option<u32>"* %15 to i8*
call void @llvm.lifetime.start(i64 8, i8* %337)
%338 = load i32, i32* %c87, align 4, !range !0
%339 = load i32, i32* %radix, align 4
%340 = call i64 @_ZN4char12char.CharExt8to_digit20h151cfc3f68bf51e09RBE(i32 %338, i32 %339)
%341 = bitcast %"option::Option<u32>"* %15 to i64*
store i64 %340, i64* %341, align 4
%342 = bitcast %"option::Option<u32>"* %15 to i64*
%343 = load i64, i64* %342, align 4
%344 = bitcast %"option::Option<u32>"* %15 to i8*
call void @llvm.lifetime.end(i64 8, i8* %344)
%345 = bitcast %"option::Option<u32>"* %match91 to i8*
call void @llvm.lifetime.start(i64 8, i8* %345)
%346 = bitcast %"option::Option<u32>"* %match91 to i64*
store i64 %343, i64* %346, align 4
%347 = getelementptr inbounds %"option::Option<u32>", %"option::Option<u32>"* %match91, i32 0, i32 0
%348 = load i32, i32* %347, !range !4
switch i32 %348, label %match_else96 [
i32 1, label %match_case97
]
case_body88: ; preds = %match_else89
br label %clean_ast_721_120
match_else89: ; preds = %loop_body82
br label %case_body88
match_case90: ; preds = %loop_body82
%349 = bitcast %"option::Option<(usize, char)>"* %14 to { i64, { i64, i32 } }*
%350 = getelementptr inbounds { i64, { i64, i32 } }, { i64, { i64, i32 } }* %349, i32 0, i32 1
%351 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %350, i32 0, i32 0
%352 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %350, i32 0, i32 1
%353 = bitcast i32** %__llmatch86 to i8*
call void @llvm.lifetime.start(i64 8, i8* %353)
store i32* %352, i32** %__llmatch86
%354 = bitcast i64** %__llmatch84 to i8*
call void @llvm.lifetime.start(i64 8, i8* %354)
store i64* %351, i64** %__llmatch84
br label %case_body83
case_body92: ; preds = %match_case97
%355 = load i32*, i32** %__llmatch93
%356 = bitcast i32* %digit94 to i8*
call void @llvm.lifetime.start(i64 4, i8* %356)
%357 = load i32, i32* %355, align 4
store i32 %357, i32* %digit94, align 4
%358 = load i32, i32* %radix, align 4
%359 = uitofp i32 %358 to float
%360 = load float, float* %power, align 4
%361 = fdiv float %360, %359
store float %361, float* %power, align 4
%362 = bitcast float* %16 to i8*
call void @llvm.lifetime.start(i64 4, i8* %362)
%363 = load i8, i8* %is_positive, align 1, !range !1
%364 = trunc i8 %363 to i1
br i1 %364, label %then-block-755-, label %else-block98
case_body95: ; preds = %match_else96
%365 = load i32, i32* %c87, align 4, !range !0
%366 = icmp eq i32 %365, 101
br i1 %366, label %match_case112, label %compare_next113
match_else96: ; preds = %case_body83
br label %case_body95
match_case97: ; preds = %case_body83
%367 = bitcast %"option::Option<u32>"* %match91 to { i32, i32 }*
%368 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %367, i32 0, i32 1
%369 = bitcast i32** %__llmatch93 to i8*
call void @llvm.lifetime.start(i64 8, i8* %369)
store i32* %368, i32** %__llmatch93
br label %case_body92
then-block-755-: ; preds = %case_body92
%370 = load i32, i32* %digit94, align 4
%371 = uitofp i32 %370 to float
%372 = load float, float* %power, align 4
%373 = fmul float %371, %372
%374 = load float, float* %sig, align 4
%375 = fadd float %374, %373
store float %375, float* %16, align 4
br label %join99
else-block98: ; preds = %case_body92
%376 = load i32, i32* %digit94, align 4
%377 = uitofp i32 %376 to float
%378 = load float, float* %power, align 4
%379 = fmul float %377, %378
%380 = load float, float* %sig, align 4
%381 = fsub float %380, %379
store float %381, float* %16, align 4
br label %join99
join99: ; preds = %else-block98, %then-block-755-
%382 = load float, float* %16, align 4
%383 = bitcast float* %16 to i8*
call void @llvm.lifetime.end(i64 4, i8* %383)
store float %382, float* %sig, align 4
%384 = load i8, i8* %is_positive, align 1, !range !1
%385 = trunc i8 %384 to i1
br i1 %385, label %before_rhs101, label %join100
join100: ; preds = %before_rhs101, %join99
%386 = phi i1 [ %385, %join99 ], [ %389, %before_rhs101 ]
br i1 %386, label %then-block-781-, label %next-block105
before_rhs101: ; preds = %join99
%387 = load float, float* %sig, align 4
%388 = load float, float* %prev_sig, align 4
%389 = fcmp olt float %387, %388
br label %join100
then-block-781-: ; preds = %join100
%390 = bitcast %"result::Result<f32, num::ParseFloatError>"* %sret_slot to { i8, float }*
%391 = getelementptr inbounds { i8, float }, { i8, float }* %390, i32 0, i32 1
%392 = call float @_ZN3f329f32.Float8infinity20h6ec1d6c56e54b7d5YfaE()
store float %392, float* %391, align 4
%393 = getelementptr inbounds %"result::Result<f32, num::ParseFloatError>", %"result::Result<f32, num::ParseFloatError>"* %sret_slot, i32 0, i32 0
store i8 0, i8* %393
br label %clean_custom_104
clean_ast_704_: ; preds = %clean_ast_711_
%394 = bitcast float* %power to i8*
call void @llvm.lifetime.end(i64 4, i8* %394)
br label %clean_ast_398_
clean_ast_711_: ; preds = %clean_custom_102
%395 = bitcast %"iter::Enumerate<str::Chars>"** %match78 to i8*
call void @llvm.lifetime.end(i64 8, i8* %395)
br label %clean_ast_704_
clean_custom_102: ; preds = %clean_ast_721_
%396 = bitcast %"iter::Enumerate<str::Chars>"*** %iter80 to i8*
call void @llvm.lifetime.end(i64 8, i8* %396)
br label %clean_ast_711_
clean_ast_721_: ; preds = %clean_custom_103
%397 = bitcast %"option::Option<(usize, char)>"* %14 to i8*
call void @llvm.lifetime.end(i64 24, i8* %397)
br label %clean_custom_102
clean_custom_103: ; preds = %clean_ast_731_
%398 = bitcast i64** %__llmatch84 to i8*
call void @llvm.lifetime.end(i64 8, i8* %398)
%399 = bitcast i64* %i85 to i8*
call void @llvm.lifetime.end(i64 8, i8* %399)
%400 = bitcast i32** %__llmatch86 to i8*
call void @llvm.lifetime.end(i64 8, i8* %400)
%401 = bitcast i32* %c87 to i8*
call void @llvm.lifetime.end(i64 4, i8* %401)
br label %clean_ast_721_
clean_ast_731_: ; preds = %case_body110, %clean_custom_104
%402 = bitcast %"option::Option<u32>"* %match91 to i8*
call void @llvm.lifetime.end(i64 8, i8* %402)
br label %clean_custom_103
clean_custom_104: ; preds = %then-block-796-, %then-block-781-
%403 = bitcast i32** %__llmatch93 to i8*
call void @llvm.lifetime.end(i64 8, i8* %403)
%404 = bitcast i32* %digit94 to i8*
call void @llvm.lifetime.end(i64 4, i8* %404)
br label %clean_ast_731_
next-block105: ; preds = %join100
%405 = load i8, i8* %is_positive, align 1, !range !1
%406 = trunc i8 %405 to i1
%407 = xor i1 %406, true
br i1 %407, label %before_rhs107, label %join106
join106: ; preds = %before_rhs107, %next-block105
%408 = phi i1 [ %407, %next-block105 ], [ %411, %before_rhs107 ]
br i1 %408, label %then-block-796-, label %next-block108
before_rhs107: ; preds = %next-block105
%409 = load float, float* %sig, align 4
%410 = load float, float* %prev_sig, align 4
%411 = fcmp ogt float %409, %410
br label %join106
then-block-796-: ; preds = %join106
%412 = bitcast %"result::Result<f32, num::ParseFloatError>"* %sret_slot to { i8, float }*
%413 = getelementptr inbounds { i8, float }, { i8, float }* %412, i32 0, i32 1
%414 = call float @_ZN3f329f32.Float12neg_infinity20h6adc134f1b5bae443faE()
store float %414, float* %413, align 4
%415 = getelementptr inbounds %"result::Result<f32, num::ParseFloatError>", %"result::Result<f32, num::ParseFloatError>"* %sret_slot, i32 0, i32 0
store i8 0, i8* %415
br label %clean_custom_104
next-block108: ; preds = %join106
%416 = load float, float* %sig, align 4
store float %416, float* %prev_sig, align 4
%417 = bitcast i32** %__llmatch93 to i8*
call void @llvm.lifetime.end(i64 8, i8* %417)
%418 = bitcast i32* %digit94 to i8*
call void @llvm.lifetime.end(i64 4, i8* %418)
br label %join124
case_body109: ; preds = %match_case118, %match_case116, %match_case114, %match_case112
%419 = bitcast %"option::Option<(char, usize)>"* %17 to i8*
call void @llvm.lifetime.start(i64 24, i8* %419)
%420 = bitcast %"option::Option<(char, usize)>"* %17 to { i64, { i32, i64 } }*
%421 = getelementptr inbounds { i64, { i32, i64 } }, { i64, { i32, i64 } }* %420, i32 0, i32 1
%422 = getelementptr inbounds { i32, i64 }, { i32, i64 }* %421, i32 0, i32 0
%423 = load i32, i32* %c87, align 4, !range !0
store i32 %423, i32* %422, align 4
%424 = getelementptr inbounds { i32, i64 }, { i32, i64 }* %421, i32 0, i32 1
%425 = load i64, i64* %i85, align 8
%426 = add i64 %425, 1
store i64 %426, i64* %424, align 8
%427 = getelementptr inbounds %"option::Option<(char, usize)>", %"option::Option<(char, usize)>"* %17, i32 0, i32 0
store i64 1, i64* %427
%428 = bitcast %"option::Option<(char, usize)>"* %17 to i8*
%429 = bitcast %"option::Option<(char, usize)>"* %exp_info to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %429, i8* %428, i64 24, i32 8, i1 false)
%430 = bitcast %"option::Option<(char, usize)>"* %17 to i8*
call void @llvm.lifetime.end(i64 24, i8* %430)
br label %clean_ast_731_122
case_body110: ; preds = %match_else111
%431 = bitcast %"result::Result<f32, num::ParseFloatError>"* %sret_slot to { i8, { i8 }, [6 x i8] }*
%432 = bitcast { i8, { i8 }, [6 x i8] }* %431 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %432, i8* getelementptr inbounds ({ i8, { i8 }, [6 x i8] }, { i8, { i8 }, [6 x i8] }* @const43529, i32 0, i32 0), i64 8, i32 4, i1 false)
br label %clean_ast_731_
match_else111: ; preds = %compare_next119
br label %case_body110
match_case112: ; preds = %case_body95
br label %case_body109
compare_next113: ; preds = %case_body95
%433 = icmp eq i32 %365, 69
br i1 %433, label %match_case114, label %compare_next115
match_case114: ; preds = %compare_next113
br label %case_body109
compare_next115: ; preds = %compare_next113
%434 = icmp eq i32 %365, 112
br i1 %434, label %match_case116, label %compare_next117
match_case116: ; preds = %compare_next115
br label %case_body109
compare_next117: ; preds = %compare_next115
%435 = icmp eq i32 %365, 80
br i1 %435, label %match_case118, label %compare_next119
match_case118: ; preds = %compare_next117
br label %case_body109
compare_next119: ; preds = %compare_next117
br label %match_else111
clean_ast_721_120: ; preds = %clean_custom_121, %case_body88
%436 = bitcast %"option::Option<(usize, char)>"* %14 to i8*
call void @llvm.lifetime.end(i64 24, i8* %436)
br label %loop_exit81
clean_custom_121: ; preds = %clean_ast_731_122
%437 = bitcast i64** %__llmatch84 to i8*
call void @llvm.lifetime.end(i64 8, i8* %437)
%438 = bitcast i64* %i85 to i8*
call void @llvm.lifetime.end(i64 8, i8* %438)
%439 = bitcast i32** %__llmatch86 to i8*
call void @llvm.lifetime.end(i64 8, i8* %439)
%440 = bitcast i32* %c87 to i8*
call void @llvm.lifetime.end(i64 4, i8* %440)
br label %clean_ast_721_120
clean_ast_731_122: ; preds = %case_body109
%441 = bitcast %"option::Option<u32>"* %match91 to i8*
call void @llvm.lifetime.end(i64 8, i8* %441)
br label %clean_custom_121
join123: ; No predecessors!
unreachable
join124: ; preds = %next-block108
%442 = bitcast %"option::Option<u32>"* %match91 to i8*
call void @llvm.lifetime.end(i64 8, i8* %442)
%443 = bitcast i64** %__llmatch84 to i8*
call void @llvm.lifetime.end(i64 8, i8* %443)
%444 = bitcast i64* %i85 to i8*
call void @llvm.lifetime.end(i64 8, i8* %444)
%445 = bitcast i32** %__llmatch86 to i8*
call void @llvm.lifetime.end(i64 8, i8* %445)
%446 = bitcast i32* %c87 to i8*
call void @llvm.lifetime.end(i64 4, i8* %446)
br label %join125
join125: ; preds = %join124
%447 = bitcast %"option::Option<(usize, char)>"* %14 to i8*
call void @llvm.lifetime.end(i64 24, i8* %447)
br label %loop_body82
join126: ; preds = %loop_exit81
%448 = bitcast %"iter::Enumerate<str::Chars>"** %match78 to i8*
call void @llvm.lifetime.end(i64 8, i8* %448)
%449 = bitcast {}* %result77 to i8*
call void @llvm.lifetime.end(i64 0, i8* %449)
%450 = bitcast float* %power to i8*
call void @llvm.lifetime.end(i64 4, i8* %450)
br label %next-block127
next-block127: ; preds = %join126, %join76
%451 = bitcast float* %exp to i8*
call void @llvm.lifetime.start(i64 4, i8* %451)
%452 = getelementptr inbounds %"option::Option<(char, usize)>", %"option::Option<(char, usize)>"* %exp_info, i32 0, i32 0
%453 = load i64, i64* %452, !range !3
switch i64 %453, label %match_else133 [
i64 1, label %match_case134
]
case_body128: ; preds = %match_case134
%454 = load i32*, i32** %__llmatch129
%455 = bitcast i32* %c130 to i8*
call void @llvm.lifetime.start(i64 4, i8* %455)
%456 = load i32, i32* %454, align 4, !range !0
store i32 %456, i32* %c130, align 4
%457 = load i64*, i64** %__llmatch131
%458 = bitcast i64* %offset to i8*
call void @llvm.lifetime.start(i64 8, i8* %458)
%459 = load i64, i64* %457, align 8
store i64 %459, i64* %offset, align 8
%460 = bitcast float* %base to i8*
call void @llvm.lifetime.start(i64 4, i8* %460)
%461 = load i32, i32* %c130, align 4, !range !0
%462 = icmp eq i32 %461, 69
br i1 %462, label %match_case139, label %compare_next140
case_body132: ; preds = %match_else133
store float 1.000000e+00, float* %exp, align 4
br label %join188
match_else133: ; preds = %next-block127
br label %case_body132
match_case134: ; preds = %next-block127
%463 = bitcast %"option::Option<(char, usize)>"* %exp_info to { i64, { i32, i64 } }*
%464 = getelementptr inbounds { i64, { i32, i64 } }, { i64, { i32, i64 } }* %463, i32 0, i32 1
%465 = getelementptr inbounds { i32, i64 }, { i32, i64 }* %464, i32 0, i32 0
%466 = getelementptr inbounds { i32, i64 }, { i32, i64 }* %464, i32 0, i32 1
%467 = bitcast i64** %__llmatch131 to i8*
call void @llvm.lifetime.start(i64 8, i8* %467)
store i64* %466, i64** %__llmatch131
%468 = bitcast i32** %__llmatch129 to i8*
call void @llvm.lifetime.start(i64 8, i8* %468)
store i32* %465, i32** %__llmatch129
br label %case_body128
case_body135: ; preds = %next143, %next
store float 1.000000e+01, float* %base, align 4
br label %join154
case_body136: ; preds = %next151, %next147
store float 2.000000e+00, float* %base, align 4
br label %join154
case_body137: ; preds = %cond152, %match_else138
%469 = bitcast %"result::Result<f32, num::ParseFloatError>"* %sret_slot to { i8, { i8 }, [6 x i8] }*
%470 = bitcast { i8, { i8 }, [6 x i8] }* %469 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %470, i8* getelementptr inbounds ({ i8, { i8 }, [6 x i8] }, { i8, { i8 }, [6 x i8] }* @const43529, i32 0, i32 0), i64 8, i32 4, i1 false)
br label %clean_custom_153
match_else138: ; preds = %compare_next150
br label %case_body137
match_case139: ; preds = %case_body128
%471 = load i32, i32* %radix, align 4
%472 = icmp eq i32 %471, 10
%473 = xor i1 %472, true
br i1 %473, label %cond, label %next
compare_next140: ; preds = %cond, %case_body128
%474 = icmp eq i32 %461, 101
br i1 %474, label %match_case141, label %compare_next142
next: ; preds = %match_case139
br label %case_body135
cond: ; preds = %match_case139
br label %compare_next140
match_case141: ; preds = %compare_next140
%475 = load i32, i32* %radix, align 4
%476 = icmp eq i32 %475, 10
%477 = xor i1 %476, true
br i1 %477, label %cond144, label %next143
compare_next142: ; preds = %cond144, %compare_next140
%478 = icmp eq i32 %461, 80
br i1 %478, label %match_case145, label %compare_next146
next143: ; preds = %match_case141
br label %case_body135
cond144: ; preds = %match_case141
br label %compare_next142
match_case145: ; preds = %compare_next142
%479 = load i32, i32* %radix, align 4
%480 = icmp eq i32 %479, 16
%481 = xor i1 %480, true
br i1 %481, label %cond148, label %next147
compare_next146: ; preds = %cond148, %compare_next142
%482 = icmp eq i32 %461, 112
br i1 %482, label %match_case149, label %compare_next150
next147: ; preds = %match_case145
br label %case_body136
cond148: ; preds = %match_case145
br label %compare_next146
match_case149: ; preds = %compare_next146
%483 = load i32, i32* %radix, align 4
%484 = icmp eq i32 %483, 16
%485 = xor i1 %484, true
br i1 %485, label %cond152, label %next151
compare_next150: ; preds = %compare_next146
br label %match_else138
next151: ; preds = %match_case149
br label %case_body136
cond152: ; preds = %match_case149
br label %case_body137
clean_custom_153: ; preds = %clean_ast_853_, %clean_ast_854_, %case_body137
%486 = bitcast i64** %__llmatch131 to i8*
call void @llvm.lifetime.end(i64 8, i8* %486)
%487 = bitcast i64* %offset to i8*
call void @llvm.lifetime.end(i64 8, i8* %487)
%488 = bitcast i32** %__llmatch129 to i8*
call void @llvm.lifetime.end(i64 8, i8* %488)
%489 = bitcast i32* %c130 to i8*
call void @llvm.lifetime.end(i64 4, i8* %489)
br label %clean_ast_398_
join154: ; preds = %case_body136, %case_body135
%490 = bitcast %str_slice* %src155 to i8*
call void @llvm.lifetime.start(i64 16, i8* %490)
%491 = bitcast %"ops::RangeFrom<usize>"* %18 to i8*
call void @llvm.lifetime.start(i64 8, i8* %491)
%492 = getelementptr inbounds %"ops::RangeFrom<usize>", %"ops::RangeFrom<usize>"* %18, i32 0, i32 0
%493 = load i64, i64* %offset, align 8
store i64 %493, i64* %492, align 8
%494 = bitcast %"ops::RangeFrom<usize>"* %18 to i64*
%495 = load i64, i64* %494, align 8
%496 = bitcast %"ops::RangeFrom<usize>"* %18 to i8*
call void @llvm.lifetime.end(i64 8, i8* %496)
%497 = bitcast %str_slice* %overloaded_index_elt to i8*
call void @llvm.lifetime.start(i64 16, i8* %497)
%498 = getelementptr inbounds %str_slice, %str_slice* %src25, i32 0, i32 0
%499 = load i8*, i8** %498
%500 = getelementptr inbounds %str_slice, %str_slice* %src25, i32 0, i32 1
%501 = load i64, i64* %500
%502 = call %str_slice @"_ZN3str6traits49str.ops..Index$LT$ops..RangeFrom$LT$usize$GT$$GT$5index20h3f1b10be0dd1c356pYJE"(i8* noalias nonnull readonly %499, i64 %501, i64 %495)
store %str_slice %502, %str_slice* %overloaded_index_elt, align 8
%503 = bitcast %str_slice* %__fat_ptr to i8*
call void @llvm.lifetime.start(i64 16, i8* %503)
%504 = bitcast %str_slice* %overloaded_index_elt to i8*
%505 = bitcast %str_slice* %__fat_ptr to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %505, i8* %504, i64 16, i32 8, i1 false)
%506 = bitcast %str_slice* %__fat_ptr to i8*
%507 = bitcast %str_slice* %src155 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %507, i8* %506, i64 16, i32 8, i1 false)
%508 = bitcast %str_slice* %__fat_ptr to i8*
call void @llvm.lifetime.end(i64 16, i8* %508)
%509 = bitcast { i8, %"result::Result<usize, num::ParseIntError>" }* %19 to i8*
call void @llvm.lifetime.start(i64 24, i8* %509)
%510 = bitcast %"option::Option<(char, &'static str)>"* %20 to i8*
call void @llvm.lifetime.start(i64 24, i8* %510)
%511 = getelementptr inbounds %str_slice, %str_slice* %src155, i32 0, i32 0
%512 = load i8*, i8** %511
%513 = getelementptr inbounds %str_slice, %str_slice* %src155, i32 0, i32 1
%514 = load i64, i64* %513
call void @_ZN3str10str.StrExt16slice_shift_char20h763b6d43914ac21cBtKE(%"option::Option<(char, &'static str)>"* noalias nocapture sret dereferenceable(24) %20, i8* noalias nonnull readonly %512, i64 %514)
%515 = getelementptr inbounds %"option::Option<(char, &'static str)>", %"option::Option<(char, &'static str)>"* %20, i32 0, i32 0, i32 1, i32 0
%516 = load i8*, i8** %515
%517 = icmp ne i8* %516, null
switch i1 %517, label %match_else164 [
i1 true, label %match_case165
]
case_body156: ; preds = %match_case167
%518 = load %str_slice*, %str_slice** %__llmatch157
%519 = bitcast %str_slice* %src158 to i8*
call void @llvm.lifetime.start(i64 16, i8* %519)
%520 = bitcast %str_slice* %518 to i8*
%521 = bitcast %str_slice* %src158 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %521, i8* %520, i64 16, i32 8, i1 false)
%522 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %19, i32 0, i32 0
store i8 0, i8* %522, align 1
%523 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %19, i32 0, i32 1
%524 = getelementptr inbounds %str_slice, %str_slice* %src158, i32 0, i32 0
%525 = load i8*, i8** %524
%526 = getelementptr inbounds %str_slice, %str_slice* %src158, i32 0, i32 1
%527 = load i64, i64* %526
call void @_ZN3str10str.StrExt5parse21h10035881824587292317E(%"result::Result<usize, num::ParseIntError>"* noalias nocapture sret dereferenceable(16) %523, i8* noalias nonnull readonly %525, i64 %527)
%528 = bitcast %str_slice** %__llmatch157 to i8*
call void @llvm.lifetime.end(i64 8, i8* %528)
%529 = bitcast %str_slice* %src158 to i8*
call void @llvm.lifetime.end(i64 16, i8* %529)
br label %join171
case_body159: ; preds = %match_case169
%530 = load %str_slice*, %str_slice** %__llmatch160
%531 = bitcast %str_slice* %src161 to i8*
call void @llvm.lifetime.start(i64 16, i8* %531)
%532 = bitcast %str_slice* %530 to i8*
%533 = bitcast %str_slice* %src161 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %533, i8* %532, i64 16, i32 8, i1 false)
%534 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %19, i32 0, i32 0
store i8 1, i8* %534, align 1
%535 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %19, i32 0, i32 1
%536 = getelementptr inbounds %str_slice, %str_slice* %src161, i32 0, i32 0
%537 = load i8*, i8** %536
%538 = getelementptr inbounds %str_slice, %str_slice* %src161, i32 0, i32 1
%539 = load i64, i64* %538
call void @_ZN3str10str.StrExt5parse21h10035881824587292317E(%"result::Result<usize, num::ParseIntError>"* noalias nocapture sret dereferenceable(16) %535, i8* noalias nonnull readonly %537, i64 %539)
%540 = bitcast %str_slice** %__llmatch160 to i8*
call void @llvm.lifetime.end(i64 8, i8* %540)
%541 = bitcast %str_slice* %src161 to i8*
call void @llvm.lifetime.end(i64 16, i8* %541)
br label %join171
case_body162: ; preds = %match_else166
%542 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %19, i32 0, i32 0
store i8 1, i8* %542, align 1
%543 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %19, i32 0, i32 1
%544 = getelementptr inbounds %str_slice, %str_slice* %src155, i32 0, i32 0
%545 = load i8*, i8** %544
%546 = getelementptr inbounds %str_slice, %str_slice* %src155, i32 0, i32 1
%547 = load i64, i64* %546
call void @_ZN3str10str.StrExt5parse21h10035881824587292317E(%"result::Result<usize, num::ParseIntError>"* noalias nocapture sret dereferenceable(16) %543, i8* noalias nonnull readonly %545, i64 %547)
br label %join171
case_body163: ; preds = %match_else164
%548 = bitcast %"result::Result<f32, num::ParseFloatError>"* %sret_slot to { i8, { i8 }, [6 x i8] }*
%549 = bitcast { i8, { i8 }, [6 x i8] }* %548 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %549, i8* getelementptr inbounds ({ i8, { i8 }, [6 x i8] }, { i8, { i8 }, [6 x i8] }* @const43529, i32 0, i32 0), i64 8, i32 4, i1 false)
br label %clean_ast_890_
match_else164: ; preds = %join154
br label %case_body163
match_case165: ; preds = %join154
%550 = getelementptr inbounds %"option::Option<(char, &'static str)>", %"option::Option<(char, &'static str)>"* %20, i32 0, i32 0
%551 = getelementptr inbounds { i32, %str_slice }, { i32, %str_slice }* %550, i32 0, i32 0
%552 = getelementptr inbounds { i32, %str_slice }, { i32, %str_slice }* %550, i32 0, i32 1
%553 = load i32, i32* %551, align 4, !range !0
%554 = icmp eq i32 %553, 45
br i1 %554, label %match_case167, label %compare_next168
match_else166: ; preds = %compare_next170
br label %case_body162
match_case167: ; preds = %match_case165
%555 = bitcast %str_slice** %__llmatch157 to i8*
call void @llvm.lifetime.start(i64 8, i8* %555)
store %str_slice* %552, %str_slice** %__llmatch157
br label %case_body156
compare_next168: ; preds = %match_case165
%556 = icmp eq i32 %553, 43
br i1 %556, label %match_case169, label %compare_next170
match_case169: ; preds = %compare_next168
%557 = bitcast %str_slice** %__llmatch160 to i8*
call void @llvm.lifetime.start(i64 8, i8* %557)
store %str_slice* %552, %str_slice** %__llmatch160
br label %case_body159
compare_next170: ; preds = %compare_next168
br label %match_else166
clean_ast_854_: ; preds = %clean_ast_890_
%558 = bitcast %str_slice* %src155 to i8*
call void @llvm.lifetime.end(i64 16, i8* %558)
%559 = bitcast float* %base to i8*
call void @llvm.lifetime.end(i64 4, i8* %559)
br label %clean_custom_153
clean_ast_890_: ; preds = %case_body163
%560 = bitcast %"option::Option<(char, &'static str)>"* %20 to i8*
call void @llvm.lifetime.end(i64 24, i8* %560)
br label %clean_ast_854_
join171: ; preds = %case_body162, %case_body159, %case_body156
%561 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %19, i32 0, i32 0
call void @llvm.lifetime.start(i64 1, i8* %is_positive172)
%562 = load i8, i8* %561, align 1, !range !1
%563 = trunc i8 %562 to i1
%564 = zext i1 %563 to i8
store i8 %564, i8* %is_positive172, align 1
%565 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %19, i32 0, i32 1
%566 = bitcast %"result::Result<usize, num::ParseIntError>"* %exp173 to i8*
call void @llvm.lifetime.start(i64 16, i8* %566)
%567 = bitcast %"result::Result<usize, num::ParseIntError>"* %565 to i8*
%568 = bitcast %"result::Result<usize, num::ParseIntError>"* %exp173 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %568, i8* %567, i64 16, i32 8, i1 false)
%569 = bitcast { i8, %"result::Result<usize, num::ParseIntError>" }* %19 to i8*
call void @llvm.lifetime.end(i64 24, i8* %569)
%570 = bitcast %"option::Option<(char, &'static str)>"* %20 to i8*
call void @llvm.lifetime.end(i64 24, i8* %570)
%571 = bitcast { i8, %"result::Result<usize, num::ParseIntError>" }* %21 to i8*
call void @llvm.lifetime.start(i64 24, i8* %571)
%572 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %21, i32 0, i32 0
%573 = load i8, i8* %is_positive172, align 1, !range !1
%574 = trunc i8 %573 to i1
%575 = zext i1 %574 to i8
store i8 %575, i8* %572, align 1
%576 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %21, i32 0, i32 1
%577 = bitcast %"result::Result<usize, num::ParseIntError>"* %exp173 to i8*
%578 = bitcast %"result::Result<usize, num::ParseIntError>"* %576 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %578, i8* %577, i64 16, i32 8, i1 false)
%579 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %21, i32 0, i32 0
%580 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %21, i32 0, i32 1
%581 = getelementptr inbounds %"result::Result<usize, num::ParseIntError>", %"result::Result<usize, num::ParseIntError>"* %580, i32 0, i32 0
%582 = load i8, i8* %581, !range !1
switch i8 %582, label %match_else181 [
i8 0, label %match_case182
]
case_body174: ; preds = %match_case184
%583 = load i64*, i64** %__llmatch175
%584 = bitcast i64* %exp176 to i8*
call void @llvm.lifetime.start(i64 8, i8* %584)
%585 = load i64, i64* %583, align 8
store i64 %585, i64* %exp176, align 8
%586 = load float, float* %base, align 4
%587 = load i64, i64* %exp176, align 8
%588 = trunc i64 %587 to i32
%589 = call float @_ZN3f329f32.Float4powi20hbd813b1c7a3a49f9svaE(float %586, i32 %588)
store float %589, float* %exp, align 4
%590 = bitcast i64** %__llmatch175 to i8*
call void @llvm.lifetime.end(i64 8, i8* %590)
%591 = bitcast i64* %exp176 to i8*
call void @llvm.lifetime.end(i64 8, i8* %591)
br label %join187
case_body177: ; preds = %match_else183
%592 = load i64*, i64** %__llmatch178
%593 = bitcast i64* %exp179 to i8*
call void @llvm.lifetime.start(i64 8, i8* %593)
%594 = load i64, i64* %592, align 8
store i64 %594, i64* %exp179, align 8
%595 = bitcast float* %22 to i8*
call void @llvm.lifetime.start(i64 4, i8* %595)
%596 = load float, float* %base, align 4
%597 = load i64, i64* %exp179, align 8
%598 = trunc i64 %597 to i32
%599 = call float @_ZN3f329f32.Float4powi20hbd813b1c7a3a49f9svaE(float %596, i32 %598)
store float %599, float* %22, align 4
%600 = load float, float* %22, align 4
%601 = bitcast float* %22 to i8*
call void @llvm.lifetime.end(i64 4, i8* %601)
%602 = fdiv float 1.000000e+00, %600
store float %602, float* %exp, align 4
%603 = bitcast i64** %__llmatch178 to i8*
call void @llvm.lifetime.end(i64 8, i8* %603)
%604 = bitcast i64* %exp179 to i8*
call void @llvm.lifetime.end(i64 8, i8* %604)
br label %join187
case_body180: ; preds = %match_else181
%605 = bitcast %"result::Result<f32, num::ParseFloatError>"* %sret_slot to { i8, { i8 }, [6 x i8] }*
%606 = bitcast { i8, { i8 }, [6 x i8] }* %605 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %606, i8* getelementptr inbounds ({ i8, { i8 }, [6 x i8] }, { i8, { i8 }, [6 x i8] }* @const43529, i32 0, i32 0), i64 8, i32 4, i1 false)
br label %clean_ast_854_186
match_else181: ; preds = %join171
%607 = bitcast %"result::Result<usize, num::ParseIntError>"* %580 to { i8, %"num::ParseIntError" }*
%608 = getelementptr inbounds { i8, %"num::ParseIntError" }, { i8, %"num::ParseIntError" }* %607, i32 0, i32 1
br label %case_body180
match_case182: ; preds = %join171
%609 = bitcast %"result::Result<usize, num::ParseIntError>"* %580 to { i8, i64 }*
%610 = getelementptr inbounds { i8, i64 }, { i8, i64 }* %609, i32 0, i32 1
%611 = load i8, i8* %579, align 1, !range !1
%612 = trunc i8 %611 to i1
%613 = icmp eq i1 %612, true
br i1 %613, label %match_case184, label %compare_next185
match_else183: ; preds = %compare_next185
%614 = bitcast i64** %__llmatch178 to i8*
call void @llvm.lifetime.start(i64 8, i8* %614)
store i64* %610, i64** %__llmatch178
br label %case_body177
match_case184: ; preds = %match_case182
%615 = bitcast i64** %__llmatch175 to i8*
call void @llvm.lifetime.start(i64 8, i8* %615)
store i64* %610, i64** %__llmatch175
br label %case_body174
compare_next185: ; preds = %match_case182
br label %match_else183
clean_ast_853_: ; preds = %clean_ast_854_186
%616 = bitcast { i8, %"result::Result<usize, num::ParseIntError>" }* %21 to i8*
call void @llvm.lifetime.end(i64 24, i8* %616)
br label %clean_custom_153
clean_ast_854_186: ; preds = %case_body180
%617 = bitcast %"result::Result<usize, num::ParseIntError>"* %exp173 to i8*
call void @llvm.lifetime.end(i64 16, i8* %617)
call void @llvm.lifetime.end(i64 1, i8* %is_positive172)
%618 = bitcast %str_slice* %src155 to i8*
call void @llvm.lifetime.end(i64 16, i8* %618)
%619 = bitcast float* %base to i8*
call void @llvm.lifetime.end(i64 4, i8* %619)
br label %clean_ast_853_
join187: ; preds = %case_body177, %case_body174
%620 = bitcast %"result::Result<usize, num::ParseIntError>"* %exp173 to i8*
call void @llvm.lifetime.end(i64 16, i8* %620)
call void @llvm.lifetime.end(i64 1, i8* %is_positive172)
%621 = bitcast %str_slice* %src155 to i8*
call void @llvm.lifetime.end(i64 16, i8* %621)
%622 = bitcast float* %base to i8*
call void @llvm.lifetime.end(i64 4, i8* %622)
%623 = bitcast { i8, %"result::Result<usize, num::ParseIntError>" }* %21 to i8*
call void @llvm.lifetime.end(i64 24, i8* %623)
%624 = bitcast i64** %__llmatch131 to i8*
call void @llvm.lifetime.end(i64 8, i8* %624)
%625 = bitcast i64* %offset to i8*
call void @llvm.lifetime.end(i64 8, i8* %625)
%626 = bitcast i32** %__llmatch129 to i8*
call void @llvm.lifetime.end(i64 8, i8* %626)
%627 = bitcast i32* %c130 to i8*
call void @llvm.lifetime.end(i64 4, i8* %627)
br label %join188
join188: ; preds = %join187, %case_body132
%628 = bitcast %"result::Result<f32, num::ParseFloatError>"* %sret_slot to { i8, float }*
%629 = getelementptr inbounds { i8, float }, { i8, float }* %628, i32 0, i32 1
%630 = load float, float* %sig, align 4
%631 = load float, float* %exp, align 4
%632 = fmul float %630, %631
store float %632, float* %629, align 4
%633 = getelementptr inbounds %"result::Result<f32, num::ParseFloatError>", %"result::Result<f32, num::ParseFloatError>"* %sret_slot, i32 0, i32 0
store i8 0, i8* %633
%634 = bitcast float* %exp to i8*
call void @llvm.lifetime.end(i64 4, i8* %634)
%635 = bitcast %"option::Option<(char, usize)>"* %exp_info to i8*
call void @llvm.lifetime.end(i64 24, i8* %635)
%636 = bitcast %"iter::Enumerate<str::Chars>"* %cs to i8*
call void @llvm.lifetime.end(i64 24, i8* %636)
%637 = bitcast float* %prev_sig to i8*
call void @llvm.lifetime.end(i64 4, i8* %637)
%638 = bitcast float* %sig to i8*
call void @llvm.lifetime.end(i64 4, i8* %638)
%639 = bitcast %str_slice* %src25 to i8*
call void @llvm.lifetime.end(i64 16, i8* %639)
call void @llvm.lifetime.end(i64 1, i8* %is_positive)
br label %clean_custom_
return: ; preds = %clean_custom_
%640 = bitcast %"result::Result<f32, num::ParseFloatError>"* %sret_slot to i64*
%641 = load i64, i64* %640, align 4
ret i64 %641
}
; Function Attrs: nounwind
declare void @llvm.lifetime.start(i64, i8* nocapture) unnamed_addr #3
; Function Attrs: inlinehint uwtable
define zeroext i1 @_ZN3str8eq_slice20hcc8bfaf38dd0c426ZJJE(i8* noalias nonnull readonly, i64, i8* noalias nonnull readonly, i64) unnamed_addr #0 {
entry-block:
%a = alloca %str_slice
%b = alloca %str_slice
%4 = insertvalue %str_slice undef, i8* %0, 0
%5 = insertvalue %str_slice %4, i64 %1, 1
%6 = insertvalue %str_slice undef, i8* %2, 0
%7 = insertvalue %str_slice %6, i64 %3, 1
%8 = bitcast %str_slice* %a to i8*
call void @llvm.lifetime.start(i64 16, i8* %8)
store %str_slice %5, %str_slice* %a, align 8
%9 = bitcast %str_slice* %b to i8*
call void @llvm.lifetime.start(i64 16, i8* %9)
store %str_slice %7, %str_slice* %b, align 8
%10 = getelementptr inbounds %str_slice, %str_slice* %a, i32 0, i32 0
%11 = load i8*, i8** %10
%12 = getelementptr inbounds %str_slice, %str_slice* %a, i32 0, i32 1
%13 = load i64, i64* %12
%14 = getelementptr inbounds %str_slice, %str_slice* %b, i32 0, i32 0
%15 = load i8*, i8** %14
%16 = getelementptr inbounds %str_slice, %str_slice* %b, i32 0, i32 1
%17 = load i64, i64* %16
%18 = call zeroext i1 @_ZN3str9eq_slice_20h9a5dee376dce59d29IJE(i8* noalias nonnull readonly %11, i64 %13, i8* noalias nonnull readonly %15, i64 %17)
%19 = zext i1 %18 to i8
%20 = bitcast %str_slice* %b to i8*
call void @llvm.lifetime.end(i64 16, i8* %20)
%21 = bitcast %str_slice* %a to i8*
call void @llvm.lifetime.end(i64 16, i8* %21)
%22 = trunc i8 %19 to i1
ret i1 %22
}
; Function Attrs: nounwind
declare void @llvm.lifetime.end(i64, i8* nocapture) unnamed_addr #3
; Function Attrs: inlinehint uwtable
define void @_ZN3str10str.StrExt16slice_shift_char20h763b6d43914ac21cBtKE(%"option::Option<(char, &'static str)>"* noalias nocapture sret dereferenceable(24), i8* noalias nonnull readonly, i64) unnamed_addr #0 {
entry-block:
%self = alloca %str_slice
%3 = alloca i8
%ch = alloca i32
%next_s = alloca %str_slice
%4 = alloca %str_slice
%5 = alloca i64
%6 = alloca i64
%7 = insertvalue %str_slice undef, i8* %1, 0
%8 = insertvalue %str_slice %7, i64 %2, 1
%9 = bitcast %str_slice* %self to i8*
call void @llvm.lifetime.start(i64 16, i8* %9)
store %str_slice %8, %str_slice* %self, align 8
call void @llvm.lifetime.start(i64 1, i8* %3)
%10 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 0
%11 = load i8*, i8** %10
%12 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 1
%13 = load i64, i64* %12
%14 = call zeroext i1 @_ZN3str10str.StrExt8is_empty20h2f329bc3ad18b1628vKE(i8* noalias nonnull readonly %11, i64 %13)
%15 = zext i1 %14 to i8
store i8 %15, i8* %3, align 1
%16 = load i8, i8* %3, align 1, !range !1
%17 = trunc i8 %16 to i1
call void @llvm.lifetime.end(i64 1, i8* %3)
br i1 %17, label %then-block-139603-, label %else-block
then-block-139603-: ; preds = %entry-block
%18 = bitcast %"option::Option<(char, &'static str)>"* %0 to { { i32, { i8*, i8* } } }*
%19 = bitcast { { i32, { i8*, i8* } } }* %18 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %19, i8* bitcast ({ { i32, { i8*, i8* } } }* @const44258 to i8*), i64 24, i32 8, i1 false)
br label %join
else-block: ; preds = %entry-block
%20 = bitcast i32* %ch to i8*
call void @llvm.lifetime.start(i64 4, i8* %20)
%21 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 0
%22 = load i8*, i8** %21
%23 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 1
%24 = load i64, i64* %23
%25 = call i32 @_ZN3str10str.StrExt7char_at20h2c0c88027fb1343e1qKE(i8* noalias nonnull readonly %22, i64 %24, i64 0)
store i32 %25, i32* %ch, align 4
%26 = bitcast %str_slice* %next_s to i8*
call void @llvm.lifetime.start(i64 16, i8* %26)
%27 = bitcast %str_slice* %4 to i8*
call void @llvm.lifetime.start(i64 16, i8* %27)
%28 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 0
%29 = load i8*, i8** %28
%30 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 1
%31 = load i64, i64* %30
%32 = bitcast i64* %5 to i8*
call void @llvm.lifetime.start(i64 8, i8* %32)
%33 = load i32, i32* %ch, align 4, !range !0
%34 = call i64 @_ZN4char12char.CharExt8len_utf820h6b1fd2f6f7b75cbaFUBE(i32 %33)
store i64 %34, i64* %5, align 8
%35 = load i64, i64* %5, align 8
%36 = bitcast i64* %5 to i8*
call void @llvm.lifetime.end(i64 8, i8* %36)
%37 = bitcast i64* %6 to i8*
call void @llvm.lifetime.start(i64 8, i8* %37)
%38 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 0
%39 = load i8*, i8** %38
%40 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 1
%41 = load i64, i64* %40
%42 = call i64 @_ZN3str10str.StrExt3len20h23e9fc885ca86df9YvKE(i8* noalias nonnull readonly %39, i64 %41)
store i64 %42, i64* %6, align 8
%43 = load i64, i64* %6, align 8
%44 = bitcast i64* %6 to i8*
call void @llvm.lifetime.end(i64 8, i8* %44)
%45 = call %str_slice @_ZN3str10str.StrExt15slice_unchecked20h7dd8783f909b84ea5iKE(i8* noalias nonnull readonly %29, i64 %31, i64 %35, i64 %43)
store %str_slice %45, %str_slice* %4, align 8
%46 = bitcast %str_slice* %4 to i8*
%47 = bitcast %str_slice* %next_s to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %47, i8* %46, i64 16, i32 8, i1 false)
%48 = bitcast %str_slice* %4 to i8*
call void @llvm.lifetime.end(i64 16, i8* %48)
%49 = getelementptr inbounds %"option::Option<(char, &'static str)>", %"option::Option<(char, &'static str)>"* %0, i32 0, i32 0
%50 = getelementptr inbounds { i32, %str_slice }, { i32, %str_slice }* %49, i32 0, i32 0
%51 = load i32, i32* %ch, align 4, !range !0
store i32 %51, i32* %50, align 4
%52 = getelementptr inbounds { i32, %str_slice }, { i32, %str_slice }* %49, i32 0, i32 1
%53 = bitcast %str_slice* %next_s to i8*
%54 = bitcast %str_slice* %52 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %54, i8* %53, i64 16, i32 8, i1 false)
%55 = bitcast %str_slice* %next_s to i8*
call void @llvm.lifetime.end(i64 16, i8* %55)
%56 = bitcast i32* %ch to i8*
call void @llvm.lifetime.end(i64 4, i8* %56)
br label %join
join: ; preds = %else-block, %then-block-139603-
%57 = bitcast %str_slice* %self to i8*
call void @llvm.lifetime.end(i64 16, i8* %57)
ret void
}
; Function Attrs: nounwind
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1) unnamed_addr #3
; Function Attrs: inlinehint uwtable
define internal void @_ZN4iter8Iterator9enumerate20h5216804230006291893E(%"iter::Enumerate<str::Chars>"* noalias nocapture sret dereferenceable(24), %"str::Chars"* noalias nocapture dereferenceable(16)) unnamed_addr #0 {
entry-block:
%2 = getelementptr inbounds %"iter::Enumerate<str::Chars>", %"iter::Enumerate<str::Chars>"* %0, i32 0, i32 0
%3 = bitcast %"str::Chars"* %1 to i8*
%4 = bitcast %"str::Chars"* %2 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %4, i8* %3, i64 16, i32 8, i1 false)
%5 = getelementptr inbounds %"iter::Enumerate<str::Chars>", %"iter::Enumerate<str::Chars>"* %0, i32 0, i32 1
store i64 0, i64* %5, align 8
%6 = bitcast %"str::Chars"* %1 to i8*
call void @llvm.lifetime.end(i64 16, i8* %6)
ret void
}
; Function Attrs: inlinehint uwtable
define void @_ZN3str10str.StrExt5chars20h72e52c290c5f0a7craKE(%"str::Chars"* noalias nocapture sret dereferenceable(16), i8* noalias nonnull readonly, i64) unnamed_addr #0 {
entry-block:
%self = alloca %str_slice
%3 = alloca { i8*, i64 }
%4 = insertvalue %str_slice undef, i8* %1, 0
%5 = insertvalue %str_slice %4, i64 %2, 1
%6 = bitcast %str_slice* %self to i8*
call void @llvm.lifetime.start(i64 16, i8* %6)
store %str_slice %5, %str_slice* %self, align 8
%7 = getelementptr inbounds %"str::Chars", %"str::Chars"* %0, i32 0, i32 0
%8 = bitcast { i8*, i64 }* %3 to i8*
call void @llvm.lifetime.start(i64 16, i8* %8)
%9 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 0
%10 = load i8*, i8** %9
%11 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 1
%12 = load i64, i64* %11
%13 = call { i8*, i64 } @_ZN3str10str.StrExt8as_bytes20h0ddb326a146deba1trKE(i8* noalias nonnull readonly %10, i64 %12)
store { i8*, i64 } %13, { i8*, i64 }* %3, align 8
%14 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %3, i32 0, i32 0
%15 = load i8*, i8** %14
%16 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %3, i32 0, i32 1
%17 = load i64, i64* %16
call void @"_ZN5slice21_$u5b$T$u5d$.SliceExt4iter20h6338026411231659373E"(%"slice::Iter<u8>"* noalias nocapture sret dereferenceable(16) %7, i8* noalias nonnull readonly %15, i64 %17)
%18 = bitcast %str_slice* %self to i8*
call void @llvm.lifetime.end(i64 16, i8* %18)
ret void
}
; Function Attrs: uwtable
define internal dereferenceable(24) %"iter::Enumerate<str::Chars>"* @_ZN4iter14I.IntoIterator9into_iter20h6563255094920483013E(%"iter::Enumerate<str::Chars>"* noalias dereferenceable(24)) unnamed_addr #2 {
entry-block:
%self = alloca %"iter::Enumerate<str::Chars>"*
%1 = bitcast %"iter::Enumerate<str::Chars>"** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store %"iter::Enumerate<str::Chars>"* %0, %"iter::Enumerate<str::Chars>"** %self, align 8
%2 = load %"iter::Enumerate<str::Chars>"*, %"iter::Enumerate<str::Chars>"** %self, align 8, !nonnull !2
%3 = bitcast %"iter::Enumerate<str::Chars>"** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %3)
ret %"iter::Enumerate<str::Chars>"* %2
}
; Function Attrs: uwtable
define internal dereferenceable(24) %"iter::Enumerate<str::Chars>"* @_ZN4iter8Iterator6by_ref21h16646711982226617443E(%"iter::Enumerate<str::Chars>"* noalias dereferenceable(24)) unnamed_addr #2 {
entry-block:
%self = alloca %"iter::Enumerate<str::Chars>"*
%1 = bitcast %"iter::Enumerate<str::Chars>"** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store %"iter::Enumerate<str::Chars>"* %0, %"iter::Enumerate<str::Chars>"** %self, align 8
%2 = load %"iter::Enumerate<str::Chars>"*, %"iter::Enumerate<str::Chars>"** %self, align 8, !nonnull !2
%3 = bitcast %"iter::Enumerate<str::Chars>"** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %3)
ret %"iter::Enumerate<str::Chars>"* %2
}
; Function Attrs: uwtable
define internal void @"_ZN4iter34_$RF$$u27$a$u20$mut$u20$I.Iterator4next21h12474813853625106210E"(%"option::Option<(usize, char)>"* noalias nocapture sret dereferenceable(24), %"iter::Enumerate<str::Chars>"** noalias dereferenceable(8)) unnamed_addr #2 {
entry-block:
%self = alloca %"iter::Enumerate<str::Chars>"**
%2 = bitcast %"iter::Enumerate<str::Chars>"*** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store %"iter::Enumerate<str::Chars>"** %1, %"iter::Enumerate<str::Chars>"*** %self, align 8
%3 = load %"iter::Enumerate<str::Chars>"**, %"iter::Enumerate<str::Chars>"*** %self, align 8, !nonnull !2
%4 = load %"iter::Enumerate<str::Chars>"*, %"iter::Enumerate<str::Chars>"** %3, align 8, !nonnull !2
call void @"_ZN4iter27Enumerate$LT$I$GT$.Iterator4next21h13745234386093804367E"(%"option::Option<(usize, char)>"* noalias nocapture sret dereferenceable(24) %0, %"iter::Enumerate<str::Chars>"* noalias dereferenceable(24) %4)
%5 = bitcast %"iter::Enumerate<str::Chars>"*** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %5)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN4iter27Enumerate$LT$I$GT$.Iterator4next21h13745234386093804367E"(%"option::Option<(usize, char)>"* noalias nocapture sret dereferenceable(24), %"iter::Enumerate<str::Chars>"* noalias dereferenceable(24)) unnamed_addr #0 {
entry-block:
%self = alloca %"iter::Enumerate<str::Chars>"*
%2 = alloca %"option::Option<char>"
%3 = alloca %closure
%4 = bitcast %"iter::Enumerate<str::Chars>"** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store %"iter::Enumerate<str::Chars>"* %1, %"iter::Enumerate<str::Chars>"** %self, align 8
%5 = bitcast %"option::Option<char>"* %2 to i8*
call void @llvm.lifetime.start(i64 8, i8* %5)
%6 = load %"iter::Enumerate<str::Chars>"*, %"iter::Enumerate<str::Chars>"** %self, align 8, !nonnull !2
%7 = getelementptr inbounds %"iter::Enumerate<str::Chars>", %"iter::Enumerate<str::Chars>"* %6, i32 0, i32 0
%8 = call i64 @"_ZN3str28Chars$LT$$u27$a$GT$.Iterator4next20hd92a5b18a32f203egWIE"(%"str::Chars"* noalias dereferenceable(16) %7)
%9 = bitcast %"option::Option<char>"* %2 to i64*
store i64 %8, i64* %9, align 4
%10 = bitcast %"option::Option<char>"* %2 to i64*
%11 = load i64, i64* %10, align 4
%12 = bitcast %"option::Option<char>"* %2 to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %closure* %3 to i8*
call void @llvm.lifetime.start(i64 8, i8* %13)
%14 = getelementptr inbounds %closure, %closure* %3, i32 0, i32 0
store %"iter::Enumerate<str::Chars>"** %self, %"iter::Enumerate<str::Chars>"*** %14
%15 = bitcast %closure* %3 to i64*
%16 = load i64, i64* %15, align 8
%17 = bitcast %closure* %3 to i8*
call void @llvm.lifetime.end(i64 8, i8* %17)
call void @"_ZN6option15Option$LT$T$GT$3map20h3693687562988593440E"(%"option::Option<(usize, char)>"* noalias nocapture sret dereferenceable(24) %0, i64 %11, i64 %16)
%18 = bitcast %"iter::Enumerate<str::Chars>"** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %18)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN6option15Option$LT$T$GT$3map20h3693687562988593440E"(%"option::Option<(usize, char)>"* noalias nocapture sret dereferenceable(24), i64, i64) unnamed_addr #0 {
entry-block:
%self = alloca %"option::Option<char>"
%f = alloca %closure
%__llmatch = alloca i32*
%x = alloca i32
%3 = bitcast %"option::Option<char>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
%4 = bitcast %"option::Option<char>"* %self to i64*
store i64 %1, i64* %4, align 4
%5 = bitcast %closure* %f to i8*
call void @llvm.lifetime.start(i64 8, i8* %5)
%6 = bitcast %closure* %f to i64*
store i64 %2, i64* %6, align 8
%7 = getelementptr inbounds %"option::Option<char>", %"option::Option<char>"* %self, i32 0, i32 0
%8 = load i32, i32* %7, !range !4
switch i32 %8, label %match_else [
i32 1, label %match_case
]
case_body: ; preds = %match_case
%9 = load i32*, i32** %__llmatch
%10 = bitcast i32* %x to i8*
call void @llvm.lifetime.start(i64 4, i8* %10)
%11 = load i32, i32* %9, align 4, !range !0
store i32 %11, i32* %x, align 4
%12 = bitcast %"option::Option<(usize, char)>"* %0 to { i64, { i64, i32 } }*
%13 = getelementptr inbounds { i64, { i64, i32 } }, { i64, { i64, i32 } }* %12, i32 0, i32 1
%14 = bitcast %closure* %f to i64*
%15 = load i64, i64* %14, align 8
%16 = load i32, i32* %x, align 4, !range !0
call void @"_ZN4iter27Enumerate$LT$I$GT$.Iterator4next13closure.43526E"({ i64, i32 }* noalias nocapture sret dereferenceable(16) %13, i64 %15, i32 %16)
%17 = getelementptr inbounds %"option::Option<(usize, char)>", %"option::Option<(usize, char)>"* %0, i32 0, i32 0
store i64 1, i64* %17
%18 = bitcast i32** %__llmatch to i8*
call void @llvm.lifetime.end(i64 8, i8* %18)
%19 = bitcast i32* %x to i8*
call void @llvm.lifetime.end(i64 4, i8* %19)
br label %join
case_body1: ; preds = %match_else
%20 = bitcast %"option::Option<(usize, char)>"* %0 to { i64, [16 x i8] }*
%21 = bitcast { i64, [16 x i8] }* %20 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %21, i8* bitcast ({ i64, [16 x i8] }* @const43525 to i8*), i64 24, i32 8, i1 false)
br label %join
match_else: ; preds = %entry-block
br label %case_body1
match_case: ; preds = %entry-block
%22 = bitcast %"option::Option<char>"* %self to { i32, i32 }*
%23 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %22, i32 0, i32 1
%24 = bitcast i32** %__llmatch to i8*
call void @llvm.lifetime.start(i64 8, i8* %24)
store i32* %23, i32** %__llmatch
br label %case_body
join: ; preds = %case_body1, %case_body
%25 = bitcast %closure* %f to i8*
call void @llvm.lifetime.end(i64 8, i8* %25)
%26 = bitcast %"option::Option<char>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %26)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN4iter27Enumerate$LT$I$GT$.Iterator4next13closure.43526E"({ i64, i32 }* noalias nocapture sret dereferenceable(16), i64, i32) unnamed_addr #4 {
entry-block:
%a = alloca i32
%closure_env = alloca %closure
%ret = alloca { i64, i32 }
%3 = bitcast i32* %a to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %2, i32* %a, align 4
%4 = bitcast %closure* %closure_env to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %closure* %closure_env to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %closure, %closure* %closure_env, i32 0, i32 0
%7 = load %"iter::Enumerate<str::Chars>"**, %"iter::Enumerate<str::Chars>"*** %6
%8 = bitcast { i64, i32 }* %ret to i8*
call void @llvm.lifetime.start(i64 16, i8* %8)
%9 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %ret, i32 0, i32 0
%10 = load %"iter::Enumerate<str::Chars>"*, %"iter::Enumerate<str::Chars>"** %7, align 8, !nonnull !2
%11 = getelementptr inbounds %"iter::Enumerate<str::Chars>", %"iter::Enumerate<str::Chars>"* %10, i32 0, i32 1
%12 = load i64, i64* %11, align 8
store i64 %12, i64* %9, align 8
%13 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %ret, i32 0, i32 1
%14 = load i32, i32* %a, align 4, !range !0
store i32 %14, i32* %13, align 4
%15 = load %"iter::Enumerate<str::Chars>"*, %"iter::Enumerate<str::Chars>"** %7, align 8, !nonnull !2
%16 = getelementptr inbounds %"iter::Enumerate<str::Chars>", %"iter::Enumerate<str::Chars>"* %15, i32 0, i32 1
%17 = load i64, i64* %16, align 8
%18 = add i64 %17, 1
store i64 %18, i64* %16, align 8
%19 = bitcast { i64, i32 }* %ret to i8*
%20 = bitcast { i64, i32 }* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %20, i8* %19, i64 16, i32 8, i1 false)
%21 = bitcast { i64, i32 }* %ret to i8*
call void @llvm.lifetime.end(i64 16, i8* %21)
%22 = bitcast i32* %a to i8*
call void @llvm.lifetime.end(i64 4, i8* %22)
ret void
}
; Function Attrs: inlinehint uwtable
define i64 @"_ZN3str28Chars$LT$$u27$a$GT$.Iterator4next20hd92a5b18a32f203egWIE"(%"str::Chars"* noalias dereferenceable(16)) unnamed_addr #0 {
entry-block:
%sret_slot = alloca %"option::Option<char>"
%self = alloca %"str::Chars"*
%1 = alloca %"option::Option<u32>"
%2 = bitcast %"str::Chars"** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store %"str::Chars"* %0, %"str::Chars"** %self, align 8
%3 = bitcast %"option::Option<u32>"* %1 to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
%4 = load %"str::Chars"*, %"str::Chars"** %self, align 8, !nonnull !2
%5 = getelementptr inbounds %"str::Chars", %"str::Chars"* %4, i32 0, i32 0
%6 = call i64 @_ZN3str15next_code_point20h5985f079bf83bf4arSIE(%"slice::Iter<u8>"* noalias dereferenceable(16) %5)
%7 = bitcast %"option::Option<u32>"* %1 to i64*
store i64 %6, i64* %7, align 4
%8 = bitcast %"option::Option<u32>"* %1 to i64*
%9 = load i64, i64* %8, align 4
%10 = bitcast %"option::Option<u32>"* %1 to i8*
call void @llvm.lifetime.end(i64 8, i8* %10)
%11 = call i64 @"_ZN6option15Option$LT$T$GT$3map21h16164244409045696597E"(i64 %9, %closure.22 undef)
%12 = bitcast %"option::Option<char>"* %sret_slot to i64*
store i64 %11, i64* %12, align 4
%13 = bitcast %"str::Chars"** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"option::Option<char>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 4
ret i64 %15
}
; Function Attrs: inlinehint uwtable
define i64 @_ZN4char12char.CharExt8to_digit20h151cfc3f68bf51e09RBE(i32, i32) unnamed_addr #0 {
entry-block:
%sret_slot = alloca %"option::Option<u32>"
%self = alloca i32
%radix = alloca i32
%val = alloca i32
%2 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %0, i32* %self, align 4
%3 = bitcast i32* %radix to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %radix, align 4
%4 = load i32, i32* %radix, align 4
%5 = icmp ugt i32 %4, 36
br i1 %5, label %then-block-106531-, label %next-block
then-block-106531-: ; preds = %entry-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @_ZN4char12char.CharExt8to_digit14_MSG_FILE_LINE20h6e428c54043941afuSBE to { %str_slice, %str_slice, i32 }*))
unreachable
next-block: ; preds = %entry-block
%6 = bitcast i32* %val to i8*
call void @llvm.lifetime.start(i64 4, i8* %6)
%7 = load i32, i32* %self, align 4, !range !0
%8 = icmp uge i32 %7, 48
%9 = icmp ule i32 %7, 57
%10 = and i1 %8, %9
br i1 %10, label %match_case, label %compare_next
case_body: ; preds = %match_case
%11 = load i32, i32* %self, align 4, !range !0
%12 = sub i32 %11, 48
store i32 %12, i32* %val, align 4
br label %join
case_body1: ; preds = %match_case4
%13 = load i32, i32* %self, align 4, !range !0
%14 = sub i32 %13, 97
%15 = add i32 %14, 10
store i32 %15, i32* %val, align 4
br label %join
case_body2: ; preds = %match_case6
%16 = load i32, i32* %self, align 4, !range !0
%17 = sub i32 %16, 65
%18 = add i32 %17, 10
store i32 %18, i32* %val, align 4
br label %join
case_body3: ; preds = %match_else
%19 = bitcast %"option::Option<u32>"* %sret_slot to { i32, [4 x i8] }*
%20 = bitcast { i32, [4 x i8] }* %19 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %20, i8* bitcast ({ i32, [4 x i8] }* @const43652 to i8*), i64 8, i32 4, i1 false)
br label %clean_custom_
match_else: ; preds = %compare_next7
br label %case_body3
match_case: ; preds = %next-block
br label %case_body
compare_next: ; preds = %next-block
%21 = icmp uge i32 %7, 97
%22 = icmp ule i32 %7, 122
%23 = and i1 %21, %22
br i1 %23, label %match_case4, label %compare_next5
match_case4: ; preds = %compare_next
br label %case_body1
compare_next5: ; preds = %compare_next
%24 = icmp uge i32 %7, 65
%25 = icmp ule i32 %7, 90
%26 = and i1 %24, %25
br i1 %26, label %match_case6, label %compare_next7
match_case6: ; preds = %compare_next5
br label %case_body2
compare_next7: ; preds = %compare_next5
br label %match_else
clean_custom_: ; preds = %join8, %case_body3
%27 = bitcast i32* %radix to i8*
call void @llvm.lifetime.end(i64 4, i8* %27)
%28 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %28)
br label %return
join: ; preds = %case_body2, %case_body1, %case_body
%29 = load i32, i32* %val, align 4
%30 = load i32, i32* %radix, align 4
%31 = icmp ult i32 %29, %30
br i1 %31, label %then-block-106599-, label %else-block
then-block-106599-: ; preds = %join
%32 = bitcast %"option::Option<u32>"* %sret_slot to { i32, i32 }*
%33 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %32, i32 0, i32 1
%34 = load i32, i32* %val, align 4
store i32 %34, i32* %33, align 4
%35 = getelementptr inbounds %"option::Option<u32>", %"option::Option<u32>"* %sret_slot, i32 0, i32 0
store i32 1, i32* %35
br label %join8
else-block: ; preds = %join
%36 = bitcast %"option::Option<u32>"* %sret_slot to { i32, [4 x i8] }*
%37 = bitcast { i32, [4 x i8] }* %36 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %37, i8* bitcast ({ i32, [4 x i8] }* @const43652 to i8*), i64 8, i32 4, i1 false)
br label %join8
join8: ; preds = %else-block, %then-block-106599-
%38 = bitcast i32* %val to i8*
call void @llvm.lifetime.end(i64 4, i8* %38)
br label %clean_custom_
return: ; preds = %clean_custom_
%39 = bitcast %"option::Option<u32>"* %sret_slot to i64*
%40 = load i64, i64* %39, align 4
ret i64 %40
}
; Function Attrs: inlinehint uwtable
define internal zeroext i1 @"_ZN6option15Option$LT$T$GT$7is_none20h1578896107712481053E"(%"option::Option<(char, usize)>"* noalias readonly dereferenceable(24)) unnamed_addr #0 {
entry-block:
%self = alloca %"option::Option<(char, usize)>"*
%1 = alloca i8
%2 = bitcast %"option::Option<(char, usize)>"** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store %"option::Option<(char, usize)>"* %0, %"option::Option<(char, usize)>"** %self, align 8
call void @llvm.lifetime.start(i64 1, i8* %1)
%3 = load %"option::Option<(char, usize)>"*, %"option::Option<(char, usize)>"** %self, align 8, !nonnull !2
%4 = call zeroext i1 @"_ZN6option15Option$LT$T$GT$7is_some20h2135342522539866952E"(%"option::Option<(char, usize)>"* noalias readonly dereferenceable(24) %3)
%5 = zext i1 %4 to i8
store i8 %5, i8* %1, align 1
%6 = load i8, i8* %1, align 1, !range !1
%7 = trunc i8 %6 to i1
call void @llvm.lifetime.end(i64 1, i8* %1)
%8 = xor i1 %7, true
%9 = zext i1 %8 to i8
%10 = bitcast %"option::Option<(char, usize)>"** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %10)
%11 = trunc i8 %9 to i1
ret i1 %11
}
; Function Attrs: inlinehint uwtable
define internal zeroext i1 @"_ZN6option15Option$LT$T$GT$7is_some20h2135342522539866952E"(%"option::Option<(char, usize)>"* noalias readonly dereferenceable(24)) unnamed_addr #0 {
entry-block:
%sret_slot = alloca i8
%self = alloca %"option::Option<(char, usize)>"*
%1 = bitcast %"option::Option<(char, usize)>"** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store %"option::Option<(char, usize)>"* %0, %"option::Option<(char, usize)>"** %self, align 8
%2 = load %"option::Option<(char, usize)>"*, %"option::Option<(char, usize)>"** %self, align 8, !nonnull !2
%3 = getelementptr inbounds %"option::Option<(char, usize)>", %"option::Option<(char, usize)>"* %2, i32 0, i32 0
%4 = load i64, i64* %3, !range !3
switch i64 %4, label %match_else [
i64 1, label %match_case
]
case_body: ; preds = %match_case
store i8 1, i8* %sret_slot, align 1
br label %join
case_body1: ; preds = %match_else
store i8 0, i8* %sret_slot, align 1
br label %join
match_else: ; preds = %entry-block
br label %case_body1
match_case: ; preds = %entry-block
%5 = bitcast %"option::Option<(char, usize)>"* %2 to { i64, { i32, i64 } }*
%6 = getelementptr inbounds { i64, { i32, i64 } }, { i64, { i32, i64 } }* %5, i32 0, i32 1
br label %case_body
join: ; preds = %case_body1, %case_body
%7 = bitcast %"option::Option<(char, usize)>"** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = load i8, i8* %sret_slot, align 1, !range !1
%9 = trunc i8 %8 to i1
ret i1 %9
}
; Function Attrs: inlinehint uwtable
define %str_slice @"_ZN3str6traits49str.ops..Index$LT$ops..RangeFrom$LT$usize$GT$$GT$5index20h3f1b10be0dd1c356pYJE"(i8* noalias nonnull readonly, i64, i64) unnamed_addr #0 {
entry-block:
%sret_slot = alloca %str_slice
%self = alloca %str_slice
%index = alloca %"ops::RangeFrom<usize>"
%3 = alloca %str_slice
%4 = alloca i8
%5 = alloca %str_slice
%6 = alloca %str_slice
%7 = alloca i64
%8 = alloca i64
%9 = insertvalue %str_slice undef, i8* %0, 0
%10 = insertvalue %str_slice %9, i64 %1, 1
%11 = bitcast %str_slice* %self to i8*
call void @llvm.lifetime.start(i64 16, i8* %11)
store %str_slice %10, %str_slice* %self, align 8
%12 = bitcast %"ops::RangeFrom<usize>"* %index to i8*
call void @llvm.lifetime.start(i64 8, i8* %12)
%13 = bitcast %"ops::RangeFrom<usize>"* %index to i64*
store i64 %2, i64* %13, align 8
%14 = bitcast %str_slice* %3 to i8*
call void @llvm.lifetime.start(i64 16, i8* %14)
call void @llvm.lifetime.start(i64 1, i8* %4)
%15 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 0
%16 = load i8*, i8** %15
%17 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 1
%18 = load i64, i64* %17
%19 = getelementptr inbounds %"ops::RangeFrom<usize>", %"ops::RangeFrom<usize>"* %index, i32 0, i32 0
%20 = load i64, i64* %19, align 8
%21 = call zeroext i1 @_ZN3str10str.StrExt16is_char_boundary20hf26220d6d28b22771mKE(i8* noalias nonnull readonly %16, i64 %18, i64 %20)
%22 = zext i1 %21 to i8
store i8 %22, i8* %4, align 1
%23 = load i8, i8* %4, align 1, !range !1
%24 = trunc i8 %23 to i1
call void @llvm.lifetime.end(i64 1, i8* %4)
br i1 %24, label %then-block-137672-, label %else-block
then-block-137672-: ; preds = %entry-block
%25 = bitcast %str_slice* %5 to i8*
call void @llvm.lifetime.start(i64 16, i8* %25)
%26 = bitcast %str_slice* %6 to i8*
call void @llvm.lifetime.start(i64 16, i8* %26)
%27 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 0
%28 = load i8*, i8** %27
%29 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 1
%30 = load i64, i64* %29
%31 = getelementptr inbounds %"ops::RangeFrom<usize>", %"ops::RangeFrom<usize>"* %index, i32 0, i32 0
%32 = load i64, i64* %31, align 8
%33 = bitcast i64* %7 to i8*
call void @llvm.lifetime.start(i64 8, i8* %33)
%34 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 0
%35 = load i8*, i8** %34
%36 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 1
%37 = load i64, i64* %36
%38 = call i64 @_ZN3str10str.StrExt3len20h23e9fc885ca86df9YvKE(i8* noalias nonnull readonly %35, i64 %37)
store i64 %38, i64* %7, align 8
%39 = load i64, i64* %7, align 8
%40 = bitcast i64* %7 to i8*
call void @llvm.lifetime.end(i64 8, i8* %40)
%41 = call %str_slice @_ZN3str10str.StrExt15slice_unchecked20h7dd8783f909b84ea5iKE(i8* noalias nonnull readonly %28, i64 %30, i64 %32, i64 %39)
store %str_slice %41, %str_slice* %6, align 8
%42 = bitcast %str_slice* %6 to i8*
%43 = bitcast %str_slice* %5 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %43, i8* %42, i64 16, i32 8, i1 false)
%44 = bitcast %str_slice* %6 to i8*
call void @llvm.lifetime.end(i64 16, i8* %44)
%45 = bitcast %str_slice* %5 to i8*
%46 = bitcast %str_slice* %3 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %46, i8* %45, i64 16, i32 8, i1 false)
%47 = bitcast %str_slice* %5 to i8*
call void @llvm.lifetime.end(i64 16, i8* %47)
br label %join
else-block: ; preds = %entry-block
%48 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 0
%49 = load i8*, i8** %48
%50 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 1
%51 = load i64, i64* %50
%52 = getelementptr inbounds %"ops::RangeFrom<usize>", %"ops::RangeFrom<usize>"* %index, i32 0, i32 0
%53 = load i64, i64* %52, align 8
%54 = bitcast i64* %8 to i8*
call void @llvm.lifetime.start(i64 8, i8* %54)
%55 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 0
%56 = load i8*, i8** %55
%57 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 1
%58 = load i64, i64* %57
%59 = call i64 @_ZN3str10str.StrExt3len20h23e9fc885ca86df9YvKE(i8* noalias nonnull readonly %56, i64 %58)
store i64 %59, i64* %8, align 8
%60 = load i64, i64* %8, align 8
%61 = bitcast i64* %8 to i8*
call void @llvm.lifetime.end(i64 8, i8* %61)
call void @_ZN3str16slice_error_fail20hb25e943f59b10dd2c8JE(i8* noalias nonnull readonly %49, i64 %51, i64 %53, i64 %60)
unreachable
join: ; preds = %then-block-137672-
%62 = bitcast %str_slice* %3 to i8*
%63 = bitcast %str_slice* %sret_slot to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %63, i8* %62, i64 16, i32 8, i1 false)
%64 = bitcast %str_slice* %3 to i8*
call void @llvm.lifetime.end(i64 16, i8* %64)
%65 = bitcast %"ops::RangeFrom<usize>"* %index to i8*
call void @llvm.lifetime.end(i64 8, i8* %65)
%66 = bitcast %str_slice* %self to i8*
call void @llvm.lifetime.end(i64 16, i8* %66)
%67 = load %str_slice, %str_slice* %sret_slot, align 8
ret %str_slice %67
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3str10str.StrExt5parse21h10035881824587292317E(%"result::Result<usize, num::ParseIntError>"* noalias nocapture sret dereferenceable(16), i8* noalias nonnull readonly, i64) unnamed_addr #0 {
entry-block:
%self = alloca %str_slice
%3 = insertvalue %str_slice undef, i8* %1, 0
%4 = insertvalue %str_slice %3, i64 %2, 1
%5 = bitcast %str_slice* %self to i8*
call void @llvm.lifetime.start(i64 16, i8* %5)
store %str_slice %4, %str_slice* %self, align 8
%6 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 0
%7 = load i8*, i8** %6
%8 = getelementptr inbounds %str_slice, %str_slice* %self, i32 0, i32 1
%9 = load i64, i64* %8
call void @_ZN3num13usize.FromStr8from_str20h46f11b062b4efdbddshE(%"result::Result<usize, num::ParseIntError>"* noalias nocapture sret dereferenceable(16) %0, i8* noalias nonnull readonly %7, i64 %9)
%10 = bitcast %str_slice* %self to i8*
call void @llvm.lifetime.end(i64 16, i8* %10)
ret void
}
; Function Attrs: uwtable
define void @_ZN3num13usize.FromStr8from_str20h46f11b062b4efdbddshE(%"result::Result<usize, num::ParseIntError>"* noalias nocapture sret dereferenceable(16), i8* noalias nonnull readonly, i64) unnamed_addr #2 {
entry-block:
%src = alloca %str_slice
%3 = insertvalue %str_slice undef, i8* %1, 0
%4 = insertvalue %str_slice %3, i64 %2, 1
%5 = bitcast %str_slice* %src to i8*
call void @llvm.lifetime.start(i64 16, i8* %5)
store %str_slice %4, %str_slice* %src, align 8
%6 = getelementptr inbounds %str_slice, %str_slice* %src, i32 0, i32 0
%7 = load i8*, i8** %6
%8 = getelementptr inbounds %str_slice, %str_slice* %src, i32 0, i32 1
%9 = load i64, i64* %8
call void @_ZN3num14from_str_radix21h16135253807214453936E(%"result::Result<usize, num::ParseIntError>"* noalias nocapture sret dereferenceable(16) %0, i8* noalias nonnull readonly %7, i64 %9, i32 10)
%10 = bitcast %str_slice* %src to i8*
call void @llvm.lifetime.end(i64 16, i8* %10)
ret void
}
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float4powi20hbd813b1c7a3a49f9svaE(float, i32) unnamed_addr #0 {
entry-block:
%self = alloca float
%n = alloca i32
%2 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store float %0, float* %self, align 4
%3 = bitcast i32* %n to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %n, align 4
%4 = load float, float* %self, align 4
%5 = load i32, i32* %n, align 4
%6 = call float @llvm.powi.f32(float %4, i32 %5)
%7 = bitcast i32* %n to i8*
call void @llvm.lifetime.end(i64 4, i8* %7)
%8 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %8)
ret float %6
}
; Function Attrs: inlinehint uwtable
define zeroext i1 @_ZN3f329f32.Float6is_nan20h9528751760ea0607TpaE(float) unnamed_addr #0 {
entry-block:
%self = alloca float
%1 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %1)
store float %0, float* %self, align 4
%2 = load float, float* %self, align 4
%3 = load float, float* %self, align 4
%4 = fcmp une float %2, %3
%5 = zext i1 %4 to i8
%6 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %6)
%7 = trunc i8 %5 to i1
ret i1 %7
}
; Function Attrs: inlinehint uwtable
define zeroext i1 @_ZN3f329f32.Float11is_infinite20h18751e5ba3725f2f3paE(float) unnamed_addr #0 {
entry-block:
%self = alloca float
%1 = alloca float
%2 = alloca float
%3 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store float %0, float* %self, align 4
%4 = bitcast float* %1 to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
%5 = call float @_ZN3f329f32.Float8infinity20h6ec1d6c56e54b7d5YfaE()
store float %5, float* %1, align 4
%6 = load float, float* %1, align 4
%7 = bitcast float* %1 to i8*
call void @llvm.lifetime.end(i64 4, i8* %7)
%8 = load float, float* %self, align 4
%9 = fcmp oeq float %8, %6
br i1 %9, label %join, label %before_rhs
join: ; preds = %before_rhs, %entry-block
%10 = phi i1 [ %9, %entry-block ], [ %19, %before_rhs ]
%11 = zext i1 %10 to i8
%12 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %12)
%13 = trunc i8 %11 to i1
ret i1 %13
before_rhs: ; preds = %entry-block
%14 = bitcast float* %2 to i8*
call void @llvm.lifetime.start(i64 4, i8* %14)
%15 = call float @_ZN3f329f32.Float12neg_infinity20h6adc134f1b5bae443faE()
store float %15, float* %2, align 4
%16 = load float, float* %2, align 4
%17 = bitcast float* %2 to i8*
call void @llvm.lifetime.end(i64 4, i8* %17)
%18 = load float, float* %self, align 4
%19 = fcmp oeq float %18, %16
br label %join
}
; Function Attrs: inlinehint uwtable
define zeroext i1 @_ZN3f329f32.Float9is_finite20hfada618273e5d09fjqaE(float) unnamed_addr #0 {
entry-block:
%self = alloca float
%1 = alloca i8
%2 = alloca i8
%3 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store float %0, float* %self, align 4
call void @llvm.lifetime.start(i64 1, i8* %1)
%4 = load float, float* %self, align 4
%5 = call zeroext i1 @_ZN3f329f32.Float6is_nan20h9528751760ea0607TpaE(float %4)
%6 = zext i1 %5 to i8
store i8 %6, i8* %1, align 1
%7 = load i8, i8* %1, align 1, !range !1
%8 = trunc i8 %7 to i1
call void @llvm.lifetime.end(i64 1, i8* %1)
br i1 %8, label %join, label %before_rhs
join: ; preds = %before_rhs, %entry-block
%9 = phi i1 [ %8, %entry-block ], [ %18, %before_rhs ]
%10 = xor i1 %9, true
%11 = zext i1 %10 to i8
%12 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %12)
%13 = trunc i8 %11 to i1
ret i1 %13
before_rhs: ; preds = %entry-block
call void @llvm.lifetime.start(i64 1, i8* %2)
%14 = load float, float* %self, align 4
%15 = call zeroext i1 @_ZN3f329f32.Float11is_infinite20h18751e5ba3725f2f3paE(float %14)
%16 = zext i1 %15 to i8
store i8 %16, i8* %2, align 1
%17 = load i8, i8* %2, align 1, !range !1
%18 = trunc i8 %17 to i1
call void @llvm.lifetime.end(i64 1, i8* %2)
br label %join
}
; Function Attrs: inlinehint uwtable
define zeroext i1 @_ZN3f329f32.Float9is_normal20h62c6837f941bc4adxqaE(float) unnamed_addr #0 {
entry-block:
%self = alloca float
%1 = alloca i8
%autoref = alloca i8
%2 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store float %0, float* %self, align 4
call void @llvm.lifetime.start(i64 1, i8* %1)
%3 = load float, float* %self, align 4
%4 = call i8 @_ZN3f329f32.Float8classify20h9186a18808b3ec5fIqaE(float %3)
store i8 %4, i8* %1, align 1
%5 = load i8, i8* %1, align 1
call void @llvm.lifetime.end(i64 1, i8* %1)
call void @llvm.lifetime.start(i64 1, i8* %autoref)
store i8 %5, i8* %autoref, align 1
%6 = call zeroext i1 @_ZN3num33FpCategory...core..cmp..PartialEq2eq20h48fccd04b574d039HihE(i8* noalias readonly dereferenceable(1) %autoref, i8* noalias readonly dereferenceable(1) @const43534)
%7 = zext i1 %6 to i8
call void @llvm.lifetime.end(i64 1, i8* %autoref)
%8 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %8)
%9 = trunc i8 %7 to i1
ret i1 %9
}
; Function Attrs: uwtable
define i8 @_ZN3f329f32.Float8classify20h9186a18808b3ec5fIqaE(float) unnamed_addr #2 {
entry-block:
%sret_slot = alloca i8
%self = alloca float
%bits = alloca i32
%1 = alloca { i32, i32 }
%match = alloca { i32, i32 }
%2 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store float %0, float* %self, align 4
%3 = bitcast i32* %bits to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
%4 = load float, float* %self, align 4
%5 = bitcast float %4 to i32
store i32 %5, i32* %bits
%6 = bitcast { i32, i32 }* %1 to i8*
call void @llvm.lifetime.start(i64 8, i8* %6)
%7 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %1, i32 0, i32 0
%8 = load i32, i32* %bits, align 4
%9 = and i32 %8, 8388607
store i32 %9, i32* %7, align 4
%10 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %1, i32 0, i32 1
%11 = load i32, i32* %bits, align 4
%12 = and i32 %11, 2139095040
store i32 %12, i32* %10, align 4
%13 = bitcast { i32, i32 }* %1 to i64*
%14 = load i64, i64* %13, align 4
%15 = bitcast { i32, i32 }* %1 to i8*
call void @llvm.lifetime.end(i64 8, i8* %15)
%16 = bitcast { i32, i32 }* %match to i8*
call void @llvm.lifetime.start(i64 8, i8* %16)
%17 = bitcast { i32, i32 }* %match to i64*
store i64 %14, i64* %17, align 4
%18 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %match, i32 0, i32 0
%19 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %match, i32 0, i32 1
%20 = load i32, i32* %19, align 4
switch i32 %20, label %match_else [
i32 0, label %match_case
i32 2139095040, label %match_case7
]
case_body: ; preds = %match_case6
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %sret_slot, i8* @const43537, i64 1, i32 1, i1 false)
br label %join
case_body1: ; preds = %match_else5
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %sret_slot, i8* @const43538, i64 1, i32 1, i1 false)
br label %join
case_body2: ; preds = %match_case9
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %sret_slot, i8* @const43523, i64 1, i32 1, i1 false)
br label %join
case_body3: ; preds = %match_else8
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %sret_slot, i8* @const43522, i64 1, i32 1, i1 false)
br label %join
case_body4: ; preds = %match_else
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %sret_slot, i8* @const43534, i64 1, i32 1, i1 false)
br label %join
match_else: ; preds = %entry-block
br label %case_body4
match_case: ; preds = %entry-block
%21 = load i32, i32* %18, align 4
switch i32 %21, label %match_else5 [
i32 0, label %match_case6
]
match_else5: ; preds = %match_case
br label %case_body1
match_case6: ; preds = %match_case
br label %case_body
match_case7: ; preds = %entry-block
%22 = load i32, i32* %18, align 4
switch i32 %22, label %match_else8 [
i32 0, label %match_case9
]
match_else8: ; preds = %match_case7
br label %case_body3
match_case9: ; preds = %match_case7
br label %case_body2
join: ; preds = %case_body4, %case_body3, %case_body2, %case_body1, %case_body
%23 = bitcast { i32, i32 }* %match to i8*
call void @llvm.lifetime.end(i64 8, i8* %23)
%24 = bitcast i32* %bits to i8*
call void @llvm.lifetime.end(i64 4, i8* %24)
%25 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %25)
%26 = load i8, i8* %sret_slot, align 1
ret i8 %26
}
; Function Attrs: inlinehint uwtable
define zeroext i1 @_ZN3num33FpCategory...core..cmp..PartialEq2eq20h48fccd04b574d039HihE(i8* noalias readonly dereferenceable(1), i8* noalias readonly dereferenceable(1)) unnamed_addr #0 {
entry-block:
%sret_slot = alloca i8
%self = alloca i8*
%__arg_0 = alloca i8*
%__self_vi = alloca i32
%2 = alloca i64
%__arg_1_vi = alloca i32
%3 = alloca i64
%4 = alloca { i8*, i8* }
%5 = bitcast i8** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %5)
store i8* %0, i8** %self, align 8
%6 = bitcast i8** %__arg_0 to i8*
call void @llvm.lifetime.start(i64 8, i8* %6)
store i8* %1, i8** %__arg_0, align 8
%7 = bitcast i32* %__self_vi to i8*
call void @llvm.lifetime.start(i64 4, i8* %7)
%8 = bitcast i64* %2 to i8*
call void @llvm.lifetime.start(i64 8, i8* %8)
%9 = load i8*, i8** %self, align 8, !nonnull !2
%10 = load i8, i8* %9, !range !5
%11 = zext i8 %10 to i64
store i64 %11, i64* %2, align 8
%12 = load i64, i64* %2, align 8
%13 = bitcast i64* %2 to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = trunc i64 %12 to i32
store i32 %14, i32* %__self_vi, align 4
%15 = bitcast i32* %__arg_1_vi to i8*
call void @llvm.lifetime.start(i64 4, i8* %15)
%16 = bitcast i64* %3 to i8*
call void @llvm.lifetime.start(i64 8, i8* %16)
%17 = load i8*, i8** %__arg_0, align 8, !nonnull !2
%18 = load i8, i8* %17, !range !5
%19 = zext i8 %18 to i64
store i64 %19, i64* %3, align 8
%20 = load i64, i64* %3, align 8
%21 = bitcast i64* %3 to i8*
call void @llvm.lifetime.end(i64 8, i8* %21)
%22 = trunc i64 %20 to i32
store i32 %22, i32* %__arg_1_vi, align 4
br i1 true, label %before_rhs, label %join
join: ; preds = %before_rhs, %entry-block
%23 = phi i1 [ true, %entry-block ], [ %26, %before_rhs ]
br i1 %23, label %then-block-27480-, label %else-block
before_rhs: ; preds = %entry-block
%24 = load i32, i32* %__self_vi, align 4
%25 = load i32, i32* %__arg_1_vi, align 4
%26 = icmp eq i32 %24, %25
br label %join
then-block-27480-: ; preds = %join
%27 = bitcast { i8*, i8* }* %4 to i8*
call void @llvm.lifetime.start(i64 16, i8* %27)
%28 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %4, i32 0, i32 0
%29 = load i8*, i8** %self, align 8, !nonnull !2
store i8* %29, i8** %28, align 8
%30 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %4, i32 0, i32 1
%31 = load i8*, i8** %__arg_0, align 8, !nonnull !2
store i8* %31, i8** %30, align 8
%32 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %4, i32 0, i32 0
%33 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %4, i32 0, i32 1
%34 = load i8*, i8** %33
%35 = load i8*, i8** %32
%36 = load i8, i8* %34, !range !5
switch i8 %36, label %match_else [
i8 0, label %match_case
i8 1, label %match_case8
i8 2, label %match_case11
i8 3, label %match_case14
i8 4, label %match_case17
]
case_body: ; preds = %match_case7
store i8 1, i8* %sret_slot, align 1
br label %join20
case_body1: ; preds = %match_case10
store i8 1, i8* %sret_slot, align 1
br label %join20
case_body2: ; preds = %match_case13
store i8 1, i8* %sret_slot, align 1
br label %join20
case_body3: ; preds = %match_case16
store i8 1, i8* %sret_slot, align 1
br label %join20
case_body4: ; preds = %match_case19
store i8 1, i8* %sret_slot, align 1
br label %join20
case_body5: ; preds = %match_else18, %match_else15, %match_else12, %match_else9, %match_else6, %match_else
unreachable
match_else: ; preds = %then-block-27480-
br label %case_body5
match_case: ; preds = %then-block-27480-
%37 = load i8, i8* %35, !range !5
switch i8 %37, label %match_else6 [
i8 0, label %match_case7
]
match_else6: ; preds = %match_case
br label %case_body5
match_case7: ; preds = %match_case
br label %case_body
match_case8: ; preds = %then-block-27480-
%38 = load i8, i8* %35, !range !5
switch i8 %38, label %match_else9 [
i8 1, label %match_case10
]
match_else9: ; preds = %match_case8
br label %case_body5
match_case10: ; preds = %match_case8
br label %case_body1
match_case11: ; preds = %then-block-27480-
%39 = load i8, i8* %35, !range !5
switch i8 %39, label %match_else12 [
i8 2, label %match_case13
]
match_else12: ; preds = %match_case11
br label %case_body5
match_case13: ; preds = %match_case11
br label %case_body2
match_case14: ; preds = %then-block-27480-
%40 = load i8, i8* %35, !range !5
switch i8 %40, label %match_else15 [
i8 3, label %match_case16
]
match_else15: ; preds = %match_case14
br label %case_body5
match_case16: ; preds = %match_case14
br label %case_body3
match_case17: ; preds = %then-block-27480-
%41 = load i8, i8* %35, !range !5
switch i8 %41, label %match_else18 [
i8 4, label %match_case19
]
match_else18: ; preds = %match_case17
br label %case_body5
match_case19: ; preds = %match_case17
br label %case_body4
join20: ; preds = %case_body4, %case_body3, %case_body2, %case_body1, %case_body
%42 = bitcast { i8*, i8* }* %4 to i8*
call void @llvm.lifetime.end(i64 16, i8* %42)
br label %join21
else-block: ; preds = %join
store i8 0, i8* %sret_slot, align 1
br label %join21
join21: ; preds = %else-block, %join20
%43 = bitcast i32* %__arg_1_vi to i8*
call void @llvm.lifetime.end(i64 4, i8* %43)
%44 = bitcast i32* %__self_vi to i8*
call void @llvm.lifetime.end(i64 4, i8* %44)
%45 = bitcast i8** %__arg_0 to i8*
call void @llvm.lifetime.end(i64 8, i8* %45)
%46 = bitcast i8** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %46)
%47 = load i8, i8* %sret_slot, align 1, !range !1
%48 = trunc i8 %47 to i1
ret i1 %48
}
; Function Attrs: uwtable
define void @_ZN3f329f32.Float14integer_decode20hf302437985f182b5AraE({ i64, i16, i8 }* noalias nocapture sret dereferenceable(16), float) unnamed_addr #2 {
entry-block:
%self = alloca float
%bits = alloca i32
%sign = alloca i8
%exponent = alloca i16
%mantissa = alloca i32
%2 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store float %1, float* %self, align 4
%3 = bitcast i32* %bits to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
%4 = load float, float* %self, align 4
%5 = bitcast float %4 to i32
store i32 %5, i32* %bits
call void @llvm.lifetime.start(i64 1, i8* %sign)
%6 = load i32, i32* %bits, align 4
%7 = lshr i32 %6, 31
%8 = icmp eq i32 %7, 0
br i1 %8, label %then-block-1109-, label %else-block
then-block-1109-: ; preds = %entry-block
store i8 1, i8* %sign, align 1
br label %join
else-block: ; preds = %entry-block
store i8 -1, i8* %sign, align 1
br label %join
join: ; preds = %else-block, %then-block-1109-
%9 = bitcast i16* %exponent to i8*
call void @llvm.lifetime.start(i64 2, i8* %9)
%10 = load i32, i32* %bits, align 4
%11 = lshr i32 %10, 23
%12 = and i32 %11, 255
%13 = trunc i32 %12 to i16
store i16 %13, i16* %exponent, align 2
%14 = bitcast i32* %mantissa to i8*
call void @llvm.lifetime.start(i64 4, i8* %14)
%15 = load i16, i16* %exponent, align 2
%16 = icmp eq i16 %15, 0
br i1 %16, label %then-block-1135-, label %else-block1
then-block-1135-: ; preds = %join
%17 = load i32, i32* %bits, align 4
%18 = and i32 %17, 8388607
%19 = shl i32 %18, 1
store i32 %19, i32* %mantissa, align 4
br label %join2
else-block1: ; preds = %join
%20 = load i32, i32* %bits, align 4
%21 = and i32 %20, 8388607
%22 = or i32 %21, 8388608
store i32 %22, i32* %mantissa, align 4
br label %join2
join2: ; preds = %else-block1, %then-block-1135-
%23 = load i16, i16* %exponent, align 2
%24 = sub i16 %23, 150
store i16 %24, i16* %exponent, align 2
%25 = getelementptr inbounds { i64, i16, i8 }, { i64, i16, i8 }* %0, i32 0, i32 0
%26 = load i32, i32* %mantissa, align 4
%27 = zext i32 %26 to i64
store i64 %27, i64* %25, align 8
%28 = getelementptr inbounds { i64, i16, i8 }, { i64, i16, i8 }* %0, i32 0, i32 1
%29 = load i16, i16* %exponent, align 2
store i16 %29, i16* %28, align 2
%30 = getelementptr inbounds { i64, i16, i8 }, { i64, i16, i8 }* %0, i32 0, i32 2
%31 = load i8, i8* %sign, align 1
store i8 %31, i8* %30, align 1
%32 = bitcast i32* %mantissa to i8*
call void @llvm.lifetime.end(i64 4, i8* %32)
%33 = bitcast i16* %exponent to i8*
call void @llvm.lifetime.end(i64 2, i8* %33)
call void @llvm.lifetime.end(i64 1, i8* %sign)
%34 = bitcast i32* %bits to i8*
call void @llvm.lifetime.end(i64 4, i8* %34)
%35 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %35)
ret void
}
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float5floor20hd54d654c02659caeUsaE(float) unnamed_addr #0 {
entry-block:
%self = alloca float
%1 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %1)
store float %0, float* %self, align 4
%2 = load float, float* %self, align 4
%3 = call float @llvm.floor.f32(float %2)
%4 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %4)
ret float %3
}
; Function Attrs: nounwind readnone
declare float @llvm.floor.f32(float) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float4ceil20h98d36aa099de1bb86saE(float) unnamed_addr #0 {
entry-block:
%self = alloca float
%1 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %1)
store float %0, float* %self, align 4
%2 = load float, float* %self, align 4
%3 = call float @llvm.ceil.f32(float %2)
%4 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %4)
ret float %3
}
; Function Attrs: nounwind readnone
declare float @llvm.ceil.f32(float) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float5round20h818a41f17e8d9db0itaE(float) unnamed_addr #0 {
entry-block:
%self = alloca float
%1 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %1)
store float %0, float* %self, align 4
%2 = load float, float* %self, align 4
%3 = call float @llvm.round.f32(float %2)
%4 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %4)
ret float %3
}
; Function Attrs: nounwind readnone
declare float @llvm.round.f32(float) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float5trunc20hb509112636c2f5ccutaE(float) unnamed_addr #0 {
entry-block:
%self = alloca float
%1 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %1)
store float %0, float* %self, align 4
%2 = load float, float* %self, align 4
%3 = call float @llvm.trunc.f32(float %2)
%4 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %4)
ret float %3
}
; Function Attrs: nounwind readnone
declare float @llvm.trunc.f32(float) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float5fract20h77217217232888ebGtaE(float) unnamed_addr #0 {
entry-block:
%self = alloca float
%1 = alloca float
%2 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store float %0, float* %self, align 4
%3 = bitcast float* %1 to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
%4 = load float, float* %self, align 4
%5 = call float @_ZN3f329f32.Float5trunc20hb509112636c2f5ccutaE(float %4)
store float %5, float* %1, align 4
%6 = load float, float* %1, align 4
%7 = bitcast float* %1 to i8*
call void @llvm.lifetime.end(i64 4, i8* %7)
%8 = load float, float* %self, align 4
%9 = fsub float %8, %6
%10 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %10)
ret float %9
}
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float3abs20he564d8611c9c232cRtaE(float) unnamed_addr #0 {
entry-block:
%self = alloca float
%1 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %1)
store float %0, float* %self, align 4
%2 = load float, float* %self, align 4
%3 = call float @llvm.fabs.f32(float %2)
%4 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %4)
ret float %3
}
; Function Attrs: nounwind readnone
declare float @llvm.fabs.f32(float) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float6signum20h275d330286b30d1c3taE(float) unnamed_addr #0 {
entry-block:
%sret_slot = alloca float
%self = alloca float
%1 = alloca i8
%2 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store float %0, float* %self, align 4
call void @llvm.lifetime.start(i64 1, i8* %1)
%3 = load float, float* %self, align 4
%4 = call zeroext i1 @_ZN3f329f32.Float6is_nan20h9528751760ea0607TpaE(float %3)
%5 = zext i1 %4 to i8
store i8 %5, i8* %1, align 1
%6 = load i8, i8* %1, align 1, !range !1
%7 = trunc i8 %6 to i1
call void @llvm.lifetime.end(i64 1, i8* %1)
br i1 %7, label %then-block-1243-, label %else-block
then-block-1243-: ; preds = %entry-block
%8 = call float @_ZN3f329f32.Float3nan20h96a4717cfc7a7c18TfaE()
store float %8, float* %sret_slot, align 4
br label %join
else-block: ; preds = %entry-block
%9 = load float, float* %self, align 4
%10 = call float @llvm.copysign.f32(float 1.000000e+00, float %9)
store float %10, float* %sret_slot, align 4
br label %join
join: ; preds = %else-block, %then-block-1243-
%11 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %11)
%12 = load float, float* %sret_slot, align 4
ret float %12
}
; Function Attrs: nounwind readnone
declare float @llvm.copysign.f32(float, float) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define zeroext i1 @_ZN3f329f32.Float11is_positive20h4bf3d9dadad17022ouaE(float) unnamed_addr #0 {
entry-block:
%self = alloca float
%1 = alloca float
%2 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store float %0, float* %self, align 4
%3 = load float, float* %self, align 4
%4 = fcmp ogt float %3, 0.000000e+00
br i1 %4, label %join, label %before_rhs
join: ; preds = %before_rhs, %entry-block
%5 = phi i1 [ %4, %entry-block ], [ %15, %before_rhs ]
%6 = zext i1 %5 to i8
%7 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %7)
%8 = trunc i8 %6 to i1
ret i1 %8
before_rhs: ; preds = %entry-block
%9 = load float, float* %self, align 4
%10 = fdiv float 1.000000e+00, %9
%11 = bitcast float* %1 to i8*
call void @llvm.lifetime.start(i64 4, i8* %11)
%12 = call float @_ZN3f329f32.Float8infinity20h6ec1d6c56e54b7d5YfaE()
store float %12, float* %1, align 4
%13 = load float, float* %1, align 4
%14 = bitcast float* %1 to i8*
call void @llvm.lifetime.end(i64 4, i8* %14)
%15 = fcmp oeq float %10, %13
br label %join
}
; Function Attrs: inlinehint uwtable
define zeroext i1 @_ZN3f329f32.Float11is_negative20ha41fa5ec6ea6beb5GuaE(float) unnamed_addr #0 {
entry-block:
%self = alloca float
%1 = alloca float
%2 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store float %0, float* %self, align 4
%3 = load float, float* %self, align 4
%4 = fcmp olt float %3, 0.000000e+00
br i1 %4, label %join, label %before_rhs
join: ; preds = %before_rhs, %entry-block
%5 = phi i1 [ %4, %entry-block ], [ %15, %before_rhs ]
%6 = zext i1 %5 to i8
%7 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %7)
%8 = trunc i8 %6 to i1
ret i1 %8
before_rhs: ; preds = %entry-block
%9 = load float, float* %self, align 4
%10 = fdiv float 1.000000e+00, %9
%11 = bitcast float* %1 to i8*
call void @llvm.lifetime.start(i64 4, i8* %11)
%12 = call float @_ZN3f329f32.Float12neg_infinity20h6adc134f1b5bae443faE()
store float %12, float* %1, align 4
%13 = load float, float* %1, align 4
%14 = bitcast float* %1 to i8*
call void @llvm.lifetime.end(i64 4, i8* %14)
%15 = fcmp oeq float %10, %13
br label %join
}
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float7mul_add20h5b2006321f7de0e9YuaE(float, float, float) unnamed_addr #0 {
entry-block:
%self = alloca float
%a = alloca float
%b = alloca float
%3 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store float %0, float* %self, align 4
%4 = bitcast float* %a to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
store float %1, float* %a, align 4
%5 = bitcast float* %b to i8*
call void @llvm.lifetime.start(i64 4, i8* %5)
store float %2, float* %b, align 4
%6 = load float, float* %self, align 4
%7 = load float, float* %a, align 4
%8 = load float, float* %b, align 4
%9 = call float @llvm.fma.f32(float %6, float %7, float %8)
%10 = bitcast float* %b to i8*
call void @llvm.lifetime.end(i64 4, i8* %10)
%11 = bitcast float* %a to i8*
call void @llvm.lifetime.end(i64 4, i8* %11)
%12 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %12)
ret float %9
}
; Function Attrs: nounwind readnone
declare float @llvm.fma.f32(float, float, float) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float5recip20h596ae16a124acef8ivaE(float) unnamed_addr #0 {
entry-block:
%self = alloca float
%1 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %1)
store float %0, float* %self, align 4
%2 = load float, float* %self, align 4
%3 = fdiv float 1.000000e+00, %2
%4 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %4)
ret float %3
}
; Function Attrs: nounwind readnone
declare float @llvm.powi.f32(float, i32) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float4powf20h9f981adbef303b88IvaE(float, float) unnamed_addr #0 {
entry-block:
%self = alloca float
%n = alloca float
%2 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store float %0, float* %self, align 4
%3 = bitcast float* %n to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store float %1, float* %n, align 4
%4 = load float, float* %self, align 4
%5 = load float, float* %n, align 4
%6 = call float @llvm.pow.f32(float %4, float %5)
%7 = bitcast float* %n to i8*
call void @llvm.lifetime.end(i64 4, i8* %7)
%8 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %8)
ret float %6
}
; Function Attrs: nounwind readnone
declare float @llvm.pow.f32(float, float) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float4sqrt20hd654c8dbf0c9c1e1YvaE(float) unnamed_addr #0 {
entry-block:
%sret_slot = alloca float
%self = alloca float
%1 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %1)
store float %0, float* %self, align 4
%2 = load float, float* %self, align 4
%3 = fcmp olt float %2, 0.000000e+00
br i1 %3, label %then-block-1363-, label %else-block
then-block-1363-: ; preds = %entry-block
store float 0x7FF8000000000000, float* %sret_slot, align 4
br label %join
else-block: ; preds = %entry-block
%4 = load float, float* %self, align 4
%5 = call float @llvm.sqrt.f32(float %4)
store float %5, float* %sret_slot, align 4
br label %join
join: ; preds = %else-block, %then-block-1363-
%6 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %6)
%7 = load float, float* %sret_slot, align 4
ret float %7
}
; Function Attrs: nounwind readnone
declare float @llvm.sqrt.f32(float) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float5rsqrt20hdce663967b190b5eiwaE(float) unnamed_addr #0 {
entry-block:
%self = alloca float
%1 = alloca float
%2 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store float %0, float* %self, align 4
%3 = bitcast float* %1 to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
%4 = load float, float* %self, align 4
%5 = call float @_ZN3f329f32.Float4sqrt20hd654c8dbf0c9c1e1YvaE(float %4)
store float %5, float* %1, align 4
%6 = load float, float* %1, align 4
%7 = bitcast float* %1 to i8*
call void @llvm.lifetime.end(i64 4, i8* %7)
%8 = call float @_ZN3f329f32.Float5recip20h596ae16a124acef8ivaE(float %6)
%9 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %9)
ret float %8
}
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float3exp20h6f572e7b427e8799swaE(float) unnamed_addr #0 {
entry-block:
%self = alloca float
%1 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %1)
store float %0, float* %self, align 4
%2 = load float, float* %self, align 4
%3 = call float @llvm.exp.f32(float %2)
%4 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %4)
ret float %3
}
; Function Attrs: nounwind readnone
declare float @llvm.exp.f32(float) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float4exp220h134d2b9336b1bacbEwaE(float) unnamed_addr #0 {
entry-block:
%self = alloca float
%1 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %1)
store float %0, float* %self, align 4
%2 = load float, float* %self, align 4
%3 = call float @llvm.exp2.f32(float %2)
%4 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %4)
ret float %3
}
; Function Attrs: nounwind readnone
declare float @llvm.exp2.f32(float) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float2ln20h3ca09911afe67b4aQwaE(float) unnamed_addr #0 {
entry-block:
%self = alloca float
%1 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %1)
store float %0, float* %self, align 4
%2 = load float, float* %self, align 4
%3 = call float @llvm.log.f32(float %2)
%4 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %4)
ret float %3
}
; Function Attrs: nounwind readnone
declare float @llvm.log.f32(float) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float3log20h7f9e4ffa51a81de12waE(float, float) unnamed_addr #0 {
entry-block:
%self = alloca float
%base = alloca float
%2 = alloca float
%3 = alloca float
%4 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
store float %0, float* %self, align 4
%5 = bitcast float* %base to i8*
call void @llvm.lifetime.start(i64 4, i8* %5)
store float %1, float* %base, align 4
%6 = bitcast float* %2 to i8*
call void @llvm.lifetime.start(i64 4, i8* %6)
%7 = load float, float* %self, align 4
%8 = call float @_ZN3f329f32.Float2ln20h3ca09911afe67b4aQwaE(float %7)
store float %8, float* %2, align 4
%9 = load float, float* %2, align 4
%10 = bitcast float* %2 to i8*
call void @llvm.lifetime.end(i64 4, i8* %10)
%11 = bitcast float* %3 to i8*
call void @llvm.lifetime.start(i64 4, i8* %11)
%12 = load float, float* %base, align 4
%13 = call float @_ZN3f329f32.Float2ln20h3ca09911afe67b4aQwaE(float %12)
store float %13, float* %3, align 4
%14 = load float, float* %3, align 4
%15 = bitcast float* %3 to i8*
call void @llvm.lifetime.end(i64 4, i8* %15)
%16 = fdiv float %9, %14
%17 = bitcast float* %base to i8*
call void @llvm.lifetime.end(i64 4, i8* %17)
%18 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %18)
ret float %16
}
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float4log220h3fe87a234470e13ahxaE(float) unnamed_addr #0 {
entry-block:
%self = alloca float
%1 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %1)
store float %0, float* %self, align 4
%2 = load float, float* %self, align 4
%3 = call float @llvm.log2.f32(float %2)
%4 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %4)
ret float %3
}
; Function Attrs: nounwind readnone
declare float @llvm.log2.f32(float) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float5log1020ha661025a0eac4109txaE(float) unnamed_addr #0 {
entry-block:
%self = alloca float
%1 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %1)
store float %0, float* %self, align 4
%2 = load float, float* %self, align 4
%3 = call float @llvm.log10.f32(float %2)
%4 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %4)
ret float %3
}
; Function Attrs: nounwind readnone
declare float @llvm.log10.f32(float) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float10to_degrees20h48dc85963ce082d5FxaE(float) unnamed_addr #0 {
entry-block:
%self = alloca float
%1 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %1)
store float %0, float* %self, align 4
%2 = load float, float* %self, align 4
%3 = fmul float %2, 0x404CA5DC00000000
%4 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %4)
ret float %3
}
; Function Attrs: inlinehint uwtable
define float @_ZN3f329f32.Float10to_radians20he2fe682668f0de3bSxaE(float) unnamed_addr #0 {
entry-block:
%self = alloca float
%value = alloca float
%1 = bitcast float* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %1)
store float %0, float* %self, align 4
%2 = bitcast float* %value to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store float 0x400921FB60000000, float* %value, align 4
%3 = load float, float* %value, align 4
%4 = fdiv float %3, 1.800000e+02
%5 = load float, float* %self, align 4
%6 = fmul float %5, %4
%7 = bitcast float* %value to i8*
call void @llvm.lifetime.end(i64 4, i8* %7)
%8 = bitcast float* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %8)
ret float %6
}
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float3nan20h5b9c8d892c4939332zaE() unnamed_addr #0 {
entry-block:
ret double 0x7FF8000000000000
}
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float8infinity20hfdd23488d7b0fb7e7zaE() unnamed_addr #0 {
entry-block:
ret double 0x7FF0000000000000
}
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float12neg_infinity20hb5011eb9b9df0d43cAaE() unnamed_addr #0 {
entry-block:
ret double 0xFFF0000000000000
}
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float4zero20hbfffb5cf815e75a2hAaE() unnamed_addr #0 {
entry-block:
ret double 0.000000e+00
}
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float8neg_zero20ha0e41055f28171e5mAaE() unnamed_addr #0 {
entry-block:
ret double -0.000000e+00
}
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float3one20h41f55fc00996ea5csAaE() unnamed_addr #0 {
entry-block:
ret double 1.000000e+00
}
; Function Attrs: uwtable
define void @_ZN3f649f64.Float14from_str_radix20h58310d03f65848a2xAaE(%"result::Result<f64, num::ParseFloatError>"* noalias nocapture sret dereferenceable(16), i8* noalias nonnull readonly, i64, i32) unnamed_addr #2 {
entry-block:
%src = alloca %str_slice
%radix = alloca i32
%to_ref = alloca %str_slice
%to_ref5 = alloca %str_slice
%to_ref8 = alloca %str_slice
%4 = alloca { i8, %str_slice }
%5 = alloca %"option::Option<(char, &'static str)>"
%__llmatch = alloca %str_slice*
%src13 = alloca %str_slice
%to_ref22 = alloca %str_slice
%is_positive = alloca i8
%src25 = alloca %str_slice
%sig = alloca double
%prev_sig = alloca double
%cs = alloca %"iter::Enumerate<str::Chars>"
%6 = alloca %"str::Chars"
%exp_info = alloca %"option::Option<(char, usize)>"
%result = alloca {}
%7 = alloca %"iter::Enumerate<str::Chars>"*
%8 = alloca %"iter::Enumerate<str::Chars>"*
%match = alloca %"iter::Enumerate<str::Chars>"*
%iter = alloca %"iter::Enumerate<str::Chars>"**
%9 = alloca %"option::Option<(usize, char)>"
%__llmatch29 = alloca i64*
%i = alloca i64
%__llmatch30 = alloca i32*
%c = alloca i32
%10 = alloca %"option::Option<u32>"
%match34 = alloca %"option::Option<u32>"
%__llmatch36 = alloca i32*
%digit = alloca i32
%11 = alloca %"option::Option<(char, usize)>"
%12 = alloca i8
%power = alloca double
%result77 = alloca {}
%13 = alloca %"iter::Enumerate<str::Chars>"*
%14 = alloca %"iter::Enumerate<str::Chars>"*
%match78 = alloca %"iter::Enumerate<str::Chars>"*
%iter80 = alloca %"iter::Enumerate<str::Chars>"**
%15 = alloca %"option::Option<(usize, char)>"
%__llmatch84 = alloca i64*
%i85 = alloca i64
%__llmatch86 = alloca i32*
%c87 = alloca i32
%16 = alloca %"option::Option<u32>"
%match91 = alloca %"option::Option<u32>"
%__llmatch93 = alloca i32*
%digit94 = alloca i32
%17 = alloca double
%18 = alloca %"option::Option<(char, usize)>"
%exp = alloca double
%__llmatch129 = alloca i32*
%c130 = alloca i32
%__llmatch131 = alloca i64*
%offset = alloca i64
%base = alloca double
%src155 = alloca %str_slice
%19 = alloca %"ops::RangeFrom<usize>"
%overloaded_index_elt = alloca %str_slice
%__fat_ptr = alloca %str_slice
%20 = alloca { i8, %"result::Result<usize, num::ParseIntError>" }
%21 = alloca %"option::Option<(char, &'static str)>"
%__llmatch157 = alloca %str_slice*
%src158 = alloca %str_slice
%__llmatch160 = alloca %str_slice*
%src161 = alloca %str_slice
%is_positive172 = alloca i8
%exp173 = alloca %"result::Result<usize, num::ParseIntError>"
%22 = alloca { i8, %"result::Result<usize, num::ParseIntError>" }
%__llmatch175 = alloca i64*
%exp176 = alloca i64
%__llmatch178 = alloca i64*
%exp179 = alloca i64
%23 = alloca double
%24 = insertvalue %str_slice undef, i8* %1, 0
%25 = insertvalue %str_slice %24, i64 %2, 1
%26 = bitcast %str_slice* %src to i8*
call void @llvm.lifetime.start(i64 16, i8* %26)
store %str_slice %25, %str_slice* %src, align 8
%27 = bitcast i32* %radix to i8*
call void @llvm.lifetime.start(i64 4, i8* %27)
store i32 %3, i32* %radix, align 4
%28 = bitcast %str_slice* %to_ref to i8*
call void @llvm.lifetime.start(i64 16, i8* %28)
store %str_slice { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @str43517, i32 0, i32 0), i64 3 }, %str_slice* %to_ref, align 8
%29 = getelementptr inbounds %str_slice, %str_slice* %src, i32 0, i32 0
%30 = load i8*, i8** %29
%31 = getelementptr inbounds %str_slice, %str_slice* %src, i32 0, i32 1
%32 = load i64, i64* %31
%33 = getelementptr inbounds %str_slice, %str_slice* %to_ref, i32 0, i32 0
%34 = load i8*, i8** %33
%35 = getelementptr inbounds %str_slice, %str_slice* %to_ref, i32 0, i32 1
%36 = load i64, i64* %35
%37 = call zeroext i1 @_ZN3str8eq_slice20hcc8bfaf38dd0c426ZJJE(i8* noalias nonnull readonly %30, i64 %32, i8* noalias nonnull readonly %34, i64 %36)
br i1 %37, label %match_case, label %compare_next
case_body: ; preds = %match_case
%38 = bitcast %"result::Result<f64, num::ParseFloatError>"* %0 to { i8, double }*
%39 = getelementptr inbounds { i8, double }, { i8, double }* %38, i32 0, i32 1
%40 = call double @_ZN3f649f64.Float8infinity20hfdd23488d7b0fb7e7zaE()
store double %40, double* %39, align 8
%41 = getelementptr inbounds %"result::Result<f64, num::ParseFloatError>", %"result::Result<f64, num::ParseFloatError>"* %0, i32 0, i32 0
store i8 0, i8* %41
br label %clean_custom_
case_body1: ; preds = %match_case4
%42 = bitcast %"result::Result<f64, num::ParseFloatError>"* %0 to { i8, double }*
%43 = getelementptr inbounds { i8, double }, { i8, double }* %42, i32 0, i32 1
%44 = call double @_ZN3f649f64.Float12neg_infinity20hb5011eb9b9df0d43cAaE()
store double %44, double* %43, align 8
%45 = getelementptr inbounds %"result::Result<f64, num::ParseFloatError>", %"result::Result<f64, num::ParseFloatError>"* %0, i32 0, i32 0
store i8 0, i8* %45
br label %clean_custom_
case_body2: ; preds = %match_case7
%46 = bitcast %"result::Result<f64, num::ParseFloatError>"* %0 to { i8, double }*
%47 = getelementptr inbounds { i8, double }, { i8, double }* %46, i32 0, i32 1
%48 = call double @_ZN3f649f64.Float3nan20h5b9c8d892c4939332zaE()
store double %48, double* %47, align 8
%49 = getelementptr inbounds %"result::Result<f64, num::ParseFloatError>", %"result::Result<f64, num::ParseFloatError>"* %0, i32 0, i32 0
store i8 0, i8* %49
br label %clean_custom_
case_body3: ; preds = %match_else
br label %join
match_else: ; preds = %compare_next9
br label %case_body3
match_case: ; preds = %entry-block
br label %case_body
compare_next: ; preds = %entry-block
%50 = bitcast %str_slice* %to_ref5 to i8*
call void @llvm.lifetime.start(i64 16, i8* %50)
store %str_slice { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str43518, i32 0, i32 0), i64 4 }, %str_slice* %to_ref5, align 8
%51 = getelementptr inbounds %str_slice, %str_slice* %src, i32 0, i32 0
%52 = load i8*, i8** %51
%53 = getelementptr inbounds %str_slice, %str_slice* %src, i32 0, i32 1
%54 = load i64, i64* %53
%55 = getelementptr inbounds %str_slice, %str_slice* %to_ref5, i32 0, i32 0
%56 = load i8*, i8** %55
%57 = getelementptr inbounds %str_slice, %str_slice* %to_ref5, i32 0, i32 1
%58 = load i64, i64* %57
%59 = call zeroext i1 @_ZN3str8eq_slice20hcc8bfaf38dd0c426ZJJE(i8* noalias nonnull readonly %52, i64 %54, i8* noalias nonnull readonly %56, i64 %58)
br i1 %59, label %match_case4, label %compare_next6
match_case4: ; preds = %compare_next
br label %case_body1
compare_next6: ; preds = %compare_next
%60 = bitcast %str_slice* %to_ref8 to i8*
call void @llvm.lifetime.start(i64 16, i8* %60)
store %str_slice { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @str43519, i32 0, i32 0), i64 3 }, %str_slice* %to_ref8, align 8
%61 = getelementptr inbounds %str_slice, %str_slice* %src, i32 0, i32 0
%62 = load i8*, i8** %61
%63 = getelementptr inbounds %str_slice, %str_slice* %src, i32 0, i32 1
%64 = load i64, i64* %63
%65 = getelementptr inbounds %str_slice, %str_slice* %to_ref8, i32 0, i32 0
%66 = load i8*, i8** %65
%67 = getelementptr inbounds %str_slice, %str_slice* %to_ref8, i32 0, i32 1
%68 = load i64, i64* %67
%69 = call zeroext i1 @_ZN3str8eq_slice20hcc8bfaf38dd0c426ZJJE(i8* noalias nonnull readonly %62, i64 %64, i8* noalias nonnull readonly %66, i64 %68)
br i1 %69, label %match_case7, label %compare_next9
match_case7: ; preds = %compare_next6
br label %case_body2
compare_next9: ; preds = %compare_next6
br label %match_else
clean_custom_: ; preds = %join188, %clean_ast_1647_, %clean_ast_1679_, %case_body2, %case_body1, %case_body
%70 = bitcast i32* %radix to i8*
call void @llvm.lifetime.end(i64 4, i8* %70)
%71 = bitcast %str_slice* %src to i8*
call void @llvm.lifetime.end(i64 16, i8* %71)
br label %return
join: ; preds = %case_body3
%72 = bitcast { i8, %str_slice }* %4 to i8*
call void @llvm.lifetime.start(i64 24, i8* %72)
%73 = bitcast %"option::Option<(char, &'static str)>"* %5 to i8*
call void @llvm.lifetime.start(i64 24, i8* %73)
%74 = getelementptr inbounds %str_slice, %str_slice* %src, i32 0, i32 0
%75 = load i8*, i8** %74
%76 = getelementptr inbounds %str_slice, %str_slice* %src, i32 0, i32 1
%77 = load i64, i64* %76
call void @_ZN3str10str.StrExt16slice_shift_char20h763b6d43914ac21cBtKE(%"option::Option<(char, &'static str)>"* noalias nocapture sret dereferenceable(24) %5, i8* noalias nonnull readonly %75, i64 %77)
%78 = getelementptr inbounds %"option::Option<(char, &'static str)>", %"option::Option<(char, &'static str)>"* %5, i32 0, i32 0, i32 1, i32 0
%79 = load i8*, i8** %78
%80 = icmp ne i8* %79, null
switch i1 %80, label %match_else15 [
i1 false, label %match_case16
]
case_body10: ; preds = %match_case16
%81 = bitcast %"result::Result<f64, num::ParseFloatError>"* %0 to { i8, { i8 }, [14 x i8] }*
%82 = bitcast { i8, { i8 }, [14 x i8] }* %81 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %82, i8* getelementptr inbounds ({ i8, { i8 }, [14 x i8] }, { i8, { i8 }, [14 x i8] }* @const43557, i32 0, i32 0), i64 16, i32 8, i1 false)
br label %clean_ast_1679_
case_body11: ; preds = %match_case21
%83 = bitcast %"result::Result<f64, num::ParseFloatError>"* %0 to { i8, { i8 }, [14 x i8] }*
%84 = bitcast { i8, { i8 }, [14 x i8] }* %83 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %84, i8* getelementptr inbounds ({ i8, { i8 }, [14 x i8] }, { i8, { i8 }, [14 x i8] }* @const43557, i32 0, i32 0), i64 16, i32 8, i1 false)
br label %clean_ast_1679_
case_body12: ; preds = %match_else20
%85 = load %str_slice*, %str_slice** %__llmatch
%86 = bitcast %str_slice* %src13 to i8*
call void @llvm.lifetime.start(i64 16, i8* %86)
%87 = bitcast %str_slice* %85 to i8*
%88 = bitcast %str_slice* %src13 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %88, i8* %87, i64 16, i32 8, i1 false)
%89 = getelementptr inbounds { i8, %str_slice }, { i8, %str_slice }* %4, i32 0, i32 0
store i8 0, i8* %89, align 1
%90 = getelementptr inbounds { i8, %str_slice }, { i8, %str_slice }* %4, i32 0, i32 1
%91 = bitcast %str_slice* %src13 to i8*
%92 = bitcast %str_slice* %90 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %92, i8* %91, i64 16, i32 8, i1 false)
%93 = bitcast %str_slice** %__llmatch to i8*
call void @llvm.lifetime.end(i64 8, i8* %93)
%94 = bitcast %str_slice* %src13 to i8*
call void @llvm.lifetime.end(i64 16, i8* %94)
br label %join24
case_body14: ; preds = %match_else17
%95 = getelementptr inbounds { i8, %str_slice }, { i8, %str_slice }* %4, i32 0, i32 0
store i8 1, i8* %95, align 1
%96 = getelementptr inbounds { i8, %str_slice }, { i8, %str_slice }* %4, i32 0, i32 1
%97 = bitcast %str_slice* %src to i8*
%98 = bitcast %str_slice* %96 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %98, i8* %97, i64 16, i32 8, i1 false)
br label %join24
match_else15: ; preds = %join
%99 = getelementptr inbounds %"option::Option<(char, &'static str)>", %"option::Option<(char, &'static str)>"* %5, i32 0, i32 0
%100 = getelementptr inbounds { i32, %str_slice }, { i32, %str_slice }* %99, i32 0, i32 0
%101 = getelementptr inbounds { i32, %str_slice }, { i32, %str_slice }* %99, i32 0, i32 1
%102 = load i32, i32* %100, align 4, !range !0
%103 = icmp eq i32 %102, 45
br i1 %103, label %match_case18, label %compare_next19
match_case16: ; preds = %join
br label %case_body10
match_else17: ; preds = %compare_next19
br label %case_body14
match_case18: ; preds = %match_else15
%104 = bitcast %str_slice* %to_ref22 to i8*
call void @llvm.lifetime.start(i64 16, i8* %104)
store %str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str43520, i32 0, i32 0), i64 0 }, %str_slice* %to_ref22, align 8
%105 = getelementptr inbounds %str_slice, %str_slice* %101, i32 0, i32 0
%106 = load i8*, i8** %105
%107 = getelementptr inbounds %str_slice, %str_slice* %101, i32 0, i32 1
%108 = load i64, i64* %107
%109 = getelementptr inbounds %str_slice, %str_slice* %to_ref22, i32 0, i32 0
%110 = load i8*, i8** %109
%111 = getelementptr inbounds %str_slice, %str_slice* %to_ref22, i32 0, i32 1
%112 = load i64, i64* %111
%113 = call zeroext i1 @_ZN3str8eq_slice20hcc8bfaf38dd0c426ZJJE(i8* noalias nonnull readonly %106, i64 %108, i8* noalias nonnull readonly %110, i64 %112)
br i1 %113, label %match_case21, label %compare_next23
compare_next19: ; preds = %match_else15
br label %match_else17
match_else20: ; preds = %compare_next23
%114 = bitcast %str_slice** %__llmatch to i8*
call void @llvm.lifetime.start(i64 8, i8* %114)
store %str_slice* %101, %str_slice** %__llmatch
br label %case_body12
match_case21: ; preds = %match_case18
br label %case_body11
compare_next23: ; preds = %match_case18
br label %match_else20
clean_ast_1679_: ; preds = %case_body11, %case_body10
%115 = bitcast %"option::Option<(char, &'static str)>"* %5 to i8*
call void @llvm.lifetime.end(i64 24, i8* %115)
br label %clean_custom_
join24: ; preds = %case_body14, %case_body12
%116 = getelementptr inbounds { i8, %str_slice }, { i8, %str_slice }* %4, i32 0, i32 0
call void @llvm.lifetime.start(i64 1, i8* %is_positive)
%117 = load i8, i8* %116, align 1, !range !1
%118 = trunc i8 %117 to i1
%119 = zext i1 %118 to i8
store i8 %119, i8* %is_positive, align 1
%120 = getelementptr inbounds { i8, %str_slice }, { i8, %str_slice }* %4, i32 0, i32 1
%121 = bitcast %str_slice* %src25 to i8*
call void @llvm.lifetime.start(i64 16, i8* %121)
%122 = bitcast %str_slice* %120 to i8*
%123 = bitcast %str_slice* %src25 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %123, i8* %122, i64 16, i32 8, i1 false)
%124 = bitcast { i8, %str_slice }* %4 to i8*
call void @llvm.lifetime.end(i64 24, i8* %124)
%125 = bitcast %"option::Option<(char, &'static str)>"* %5 to i8*
call void @llvm.lifetime.end(i64 24, i8* %125)
%126 = bitcast double* %sig to i8*
call void @llvm.lifetime.start(i64 8, i8* %126)
%127 = load i8, i8* %is_positive, align 1, !range !1
%128 = trunc i8 %127 to i1
br i1 %128, label %then-block-1724-, label %else-block
then-block-1724-: ; preds = %join24
store double 0.000000e+00, double* %sig, align 8
br label %join26
else-block: ; preds = %join24
store double -0.000000e+00, double* %sig, align 8
br label %join26
join26: ; preds = %else-block, %then-block-1724-
%129 = bitcast double* %prev_sig to i8*
call void @llvm.lifetime.start(i64 8, i8* %129)
%130 = load double, double* %sig, align 8
store double %130, double* %prev_sig, align 8
%131 = bitcast %"iter::Enumerate<str::Chars>"* %cs to i8*
call void @llvm.lifetime.start(i64 24, i8* %131)
%132 = bitcast %"str::Chars"* %6 to i8*
call void @llvm.lifetime.start(i64 16, i8* %132)
%133 = getelementptr inbounds %str_slice, %str_slice* %src25, i32 0, i32 0
%134 = load i8*, i8** %133
%135 = getelementptr inbounds %str_slice, %str_slice* %src25, i32 0, i32 1
%136 = load i64, i64* %135
call void @_ZN3str10str.StrExt5chars20h72e52c290c5f0a7craKE(%"str::Chars"* noalias nocapture sret dereferenceable(16) %6, i8* noalias nonnull readonly %134, i64 %136)
call void @_ZN4iter8Iterator9enumerate20h5216804230006291893E(%"iter::Enumerate<str::Chars>"* noalias nocapture sret dereferenceable(24) %cs, %"str::Chars"* noalias nocapture dereferenceable(16) %6)
%137 = bitcast %"str::Chars"* %6 to i8*
call void @llvm.lifetime.end(i64 16, i8* %137)
%138 = bitcast %"option::Option<(char, usize)>"* %exp_info to i8*
call void @llvm.lifetime.start(i64 24, i8* %138)
%139 = bitcast %"option::Option<(char, usize)>"* %exp_info to { i64, [16 x i8] }*
%140 = bitcast { i64, [16 x i8] }* %139 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %140, i8* bitcast ({ i64, [16 x i8] }* @const43525 to i8*), i64 24, i32 8, i1 false)
%141 = bitcast {}* %result to i8*
call void @llvm.lifetime.start(i64 0, i8* %141)
%142 = bitcast %"iter::Enumerate<str::Chars>"** %7 to i8*
call void @llvm.lifetime.start(i64 8, i8* %142)
%143 = bitcast %"iter::Enumerate<str::Chars>"** %8 to i8*
call void @llvm.lifetime.start(i64 8, i8* %143)
%144 = call dereferenceable(24) %"iter::Enumerate<str::Chars>"* @_ZN4iter8Iterator6by_ref21h16646711982226617443E(%"iter::Enumerate<str::Chars>"* noalias dereferenceable(24) %cs)
store %"iter::Enumerate<str::Chars>"* %144, %"iter::Enumerate<str::Chars>"** %8, align 8
%145 = load %"iter::Enumerate<str::Chars>"*, %"iter::Enumerate<str::Chars>"** %8, align 8, !nonnull !2
%146 = bitcast %"iter::Enumerate<str::Chars>"** %8 to i8*
call void @llvm.lifetime.end(i64 8, i8* %146)
%147 = call dereferenceable(24) %"iter::Enumerate<str::Chars>"* @_ZN4iter14I.IntoIterator9into_iter20h6563255094920483013E(%"iter::Enumerate<str::Chars>"* noalias dereferenceable(24) %145)
store %"iter::Enumerate<str::Chars>"* %147, %"iter::Enumerate<str::Chars>"** %7, align 8
%148 = load %"iter::Enumerate<str::Chars>"*, %"iter::Enumerate<str::Chars>"** %7, align 8, !nonnull !2
%149 = bitcast %"iter::Enumerate<str::Chars>"** %7 to i8*
call void @llvm.lifetime.end(i64 8, i8* %149)
%150 = bitcast %"iter::Enumerate<str::Chars>"** %match to i8*
call void @llvm.lifetime.start(i64 8, i8* %150)
store %"iter::Enumerate<str::Chars>"* %148, %"iter::Enumerate<str::Chars>"** %match, align 8
%151 = bitcast %"iter::Enumerate<str::Chars>"*** %iter to i8*
call void @llvm.lifetime.start(i64 8, i8* %151)
store %"iter::Enumerate<str::Chars>"** %match, %"iter::Enumerate<str::Chars>"*** %iter
br label %case_body27
case_body27: ; preds = %join26
%152 = load %"iter::Enumerate<str::Chars>"**, %"iter::Enumerate<str::Chars>"*** %iter
br label %loop_body
loop_exit: ; preds = %clean_ast_1760_70
%153 = bitcast %"iter::Enumerate<str::Chars>"*** %iter to i8*
call void @llvm.lifetime.end(i64 8, i8* %153)
br label %join76
loop_body: ; preds = %join75, %case_body27
%154 = bitcast %"option::Option<(usize, char)>"* %9 to i8*
call void @llvm.lifetime.start(i64 24, i8* %154)
call void @"_ZN4iter34_$RF$$u27$a$u20$mut$u20$I.Iterator4next21h12474813853625106210E"(%"option::Option<(usize, char)>"* noalias nocapture sret dereferenceable(24) %9, %"iter::Enumerate<str::Chars>"** noalias dereferenceable(8) %152)
%155 = getelementptr inbounds %"option::Option<(usize, char)>", %"option::Option<(usize, char)>"* %9, i32 0, i32 0
%156 = load i64, i64* %155, !range !3
switch i64 %156, label %match_else32 [
i64 1, label %match_case33
]
case_body28: ; preds = %match_case33
%157 = load i32*, i32** %__llmatch30
%158 = bitcast i32* %c to i8*
call void @llvm.lifetime.start(i64 4, i8* %158)
%159 = load i32, i32* %157, align 4, !range !0
store i32 %159, i32* %c, align 4
%160 = load i64*, i64** %__llmatch29
%161 = bitcast i64* %i to i8*
call void @llvm.lifetime.start(i64 8, i8* %161)
%162 = load i64, i64* %160, align 8
store i64 %162, i64* %i, align 8
%163 = bitcast %"option::Option<u32>"* %10 to i8*
call void @llvm.lifetime.start(i64 8, i8* %163)
%164 = load i32, i32* %c, align 4, !range !0
%165 = load i32, i32* %radix, align 4
%166 = call i64 @_ZN4char12char.CharExt8to_digit20h151cfc3f68bf51e09RBE(i32 %164, i32 %165)
%167 = bitcast %"option::Option<u32>"* %10 to i64*
store i64 %166, i64* %167, align 4
%168 = bitcast %"option::Option<u32>"* %10 to i64*
%169 = load i64, i64* %168, align 4
%170 = bitcast %"option::Option<u32>"* %10 to i8*
call void @llvm.lifetime.end(i64 8, i8* %170)
%171 = bitcast %"option::Option<u32>"* %match34 to i8*
call void @llvm.lifetime.start(i64 8, i8* %171)
%172 = bitcast %"option::Option<u32>"* %match34 to i64*
store i64 %169, i64* %172, align 4
%173 = getelementptr inbounds %"option::Option<u32>", %"option::Option<u32>"* %match34, i32 0, i32 0
%174 = load i32, i32* %173, !range !4
switch i32 %174, label %match_else38 [
i32 1, label %match_case39
]
case_body31: ; preds = %match_else32
br label %clean_ast_1760_70
match_else32: ; preds = %loop_body
br label %case_body31
match_case33: ; preds = %loop_body
%175 = bitcast %"option::Option<(usize, char)>"* %9 to { i64, { i64, i32 } }*
%176 = getelementptr inbounds { i64, { i64, i32 } }, { i64, { i64, i32 } }* %175, i32 0, i32 1
%177 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %176, i32 0, i32 0
%178 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %176, i32 0, i32 1
%179 = bitcast i32** %__llmatch30 to i8*
call void @llvm.lifetime.start(i64 8, i8* %179)
store i32* %178, i32** %__llmatch30
%180 = bitcast i64** %__llmatch29 to i8*
call void @llvm.lifetime.start(i64 8, i8* %180)
store i64* %177, i64** %__llmatch29
br label %case_body28
case_body35: ; preds = %match_case39
%181 = load i32*, i32** %__llmatch36
%182 = bitcast i32* %digit to i8*
call void @llvm.lifetime.start(i64 4, i8* %182)
%183 = load i32, i32* %181, align 4
store i32 %183, i32* %digit, align 4
%184 = load i32, i32* %radix, align 4
%185 = uitofp i32 %184 to double
%186 = load double, double* %sig, align 8
%187 = fmul double %186, %185
store double %187, double* %sig, align 8
%188 = load i8, i8* %is_positive, align 1, !range !1
%189 = trunc i8 %188 to i1
br i1 %189, label %then-block-1792-, label %else-block40
case_body37: ; preds = %match_else38
%190 = load i32, i32* %c, align 4, !range !0
%191 = icmp eq i32 %190, 101
br i1 %191, label %match_case60, label %compare_next61
match_else38: ; preds = %case_body28
br label %case_body37
match_case39: ; preds = %case_body28
%192 = bitcast %"option::Option<u32>"* %match34 to { i32, i32 }*
%193 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %192, i32 0, i32 1
%194 = bitcast i32** %__llmatch36 to i8*
call void @llvm.lifetime.start(i64 8, i8* %194)
store i32* %193, i32** %__llmatch36
br label %case_body35
then-block-1792-: ; preds = %case_body35
%195 = load i32, i32* %digit, align 4
%196 = zext i32 %195 to i64
%197 = sitofp i64 %196 to double
%198 = load double, double* %sig, align 8
%199 = fadd double %198, %197
store double %199, double* %sig, align 8
br label %join41
else-block40: ; preds = %case_body35
%200 = load i32, i32* %digit, align 4
%201 = zext i32 %200 to i64
%202 = sitofp i64 %201 to double
%203 = load double, double* %sig, align 8
%204 = fsub double %203, %202
store double %204, double* %sig, align 8
br label %join41
join41: ; preds = %else-block40, %then-block-1792-
%205 = load double, double* %prev_sig, align 8
%206 = fcmp une double %205, 0.000000e+00
br i1 %206, label %then-block-1824-, label %next-block55
then-block-1824-: ; preds = %join41
%207 = load i8, i8* %is_positive, align 1, !range !1
%208 = trunc i8 %207 to i1
br i1 %208, label %before_rhs, label %join42
join42: ; preds = %before_rhs, %then-block-1824-
%209 = phi i1 [ %208, %then-block-1824- ], [ %212, %before_rhs ]
br i1 %209, label %then-block-1832-, label %next-block
before_rhs: ; preds = %then-block-1824-
%210 = load double, double* %sig, align 8
%211 = load double, double* %prev_sig, align 8
%212 = fcmp ole double %210, %211
br label %join42
then-block-1832-: ; preds = %join42
%213 = bitcast %"result::Result<f64, num::ParseFloatError>"* %0 to { i8, double }*
%214 = getelementptr inbounds { i8, double }, { i8, double }* %213, i32 0, i32 1
%215 = call double @_ZN3f649f64.Float8infinity20hfdd23488d7b0fb7e7zaE()
store double %215, double* %214, align 8
%216 = getelementptr inbounds %"result::Result<f64, num::ParseFloatError>", %"result::Result<f64, num::ParseFloatError>"* %0, i32 0, i32 0
store i8 0, i8* %216
br label %clean_custom_45
clean_ast_1647_: ; preds = %clean_custom_153, %clean_ast_1953_, %clean_ast_1750_
%217 = bitcast %"option::Option<(char, usize)>"* %exp_info to i8*
call void @llvm.lifetime.end(i64 24, i8* %217)
%218 = bitcast %"iter::Enumerate<str::Chars>"* %cs to i8*
call void @llvm.lifetime.end(i64 24, i8* %218)
%219 = bitcast double* %prev_sig to i8*
call void @llvm.lifetime.end(i64 8, i8* %219)
%220 = bitcast double* %sig to i8*
call void @llvm.lifetime.end(i64 8, i8* %220)
%221 = bitcast %str_slice* %src25 to i8*
call void @llvm.lifetime.end(i64 16, i8* %221)
call void @llvm.lifetime.end(i64 1, i8* %is_positive)
br label %clean_custom_
clean_ast_1750_: ; preds = %clean_custom_43
%222 = bitcast %"iter::Enumerate<str::Chars>"** %match to i8*
call void @llvm.lifetime.end(i64 8, i8* %222)
br label %clean_ast_1647_
clean_custom_43: ; preds = %clean_ast_1760_
%223 = bitcast %"iter::Enumerate<str::Chars>"*** %iter to i8*
call void @llvm.lifetime.end(i64 8, i8* %223)
br label %clean_ast_1750_
clean_ast_1760_: ; preds = %clean_custom_44
%224 = bitcast %"option::Option<(usize, char)>"* %9 to i8*
call void @llvm.lifetime.end(i64 24, i8* %224)
br label %clean_custom_43
clean_custom_44: ; preds = %clean_ast_1770_
%225 = bitcast i64** %__llmatch29 to i8*
call void @llvm.lifetime.end(i64 8, i8* %225)
%226 = bitcast i64* %i to i8*
call void @llvm.lifetime.end(i64 8, i8* %226)
%227 = bitcast i32** %__llmatch30 to i8*
call void @llvm.lifetime.end(i64 8, i8* %227)
%228 = bitcast i32* %c to i8*
call void @llvm.lifetime.end(i64 4, i8* %228)
br label %clean_ast_1760_
clean_ast_1770_: ; preds = %case_body58, %clean_custom_45
%229 = bitcast %"option::Option<u32>"* %match34 to i8*
call void @llvm.lifetime.end(i64 8, i8* %229)
br label %clean_custom_44
clean_custom_45: ; preds = %then-block-1895-, %then-block-1871-, %then-block-1847-, %then-block-1832-
%230 = bitcast i32** %__llmatch36 to i8*
call void @llvm.lifetime.end(i64 8, i8* %230)
%231 = bitcast i32* %digit to i8*
call void @llvm.lifetime.end(i64 4, i8* %231)
br label %clean_ast_1770_
next-block: ; preds = %join42
%232 = load i8, i8* %is_positive, align 1, !range !1
%233 = trunc i8 %232 to i1
%234 = xor i1 %233, true
br i1 %234, label %before_rhs47, label %join46
join46: ; preds = %before_rhs47, %next-block
%235 = phi i1 [ %234, %next-block ], [ %238, %before_rhs47 ]
br i1 %235, label %then-block-1847-, label %next-block48
before_rhs47: ; preds = %next-block
%236 = load double, double* %sig, align 8
%237 = load double, double* %prev_sig, align 8
%238 = fcmp oge double %236, %237
br label %join46
then-block-1847-: ; preds = %join46
%239 = bitcast %"result::Result<f64, num::ParseFloatError>"* %0 to { i8, double }*
%240 = getelementptr inbounds { i8, double }, { i8, double }* %239, i32 0, i32 1
%241 = call double @_ZN3f649f64.Float12neg_infinity20hb5011eb9b9df0d43cAaE()
store double %241, double* %240, align 8
%242 = getelementptr inbounds %"result::Result<f64, num::ParseFloatError>", %"result::Result<f64, num::ParseFloatError>"* %0, i32 0, i32 0
store i8 0, i8* %242
br label %clean_custom_45
next-block48: ; preds = %join46
%243 = load i8, i8* %is_positive, align 1, !range !1
%244 = trunc i8 %243 to i1
br i1 %244, label %before_rhs50, label %join49
join49: ; preds = %before_rhs50, %next-block48
%245 = phi i1 [ %244, %next-block48 ], [ %254, %before_rhs50 ]
br i1 %245, label %then-block-1871-, label %next-block51
before_rhs50: ; preds = %next-block48
%246 = load i32, i32* %digit, align 4
%247 = uitofp i32 %246 to double
%248 = load double, double* %sig, align 8
%249 = fsub double %248, %247
%250 = load i32, i32* %radix, align 4
%251 = uitofp i32 %250 to double
%252 = fdiv double %249, %251
%253 = load double, double* %prev_sig, align 8
%254 = fcmp une double %253, %252
br label %join49
then-block-1871-: ; preds = %join49
%255 = bitcast %"result::Result<f64, num::ParseFloatError>"* %0 to { i8, double }*
%256 = getelementptr inbounds { i8, double }, { i8, double }* %255, i32 0, i32 1
%257 = call double @_ZN3f649f64.Float8infinity20hfdd23488d7b0fb7e7zaE()
store double %257, double* %256, align 8
%258 = getelementptr inbounds %"result::Result<f64, num::ParseFloatError>", %"result::Result<f64, num::ParseFloatError>"* %0, i32 0, i32 0
store i8 0, i8* %258
br label %clean_custom_45
next-block51: ; preds = %join49
%259 = load i8, i8* %is_positive, align 1, !range !1
%260 = trunc i8 %259 to i1
%261 = xor i1 %260, true
br i1 %261, label %before_rhs53, label %join52
join52: ; preds = %before_rhs53, %next-block51
%262 = phi i1 [ %261, %next-block51 ], [ %271, %before_rhs53 ]
br i1 %262, label %then-block-1895-, label %next-block54
before_rhs53: ; preds = %next-block51
%263 = load i32, i32* %digit, align 4
%264 = uitofp i32 %263 to double
%265 = load double, double* %sig, align 8
%266 = fadd double %265, %264
%267 = load i32, i32* %radix, align 4
%268 = uitofp i32 %267 to double
%269 = fdiv double %266, %268
%270 = load double, double* %prev_sig, align 8
%271 = fcmp une double %270, %269
br label %join52
then-block-1895-: ; preds = %join52
%272 = bitcast %"result::Result<f64, num::ParseFloatError>"* %0 to { i8, double }*
%273 = getelementptr inbounds { i8, double }, { i8, double }* %272, i32 0, i32 1
%274 = call double @_ZN3f649f64.Float12neg_infinity20hb5011eb9b9df0d43cAaE()
store double %274, double* %273, align 8
%275 = getelementptr inbounds %"result::Result<f64, num::ParseFloatError>", %"result::Result<f64, num::ParseFloatError>"* %0, i32 0, i32 0
store i8 0, i8* %275
br label %clean_custom_45
next-block54: ; preds = %join52
br label %next-block55
next-block55: ; preds = %next-block54, %join41
%276 = load double, double* %sig, align 8
store double %276, double* %prev_sig, align 8
%277 = bitcast i32** %__llmatch36 to i8*
call void @llvm.lifetime.end(i64 8, i8* %277)
%278 = bitcast i32* %digit to i8*
call void @llvm.lifetime.end(i64 4, i8* %278)
br label %join74
case_body56: ; preds = %match_case66, %match_case64, %match_case62, %match_case60
%279 = bitcast %"option::Option<(char, usize)>"* %11 to i8*
call void @llvm.lifetime.start(i64 24, i8* %279)
%280 = bitcast %"option::Option<(char, usize)>"* %11 to { i64, { i32, i64 } }*
%281 = getelementptr inbounds { i64, { i32, i64 } }, { i64, { i32, i64 } }* %280, i32 0, i32 1
%282 = getelementptr inbounds { i32, i64 }, { i32, i64 }* %281, i32 0, i32 0
%283 = load i32, i32* %c, align 4, !range !0
store i32 %283, i32* %282, align 4
%284 = getelementptr inbounds { i32, i64 }, { i32, i64 }* %281, i32 0, i32 1
%285 = load i64, i64* %i, align 8
%286 = add i64 %285, 1
store i64 %286, i64* %284, align 8
%287 = getelementptr inbounds %"option::Option<(char, usize)>", %"option::Option<(char, usize)>"* %11, i32 0, i32 0
store i64 1, i64* %287
%288 = bitcast %"option::Option<(char, usize)>"* %11 to i8*
%289 = bitcast %"option::Option<(char, usize)>"* %exp_info to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %289, i8* %288, i64 24, i32 8, i1 false)
%290 = bitcast %"option::Option<(char, usize)>"* %11 to i8*
call void @llvm.lifetime.end(i64 24, i8* %290)
br label %clean_ast_1770_72
case_body57: ; preds = %match_case68
br label %clean_ast_1770_72
case_body58: ; preds = %match_else59
%291 = bitcast %"result::Result<f64, num::ParseFloatError>"* %0 to { i8, { i8 }, [14 x i8] }*
%292 = bitcast { i8, { i8 }, [14 x i8] }* %291 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %292, i8* getelementptr inbounds ({ i8, { i8 }, [14 x i8] }, { i8, { i8 }, [14 x i8] }* @const43558, i32 0, i32 0), i64 16, i32 8, i1 false)
br label %clean_ast_1770_
match_else59: ; preds = %compare_next69
br label %case_body58
match_case60: ; preds = %case_body37
br label %case_body56
compare_next61: ; preds = %case_body37
%293 = icmp eq i32 %190, 69
br i1 %293, label %match_case62, label %compare_next63
match_case62: ; preds = %compare_next61
br label %case_body56
compare_next63: ; preds = %compare_next61
%294 = icmp eq i32 %190, 112
br i1 %294, label %match_case64, label %compare_next65
match_case64: ; preds = %compare_next63
br label %case_body56
compare_next65: ; preds = %compare_next63
%295 = icmp eq i32 %190, 80
br i1 %295, label %match_case66, label %compare_next67
match_case66: ; preds = %compare_next65
br label %case_body56
compare_next67: ; preds = %compare_next65
%296 = icmp eq i32 %190, 46
br i1 %296, label %match_case68, label %compare_next69
match_case68: ; preds = %compare_next67
br label %case_body57
compare_next69: ; preds = %compare_next67
br label %match_else59
clean_ast_1760_70: ; preds = %clean_custom_71, %case_body31
%297 = bitcast %"option::Option<(usize, char)>"* %9 to i8*
call void @llvm.lifetime.end(i64 24, i8* %297)
br label %loop_exit
clean_custom_71: ; preds = %clean_ast_1770_72
%298 = bitcast i64** %__llmatch29 to i8*
call void @llvm.lifetime.end(i64 8, i8* %298)
%299 = bitcast i64* %i to i8*
call void @llvm.lifetime.end(i64 8, i8* %299)
%300 = bitcast i32** %__llmatch30 to i8*
call void @llvm.lifetime.end(i64 8, i8* %300)
%301 = bitcast i32* %c to i8*
call void @llvm.lifetime.end(i64 4, i8* %301)
br label %clean_ast_1760_70
clean_ast_1770_72: ; preds = %case_body57, %case_body56
%302 = bitcast %"option::Option<u32>"* %match34 to i8*
call void @llvm.lifetime.end(i64 8, i8* %302)
br label %clean_custom_71
join73: ; No predecessors!
unreachable
join74: ; preds = %next-block55
%303 = bitcast %"option::Option<u32>"* %match34 to i8*
call void @llvm.lifetime.end(i64 8, i8* %303)
%304 = bitcast i64** %__llmatch29 to i8*
call void @llvm.lifetime.end(i64 8, i8* %304)
%305 = bitcast i64* %i to i8*
call void @llvm.lifetime.end(i64 8, i8* %305)
%306 = bitcast i32** %__llmatch30 to i8*
call void @llvm.lifetime.end(i64 8, i8* %306)
%307 = bitcast i32* %c to i8*
call void @llvm.lifetime.end(i64 4, i8* %307)
br label %join75
join75: ; preds = %join74
%308 = bitcast %"option::Option<(usize, char)>"* %9 to i8*
call void @llvm.lifetime.end(i64 24, i8* %308)
br label %loop_body
join76: ; preds = %loop_exit
%309 = bitcast %"iter::Enumerate<str::Chars>"** %match to i8*
call void @llvm.lifetime.end(i64 8, i8* %309)
%310 = bitcast {}* %result to i8*
call void @llvm.lifetime.end(i64 0, i8* %310)
call void @llvm.lifetime.start(i64 1, i8* %12)
%311 = call zeroext i1 @"_ZN6option15Option$LT$T$GT$7is_none20h1578896107712481053E"(%"option::Option<(char, usize)>"* noalias readonly dereferenceable(24) %exp_info)
%312 = zext i1 %311 to i8
store i8 %312, i8* %12, align 1
%313 = load i8, i8* %12, align 1, !range !1
%314 = trunc i8 %313 to i1
call void @llvm.lifetime.end(i64 1, i8* %12)
br i1 %314, label %then-block-1953-, label %next-block127
then-block-1953-: ; preds = %join76
%315 = bitcast double* %power to i8*
call void @llvm.lifetime.start(i64 8, i8* %315)
store double 1.000000e+00, double* %power, align 8
%316 = bitcast {}* %result77 to i8*
call void @llvm.lifetime.start(i64 0, i8* %316)
%317 = bitcast %"iter::Enumerate<str::Chars>"** %13 to i8*
call void @llvm.lifetime.start(i64 8, i8* %317)
%318 = bitcast %"iter::Enumerate<str::Chars>"** %14 to i8*
call void @llvm.lifetime.start(i64 8, i8* %318)
%319 = call dereferenceable(24) %"iter::Enumerate<str::Chars>"* @_ZN4iter8Iterator6by_ref21h16646711982226617443E(%"iter::Enumerate<str::Chars>"* noalias dereferenceable(24) %cs)
store %"iter::Enumerate<str::Chars>"* %319, %"iter::Enumerate<str::Chars>"** %14, align 8
%320 = load %"iter::Enumerate<str::Chars>"*, %"iter::Enumerate<str::Chars>"** %14, align 8, !nonnull !2
%321 = bitcast %"iter::Enumerate<str::Chars>"** %14 to i8*
call void @llvm.lifetime.end(i64 8, i8* %321)
%322 = call dereferenceable(24) %"iter::Enumerate<str::Chars>"* @_ZN4iter14I.IntoIterator9into_iter20h6563255094920483013E(%"iter::Enumerate<str::Chars>"* noalias dereferenceable(24) %320)
store %"iter::Enumerate<str::Chars>"* %322, %"iter::Enumerate<str::Chars>"** %13, align 8
%323 = load %"iter::Enumerate<str::Chars>"*, %"iter::Enumerate<str::Chars>"** %13, align 8, !nonnull !2
%324 = bitcast %"iter::Enumerate<str::Chars>"** %13 to i8*
call void @llvm.lifetime.end(i64 8, i8* %324)
%325 = bitcast %"iter::Enumerate<str::Chars>"** %match78 to i8*
call void @llvm.lifetime.start(i64 8, i8* %325)
store %"iter::Enumerate<str::Chars>"* %323, %"iter::Enumerate<str::Chars>"** %match78, align 8
%326 = bitcast %"iter::Enumerate<str::Chars>"*** %iter80 to i8*
call void @llvm.lifetime.start(i64 8, i8* %326)
store %"iter::Enumerate<str::Chars>"** %match78, %"iter::Enumerate<str::Chars>"*** %iter80
br label %case_body79
case_body79: ; preds = %then-block-1953-
%327 = load %"iter::Enumerate<str::Chars>"**, %"iter::Enumerate<str::Chars>"*** %iter80
br label %loop_body82
loop_exit81: ; preds = %clean_ast_1970_120
%328 = bitcast %"iter::Enumerate<str::Chars>"*** %iter80 to i8*
call void @llvm.lifetime.end(i64 8, i8* %328)
br label %join126
loop_body82: ; preds = %join125, %case_body79
%329 = bitcast %"option::Option<(usize, char)>"* %15 to i8*
call void @llvm.lifetime.start(i64 24, i8* %329)
call void @"_ZN4iter34_$RF$$u27$a$u20$mut$u20$I.Iterator4next21h12474813853625106210E"(%"option::Option<(usize, char)>"* noalias nocapture sret dereferenceable(24) %15, %"iter::Enumerate<str::Chars>"** noalias dereferenceable(8) %327)
%330 = getelementptr inbounds %"option::Option<(usize, char)>", %"option::Option<(usize, char)>"* %15, i32 0, i32 0
%331 = load i64, i64* %330, !range !3
switch i64 %331, label %match_else89 [
i64 1, label %match_case90
]
case_body83: ; preds = %match_case90
%332 = load i64*, i64** %__llmatch84
%333 = bitcast i64* %i85 to i8*
call void @llvm.lifetime.start(i64 8, i8* %333)
%334 = load i64, i64* %332, align 8
store i64 %334, i64* %i85, align 8
%335 = load i32*, i32** %__llmatch86
%336 = bitcast i32* %c87 to i8*
call void @llvm.lifetime.start(i64 4, i8* %336)
%337 = load i32, i32* %335, align 4, !range !0
store i32 %337, i32* %c87, align 4
%338 = bitcast %"option::Option<u32>"* %16 to i8*
call void @llvm.lifetime.start(i64 8, i8* %338)
%339 = load i32, i32* %c87, align 4, !range !0
%340 = load i32, i32* %radix, align 4
%341 = call i64 @_ZN4char12char.CharExt8to_digit20h151cfc3f68bf51e09RBE(i32 %339, i32 %340)
%342 = bitcast %"option::Option<u32>"* %16 to i64*
store i64 %341, i64* %342, align 4
%343 = bitcast %"option::Option<u32>"* %16 to i64*
%344 = load i64, i64* %343, align 4
%345 = bitcast %"option::Option<u32>"* %16 to i8*
call void @llvm.lifetime.end(i64 8, i8* %345)
%346 = bitcast %"option::Option<u32>"* %match91 to i8*
call void @llvm.lifetime.start(i64 8, i8* %346)
%347 = bitcast %"option::Option<u32>"* %match91 to i64*
store i64 %344, i64* %347, align 4
%348 = getelementptr inbounds %"option::Option<u32>", %"option::Option<u32>"* %match91, i32 0, i32 0
%349 = load i32, i32* %348, !range !4
switch i32 %349, label %match_else96 [
i32 1, label %match_case97
]
case_body88: ; preds = %match_else89
br label %clean_ast_1970_120
match_else89: ; preds = %loop_body82
br label %case_body88
match_case90: ; preds = %loop_body82
%350 = bitcast %"option::Option<(usize, char)>"* %15 to { i64, { i64, i32 } }*
%351 = getelementptr inbounds { i64, { i64, i32 } }, { i64, { i64, i32 } }* %350, i32 0, i32 1
%352 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %351, i32 0, i32 0
%353 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %351, i32 0, i32 1
%354 = bitcast i32** %__llmatch86 to i8*
call void @llvm.lifetime.start(i64 8, i8* %354)
store i32* %353, i32** %__llmatch86
%355 = bitcast i64** %__llmatch84 to i8*
call void @llvm.lifetime.start(i64 8, i8* %355)
store i64* %352, i64** %__llmatch84
br label %case_body83
case_body92: ; preds = %match_case97
%356 = load i32*, i32** %__llmatch93
%357 = bitcast i32* %digit94 to i8*
call void @llvm.lifetime.start(i64 4, i8* %357)
%358 = load i32, i32* %356, align 4
store i32 %358, i32* %digit94, align 4
%359 = load i32, i32* %radix, align 4
%360 = uitofp i32 %359 to double
%361 = load double, double* %power, align 8
%362 = fdiv double %361, %360
store double %362, double* %power, align 8
%363 = bitcast double* %17 to i8*
call void @llvm.lifetime.start(i64 8, i8* %363)
%364 = load i8, i8* %is_positive, align 1, !range !1
%365 = trunc i8 %364 to i1
br i1 %365, label %then-block-2004-, label %else-block98
case_body95: ; preds = %match_else96
%366 = load i32, i32* %c87, align 4, !range !0
%367 = icmp eq i32 %366, 101
br i1 %367, label %match_case112, label %compare_next113
match_else96: ; preds = %case_body83
br label %case_body95
match_case97: ; preds = %case_body83
%368 = bitcast %"option::Option<u32>"* %match91 to { i32, i32 }*
%369 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %368, i32 0, i32 1
%370 = bitcast i32** %__llmatch93 to i8*
call void @llvm.lifetime.start(i64 8, i8* %370)
store i32* %369, i32** %__llmatch93
br label %case_body92
then-block-2004-: ; preds = %case_body92
%371 = load i32, i32* %digit94, align 4
%372 = uitofp i32 %371 to double
%373 = load double, double* %power, align 8
%374 = fmul double %372, %373
%375 = load double, double* %sig, align 8
%376 = fadd double %375, %374
store double %376, double* %17, align 8
br label %join99
else-block98: ; preds = %case_body92
%377 = load i32, i32* %digit94, align 4
%378 = uitofp i32 %377 to double
%379 = load double, double* %power, align 8
%380 = fmul double %378, %379
%381 = load double, double* %sig, align 8
%382 = fsub double %381, %380
store double %382, double* %17, align 8
br label %join99
join99: ; preds = %else-block98, %then-block-2004-
%383 = load double, double* %17, align 8
%384 = bitcast double* %17 to i8*
call void @llvm.lifetime.end(i64 8, i8* %384)
store double %383, double* %sig, align 8
%385 = load i8, i8* %is_positive, align 1, !range !1
%386 = trunc i8 %385 to i1
br i1 %386, label %before_rhs101, label %join100
join100: ; preds = %before_rhs101, %join99
%387 = phi i1 [ %386, %join99 ], [ %390, %before_rhs101 ]
br i1 %387, label %then-block-2030-, label %next-block105
before_rhs101: ; preds = %join99
%388 = load double, double* %sig, align 8
%389 = load double, double* %prev_sig, align 8
%390 = fcmp olt double %388, %389
br label %join100
then-block-2030-: ; preds = %join100
%391 = bitcast %"result::Result<f64, num::ParseFloatError>"* %0 to { i8, double }*
%392 = getelementptr inbounds { i8, double }, { i8, double }* %391, i32 0, i32 1
%393 = call double @_ZN3f649f64.Float8infinity20hfdd23488d7b0fb7e7zaE()
store double %393, double* %392, align 8
%394 = getelementptr inbounds %"result::Result<f64, num::ParseFloatError>", %"result::Result<f64, num::ParseFloatError>"* %0, i32 0, i32 0
store i8 0, i8* %394
br label %clean_custom_104
clean_ast_1953_: ; preds = %clean_ast_1960_
%395 = bitcast double* %power to i8*
call void @llvm.lifetime.end(i64 8, i8* %395)
br label %clean_ast_1647_
clean_ast_1960_: ; preds = %clean_custom_102
%396 = bitcast %"iter::Enumerate<str::Chars>"** %match78 to i8*
call void @llvm.lifetime.end(i64 8, i8* %396)
br label %clean_ast_1953_
clean_custom_102: ; preds = %clean_ast_1970_
%397 = bitcast %"iter::Enumerate<str::Chars>"*** %iter80 to i8*
call void @llvm.lifetime.end(i64 8, i8* %397)
br label %clean_ast_1960_
clean_ast_1970_: ; preds = %clean_custom_103
%398 = bitcast %"option::Option<(usize, char)>"* %15 to i8*
call void @llvm.lifetime.end(i64 24, i8* %398)
br label %clean_custom_102
clean_custom_103: ; preds = %clean_ast_1980_
%399 = bitcast i32** %__llmatch86 to i8*
call void @llvm.lifetime.end(i64 8, i8* %399)
%400 = bitcast i32* %c87 to i8*
call void @llvm.lifetime.end(i64 4, i8* %400)
%401 = bitcast i64** %__llmatch84 to i8*
call void @llvm.lifetime.end(i64 8, i8* %401)
%402 = bitcast i64* %i85 to i8*
call void @llvm.lifetime.end(i64 8, i8* %402)
br label %clean_ast_1970_
clean_ast_1980_: ; preds = %case_body110, %clean_custom_104
%403 = bitcast %"option::Option<u32>"* %match91 to i8*
call void @llvm.lifetime.end(i64 8, i8* %403)
br label %clean_custom_103
clean_custom_104: ; preds = %then-block-2045-, %then-block-2030-
%404 = bitcast i32** %__llmatch93 to i8*
call void @llvm.lifetime.end(i64 8, i8* %404)
%405 = bitcast i32* %digit94 to i8*
call void @llvm.lifetime.end(i64 4, i8* %405)
br label %clean_ast_1980_
next-block105: ; preds = %join100
%406 = load i8, i8* %is_positive, align 1, !range !1
%407 = trunc i8 %406 to i1
%408 = xor i1 %407, true
br i1 %408, label %before_rhs107, label %join106
join106: ; preds = %before_rhs107, %next-block105
%409 = phi i1 [ %408, %next-block105 ], [ %412, %before_rhs107 ]
br i1 %409, label %then-block-2045-, label %next-block108
before_rhs107: ; preds = %next-block105
%410 = load double, double* %sig, align 8
%411 = load double, double* %prev_sig, align 8
%412 = fcmp ogt double %410, %411
br label %join106
then-block-2045-: ; preds = %join106
%413 = bitcast %"result::Result<f64, num::ParseFloatError>"* %0 to { i8, double }*
%414 = getelementptr inbounds { i8, double }, { i8, double }* %413, i32 0, i32 1
%415 = call double @_ZN3f649f64.Float12neg_infinity20hb5011eb9b9df0d43cAaE()
store double %415, double* %414, align 8
%416 = getelementptr inbounds %"result::Result<f64, num::ParseFloatError>", %"result::Result<f64, num::ParseFloatError>"* %0, i32 0, i32 0
store i8 0, i8* %416
br label %clean_custom_104
next-block108: ; preds = %join106
%417 = load double, double* %sig, align 8
store double %417, double* %prev_sig, align 8
%418 = bitcast i32** %__llmatch93 to i8*
call void @llvm.lifetime.end(i64 8, i8* %418)
%419 = bitcast i32* %digit94 to i8*
call void @llvm.lifetime.end(i64 4, i8* %419)
br label %join124
case_body109: ; preds = %match_case118, %match_case116, %match_case114, %match_case112
%420 = bitcast %"option::Option<(char, usize)>"* %18 to i8*
call void @llvm.lifetime.start(i64 24, i8* %420)
%421 = bitcast %"option::Option<(char, usize)>"* %18 to { i64, { i32, i64 } }*
%422 = getelementptr inbounds { i64, { i32, i64 } }, { i64, { i32, i64 } }* %421, i32 0, i32 1
%423 = getelementptr inbounds { i32, i64 }, { i32, i64 }* %422, i32 0, i32 0
%424 = load i32, i32* %c87, align 4, !range !0
store i32 %424, i32* %423, align 4
%425 = getelementptr inbounds { i32, i64 }, { i32, i64 }* %422, i32 0, i32 1
%426 = load i64, i64* %i85, align 8
%427 = add i64 %426, 1
store i64 %427, i64* %425, align 8
%428 = getelementptr inbounds %"option::Option<(char, usize)>", %"option::Option<(char, usize)>"* %18, i32 0, i32 0
store i64 1, i64* %428
%429 = bitcast %"option::Option<(char, usize)>"* %18 to i8*
%430 = bitcast %"option::Option<(char, usize)>"* %exp_info to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %430, i8* %429, i64 24, i32 8, i1 false)
%431 = bitcast %"option::Option<(char, usize)>"* %18 to i8*
call void @llvm.lifetime.end(i64 24, i8* %431)
br label %clean_ast_1980_122
case_body110: ; preds = %match_else111
%432 = bitcast %"result::Result<f64, num::ParseFloatError>"* %0 to { i8, { i8 }, [14 x i8] }*
%433 = bitcast { i8, { i8 }, [14 x i8] }* %432 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %433, i8* getelementptr inbounds ({ i8, { i8 }, [14 x i8] }, { i8, { i8 }, [14 x i8] }* @const43558, i32 0, i32 0), i64 16, i32 8, i1 false)
br label %clean_ast_1980_
match_else111: ; preds = %compare_next119
br label %case_body110
match_case112: ; preds = %case_body95
br label %case_body109
compare_next113: ; preds = %case_body95
%434 = icmp eq i32 %366, 69
br i1 %434, label %match_case114, label %compare_next115
match_case114: ; preds = %compare_next113
br label %case_body109
compare_next115: ; preds = %compare_next113
%435 = icmp eq i32 %366, 112
br i1 %435, label %match_case116, label %compare_next117
match_case116: ; preds = %compare_next115
br label %case_body109
compare_next117: ; preds = %compare_next115
%436 = icmp eq i32 %366, 80
br i1 %436, label %match_case118, label %compare_next119
match_case118: ; preds = %compare_next117
br label %case_body109
compare_next119: ; preds = %compare_next117
br label %match_else111
clean_ast_1970_120: ; preds = %clean_custom_121, %case_body88
%437 = bitcast %"option::Option<(usize, char)>"* %15 to i8*
call void @llvm.lifetime.end(i64 24, i8* %437)
br label %loop_exit81
clean_custom_121: ; preds = %clean_ast_1980_122
%438 = bitcast i32** %__llmatch86 to i8*
call void @llvm.lifetime.end(i64 8, i8* %438)
%439 = bitcast i32* %c87 to i8*
call void @llvm.lifetime.end(i64 4, i8* %439)
%440 = bitcast i64** %__llmatch84 to i8*
call void @llvm.lifetime.end(i64 8, i8* %440)
%441 = bitcast i64* %i85 to i8*
call void @llvm.lifetime.end(i64 8, i8* %441)
br label %clean_ast_1970_120
clean_ast_1980_122: ; preds = %case_body109
%442 = bitcast %"option::Option<u32>"* %match91 to i8*
call void @llvm.lifetime.end(i64 8, i8* %442)
br label %clean_custom_121
join123: ; No predecessors!
unreachable
join124: ; preds = %next-block108
%443 = bitcast %"option::Option<u32>"* %match91 to i8*
call void @llvm.lifetime.end(i64 8, i8* %443)
%444 = bitcast i32** %__llmatch86 to i8*
call void @llvm.lifetime.end(i64 8, i8* %444)
%445 = bitcast i32* %c87 to i8*
call void @llvm.lifetime.end(i64 4, i8* %445)
%446 = bitcast i64** %__llmatch84 to i8*
call void @llvm.lifetime.end(i64 8, i8* %446)
%447 = bitcast i64* %i85 to i8*
call void @llvm.lifetime.end(i64 8, i8* %447)
br label %join125
join125: ; preds = %join124
%448 = bitcast %"option::Option<(usize, char)>"* %15 to i8*
call void @llvm.lifetime.end(i64 24, i8* %448)
br label %loop_body82
join126: ; preds = %loop_exit81
%449 = bitcast %"iter::Enumerate<str::Chars>"** %match78 to i8*
call void @llvm.lifetime.end(i64 8, i8* %449)
%450 = bitcast {}* %result77 to i8*
call void @llvm.lifetime.end(i64 0, i8* %450)
%451 = bitcast double* %power to i8*
call void @llvm.lifetime.end(i64 8, i8* %451)
br label %next-block127
next-block127: ; preds = %join126, %join76
%452 = bitcast double* %exp to i8*
call void @llvm.lifetime.start(i64 8, i8* %452)
%453 = getelementptr inbounds %"option::Option<(char, usize)>", %"option::Option<(char, usize)>"* %exp_info, i32 0, i32 0
%454 = load i64, i64* %453, !range !3
switch i64 %454, label %match_else133 [
i64 1, label %match_case134
]
case_body128: ; preds = %match_case134
%455 = load i64*, i64** %__llmatch131
%456 = bitcast i64* %offset to i8*
call void @llvm.lifetime.start(i64 8, i8* %456)
%457 = load i64, i64* %455, align 8
store i64 %457, i64* %offset, align 8
%458 = load i32*, i32** %__llmatch129
%459 = bitcast i32* %c130 to i8*
call void @llvm.lifetime.start(i64 4, i8* %459)
%460 = load i32, i32* %458, align 4, !range !0
store i32 %460, i32* %c130, align 4
%461 = bitcast double* %base to i8*
call void @llvm.lifetime.start(i64 8, i8* %461)
%462 = load i32, i32* %c130, align 4, !range !0
%463 = icmp eq i32 %462, 69
br i1 %463, label %match_case139, label %compare_next140
case_body132: ; preds = %match_else133
store double 1.000000e+00, double* %exp, align 8
br label %join188
match_else133: ; preds = %next-block127
br label %case_body132
match_case134: ; preds = %next-block127
%464 = bitcast %"option::Option<(char, usize)>"* %exp_info to { i64, { i32, i64 } }*
%465 = getelementptr inbounds { i64, { i32, i64 } }, { i64, { i32, i64 } }* %464, i32 0, i32 1
%466 = getelementptr inbounds { i32, i64 }, { i32, i64 }* %465, i32 0, i32 0
%467 = getelementptr inbounds { i32, i64 }, { i32, i64 }* %465, i32 0, i32 1
%468 = bitcast i64** %__llmatch131 to i8*
call void @llvm.lifetime.start(i64 8, i8* %468)
store i64* %467, i64** %__llmatch131
%469 = bitcast i32** %__llmatch129 to i8*
call void @llvm.lifetime.start(i64 8, i8* %469)
store i32* %466, i32** %__llmatch129
br label %case_body128
case_body135: ; preds = %next143, %next
store double 1.000000e+01, double* %base, align 8
br label %join154
case_body136: ; preds = %next151, %next147
store double 2.000000e+00, double* %base, align 8
br label %join154
case_body137: ; preds = %cond152, %match_else138
%470 = bitcast %"result::Result<f64, num::ParseFloatError>"* %0 to { i8, { i8 }, [14 x i8] }*
%471 = bitcast { i8, { i8 }, [14 x i8] }* %470 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %471, i8* getelementptr inbounds ({ i8, { i8 }, [14 x i8] }, { i8, { i8 }, [14 x i8] }* @const43558, i32 0, i32 0), i64 16, i32 8, i1 false)
br label %clean_custom_153
match_else138: ; preds = %compare_next150
br label %case_body137
match_case139: ; preds = %case_body128
%472 = load i32, i32* %radix, align 4
%473 = icmp eq i32 %472, 10
%474 = xor i1 %473, true
br i1 %474, label %cond, label %next
compare_next140: ; preds = %cond, %case_body128
%475 = icmp eq i32 %462, 101
br i1 %475, label %match_case141, label %compare_next142
next: ; preds = %match_case139
br label %case_body135
cond: ; preds = %match_case139
br label %compare_next140
match_case141: ; preds = %compare_next140
%476 = load i32, i32* %radix, align 4
%477 = icmp eq i32 %476, 10
%478 = xor i1 %477, true
br i1 %478, label %cond144, label %next143
compare_next142: ; preds = %cond144, %compare_next140
%479 = icmp eq i32 %462, 80
br i1 %479, label %match_case145, label %compare_next146
next143: ; preds = %match_case141
br label %case_body135
cond144: ; preds = %match_case141
br label %compare_next142
match_case145: ; preds = %compare_next142
%480 = load i32, i32* %radix, align 4
%481 = icmp eq i32 %480, 16
%482 = xor i1 %481, true
br i1 %482, label %cond148, label %next147
compare_next146: ; preds = %cond148, %compare_next142
%483 = icmp eq i32 %462, 112
br i1 %483, label %match_case149, label %compare_next150
next147: ; preds = %match_case145
br label %case_body136
cond148: ; preds = %match_case145
br label %compare_next146
match_case149: ; preds = %compare_next146
%484 = load i32, i32* %radix, align 4
%485 = icmp eq i32 %484, 16
%486 = xor i1 %485, true
br i1 %486, label %cond152, label %next151
compare_next150: ; preds = %compare_next146
br label %match_else138
next151: ; preds = %match_case149
br label %case_body136
cond152: ; preds = %match_case149
br label %case_body137
clean_custom_153: ; preds = %clean_ast_2102_, %clean_ast_2103_, %case_body137
%487 = bitcast i32** %__llmatch129 to i8*
call void @llvm.lifetime.end(i64 8, i8* %487)
%488 = bitcast i32* %c130 to i8*
call void @llvm.lifetime.end(i64 4, i8* %488)
%489 = bitcast i64** %__llmatch131 to i8*
call void @llvm.lifetime.end(i64 8, i8* %489)
%490 = bitcast i64* %offset to i8*
call void @llvm.lifetime.end(i64 8, i8* %490)
br label %clean_ast_1647_
join154: ; preds = %case_body136, %case_body135
%491 = bitcast %str_slice* %src155 to i8*
call void @llvm.lifetime.start(i64 16, i8* %491)
%492 = bitcast %"ops::RangeFrom<usize>"* %19 to i8*
call void @llvm.lifetime.start(i64 8, i8* %492)
%493 = getelementptr inbounds %"ops::RangeFrom<usize>", %"ops::RangeFrom<usize>"* %19, i32 0, i32 0
%494 = load i64, i64* %offset, align 8
store i64 %494, i64* %493, align 8
%495 = bitcast %"ops::RangeFrom<usize>"* %19 to i64*
%496 = load i64, i64* %495, align 8
%497 = bitcast %"ops::RangeFrom<usize>"* %19 to i8*
call void @llvm.lifetime.end(i64 8, i8* %497)
%498 = bitcast %str_slice* %overloaded_index_elt to i8*
call void @llvm.lifetime.start(i64 16, i8* %498)
%499 = getelementptr inbounds %str_slice, %str_slice* %src25, i32 0, i32 0
%500 = load i8*, i8** %499
%501 = getelementptr inbounds %str_slice, %str_slice* %src25, i32 0, i32 1
%502 = load i64, i64* %501
%503 = call %str_slice @"_ZN3str6traits49str.ops..Index$LT$ops..RangeFrom$LT$usize$GT$$GT$5index20h3f1b10be0dd1c356pYJE"(i8* noalias nonnull readonly %500, i64 %502, i64 %496)
store %str_slice %503, %str_slice* %overloaded_index_elt, align 8
%504 = bitcast %str_slice* %__fat_ptr to i8*
call void @llvm.lifetime.start(i64 16, i8* %504)
%505 = bitcast %str_slice* %overloaded_index_elt to i8*
%506 = bitcast %str_slice* %__fat_ptr to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %506, i8* %505, i64 16, i32 8, i1 false)
%507 = bitcast %str_slice* %__fat_ptr to i8*
%508 = bitcast %str_slice* %src155 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %508, i8* %507, i64 16, i32 8, i1 false)
%509 = bitcast %str_slice* %__fat_ptr to i8*
call void @llvm.lifetime.end(i64 16, i8* %509)
%510 = bitcast { i8, %"result::Result<usize, num::ParseIntError>" }* %20 to i8*
call void @llvm.lifetime.start(i64 24, i8* %510)
%511 = bitcast %"option::Option<(char, &'static str)>"* %21 to i8*
call void @llvm.lifetime.start(i64 24, i8* %511)
%512 = getelementptr inbounds %str_slice, %str_slice* %src155, i32 0, i32 0
%513 = load i8*, i8** %512
%514 = getelementptr inbounds %str_slice, %str_slice* %src155, i32 0, i32 1
%515 = load i64, i64* %514
call void @_ZN3str10str.StrExt16slice_shift_char20h763b6d43914ac21cBtKE(%"option::Option<(char, &'static str)>"* noalias nocapture sret dereferenceable(24) %21, i8* noalias nonnull readonly %513, i64 %515)
%516 = getelementptr inbounds %"option::Option<(char, &'static str)>", %"option::Option<(char, &'static str)>"* %21, i32 0, i32 0, i32 1, i32 0
%517 = load i8*, i8** %516
%518 = icmp ne i8* %517, null
switch i1 %518, label %match_else164 [
i1 true, label %match_case165
]
case_body156: ; preds = %match_case167
%519 = load %str_slice*, %str_slice** %__llmatch157
%520 = bitcast %str_slice* %src158 to i8*
call void @llvm.lifetime.start(i64 16, i8* %520)
%521 = bitcast %str_slice* %519 to i8*
%522 = bitcast %str_slice* %src158 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %522, i8* %521, i64 16, i32 8, i1 false)
%523 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %20, i32 0, i32 0
store i8 0, i8* %523, align 1
%524 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %20, i32 0, i32 1
%525 = getelementptr inbounds %str_slice, %str_slice* %src158, i32 0, i32 0
%526 = load i8*, i8** %525
%527 = getelementptr inbounds %str_slice, %str_slice* %src158, i32 0, i32 1
%528 = load i64, i64* %527
call void @_ZN3str10str.StrExt5parse21h10035881824587292317E(%"result::Result<usize, num::ParseIntError>"* noalias nocapture sret dereferenceable(16) %524, i8* noalias nonnull readonly %526, i64 %528)
%529 = bitcast %str_slice** %__llmatch157 to i8*
call void @llvm.lifetime.end(i64 8, i8* %529)
%530 = bitcast %str_slice* %src158 to i8*
call void @llvm.lifetime.end(i64 16, i8* %530)
br label %join171
case_body159: ; preds = %match_case169
%531 = load %str_slice*, %str_slice** %__llmatch160
%532 = bitcast %str_slice* %src161 to i8*
call void @llvm.lifetime.start(i64 16, i8* %532)
%533 = bitcast %str_slice* %531 to i8*
%534 = bitcast %str_slice* %src161 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %534, i8* %533, i64 16, i32 8, i1 false)
%535 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %20, i32 0, i32 0
store i8 1, i8* %535, align 1
%536 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %20, i32 0, i32 1
%537 = getelementptr inbounds %str_slice, %str_slice* %src161, i32 0, i32 0
%538 = load i8*, i8** %537
%539 = getelementptr inbounds %str_slice, %str_slice* %src161, i32 0, i32 1
%540 = load i64, i64* %539
call void @_ZN3str10str.StrExt5parse21h10035881824587292317E(%"result::Result<usize, num::ParseIntError>"* noalias nocapture sret dereferenceable(16) %536, i8* noalias nonnull readonly %538, i64 %540)
%541 = bitcast %str_slice** %__llmatch160 to i8*
call void @llvm.lifetime.end(i64 8, i8* %541)
%542 = bitcast %str_slice* %src161 to i8*
call void @llvm.lifetime.end(i64 16, i8* %542)
br label %join171
case_body162: ; preds = %match_else166
%543 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %20, i32 0, i32 0
store i8 1, i8* %543, align 1
%544 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %20, i32 0, i32 1
%545 = getelementptr inbounds %str_slice, %str_slice* %src155, i32 0, i32 0
%546 = load i8*, i8** %545
%547 = getelementptr inbounds %str_slice, %str_slice* %src155, i32 0, i32 1
%548 = load i64, i64* %547
call void @_ZN3str10str.StrExt5parse21h10035881824587292317E(%"result::Result<usize, num::ParseIntError>"* noalias nocapture sret dereferenceable(16) %544, i8* noalias nonnull readonly %546, i64 %548)
br label %join171
case_body163: ; preds = %match_else164
%549 = bitcast %"result::Result<f64, num::ParseFloatError>"* %0 to { i8, { i8 }, [14 x i8] }*
%550 = bitcast { i8, { i8 }, [14 x i8] }* %549 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %550, i8* getelementptr inbounds ({ i8, { i8 }, [14 x i8] }, { i8, { i8 }, [14 x i8] }* @const43558, i32 0, i32 0), i64 16, i32 8, i1 false)
br label %clean_ast_2139_
match_else164: ; preds = %join154
br label %case_body163
match_case165: ; preds = %join154
%551 = getelementptr inbounds %"option::Option<(char, &'static str)>", %"option::Option<(char, &'static str)>"* %21, i32 0, i32 0
%552 = getelementptr inbounds { i32, %str_slice }, { i32, %str_slice }* %551, i32 0, i32 0
%553 = getelementptr inbounds { i32, %str_slice }, { i32, %str_slice }* %551, i32 0, i32 1
%554 = load i32, i32* %552, align 4, !range !0
%555 = icmp eq i32 %554, 45
br i1 %555, label %match_case167, label %compare_next168
match_else166: ; preds = %compare_next170
br label %case_body162
match_case167: ; preds = %match_case165
%556 = bitcast %str_slice** %__llmatch157 to i8*
call void @llvm.lifetime.start(i64 8, i8* %556)
store %str_slice* %553, %str_slice** %__llmatch157
br label %case_body156
compare_next168: ; preds = %match_case165
%557 = icmp eq i32 %554, 43
br i1 %557, label %match_case169, label %compare_next170
match_case169: ; preds = %compare_next168
%558 = bitcast %str_slice** %__llmatch160 to i8*
call void @llvm.lifetime.start(i64 8, i8* %558)
store %str_slice* %553, %str_slice** %__llmatch160
br label %case_body159
compare_next170: ; preds = %compare_next168
br label %match_else166
clean_ast_2103_: ; preds = %clean_ast_2139_
%559 = bitcast %str_slice* %src155 to i8*
call void @llvm.lifetime.end(i64 16, i8* %559)
%560 = bitcast double* %base to i8*
call void @llvm.lifetime.end(i64 8, i8* %560)
br label %clean_custom_153
clean_ast_2139_: ; preds = %case_body163
%561 = bitcast %"option::Option<(char, &'static str)>"* %21 to i8*
call void @llvm.lifetime.end(i64 24, i8* %561)
br label %clean_ast_2103_
join171: ; preds = %case_body162, %case_body159, %case_body156
%562 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %20, i32 0, i32 0
call void @llvm.lifetime.start(i64 1, i8* %is_positive172)
%563 = load i8, i8* %562, align 1, !range !1
%564 = trunc i8 %563 to i1
%565 = zext i1 %564 to i8
store i8 %565, i8* %is_positive172, align 1
%566 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %20, i32 0, i32 1
%567 = bitcast %"result::Result<usize, num::ParseIntError>"* %exp173 to i8*
call void @llvm.lifetime.start(i64 16, i8* %567)
%568 = bitcast %"result::Result<usize, num::ParseIntError>"* %566 to i8*
%569 = bitcast %"result::Result<usize, num::ParseIntError>"* %exp173 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %569, i8* %568, i64 16, i32 8, i1 false)
%570 = bitcast { i8, %"result::Result<usize, num::ParseIntError>" }* %20 to i8*
call void @llvm.lifetime.end(i64 24, i8* %570)
%571 = bitcast %"option::Option<(char, &'static str)>"* %21 to i8*
call void @llvm.lifetime.end(i64 24, i8* %571)
%572 = bitcast { i8, %"result::Result<usize, num::ParseIntError>" }* %22 to i8*
call void @llvm.lifetime.start(i64 24, i8* %572)
%573 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %22, i32 0, i32 0
%574 = load i8, i8* %is_positive172, align 1, !range !1
%575 = trunc i8 %574 to i1
%576 = zext i1 %575 to i8
store i8 %576, i8* %573, align 1
%577 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %22, i32 0, i32 1
%578 = bitcast %"result::Result<usize, num::ParseIntError>"* %exp173 to i8*
%579 = bitcast %"result::Result<usize, num::ParseIntError>"* %577 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %579, i8* %578, i64 16, i32 8, i1 false)
%580 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %22, i32 0, i32 0
%581 = getelementptr inbounds { i8, %"result::Result<usize, num::ParseIntError>" }, { i8, %"result::Result<usize, num::ParseIntError>" }* %22, i32 0, i32 1
%582 = getelementptr inbounds %"result::Result<usize, num::ParseIntError>", %"result::Result<usize, num::ParseIntError>"* %581, i32 0, i32 0
%583 = load i8, i8* %582, !range !1
switch i8 %583, label %match_else181 [
i8 0, label %match_case182
]
case_body174: ; preds = %match_case184
%584 = load i64*, i64** %__llmatch175
%585 = bitcast i64* %exp176 to i8*
call void @llvm.lifetime.start(i64 8, i8* %585)
%586 = load i64, i64* %584, align 8
store i64 %586, i64* %exp176, align 8
%587 = load double, double* %base, align 8
%588 = load i64, i64* %exp176, align 8
%589 = trunc i64 %588 to i32
%590 = call double @_ZN3f649f64.Float4powi20h73dbe66746767a0ePPaE(double %587, i32 %589)
store double %590, double* %exp, align 8
%591 = bitcast i64** %__llmatch175 to i8*
call void @llvm.lifetime.end(i64 8, i8* %591)
%592 = bitcast i64* %exp176 to i8*
call void @llvm.lifetime.end(i64 8, i8* %592)
br label %join187
case_body177: ; preds = %match_else183
%593 = load i64*, i64** %__llmatch178
%594 = bitcast i64* %exp179 to i8*
call void @llvm.lifetime.start(i64 8, i8* %594)
%595 = load i64, i64* %593, align 8
store i64 %595, i64* %exp179, align 8
%596 = bitcast double* %23 to i8*
call void @llvm.lifetime.start(i64 8, i8* %596)
%597 = load double, double* %base, align 8
%598 = load i64, i64* %exp179, align 8
%599 = trunc i64 %598 to i32
%600 = call double @_ZN3f649f64.Float4powi20h73dbe66746767a0ePPaE(double %597, i32 %599)
store double %600, double* %23, align 8
%601 = load double, double* %23, align 8
%602 = bitcast double* %23 to i8*
call void @llvm.lifetime.end(i64 8, i8* %602)
%603 = fdiv double 1.000000e+00, %601
store double %603, double* %exp, align 8
%604 = bitcast i64** %__llmatch178 to i8*
call void @llvm.lifetime.end(i64 8, i8* %604)
%605 = bitcast i64* %exp179 to i8*
call void @llvm.lifetime.end(i64 8, i8* %605)
br label %join187
case_body180: ; preds = %match_else181
%606 = bitcast %"result::Result<f64, num::ParseFloatError>"* %0 to { i8, { i8 }, [14 x i8] }*
%607 = bitcast { i8, { i8 }, [14 x i8] }* %606 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %607, i8* getelementptr inbounds ({ i8, { i8 }, [14 x i8] }, { i8, { i8 }, [14 x i8] }* @const43558, i32 0, i32 0), i64 16, i32 8, i1 false)
br label %clean_ast_2103_186
match_else181: ; preds = %join171
%608 = bitcast %"result::Result<usize, num::ParseIntError>"* %581 to { i8, %"num::ParseIntError" }*
%609 = getelementptr inbounds { i8, %"num::ParseIntError" }, { i8, %"num::ParseIntError" }* %608, i32 0, i32 1
br label %case_body180
match_case182: ; preds = %join171
%610 = bitcast %"result::Result<usize, num::ParseIntError>"* %581 to { i8, i64 }*
%611 = getelementptr inbounds { i8, i64 }, { i8, i64 }* %610, i32 0, i32 1
%612 = load i8, i8* %580, align 1, !range !1
%613 = trunc i8 %612 to i1
%614 = icmp eq i1 %613, true
br i1 %614, label %match_case184, label %compare_next185
match_else183: ; preds = %compare_next185
%615 = bitcast i64** %__llmatch178 to i8*
call void @llvm.lifetime.start(i64 8, i8* %615)
store i64* %611, i64** %__llmatch178
br label %case_body177
match_case184: ; preds = %match_case182
%616 = bitcast i64** %__llmatch175 to i8*
call void @llvm.lifetime.start(i64 8, i8* %616)
store i64* %611, i64** %__llmatch175
br label %case_body174
compare_next185: ; preds = %match_case182
br label %match_else183
clean_ast_2102_: ; preds = %clean_ast_2103_186
%617 = bitcast { i8, %"result::Result<usize, num::ParseIntError>" }* %22 to i8*
call void @llvm.lifetime.end(i64 24, i8* %617)
br label %clean_custom_153
clean_ast_2103_186: ; preds = %case_body180
%618 = bitcast %"result::Result<usize, num::ParseIntError>"* %exp173 to i8*
call void @llvm.lifetime.end(i64 16, i8* %618)
call void @llvm.lifetime.end(i64 1, i8* %is_positive172)
%619 = bitcast %str_slice* %src155 to i8*
call void @llvm.lifetime.end(i64 16, i8* %619)
%620 = bitcast double* %base to i8*
call void @llvm.lifetime.end(i64 8, i8* %620)
br label %clean_ast_2102_
join187: ; preds = %case_body177, %case_body174
%621 = bitcast %"result::Result<usize, num::ParseIntError>"* %exp173 to i8*
call void @llvm.lifetime.end(i64 16, i8* %621)
call void @llvm.lifetime.end(i64 1, i8* %is_positive172)
%622 = bitcast %str_slice* %src155 to i8*
call void @llvm.lifetime.end(i64 16, i8* %622)
%623 = bitcast double* %base to i8*
call void @llvm.lifetime.end(i64 8, i8* %623)
%624 = bitcast { i8, %"result::Result<usize, num::ParseIntError>" }* %22 to i8*
call void @llvm.lifetime.end(i64 24, i8* %624)
%625 = bitcast i32** %__llmatch129 to i8*
call void @llvm.lifetime.end(i64 8, i8* %625)
%626 = bitcast i32* %c130 to i8*
call void @llvm.lifetime.end(i64 4, i8* %626)
%627 = bitcast i64** %__llmatch131 to i8*
call void @llvm.lifetime.end(i64 8, i8* %627)
%628 = bitcast i64* %offset to i8*
call void @llvm.lifetime.end(i64 8, i8* %628)
br label %join188
join188: ; preds = %join187, %case_body132
%629 = bitcast %"result::Result<f64, num::ParseFloatError>"* %0 to { i8, double }*
%630 = getelementptr inbounds { i8, double }, { i8, double }* %629, i32 0, i32 1
%631 = load double, double* %sig, align 8
%632 = load double, double* %exp, align 8
%633 = fmul double %631, %632
store double %633, double* %630, align 8
%634 = getelementptr inbounds %"result::Result<f64, num::ParseFloatError>", %"result::Result<f64, num::ParseFloatError>"* %0, i32 0, i32 0
store i8 0, i8* %634
%635 = bitcast double* %exp to i8*
call void @llvm.lifetime.end(i64 8, i8* %635)
%636 = bitcast %"option::Option<(char, usize)>"* %exp_info to i8*
call void @llvm.lifetime.end(i64 24, i8* %636)
%637 = bitcast %"iter::Enumerate<str::Chars>"* %cs to i8*
call void @llvm.lifetime.end(i64 24, i8* %637)
%638 = bitcast double* %prev_sig to i8*
call void @llvm.lifetime.end(i64 8, i8* %638)
%639 = bitcast double* %sig to i8*
call void @llvm.lifetime.end(i64 8, i8* %639)
%640 = bitcast %str_slice* %src25 to i8*
call void @llvm.lifetime.end(i64 16, i8* %640)
call void @llvm.lifetime.end(i64 1, i8* %is_positive)
br label %clean_custom_
return: ; preds = %clean_custom_
ret void
}
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float4powi20h73dbe66746767a0ePPaE(double, i32) unnamed_addr #0 {
entry-block:
%self = alloca double
%n = alloca i32
%2 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store double %0, double* %self, align 8
%3 = bitcast i32* %n to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %n, align 4
%4 = load double, double* %self, align 8
%5 = load i32, i32* %n, align 4
%6 = call double @llvm.powi.f64(double %4, i32 %5)
%7 = bitcast i32* %n to i8*
call void @llvm.lifetime.end(i64 4, i8* %7)
%8 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %8)
ret double %6
}
; Function Attrs: inlinehint uwtable
define zeroext i1 @_ZN3f649f64.Float6is_nan20hd2b52f757ad41f222JaE(double) unnamed_addr #0 {
entry-block:
%self = alloca double
%1 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store double %0, double* %self, align 8
%2 = load double, double* %self, align 8
%3 = load double, double* %self, align 8
%4 = fcmp une double %2, %3
%5 = zext i1 %4 to i8
%6 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %6)
%7 = trunc i8 %5 to i1
ret i1 %7
}
; Function Attrs: inlinehint uwtable
define zeroext i1 @_ZN3f649f64.Float11is_infinite20h5637b0f7019edfc2cKaE(double) unnamed_addr #0 {
entry-block:
%self = alloca double
%1 = alloca double
%2 = alloca double
%3 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store double %0, double* %self, align 8
%4 = bitcast double* %1 to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = call double @_ZN3f649f64.Float8infinity20hfdd23488d7b0fb7e7zaE()
store double %5, double* %1, align 8
%6 = load double, double* %1, align 8
%7 = bitcast double* %1 to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = load double, double* %self, align 8
%9 = fcmp oeq double %8, %6
br i1 %9, label %join, label %before_rhs
join: ; preds = %before_rhs, %entry-block
%10 = phi i1 [ %9, %entry-block ], [ %19, %before_rhs ]
%11 = zext i1 %10 to i8
%12 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = trunc i8 %11 to i1
ret i1 %13
before_rhs: ; preds = %entry-block
%14 = bitcast double* %2 to i8*
call void @llvm.lifetime.start(i64 8, i8* %14)
%15 = call double @_ZN3f649f64.Float12neg_infinity20hb5011eb9b9df0d43cAaE()
store double %15, double* %2, align 8
%16 = load double, double* %2, align 8
%17 = bitcast double* %2 to i8*
call void @llvm.lifetime.end(i64 8, i8* %17)
%18 = load double, double* %self, align 8
%19 = fcmp oeq double %18, %16
br label %join
}
; Function Attrs: inlinehint uwtable
define zeroext i1 @_ZN3f649f64.Float9is_finite20h756246c3d7fe0119sKaE(double) unnamed_addr #0 {
entry-block:
%self = alloca double
%1 = alloca i8
%2 = alloca i8
%3 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store double %0, double* %self, align 8
call void @llvm.lifetime.start(i64 1, i8* %1)
%4 = load double, double* %self, align 8
%5 = call zeroext i1 @_ZN3f649f64.Float6is_nan20hd2b52f757ad41f222JaE(double %4)
%6 = zext i1 %5 to i8
store i8 %6, i8* %1, align 1
%7 = load i8, i8* %1, align 1, !range !1
%8 = trunc i8 %7 to i1
call void @llvm.lifetime.end(i64 1, i8* %1)
br i1 %8, label %join, label %before_rhs
join: ; preds = %before_rhs, %entry-block
%9 = phi i1 [ %8, %entry-block ], [ %18, %before_rhs ]
%10 = xor i1 %9, true
%11 = zext i1 %10 to i8
%12 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = trunc i8 %11 to i1
ret i1 %13
before_rhs: ; preds = %entry-block
call void @llvm.lifetime.start(i64 1, i8* %2)
%14 = load double, double* %self, align 8
%15 = call zeroext i1 @_ZN3f649f64.Float11is_infinite20h5637b0f7019edfc2cKaE(double %14)
%16 = zext i1 %15 to i8
store i8 %16, i8* %2, align 1
%17 = load i8, i8* %2, align 1, !range !1
%18 = trunc i8 %17 to i1
call void @llvm.lifetime.end(i64 1, i8* %2)
br label %join
}
; Function Attrs: inlinehint uwtable
define zeroext i1 @_ZN3f649f64.Float9is_normal20h11468061c8633aefGKaE(double) unnamed_addr #0 {
entry-block:
%self = alloca double
%1 = alloca i8
%autoref = alloca i8
%2 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store double %0, double* %self, align 8
call void @llvm.lifetime.start(i64 1, i8* %1)
%3 = load double, double* %self, align 8
%4 = call i8 @_ZN3f649f64.Float8classify20h4d425b43b48afc36RKaE(double %3)
store i8 %4, i8* %1, align 1
%5 = load i8, i8* %1, align 1
call void @llvm.lifetime.end(i64 1, i8* %1)
call void @llvm.lifetime.start(i64 1, i8* %autoref)
store i8 %5, i8* %autoref, align 1
%6 = call zeroext i1 @_ZN3num33FpCategory...core..cmp..PartialEq2eq20h48fccd04b574d039HihE(i8* noalias readonly dereferenceable(1) %autoref, i8* noalias readonly dereferenceable(1) @const43534)
%7 = zext i1 %6 to i8
call void @llvm.lifetime.end(i64 1, i8* %autoref)
%8 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %8)
%9 = trunc i8 %7 to i1
ret i1 %9
}
; Function Attrs: uwtable
define i8 @_ZN3f649f64.Float8classify20h4d425b43b48afc36RKaE(double) unnamed_addr #2 {
entry-block:
%sret_slot = alloca i8
%self = alloca double
%bits = alloca i64
%1 = alloca { i64, i64 }
%2 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store double %0, double* %self, align 8
%3 = bitcast i64* %bits to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
%4 = load double, double* %self, align 8
%5 = bitcast double %4 to i64
store i64 %5, i64* %bits
%6 = bitcast { i64, i64 }* %1 to i8*
call void @llvm.lifetime.start(i64 16, i8* %6)
%7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %1, i32 0, i32 0
%8 = load i64, i64* %bits, align 8
%9 = and i64 %8, 4503599627370495
store i64 %9, i64* %7, align 8
%10 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %1, i32 0, i32 1
%11 = load i64, i64* %bits, align 8
%12 = and i64 %11, 9218868437227405312
store i64 %12, i64* %10, align 8
%13 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %1, i32 0, i32 0
%14 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %1, i32 0, i32 1
%15 = load i64, i64* %14, align 8
switch i64 %15, label %match_else [
i64 0, label %match_case
i64 9218868437227405312, label %match_case7
]
case_body: ; preds = %match_case6
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %sret_slot, i8* @const43537, i64 1, i32 1, i1 false)
br label %join
case_body1: ; preds = %match_else5
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %sret_slot, i8* @const43538, i64 1, i32 1, i1 false)
br label %join
case_body2: ; preds = %match_case9
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %sret_slot, i8* @const43523, i64 1, i32 1, i1 false)
br label %join
case_body3: ; preds = %match_else8
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %sret_slot, i8* @const43522, i64 1, i32 1, i1 false)
br label %join
case_body4: ; preds = %match_else
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %sret_slot, i8* @const43534, i64 1, i32 1, i1 false)
br label %join
match_else: ; preds = %entry-block
br label %case_body4
match_case: ; preds = %entry-block
%16 = load i64, i64* %13, align 8
switch i64 %16, label %match_else5 [
i64 0, label %match_case6
]
match_else5: ; preds = %match_case
br label %case_body1
match_case6: ; preds = %match_case
br label %case_body
match_case7: ; preds = %entry-block
%17 = load i64, i64* %13, align 8
switch i64 %17, label %match_else8 [
i64 0, label %match_case9
]
match_else8: ; preds = %match_case7
br label %case_body3
match_case9: ; preds = %match_case7
br label %case_body2
join: ; preds = %case_body4, %case_body3, %case_body2, %case_body1, %case_body
%18 = bitcast { i64, i64 }* %1 to i8*
call void @llvm.lifetime.end(i64 16, i8* %18)
%19 = bitcast i64* %bits to i8*
call void @llvm.lifetime.end(i64 8, i8* %19)
%20 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %20)
%21 = load i8, i8* %sret_slot, align 1
ret i8 %21
}
; Function Attrs: uwtable
define void @_ZN3f649f64.Float14integer_decode20h29be328c8a39d201JLaE({ i64, i16, i8 }* noalias nocapture sret dereferenceable(16), double) unnamed_addr #2 {
entry-block:
%self = alloca double
%bits = alloca i64
%sign = alloca i8
%exponent = alloca i16
%mantissa = alloca i64
%2 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store double %1, double* %self, align 8
%3 = bitcast i64* %bits to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
%4 = load double, double* %self, align 8
%5 = bitcast double %4 to i64
store i64 %5, i64* %bits
call void @llvm.lifetime.start(i64 1, i8* %sign)
%6 = load i64, i64* %bits, align 8
%7 = lshr i64 %6, 63
%8 = icmp eq i64 %7, 0
br i1 %8, label %then-block-2358-, label %else-block
then-block-2358-: ; preds = %entry-block
store i8 1, i8* %sign, align 1
br label %join
else-block: ; preds = %entry-block
store i8 -1, i8* %sign, align 1
br label %join
join: ; preds = %else-block, %then-block-2358-
%9 = bitcast i16* %exponent to i8*
call void @llvm.lifetime.start(i64 2, i8* %9)
%10 = load i64, i64* %bits, align 8
%11 = lshr i64 %10, 52
%12 = and i64 %11, 2047
%13 = trunc i64 %12 to i16
store i16 %13, i16* %exponent, align 2
%14 = bitcast i64* %mantissa to i8*
call void @llvm.lifetime.start(i64 8, i8* %14)
%15 = load i16, i16* %exponent, align 2
%16 = icmp eq i16 %15, 0
br i1 %16, label %then-block-2384-, label %else-block1
then-block-2384-: ; preds = %join
%17 = load i64, i64* %bits, align 8
%18 = and i64 %17, 4503599627370495
%19 = shl i64 %18, 1
store i64 %19, i64* %mantissa, align 8
br label %join2
else-block1: ; preds = %join
%20 = load i64, i64* %bits, align 8
%21 = and i64 %20, 4503599627370495
%22 = or i64 %21, 4503599627370496
store i64 %22, i64* %mantissa, align 8
br label %join2
join2: ; preds = %else-block1, %then-block-2384-
%23 = load i16, i16* %exponent, align 2
%24 = sub i16 %23, 1075
store i16 %24, i16* %exponent, align 2
%25 = getelementptr inbounds { i64, i16, i8 }, { i64, i16, i8 }* %0, i32 0, i32 0
%26 = load i64, i64* %mantissa, align 8
store i64 %26, i64* %25, align 8
%27 = getelementptr inbounds { i64, i16, i8 }, { i64, i16, i8 }* %0, i32 0, i32 1
%28 = load i16, i16* %exponent, align 2
store i16 %28, i16* %27, align 2
%29 = getelementptr inbounds { i64, i16, i8 }, { i64, i16, i8 }* %0, i32 0, i32 2
%30 = load i8, i8* %sign, align 1
store i8 %30, i8* %29, align 1
%31 = bitcast i64* %mantissa to i8*
call void @llvm.lifetime.end(i64 8, i8* %31)
%32 = bitcast i16* %exponent to i8*
call void @llvm.lifetime.end(i64 2, i8* %32)
call void @llvm.lifetime.end(i64 1, i8* %sign)
%33 = bitcast i64* %bits to i8*
call void @llvm.lifetime.end(i64 8, i8* %33)
%34 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %34)
ret void
}
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float5floor20hb18a7221c0daed091MaE(double) unnamed_addr #0 {
entry-block:
%self = alloca double
%1 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store double %0, double* %self, align 8
%2 = load double, double* %self, align 8
%3 = call double @llvm.floor.f64(double %2)
%4 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %4)
ret double %3
}
; Function Attrs: nounwind readnone
declare double @llvm.floor.f64(double) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float4ceil20hd6f4858fdddfed01dNaE(double) unnamed_addr #0 {
entry-block:
%self = alloca double
%1 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store double %0, double* %self, align 8
%2 = load double, double* %self, align 8
%3 = call double @llvm.ceil.f64(double %2)
%4 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %4)
ret double %3
}
; Function Attrs: nounwind readnone
declare double @llvm.ceil.f64(double) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float5round20h46f9edd8c9c534acpNaE(double) unnamed_addr #0 {
entry-block:
%self = alloca double
%1 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store double %0, double* %self, align 8
%2 = load double, double* %self, align 8
%3 = call double @llvm.round.f64(double %2)
%4 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %4)
ret double %3
}
; Function Attrs: nounwind readnone
declare double @llvm.round.f64(double) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float5trunc20h9b92294279c4fe7fBNaE(double) unnamed_addr #0 {
entry-block:
%self = alloca double
%1 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store double %0, double* %self, align 8
%2 = load double, double* %self, align 8
%3 = call double @llvm.trunc.f64(double %2)
%4 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %4)
ret double %3
}
; Function Attrs: nounwind readnone
declare double @llvm.trunc.f64(double) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float5fract20h43bfce6dd26bb606NNaE(double) unnamed_addr #0 {
entry-block:
%self = alloca double
%1 = alloca double
%2 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store double %0, double* %self, align 8
%3 = bitcast double* %1 to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
%4 = load double, double* %self, align 8
%5 = call double @_ZN3f649f64.Float5trunc20h9b92294279c4fe7fBNaE(double %4)
store double %5, double* %1, align 8
%6 = load double, double* %1, align 8
%7 = bitcast double* %1 to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = load double, double* %self, align 8
%9 = fsub double %8, %6
%10 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %10)
ret double %9
}
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float3abs20hf607ac5ce696803bYNaE(double) unnamed_addr #0 {
entry-block:
%self = alloca double
%1 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store double %0, double* %self, align 8
%2 = load double, double* %self, align 8
%3 = call double @llvm.fabs.f64(double %2)
%4 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %4)
ret double %3
}
; Function Attrs: nounwind readnone
declare double @llvm.fabs.f64(double) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float6signum20h4dfccfe8b2894100aOaE(double) unnamed_addr #0 {
entry-block:
%sret_slot = alloca double
%self = alloca double
%1 = alloca i8
%2 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store double %0, double* %self, align 8
call void @llvm.lifetime.start(i64 1, i8* %1)
%3 = load double, double* %self, align 8
%4 = call zeroext i1 @_ZN3f649f64.Float6is_nan20hd2b52f757ad41f222JaE(double %3)
%5 = zext i1 %4 to i8
store i8 %5, i8* %1, align 1
%6 = load i8, i8* %1, align 1, !range !1
%7 = trunc i8 %6 to i1
call void @llvm.lifetime.end(i64 1, i8* %1)
br i1 %7, label %then-block-2490-, label %else-block
then-block-2490-: ; preds = %entry-block
%8 = call double @_ZN3f649f64.Float3nan20h5b9c8d892c4939332zaE()
store double %8, double* %sret_slot, align 8
br label %join
else-block: ; preds = %entry-block
%9 = load double, double* %self, align 8
%10 = call double @llvm.copysign.f64(double 1.000000e+00, double %9)
store double %10, double* %sret_slot, align 8
br label %join
join: ; preds = %else-block, %then-block-2490-
%11 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %11)
%12 = load double, double* %sret_slot, align 8
ret double %12
}
; Function Attrs: nounwind readnone
declare double @llvm.copysign.f64(double, double) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define zeroext i1 @_ZN3f649f64.Float11is_positive20h59b43adcf6bfbde5vOaE(double) unnamed_addr #0 {
entry-block:
%self = alloca double
%1 = alloca double
%2 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store double %0, double* %self, align 8
%3 = load double, double* %self, align 8
%4 = fcmp ogt double %3, 0.000000e+00
br i1 %4, label %join, label %before_rhs
join: ; preds = %before_rhs, %entry-block
%5 = phi i1 [ %4, %entry-block ], [ %15, %before_rhs ]
%6 = zext i1 %5 to i8
%7 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = trunc i8 %6 to i1
ret i1 %8
before_rhs: ; preds = %entry-block
%9 = load double, double* %self, align 8
%10 = fdiv double 1.000000e+00, %9
%11 = bitcast double* %1 to i8*
call void @llvm.lifetime.start(i64 8, i8* %11)
%12 = call double @_ZN3f649f64.Float8infinity20hfdd23488d7b0fb7e7zaE()
store double %12, double* %1, align 8
%13 = load double, double* %1, align 8
%14 = bitcast double* %1 to i8*
call void @llvm.lifetime.end(i64 8, i8* %14)
%15 = fcmp oeq double %10, %13
br label %join
}
; Function Attrs: inlinehint uwtable
define zeroext i1 @_ZN3f649f64.Float11is_negative20he2a64b5b70a853daNOaE(double) unnamed_addr #0 {
entry-block:
%self = alloca double
%1 = alloca double
%2 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store double %0, double* %self, align 8
%3 = load double, double* %self, align 8
%4 = fcmp olt double %3, 0.000000e+00
br i1 %4, label %join, label %before_rhs
join: ; preds = %before_rhs, %entry-block
%5 = phi i1 [ %4, %entry-block ], [ %15, %before_rhs ]
%6 = zext i1 %5 to i8
%7 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = trunc i8 %6 to i1
ret i1 %8
before_rhs: ; preds = %entry-block
%9 = load double, double* %self, align 8
%10 = fdiv double 1.000000e+00, %9
%11 = bitcast double* %1 to i8*
call void @llvm.lifetime.start(i64 8, i8* %11)
%12 = call double @_ZN3f649f64.Float12neg_infinity20hb5011eb9b9df0d43cAaE()
store double %12, double* %1, align 8
%13 = load double, double* %1, align 8
%14 = bitcast double* %1 to i8*
call void @llvm.lifetime.end(i64 8, i8* %14)
%15 = fcmp oeq double %10, %13
br label %join
}
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float7mul_add20h523e7e24258cc3c95OaE(double, double, double) unnamed_addr #0 {
entry-block:
%self = alloca double
%a = alloca double
%b = alloca double
%3 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store double %0, double* %self, align 8
%4 = bitcast double* %a to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store double %1, double* %a, align 8
%5 = bitcast double* %b to i8*
call void @llvm.lifetime.start(i64 8, i8* %5)
store double %2, double* %b, align 8
%6 = load double, double* %self, align 8
%7 = load double, double* %a, align 8
%8 = load double, double* %b, align 8
%9 = call double @llvm.fma.f64(double %6, double %7, double %8)
%10 = bitcast double* %b to i8*
call void @llvm.lifetime.end(i64 8, i8* %10)
%11 = bitcast double* %a to i8*
call void @llvm.lifetime.end(i64 8, i8* %11)
%12 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
ret double %9
}
; Function Attrs: nounwind readnone
declare double @llvm.fma.f64(double, double, double) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float5recip20hfda1dc100832f4d4pPaE(double) unnamed_addr #0 {
entry-block:
%self = alloca double
%1 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store double %0, double* %self, align 8
%2 = load double, double* %self, align 8
%3 = fdiv double 1.000000e+00, %2
%4 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %4)
ret double %3
}
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float4powf20h8f88d9b14739859azPaE(double, double) unnamed_addr #0 {
entry-block:
%self = alloca double
%n = alloca double
%2 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store double %0, double* %self, align 8
%3 = bitcast double* %n to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store double %1, double* %n, align 8
%4 = load double, double* %self, align 8
%5 = load double, double* %n, align 8
%6 = call double @llvm.pow.f64(double %4, double %5)
%7 = bitcast double* %n to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %8)
ret double %6
}
; Function Attrs: nounwind readnone
declare double @llvm.pow.f64(double, double) unnamed_addr #5
; Function Attrs: nounwind readnone
declare double @llvm.powi.f64(double, i32) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float4sqrt20h3d1a44207b654e255PaE(double) unnamed_addr #0 {
entry-block:
%sret_slot = alloca double
%self = alloca double
%1 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store double %0, double* %self, align 8
%2 = load double, double* %self, align 8
%3 = fcmp olt double %2, 0.000000e+00
br i1 %3, label %then-block-2610-, label %else-block
then-block-2610-: ; preds = %entry-block
store double 0x7FF8000000000000, double* %sret_slot, align 8
br label %join
else-block: ; preds = %entry-block
%4 = load double, double* %self, align 8
%5 = call double @llvm.sqrt.f64(double %4)
store double %5, double* %sret_slot, align 8
br label %join
join: ; preds = %else-block, %then-block-2610-
%6 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %6)
%7 = load double, double* %sret_slot, align 8
ret double %7
}
; Function Attrs: nounwind readnone
declare double @llvm.sqrt.f64(double) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float5rsqrt20hf167504da2d070b4pQaE(double) unnamed_addr #0 {
entry-block:
%self = alloca double
%1 = alloca double
%2 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store double %0, double* %self, align 8
%3 = bitcast double* %1 to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
%4 = load double, double* %self, align 8
%5 = call double @_ZN3f649f64.Float4sqrt20h3d1a44207b654e255PaE(double %4)
store double %5, double* %1, align 8
%6 = load double, double* %1, align 8
%7 = bitcast double* %1 to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = call double @_ZN3f649f64.Float5recip20hfda1dc100832f4d4pPaE(double %6)
%9 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %9)
ret double %8
}
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float3exp20hae99c187d7c58e03zQaE(double) unnamed_addr #0 {
entry-block:
%self = alloca double
%1 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store double %0, double* %self, align 8
%2 = load double, double* %self, align 8
%3 = call double @llvm.exp.f64(double %2)
%4 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %4)
ret double %3
}
; Function Attrs: nounwind readnone
declare double @llvm.exp.f64(double) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float4exp220hfd95b8ae71f1e5feLQaE(double) unnamed_addr #0 {
entry-block:
%self = alloca double
%1 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store double %0, double* %self, align 8
%2 = load double, double* %self, align 8
%3 = call double @llvm.exp2.f64(double %2)
%4 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %4)
ret double %3
}
; Function Attrs: nounwind readnone
declare double @llvm.exp2.f64(double) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float2ln20hc3cf0634c48fde07XQaE(double) unnamed_addr #0 {
entry-block:
%self = alloca double
%1 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store double %0, double* %self, align 8
%2 = load double, double* %self, align 8
%3 = call double @llvm.log.f64(double %2)
%4 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %4)
ret double %3
}
; Function Attrs: nounwind readnone
declare double @llvm.log.f64(double) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float3log20h3d617802f86dbbf69QaE(double, double) unnamed_addr #0 {
entry-block:
%self = alloca double
%base = alloca double
%2 = alloca double
%3 = alloca double
%4 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store double %0, double* %self, align 8
%5 = bitcast double* %base to i8*
call void @llvm.lifetime.start(i64 8, i8* %5)
store double %1, double* %base, align 8
%6 = bitcast double* %2 to i8*
call void @llvm.lifetime.start(i64 8, i8* %6)
%7 = load double, double* %self, align 8
%8 = call double @_ZN3f649f64.Float2ln20hc3cf0634c48fde07XQaE(double %7)
store double %8, double* %2, align 8
%9 = load double, double* %2, align 8
%10 = bitcast double* %2 to i8*
call void @llvm.lifetime.end(i64 8, i8* %10)
%11 = bitcast double* %3 to i8*
call void @llvm.lifetime.start(i64 8, i8* %11)
%12 = load double, double* %base, align 8
%13 = call double @_ZN3f649f64.Float2ln20hc3cf0634c48fde07XQaE(double %12)
store double %13, double* %3, align 8
%14 = load double, double* %3, align 8
%15 = bitcast double* %3 to i8*
call void @llvm.lifetime.end(i64 8, i8* %15)
%16 = fdiv double %9, %14
%17 = bitcast double* %base to i8*
call void @llvm.lifetime.end(i64 8, i8* %17)
%18 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %18)
ret double %16
}
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float4log220h710edf013b47a218oRaE(double) unnamed_addr #0 {
entry-block:
%self = alloca double
%1 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store double %0, double* %self, align 8
%2 = load double, double* %self, align 8
%3 = call double @llvm.log2.f64(double %2)
%4 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %4)
ret double %3
}
; Function Attrs: nounwind readnone
declare double @llvm.log2.f64(double) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float5log1020h69fac92814ac38b5ARaE(double) unnamed_addr #0 {
entry-block:
%self = alloca double
%1 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store double %0, double* %self, align 8
%2 = load double, double* %self, align 8
%3 = call double @llvm.log10.f64(double %2)
%4 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %4)
ret double %3
}
; Function Attrs: nounwind readnone
declare double @llvm.log10.f64(double) unnamed_addr #5
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float10to_degrees20h979562193646ca1eMRaE(double) unnamed_addr #0 {
entry-block:
%self = alloca double
%1 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store double %0, double* %self, align 8
%2 = load double, double* %self, align 8
%3 = fmul double %2, 0x404CA5DC1A63C1F8
%4 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %4)
ret double %3
}
; Function Attrs: inlinehint uwtable
define double @_ZN3f649f64.Float10to_radians20h7d9ba36ed60302f5ZRaE(double) unnamed_addr #0 {
entry-block:
%self = alloca double
%value = alloca double
%1 = bitcast double* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store double %0, double* %self, align 8
%2 = bitcast double* %value to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store double 0x400921FB54442D18, double* %value, align 8
%3 = load double, double* %value, align 8
%4 = fdiv double %3, 1.800000e+02
%5 = load double, double* %self, align 8
%6 = fmul double %5, %4
%7 = bitcast double* %value to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = bitcast double* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %8)
ret double %6
}
; Function Attrs: alwaysinline uwtable
define i8 @"_ZN3num8wrapping35Wrapping$LT$u8$GT$.Shl$LT$usize$GT$3shl20h5707305426c591b0a2aE"(i8, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u8>"
%self = alloca %"num::Wrapping<u8>"
%other = alloca i64
%2 = bitcast %"num::Wrapping<u8>"* %self to i8*
call void @llvm.lifetime.start(i64 1, i8* %2)
%3 = bitcast %"num::Wrapping<u8>"* %self to i8*
store i8 %0, i8* %3, align 1
%4 = bitcast i64* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %other, align 8
%5 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %sret_slot, i32 0, i32 0
%6 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %self, i32 0, i32 0
%7 = load i8, i8* %6, align 1
%8 = load i64, i64* %other, align 8
%9 = trunc i64 %8 to i8
%10 = and i8 %9, 7
%11 = shl i8 %7, %10
store i8 %11, i8* %5, align 1
%12 = bitcast i64* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<u8>"* %self to i8*
call void @llvm.lifetime.end(i64 1, i8* %13)
%14 = bitcast %"num::Wrapping<u8>"* %sret_slot to i8*
%15 = load i8, i8* %14, align 1
ret i8 %15
}
; Function Attrs: alwaysinline uwtable
define i8 @"_ZN3num8wrapping35Wrapping$LT$u8$GT$.Shr$LT$usize$GT$3shr20hc0d9e75afa9396edA2aE"(i8, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u8>"
%self = alloca %"num::Wrapping<u8>"
%other = alloca i64
%2 = bitcast %"num::Wrapping<u8>"* %self to i8*
call void @llvm.lifetime.start(i64 1, i8* %2)
%3 = bitcast %"num::Wrapping<u8>"* %self to i8*
store i8 %0, i8* %3, align 1
%4 = bitcast i64* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %other, align 8
%5 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %sret_slot, i32 0, i32 0
%6 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %self, i32 0, i32 0
%7 = load i8, i8* %6, align 1
%8 = load i64, i64* %other, align 8
%9 = trunc i64 %8 to i8
%10 = and i8 %9, 7
%11 = lshr i8 %7, %10
store i8 %11, i8* %5, align 1
%12 = bitcast i64* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<u8>"* %self to i8*
call void @llvm.lifetime.end(i64 1, i8* %13)
%14 = bitcast %"num::Wrapping<u8>"* %sret_slot to i8*
%15 = load i8, i8* %14, align 1
ret i8 %15
}
; Function Attrs: alwaysinline uwtable
define i16 @"_ZN3num8wrapping36Wrapping$LT$u16$GT$.Shl$LT$usize$GT$3shl20hb2ceaedce81273ad02aE"(i16, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u16>"
%self = alloca %"num::Wrapping<u16>"
%other = alloca i64
%2 = bitcast %"num::Wrapping<u16>"* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
%3 = bitcast %"num::Wrapping<u16>"* %self to i16*
store i16 %0, i16* %3, align 2
%4 = bitcast i64* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %other, align 8
%5 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %sret_slot, i32 0, i32 0
%6 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %self, i32 0, i32 0
%7 = load i16, i16* %6, align 2
%8 = load i64, i64* %other, align 8
%9 = trunc i64 %8 to i16
%10 = and i16 %9, 15
%11 = shl i16 %7, %10
store i16 %11, i16* %5, align 2
%12 = bitcast i64* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<u16>"* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %13)
%14 = bitcast %"num::Wrapping<u16>"* %sret_slot to i16*
%15 = load i16, i16* %14, align 2
ret i16 %15
}
; Function Attrs: alwaysinline uwtable
define i16 @"_ZN3num8wrapping36Wrapping$LT$u16$GT$.Shr$LT$usize$GT$3shr20hc29e9b2b5ced3a05q3aE"(i16, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u16>"
%self = alloca %"num::Wrapping<u16>"
%other = alloca i64
%2 = bitcast %"num::Wrapping<u16>"* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
%3 = bitcast %"num::Wrapping<u16>"* %self to i16*
store i16 %0, i16* %3, align 2
%4 = bitcast i64* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %other, align 8
%5 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %sret_slot, i32 0, i32 0
%6 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %self, i32 0, i32 0
%7 = load i16, i16* %6, align 2
%8 = load i64, i64* %other, align 8
%9 = trunc i64 %8 to i16
%10 = and i16 %9, 15
%11 = lshr i16 %7, %10
store i16 %11, i16* %5, align 2
%12 = bitcast i64* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<u16>"* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %13)
%14 = bitcast %"num::Wrapping<u16>"* %sret_slot to i16*
%15 = load i16, i16* %14, align 2
ret i16 %15
}
; Function Attrs: alwaysinline uwtable
define i32 @"_ZN3num8wrapping36Wrapping$LT$u32$GT$.Shl$LT$usize$GT$3shl20hd49ae1515a44f54fQ3aE"(i32, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u32>"
%self = alloca %"num::Wrapping<u32>"
%other = alloca i64
%2 = bitcast %"num::Wrapping<u32>"* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
%3 = bitcast %"num::Wrapping<u32>"* %self to i32*
store i32 %0, i32* %3, align 4
%4 = bitcast i64* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %other, align 8
%5 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %sret_slot, i32 0, i32 0
%6 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %self, i32 0, i32 0
%7 = load i32, i32* %6, align 4
%8 = load i64, i64* %other, align 8
%9 = trunc i64 %8 to i32
%10 = and i32 %9, 31
%11 = shl i32 %7, %10
store i32 %11, i32* %5, align 4
%12 = bitcast i64* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<u32>"* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %13)
%14 = bitcast %"num::Wrapping<u32>"* %sret_slot to i32*
%15 = load i32, i32* %14, align 4
ret i32 %15
}
; Function Attrs: alwaysinline uwtable
define i32 @"_ZN3num8wrapping36Wrapping$LT$u32$GT$.Shr$LT$usize$GT$3shr20hde995e01af1790b5g4aE"(i32, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u32>"
%self = alloca %"num::Wrapping<u32>"
%other = alloca i64
%2 = bitcast %"num::Wrapping<u32>"* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
%3 = bitcast %"num::Wrapping<u32>"* %self to i32*
store i32 %0, i32* %3, align 4
%4 = bitcast i64* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %other, align 8
%5 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %sret_slot, i32 0, i32 0
%6 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %self, i32 0, i32 0
%7 = load i32, i32* %6, align 4
%8 = load i64, i64* %other, align 8
%9 = trunc i64 %8 to i32
%10 = and i32 %9, 31
%11 = lshr i32 %7, %10
store i32 %11, i32* %5, align 4
%12 = bitcast i64* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<u32>"* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %13)
%14 = bitcast %"num::Wrapping<u32>"* %sret_slot to i32*
%15 = load i32, i32* %14, align 4
ret i32 %15
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping36Wrapping$LT$u64$GT$.Shl$LT$usize$GT$3shl20h42f075c40d6200dcG4aE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u64>"
%self = alloca %"num::Wrapping<u64>"
%other = alloca i64
%2 = bitcast %"num::Wrapping<u64>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<u64>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast i64* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %other, align 8
%5 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %sret_slot, i32 0, i32 0
%6 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %self, i32 0, i32 0
%7 = load i64, i64* %6, align 8
%8 = load i64, i64* %other, align 8
%9 = and i64 %8, 63
%10 = shl i64 %7, %9
store i64 %10, i64* %5, align 8
%11 = bitcast i64* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %11)
%12 = bitcast %"num::Wrapping<u64>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<u64>"* %sret_slot to i64*
%14 = load i64, i64* %13, align 8
ret i64 %14
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping36Wrapping$LT$u64$GT$.Shr$LT$usize$GT$3shr20he45e601015c5d91264aE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u64>"
%self = alloca %"num::Wrapping<u64>"
%other = alloca i64
%2 = bitcast %"num::Wrapping<u64>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<u64>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast i64* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %other, align 8
%5 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %sret_slot, i32 0, i32 0
%6 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %self, i32 0, i32 0
%7 = load i64, i64* %6, align 8
%8 = load i64, i64* %other, align 8
%9 = and i64 %8, 63
%10 = lshr i64 %7, %9
store i64 %10, i64* %5, align 8
%11 = bitcast i64* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %11)
%12 = bitcast %"num::Wrapping<u64>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<u64>"* %sret_slot to i64*
%14 = load i64, i64* %13, align 8
ret i64 %14
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping38Wrapping$LT$usize$GT$.Shl$LT$usize$GT$3shl20hb09f563feeecac61w5aE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<usize>"
%self = alloca %"num::Wrapping<usize>"
%other = alloca i64
%2 = bitcast %"num::Wrapping<usize>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<usize>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast i64* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %other, align 8
%5 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %sret_slot, i32 0, i32 0
%6 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %self, i32 0, i32 0
%7 = load i64, i64* %6, align 8
%8 = load i64, i64* %other, align 8
%9 = and i64 %8, 63
%10 = shl i64 %7, %9
store i64 %10, i64* %5, align 8
%11 = bitcast i64* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %11)
%12 = bitcast %"num::Wrapping<usize>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<usize>"* %sret_slot to i64*
%14 = load i64, i64* %13, align 8
ret i64 %14
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping38Wrapping$LT$usize$GT$.Shr$LT$usize$GT$3shr20h712f98a07aad05a3W5aE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<usize>"
%self = alloca %"num::Wrapping<usize>"
%other = alloca i64
%2 = bitcast %"num::Wrapping<usize>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<usize>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast i64* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %other, align 8
%5 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %sret_slot, i32 0, i32 0
%6 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %self, i32 0, i32 0
%7 = load i64, i64* %6, align 8
%8 = load i64, i64* %other, align 8
%9 = and i64 %8, 63
%10 = lshr i64 %7, %9
store i64 %10, i64* %5, align 8
%11 = bitcast i64* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %11)
%12 = bitcast %"num::Wrapping<usize>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<usize>"* %sret_slot to i64*
%14 = load i64, i64* %13, align 8
ret i64 %14
}
; Function Attrs: alwaysinline uwtable
define i8 @"_ZN3num8wrapping35Wrapping$LT$i8$GT$.Shl$LT$usize$GT$3shl20hf8a5ada2721eb80bm6aE"(i8, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i8>"
%self = alloca %"num::Wrapping<i8>"
%other = alloca i64
%2 = bitcast %"num::Wrapping<i8>"* %self to i8*
call void @llvm.lifetime.start(i64 1, i8* %2)
%3 = bitcast %"num::Wrapping<i8>"* %self to i8*
store i8 %0, i8* %3, align 1
%4 = bitcast i64* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %other, align 8
%5 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %sret_slot, i32 0, i32 0
%6 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %self, i32 0, i32 0
%7 = load i8, i8* %6, align 1
%8 = load i64, i64* %other, align 8
%9 = trunc i64 %8 to i8
%10 = and i8 %9, 7
%11 = shl i8 %7, %10
store i8 %11, i8* %5, align 1
%12 = bitcast i64* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<i8>"* %self to i8*
call void @llvm.lifetime.end(i64 1, i8* %13)
%14 = bitcast %"num::Wrapping<i8>"* %sret_slot to i8*
%15 = load i8, i8* %14, align 1
ret i8 %15
}
; Function Attrs: alwaysinline uwtable
define i8 @"_ZN3num8wrapping35Wrapping$LT$i8$GT$.Shr$LT$usize$GT$3shr20hbb4e9c43e22507ebM6aE"(i8, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i8>"
%self = alloca %"num::Wrapping<i8>"
%other = alloca i64
%2 = bitcast %"num::Wrapping<i8>"* %self to i8*
call void @llvm.lifetime.start(i64 1, i8* %2)
%3 = bitcast %"num::Wrapping<i8>"* %self to i8*
store i8 %0, i8* %3, align 1
%4 = bitcast i64* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %other, align 8
%5 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %sret_slot, i32 0, i32 0
%6 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %self, i32 0, i32 0
%7 = load i8, i8* %6, align 1
%8 = load i64, i64* %other, align 8
%9 = trunc i64 %8 to i8
%10 = and i8 %9, 7
%11 = ashr i8 %7, %10
store i8 %11, i8* %5, align 1
%12 = bitcast i64* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<i8>"* %self to i8*
call void @llvm.lifetime.end(i64 1, i8* %13)
%14 = bitcast %"num::Wrapping<i8>"* %sret_slot to i8*
%15 = load i8, i8* %14, align 1
ret i8 %15
}
; Function Attrs: alwaysinline uwtable
define i16 @"_ZN3num8wrapping36Wrapping$LT$i16$GT$.Shl$LT$usize$GT$3shl20hbe1b758cb56cb1c1c7aE"(i16, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i16>"
%self = alloca %"num::Wrapping<i16>"
%other = alloca i64
%2 = bitcast %"num::Wrapping<i16>"* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
%3 = bitcast %"num::Wrapping<i16>"* %self to i16*
store i16 %0, i16* %3, align 2
%4 = bitcast i64* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %other, align 8
%5 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %sret_slot, i32 0, i32 0
%6 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %self, i32 0, i32 0
%7 = load i16, i16* %6, align 2
%8 = load i64, i64* %other, align 8
%9 = trunc i64 %8 to i16
%10 = and i16 %9, 15
%11 = shl i16 %7, %10
store i16 %11, i16* %5, align 2
%12 = bitcast i64* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<i16>"* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %13)
%14 = bitcast %"num::Wrapping<i16>"* %sret_slot to i16*
%15 = load i16, i16* %14, align 2
ret i16 %15
}
; Function Attrs: alwaysinline uwtable
define i16 @"_ZN3num8wrapping36Wrapping$LT$i16$GT$.Shr$LT$usize$GT$3shr20h74cdbfb85cc4d1a5C7aE"(i16, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i16>"
%self = alloca %"num::Wrapping<i16>"
%other = alloca i64
%2 = bitcast %"num::Wrapping<i16>"* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
%3 = bitcast %"num::Wrapping<i16>"* %self to i16*
store i16 %0, i16* %3, align 2
%4 = bitcast i64* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %other, align 8
%5 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %sret_slot, i32 0, i32 0
%6 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %self, i32 0, i32 0
%7 = load i16, i16* %6, align 2
%8 = load i64, i64* %other, align 8
%9 = trunc i64 %8 to i16
%10 = and i16 %9, 15
%11 = ashr i16 %7, %10
store i16 %11, i16* %5, align 2
%12 = bitcast i64* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<i16>"* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %13)
%14 = bitcast %"num::Wrapping<i16>"* %sret_slot to i16*
%15 = load i16, i16* %14, align 2
ret i16 %15
}
; Function Attrs: alwaysinline uwtable
define i32 @"_ZN3num8wrapping36Wrapping$LT$i32$GT$.Shl$LT$usize$GT$3shl20h2ce8d91a9890b07227aE"(i32, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i32>"
%self = alloca %"num::Wrapping<i32>"
%other = alloca i64
%2 = bitcast %"num::Wrapping<i32>"* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
%3 = bitcast %"num::Wrapping<i32>"* %self to i32*
store i32 %0, i32* %3, align 4
%4 = bitcast i64* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %other, align 8
%5 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %sret_slot, i32 0, i32 0
%6 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %self, i32 0, i32 0
%7 = load i32, i32* %6, align 4
%8 = load i64, i64* %other, align 8
%9 = trunc i64 %8 to i32
%10 = and i32 %9, 31
%11 = shl i32 %7, %10
store i32 %11, i32* %5, align 4
%12 = bitcast i64* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<i32>"* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %13)
%14 = bitcast %"num::Wrapping<i32>"* %sret_slot to i32*
%15 = load i32, i32* %14, align 4
ret i32 %15
}
; Function Attrs: alwaysinline uwtable
define i32 @"_ZN3num8wrapping36Wrapping$LT$i32$GT$.Shr$LT$usize$GT$3shr20h4b2abb67cbf10558s8aE"(i32, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i32>"
%self = alloca %"num::Wrapping<i32>"
%other = alloca i64
%2 = bitcast %"num::Wrapping<i32>"* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
%3 = bitcast %"num::Wrapping<i32>"* %self to i32*
store i32 %0, i32* %3, align 4
%4 = bitcast i64* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %other, align 8
%5 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %sret_slot, i32 0, i32 0
%6 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %self, i32 0, i32 0
%7 = load i32, i32* %6, align 4
%8 = load i64, i64* %other, align 8
%9 = trunc i64 %8 to i32
%10 = and i32 %9, 31
%11 = ashr i32 %7, %10
store i32 %11, i32* %5, align 4
%12 = bitcast i64* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<i32>"* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %13)
%14 = bitcast %"num::Wrapping<i32>"* %sret_slot to i32*
%15 = load i32, i32* %14, align 4
ret i32 %15
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping36Wrapping$LT$i64$GT$.Shl$LT$usize$GT$3shl20h2cf71e04387bd5d4S8aE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i64>"
%self = alloca %"num::Wrapping<i64>"
%other = alloca i64
%2 = bitcast %"num::Wrapping<i64>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<i64>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast i64* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %other, align 8
%5 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %sret_slot, i32 0, i32 0
%6 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %self, i32 0, i32 0
%7 = load i64, i64* %6, align 8
%8 = load i64, i64* %other, align 8
%9 = and i64 %8, 63
%10 = shl i64 %7, %9
store i64 %10, i64* %5, align 8
%11 = bitcast i64* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %11)
%12 = bitcast %"num::Wrapping<i64>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<i64>"* %sret_slot to i64*
%14 = load i64, i64* %13, align 8
ret i64 %14
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping36Wrapping$LT$i64$GT$.Shr$LT$usize$GT$3shr20h8d901bf7292a6eb3i9aE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i64>"
%self = alloca %"num::Wrapping<i64>"
%other = alloca i64
%2 = bitcast %"num::Wrapping<i64>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<i64>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast i64* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %other, align 8
%5 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %sret_slot, i32 0, i32 0
%6 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %self, i32 0, i32 0
%7 = load i64, i64* %6, align 8
%8 = load i64, i64* %other, align 8
%9 = and i64 %8, 63
%10 = ashr i64 %7, %9
store i64 %10, i64* %5, align 8
%11 = bitcast i64* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %11)
%12 = bitcast %"num::Wrapping<i64>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<i64>"* %sret_slot to i64*
%14 = load i64, i64* %13, align 8
ret i64 %14
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping38Wrapping$LT$isize$GT$.Shl$LT$usize$GT$3shl20h58c0fd625881e85bI9aE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<isize>"
%self = alloca %"num::Wrapping<isize>"
%other = alloca i64
%2 = bitcast %"num::Wrapping<isize>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<isize>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast i64* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %other, align 8
%5 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %sret_slot, i32 0, i32 0
%6 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %self, i32 0, i32 0
%7 = load i64, i64* %6, align 8
%8 = load i64, i64* %other, align 8
%9 = and i64 %8, 63
%10 = shl i64 %7, %9
store i64 %10, i64* %5, align 8
%11 = bitcast i64* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %11)
%12 = bitcast %"num::Wrapping<isize>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<isize>"* %sret_slot to i64*
%14 = load i64, i64* %13, align 8
ret i64 %14
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping38Wrapping$LT$isize$GT$.Shr$LT$usize$GT$3shr20h89bf0f5902e0d6ea89aE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<isize>"
%self = alloca %"num::Wrapping<isize>"
%other = alloca i64
%2 = bitcast %"num::Wrapping<isize>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<isize>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast i64* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %other, align 8
%5 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %sret_slot, i32 0, i32 0
%6 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %self, i32 0, i32 0
%7 = load i64, i64* %6, align 8
%8 = load i64, i64* %other, align 8
%9 = and i64 %8, 63
%10 = ashr i64 %7, %9
store i64 %10, i64* %5, align 8
%11 = bitcast i64* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %11)
%12 = bitcast %"num::Wrapping<isize>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<isize>"* %sret_slot to i64*
%14 = load i64, i64* %13, align 8
ret i64 %14
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping25Wrapping$LT$usize$GT$.Add3add20hf9ea7339dd696c3fyabE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<usize>"
%self = alloca %"num::Wrapping<usize>"
%other = alloca %"num::Wrapping<usize>"
%2 = bitcast %"num::Wrapping<usize>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<usize>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<usize>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<usize>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %self, i32 0, i32 0
%8 = load i64, i64* %7, align 8
%9 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %other, i32 0, i32 0
%10 = load i64, i64* %9, align 8
%11 = call i64 @_ZN3num5usize12wrapping_add20h370dc824fd72c8c34chE(i64 %8, i64 %10)
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<usize>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<usize>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<usize>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: inlinehint uwtable
define i64 @_ZN3num5usize12wrapping_add20h370dc824fd72c8c34chE(i64, i64) unnamed_addr #0 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%2 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store i64 %0, i64* %self, align 8
%3 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %rhs, align 8
%4 = load i64, i64* %self, align 8
%5 = load i64, i64* %rhs, align 8
%6 = add i64 %4, %5
%7 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %8)
ret i64 %6
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping25Wrapping$LT$usize$GT$.Sub3sub20h6ec3964204aa3e2dZabE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<usize>"
%self = alloca %"num::Wrapping<usize>"
%other = alloca %"num::Wrapping<usize>"
%2 = bitcast %"num::Wrapping<usize>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<usize>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<usize>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<usize>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %self, i32 0, i32 0
%8 = load i64, i64* %7, align 8
%9 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %other, i32 0, i32 0
%10 = load i64, i64* %9, align 8
%11 = call i64 @_ZN3num5usize12wrapping_sub20h5a18f374b5302817kdhE(i64 %8, i64 %10)
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<usize>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<usize>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<usize>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: inlinehint uwtable
define i64 @_ZN3num5usize12wrapping_sub20h5a18f374b5302817kdhE(i64, i64) unnamed_addr #0 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%2 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store i64 %0, i64* %self, align 8
%3 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %rhs, align 8
%4 = load i64, i64* %self, align 8
%5 = load i64, i64* %rhs, align 8
%6 = sub i64 %4, %5
%7 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %8)
ret i64 %6
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping25Wrapping$LT$usize$GT$.Mul3mul20h6ddbc1241fc5c77fqbbE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<usize>"
%self = alloca %"num::Wrapping<usize>"
%other = alloca %"num::Wrapping<usize>"
%2 = bitcast %"num::Wrapping<usize>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<usize>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<usize>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<usize>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %self, i32 0, i32 0
%8 = load i64, i64* %7, align 8
%9 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %other, i32 0, i32 0
%10 = load i64, i64* %9, align 8
%11 = call i64 @_ZN3num5usize12wrapping_mul20hcf574084be18b68aAdhE(i64 %8, i64 %10)
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<usize>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<usize>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<usize>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: inlinehint uwtable
define i64 @_ZN3num5usize12wrapping_mul20hcf574084be18b68aAdhE(i64, i64) unnamed_addr #0 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%2 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store i64 %0, i64* %self, align 8
%3 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %rhs, align 8
%4 = load i64, i64* %self, align 8
%5 = load i64, i64* %rhs, align 8
%6 = mul i64 %4, %5
%7 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %8)
ret i64 %6
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping25Wrapping$LT$usize$GT$.Not3not20h60d23bf3e461859dRbbE"(i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<usize>"
%self = alloca %"num::Wrapping<usize>"
%1 = bitcast %"num::Wrapping<usize>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
%2 = bitcast %"num::Wrapping<usize>"* %self to i64*
store i64 %0, i64* %2, align 8
%3 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %sret_slot, i32 0, i32 0
%4 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %self, i32 0, i32 0
%5 = load i64, i64* %4, align 8
%6 = xor i64 %5, -1
store i64 %6, i64* %3, align 8
%7 = bitcast %"num::Wrapping<usize>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = bitcast %"num::Wrapping<usize>"* %sret_slot to i64*
%9 = load i64, i64* %8, align 8
ret i64 %9
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping28Wrapping$LT$usize$GT$.BitXor6bitxor20h84bbe71272127282ccbE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<usize>"
%self = alloca %"num::Wrapping<usize>"
%other = alloca %"num::Wrapping<usize>"
%2 = bitcast %"num::Wrapping<usize>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<usize>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<usize>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<usize>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %other, i32 0, i32 0
%9 = load i64, i64* %7, align 8
%10 = load i64, i64* %8, align 8
%11 = xor i64 %9, %10
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<usize>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<usize>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<usize>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping27Wrapping$LT$usize$GT$.BitOr5bitor20h470c347d2940e11fDcbE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<usize>"
%self = alloca %"num::Wrapping<usize>"
%other = alloca %"num::Wrapping<usize>"
%2 = bitcast %"num::Wrapping<usize>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<usize>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<usize>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<usize>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %other, i32 0, i32 0
%9 = load i64, i64* %7, align 8
%10 = load i64, i64* %8, align 8
%11 = or i64 %9, %10
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<usize>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<usize>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<usize>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping28Wrapping$LT$usize$GT$.BitAnd6bitand20hd88cc205058eaf2a4cbE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<usize>"
%self = alloca %"num::Wrapping<usize>"
%other = alloca %"num::Wrapping<usize>"
%2 = bitcast %"num::Wrapping<usize>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<usize>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<usize>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<usize>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<usize>", %"num::Wrapping<usize>"* %other, i32 0, i32 0
%9 = load i64, i64* %7, align 8
%10 = load i64, i64* %8, align 8
%11 = and i64 %9, %10
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<usize>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<usize>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<usize>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: alwaysinline uwtable
define i8 @"_ZN3num8wrapping22Wrapping$LT$u8$GT$.Add3add20hc5bf686140774b05vdbE"(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u8>"
%self = alloca %"num::Wrapping<u8>"
%other = alloca %"num::Wrapping<u8>"
%2 = bitcast %"num::Wrapping<u8>"* %self to i8*
call void @llvm.lifetime.start(i64 1, i8* %2)
%3 = bitcast %"num::Wrapping<u8>"* %self to i8*
store i8 %0, i8* %3, align 1
%4 = bitcast %"num::Wrapping<u8>"* %other to i8*
call void @llvm.lifetime.start(i64 1, i8* %4)
%5 = bitcast %"num::Wrapping<u8>"* %other to i8*
store i8 %1, i8* %5, align 1
%6 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %self, i32 0, i32 0
%8 = load i8, i8* %7, align 1
%9 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %other, i32 0, i32 0
%10 = load i8, i8* %9, align 1
%11 = call i8 @_ZN3num2u812wrapping_add20hc8a32ac693713172ysgE(i8 %8, i8 %10)
store i8 %11, i8* %6, align 1
%12 = bitcast %"num::Wrapping<u8>"* %other to i8*
call void @llvm.lifetime.end(i64 1, i8* %12)
%13 = bitcast %"num::Wrapping<u8>"* %self to i8*
call void @llvm.lifetime.end(i64 1, i8* %13)
%14 = bitcast %"num::Wrapping<u8>"* %sret_slot to i8*
%15 = load i8, i8* %14, align 1
ret i8 %15
}
; Function Attrs: inlinehint uwtable
define i8 @_ZN3num2u812wrapping_add20hc8a32ac693713172ysgE(i8, i8) unnamed_addr #0 {
entry-block:
%self = alloca i8
%rhs = alloca i8
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
call void @llvm.lifetime.start(i64 1, i8* %rhs)
store i8 %1, i8* %rhs, align 1
%2 = load i8, i8* %self, align 1
%3 = load i8, i8* %rhs, align 1
%4 = add i8 %2, %3
call void @llvm.lifetime.end(i64 1, i8* %rhs)
call void @llvm.lifetime.end(i64 1, i8* %self)
ret i8 %4
}
; Function Attrs: alwaysinline uwtable
define i8 @"_ZN3num8wrapping22Wrapping$LT$u8$GT$.Sub3sub20h395181ccc152f78cWdbE"(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u8>"
%self = alloca %"num::Wrapping<u8>"
%other = alloca %"num::Wrapping<u8>"
%2 = bitcast %"num::Wrapping<u8>"* %self to i8*
call void @llvm.lifetime.start(i64 1, i8* %2)
%3 = bitcast %"num::Wrapping<u8>"* %self to i8*
store i8 %0, i8* %3, align 1
%4 = bitcast %"num::Wrapping<u8>"* %other to i8*
call void @llvm.lifetime.start(i64 1, i8* %4)
%5 = bitcast %"num::Wrapping<u8>"* %other to i8*
store i8 %1, i8* %5, align 1
%6 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %self, i32 0, i32 0
%8 = load i8, i8* %7, align 1
%9 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %other, i32 0, i32 0
%10 = load i8, i8* %9, align 1
%11 = call i8 @_ZN3num2u812wrapping_sub20h2545170fa5cfa26dOsgE(i8 %8, i8 %10)
store i8 %11, i8* %6, align 1
%12 = bitcast %"num::Wrapping<u8>"* %other to i8*
call void @llvm.lifetime.end(i64 1, i8* %12)
%13 = bitcast %"num::Wrapping<u8>"* %self to i8*
call void @llvm.lifetime.end(i64 1, i8* %13)
%14 = bitcast %"num::Wrapping<u8>"* %sret_slot to i8*
%15 = load i8, i8* %14, align 1
ret i8 %15
}
; Function Attrs: inlinehint uwtable
define i8 @_ZN3num2u812wrapping_sub20h2545170fa5cfa26dOsgE(i8, i8) unnamed_addr #0 {
entry-block:
%self = alloca i8
%rhs = alloca i8
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
call void @llvm.lifetime.start(i64 1, i8* %rhs)
store i8 %1, i8* %rhs, align 1
%2 = load i8, i8* %self, align 1
%3 = load i8, i8* %rhs, align 1
%4 = sub i8 %2, %3
call void @llvm.lifetime.end(i64 1, i8* %rhs)
call void @llvm.lifetime.end(i64 1, i8* %self)
ret i8 %4
}
; Function Attrs: alwaysinline uwtable
define i8 @"_ZN3num8wrapping22Wrapping$LT$u8$GT$.Mul3mul20h09eac29c13904288nebE"(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u8>"
%self = alloca %"num::Wrapping<u8>"
%other = alloca %"num::Wrapping<u8>"
%2 = bitcast %"num::Wrapping<u8>"* %self to i8*
call void @llvm.lifetime.start(i64 1, i8* %2)
%3 = bitcast %"num::Wrapping<u8>"* %self to i8*
store i8 %0, i8* %3, align 1
%4 = bitcast %"num::Wrapping<u8>"* %other to i8*
call void @llvm.lifetime.start(i64 1, i8* %4)
%5 = bitcast %"num::Wrapping<u8>"* %other to i8*
store i8 %1, i8* %5, align 1
%6 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %self, i32 0, i32 0
%8 = load i8, i8* %7, align 1
%9 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %other, i32 0, i32 0
%10 = load i8, i8* %9, align 1
%11 = call i8 @_ZN3num2u812wrapping_mul20h2a57a61fc02570524sgE(i8 %8, i8 %10)
store i8 %11, i8* %6, align 1
%12 = bitcast %"num::Wrapping<u8>"* %other to i8*
call void @llvm.lifetime.end(i64 1, i8* %12)
%13 = bitcast %"num::Wrapping<u8>"* %self to i8*
call void @llvm.lifetime.end(i64 1, i8* %13)
%14 = bitcast %"num::Wrapping<u8>"* %sret_slot to i8*
%15 = load i8, i8* %14, align 1
ret i8 %15
}
; Function Attrs: inlinehint uwtable
define i8 @_ZN3num2u812wrapping_mul20h2a57a61fc02570524sgE(i8, i8) unnamed_addr #0 {
entry-block:
%self = alloca i8
%rhs = alloca i8
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
call void @llvm.lifetime.start(i64 1, i8* %rhs)
store i8 %1, i8* %rhs, align 1
%2 = load i8, i8* %self, align 1
%3 = load i8, i8* %rhs, align 1
%4 = mul i8 %2, %3
call void @llvm.lifetime.end(i64 1, i8* %rhs)
call void @llvm.lifetime.end(i64 1, i8* %self)
ret i8 %4
}
; Function Attrs: alwaysinline uwtable
define i8 @"_ZN3num8wrapping22Wrapping$LT$u8$GT$.Not3not20hc7f9d2d7d5697e37OebE"(i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u8>"
%self = alloca %"num::Wrapping<u8>"
%1 = bitcast %"num::Wrapping<u8>"* %self to i8*
call void @llvm.lifetime.start(i64 1, i8* %1)
%2 = bitcast %"num::Wrapping<u8>"* %self to i8*
store i8 %0, i8* %2, align 1
%3 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %sret_slot, i32 0, i32 0
%4 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %self, i32 0, i32 0
%5 = load i8, i8* %4, align 1
%6 = xor i8 %5, -1
store i8 %6, i8* %3, align 1
%7 = bitcast %"num::Wrapping<u8>"* %self to i8*
call void @llvm.lifetime.end(i64 1, i8* %7)
%8 = bitcast %"num::Wrapping<u8>"* %sret_slot to i8*
%9 = load i8, i8* %8, align 1
ret i8 %9
}
; Function Attrs: alwaysinline uwtable
define i8 @"_ZN3num8wrapping25Wrapping$LT$u8$GT$.BitXor6bitxor20h90b3479f0c2790c29ebE"(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u8>"
%self = alloca %"num::Wrapping<u8>"
%other = alloca %"num::Wrapping<u8>"
%2 = bitcast %"num::Wrapping<u8>"* %self to i8*
call void @llvm.lifetime.start(i64 1, i8* %2)
%3 = bitcast %"num::Wrapping<u8>"* %self to i8*
store i8 %0, i8* %3, align 1
%4 = bitcast %"num::Wrapping<u8>"* %other to i8*
call void @llvm.lifetime.start(i64 1, i8* %4)
%5 = bitcast %"num::Wrapping<u8>"* %other to i8*
store i8 %1, i8* %5, align 1
%6 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %other, i32 0, i32 0
%9 = load i8, i8* %7, align 1
%10 = load i8, i8* %8, align 1
%11 = xor i8 %9, %10
store i8 %11, i8* %6, align 1
%12 = bitcast %"num::Wrapping<u8>"* %other to i8*
call void @llvm.lifetime.end(i64 1, i8* %12)
%13 = bitcast %"num::Wrapping<u8>"* %self to i8*
call void @llvm.lifetime.end(i64 1, i8* %13)
%14 = bitcast %"num::Wrapping<u8>"* %sret_slot to i8*
%15 = load i8, i8* %14, align 1
ret i8 %15
}
; Function Attrs: alwaysinline uwtable
define i8 @"_ZN3num8wrapping24Wrapping$LT$u8$GT$.BitOr5bitor20h8a20d033dc9bbd12AfbE"(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u8>"
%self = alloca %"num::Wrapping<u8>"
%other = alloca %"num::Wrapping<u8>"
%2 = bitcast %"num::Wrapping<u8>"* %self to i8*
call void @llvm.lifetime.start(i64 1, i8* %2)
%3 = bitcast %"num::Wrapping<u8>"* %self to i8*
store i8 %0, i8* %3, align 1
%4 = bitcast %"num::Wrapping<u8>"* %other to i8*
call void @llvm.lifetime.start(i64 1, i8* %4)
%5 = bitcast %"num::Wrapping<u8>"* %other to i8*
store i8 %1, i8* %5, align 1
%6 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %other, i32 0, i32 0
%9 = load i8, i8* %7, align 1
%10 = load i8, i8* %8, align 1
%11 = or i8 %9, %10
store i8 %11, i8* %6, align 1
%12 = bitcast %"num::Wrapping<u8>"* %other to i8*
call void @llvm.lifetime.end(i64 1, i8* %12)
%13 = bitcast %"num::Wrapping<u8>"* %self to i8*
call void @llvm.lifetime.end(i64 1, i8* %13)
%14 = bitcast %"num::Wrapping<u8>"* %sret_slot to i8*
%15 = load i8, i8* %14, align 1
ret i8 %15
}
; Function Attrs: alwaysinline uwtable
define i8 @"_ZN3num8wrapping25Wrapping$LT$u8$GT$.BitAnd6bitand20h3c0ab9c965d6759d1fbE"(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u8>"
%self = alloca %"num::Wrapping<u8>"
%other = alloca %"num::Wrapping<u8>"
%2 = bitcast %"num::Wrapping<u8>"* %self to i8*
call void @llvm.lifetime.start(i64 1, i8* %2)
%3 = bitcast %"num::Wrapping<u8>"* %self to i8*
store i8 %0, i8* %3, align 1
%4 = bitcast %"num::Wrapping<u8>"* %other to i8*
call void @llvm.lifetime.start(i64 1, i8* %4)
%5 = bitcast %"num::Wrapping<u8>"* %other to i8*
store i8 %1, i8* %5, align 1
%6 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<u8>", %"num::Wrapping<u8>"* %other, i32 0, i32 0
%9 = load i8, i8* %7, align 1
%10 = load i8, i8* %8, align 1
%11 = and i8 %9, %10
store i8 %11, i8* %6, align 1
%12 = bitcast %"num::Wrapping<u8>"* %other to i8*
call void @llvm.lifetime.end(i64 1, i8* %12)
%13 = bitcast %"num::Wrapping<u8>"* %self to i8*
call void @llvm.lifetime.end(i64 1, i8* %13)
%14 = bitcast %"num::Wrapping<u8>"* %sret_slot to i8*
%15 = load i8, i8* %14, align 1
ret i8 %15
}
; Function Attrs: alwaysinline uwtable
define i16 @"_ZN3num8wrapping23Wrapping$LT$u16$GT$.Add3add20h6ac490f919914468sgbE"(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u16>"
%self = alloca %"num::Wrapping<u16>"
%other = alloca %"num::Wrapping<u16>"
%2 = bitcast %"num::Wrapping<u16>"* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
%3 = bitcast %"num::Wrapping<u16>"* %self to i16*
store i16 %0, i16* %3, align 2
%4 = bitcast %"num::Wrapping<u16>"* %other to i8*
call void @llvm.lifetime.start(i64 2, i8* %4)
%5 = bitcast %"num::Wrapping<u16>"* %other to i16*
store i16 %1, i16* %5, align 2
%6 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %self, i32 0, i32 0
%8 = load i16, i16* %7, align 2
%9 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %other, i32 0, i32 0
%10 = load i16, i16* %9, align 2
%11 = call i16 @_ZN3num3u1612wrapping_add20h54caf0e7cdda9b7bbEgE(i16 %8, i16 %10)
store i16 %11, i16* %6, align 2
%12 = bitcast %"num::Wrapping<u16>"* %other to i8*
call void @llvm.lifetime.end(i64 2, i8* %12)
%13 = bitcast %"num::Wrapping<u16>"* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %13)
%14 = bitcast %"num::Wrapping<u16>"* %sret_slot to i16*
%15 = load i16, i16* %14, align 2
ret i16 %15
}
; Function Attrs: inlinehint uwtable
define i16 @_ZN3num3u1612wrapping_add20h54caf0e7cdda9b7bbEgE(i16, i16) unnamed_addr #0 {
entry-block:
%self = alloca i16
%rhs = alloca i16
%2 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
store i16 %0, i16* %self, align 2
%3 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.start(i64 2, i8* %3)
store i16 %1, i16* %rhs, align 2
%4 = load i16, i16* %self, align 2
%5 = load i16, i16* %rhs, align 2
%6 = add i16 %4, %5
%7 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.end(i64 2, i8* %7)
%8 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %8)
ret i16 %6
}
; Function Attrs: alwaysinline uwtable
define i16 @"_ZN3num8wrapping23Wrapping$LT$u16$GT$.Sub3sub20h345a77428c6da3b1TgbE"(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u16>"
%self = alloca %"num::Wrapping<u16>"
%other = alloca %"num::Wrapping<u16>"
%2 = bitcast %"num::Wrapping<u16>"* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
%3 = bitcast %"num::Wrapping<u16>"* %self to i16*
store i16 %0, i16* %3, align 2
%4 = bitcast %"num::Wrapping<u16>"* %other to i8*
call void @llvm.lifetime.start(i64 2, i8* %4)
%5 = bitcast %"num::Wrapping<u16>"* %other to i16*
store i16 %1, i16* %5, align 2
%6 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %self, i32 0, i32 0
%8 = load i16, i16* %7, align 2
%9 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %other, i32 0, i32 0
%10 = load i16, i16* %9, align 2
%11 = call i16 @_ZN3num3u1612wrapping_sub20hacb0852d192dfbf4rEgE(i16 %8, i16 %10)
store i16 %11, i16* %6, align 2
%12 = bitcast %"num::Wrapping<u16>"* %other to i8*
call void @llvm.lifetime.end(i64 2, i8* %12)
%13 = bitcast %"num::Wrapping<u16>"* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %13)
%14 = bitcast %"num::Wrapping<u16>"* %sret_slot to i16*
%15 = load i16, i16* %14, align 2
ret i16 %15
}
; Function Attrs: inlinehint uwtable
define i16 @_ZN3num3u1612wrapping_sub20hacb0852d192dfbf4rEgE(i16, i16) unnamed_addr #0 {
entry-block:
%self = alloca i16
%rhs = alloca i16
%2 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
store i16 %0, i16* %self, align 2
%3 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.start(i64 2, i8* %3)
store i16 %1, i16* %rhs, align 2
%4 = load i16, i16* %self, align 2
%5 = load i16, i16* %rhs, align 2
%6 = sub i16 %4, %5
%7 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.end(i64 2, i8* %7)
%8 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %8)
ret i16 %6
}
; Function Attrs: alwaysinline uwtable
define i16 @"_ZN3num8wrapping23Wrapping$LT$u16$GT$.Mul3mul20ha19313a4fd4e77a7khbE"(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u16>"
%self = alloca %"num::Wrapping<u16>"
%other = alloca %"num::Wrapping<u16>"
%2 = bitcast %"num::Wrapping<u16>"* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
%3 = bitcast %"num::Wrapping<u16>"* %self to i16*
store i16 %0, i16* %3, align 2
%4 = bitcast %"num::Wrapping<u16>"* %other to i8*
call void @llvm.lifetime.start(i64 2, i8* %4)
%5 = bitcast %"num::Wrapping<u16>"* %other to i16*
store i16 %1, i16* %5, align 2
%6 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %self, i32 0, i32 0
%8 = load i16, i16* %7, align 2
%9 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %other, i32 0, i32 0
%10 = load i16, i16* %9, align 2
%11 = call i16 @_ZN3num3u1612wrapping_mul20hb7b1004e799a4d74HEgE(i16 %8, i16 %10)
store i16 %11, i16* %6, align 2
%12 = bitcast %"num::Wrapping<u16>"* %other to i8*
call void @llvm.lifetime.end(i64 2, i8* %12)
%13 = bitcast %"num::Wrapping<u16>"* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %13)
%14 = bitcast %"num::Wrapping<u16>"* %sret_slot to i16*
%15 = load i16, i16* %14, align 2
ret i16 %15
}
; Function Attrs: inlinehint uwtable
define i16 @_ZN3num3u1612wrapping_mul20hb7b1004e799a4d74HEgE(i16, i16) unnamed_addr #0 {
entry-block:
%self = alloca i16
%rhs = alloca i16
%2 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
store i16 %0, i16* %self, align 2
%3 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.start(i64 2, i8* %3)
store i16 %1, i16* %rhs, align 2
%4 = load i16, i16* %self, align 2
%5 = load i16, i16* %rhs, align 2
%6 = mul i16 %4, %5
%7 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.end(i64 2, i8* %7)
%8 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %8)
ret i16 %6
}
; Function Attrs: alwaysinline uwtable
define i16 @"_ZN3num8wrapping23Wrapping$LT$u16$GT$.Not3not20heba1a0e444ccc4bbLhbE"(i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u16>"
%self = alloca %"num::Wrapping<u16>"
%1 = bitcast %"num::Wrapping<u16>"* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %1)
%2 = bitcast %"num::Wrapping<u16>"* %self to i16*
store i16 %0, i16* %2, align 2
%3 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %sret_slot, i32 0, i32 0
%4 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %self, i32 0, i32 0
%5 = load i16, i16* %4, align 2
%6 = xor i16 %5, -1
store i16 %6, i16* %3, align 2
%7 = bitcast %"num::Wrapping<u16>"* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %7)
%8 = bitcast %"num::Wrapping<u16>"* %sret_slot to i16*
%9 = load i16, i16* %8, align 2
ret i16 %9
}
; Function Attrs: alwaysinline uwtable
define i16 @"_ZN3num8wrapping26Wrapping$LT$u16$GT$.BitXor6bitxor20h008cc82624f08a4d6hbE"(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u16>"
%self = alloca %"num::Wrapping<u16>"
%other = alloca %"num::Wrapping<u16>"
%2 = bitcast %"num::Wrapping<u16>"* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
%3 = bitcast %"num::Wrapping<u16>"* %self to i16*
store i16 %0, i16* %3, align 2
%4 = bitcast %"num::Wrapping<u16>"* %other to i8*
call void @llvm.lifetime.start(i64 2, i8* %4)
%5 = bitcast %"num::Wrapping<u16>"* %other to i16*
store i16 %1, i16* %5, align 2
%6 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %other, i32 0, i32 0
%9 = load i16, i16* %7, align 2
%10 = load i16, i16* %8, align 2
%11 = xor i16 %9, %10
store i16 %11, i16* %6, align 2
%12 = bitcast %"num::Wrapping<u16>"* %other to i8*
call void @llvm.lifetime.end(i64 2, i8* %12)
%13 = bitcast %"num::Wrapping<u16>"* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %13)
%14 = bitcast %"num::Wrapping<u16>"* %sret_slot to i16*
%15 = load i16, i16* %14, align 2
ret i16 %15
}
; Function Attrs: alwaysinline uwtable
define i16 @"_ZN3num8wrapping25Wrapping$LT$u16$GT$.BitOr5bitor20h90f5649e2b099697xibE"(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u16>"
%self = alloca %"num::Wrapping<u16>"
%other = alloca %"num::Wrapping<u16>"
%2 = bitcast %"num::Wrapping<u16>"* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
%3 = bitcast %"num::Wrapping<u16>"* %self to i16*
store i16 %0, i16* %3, align 2
%4 = bitcast %"num::Wrapping<u16>"* %other to i8*
call void @llvm.lifetime.start(i64 2, i8* %4)
%5 = bitcast %"num::Wrapping<u16>"* %other to i16*
store i16 %1, i16* %5, align 2
%6 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %other, i32 0, i32 0
%9 = load i16, i16* %7, align 2
%10 = load i16, i16* %8, align 2
%11 = or i16 %9, %10
store i16 %11, i16* %6, align 2
%12 = bitcast %"num::Wrapping<u16>"* %other to i8*
call void @llvm.lifetime.end(i64 2, i8* %12)
%13 = bitcast %"num::Wrapping<u16>"* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %13)
%14 = bitcast %"num::Wrapping<u16>"* %sret_slot to i16*
%15 = load i16, i16* %14, align 2
ret i16 %15
}
; Function Attrs: alwaysinline uwtable
define i16 @"_ZN3num8wrapping26Wrapping$LT$u16$GT$.BitAnd6bitand20h7e0fc9c8b7e8f1ceYibE"(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u16>"
%self = alloca %"num::Wrapping<u16>"
%other = alloca %"num::Wrapping<u16>"
%2 = bitcast %"num::Wrapping<u16>"* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
%3 = bitcast %"num::Wrapping<u16>"* %self to i16*
store i16 %0, i16* %3, align 2
%4 = bitcast %"num::Wrapping<u16>"* %other to i8*
call void @llvm.lifetime.start(i64 2, i8* %4)
%5 = bitcast %"num::Wrapping<u16>"* %other to i16*
store i16 %1, i16* %5, align 2
%6 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<u16>", %"num::Wrapping<u16>"* %other, i32 0, i32 0
%9 = load i16, i16* %7, align 2
%10 = load i16, i16* %8, align 2
%11 = and i16 %9, %10
store i16 %11, i16* %6, align 2
%12 = bitcast %"num::Wrapping<u16>"* %other to i8*
call void @llvm.lifetime.end(i64 2, i8* %12)
%13 = bitcast %"num::Wrapping<u16>"* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %13)
%14 = bitcast %"num::Wrapping<u16>"* %sret_slot to i16*
%15 = load i16, i16* %14, align 2
ret i16 %15
}
; Function Attrs: alwaysinline uwtable
define i32 @"_ZN3num8wrapping23Wrapping$LT$u32$GT$.Add3add20h3722a265a93beddfpjbE"(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u32>"
%self = alloca %"num::Wrapping<u32>"
%other = alloca %"num::Wrapping<u32>"
%2 = bitcast %"num::Wrapping<u32>"* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
%3 = bitcast %"num::Wrapping<u32>"* %self to i32*
store i32 %0, i32* %3, align 4
%4 = bitcast %"num::Wrapping<u32>"* %other to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
%5 = bitcast %"num::Wrapping<u32>"* %other to i32*
store i32 %1, i32* %5, align 4
%6 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %self, i32 0, i32 0
%8 = load i32, i32* %7, align 4
%9 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %other, i32 0, i32 0
%10 = load i32, i32* %9, align 4
%11 = call i32 @_ZN3num3u3212wrapping_add20h39718c532b7e77c7OPgE(i32 %8, i32 %10)
store i32 %11, i32* %6, align 4
%12 = bitcast %"num::Wrapping<u32>"* %other to i8*
call void @llvm.lifetime.end(i64 4, i8* %12)
%13 = bitcast %"num::Wrapping<u32>"* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %13)
%14 = bitcast %"num::Wrapping<u32>"* %sret_slot to i32*
%15 = load i32, i32* %14, align 4
ret i32 %15
}
; Function Attrs: inlinehint uwtable
define i32 @_ZN3num3u3212wrapping_add20h39718c532b7e77c7OPgE(i32, i32) unnamed_addr #0 {
entry-block:
%self = alloca i32
%rhs = alloca i32
%2 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %0, i32* %self, align 4
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = load i32, i32* %self, align 4
%5 = load i32, i32* %rhs, align 4
%6 = add i32 %4, %5
%7 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %7)
%8 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %8)
ret i32 %6
}
; Function Attrs: alwaysinline uwtable
define i32 @"_ZN3num8wrapping23Wrapping$LT$u32$GT$.Sub3sub20h4d60290545701494QjbE"(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u32>"
%self = alloca %"num::Wrapping<u32>"
%other = alloca %"num::Wrapping<u32>"
%2 = bitcast %"num::Wrapping<u32>"* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
%3 = bitcast %"num::Wrapping<u32>"* %self to i32*
store i32 %0, i32* %3, align 4
%4 = bitcast %"num::Wrapping<u32>"* %other to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
%5 = bitcast %"num::Wrapping<u32>"* %other to i32*
store i32 %1, i32* %5, align 4
%6 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %self, i32 0, i32 0
%8 = load i32, i32* %7, align 4
%9 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %other, i32 0, i32 0
%10 = load i32, i32* %9, align 4
%11 = call i32 @_ZN3num3u3212wrapping_sub20h882c8c0558af65ac4PgE(i32 %8, i32 %10)
store i32 %11, i32* %6, align 4
%12 = bitcast %"num::Wrapping<u32>"* %other to i8*
call void @llvm.lifetime.end(i64 4, i8* %12)
%13 = bitcast %"num::Wrapping<u32>"* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %13)
%14 = bitcast %"num::Wrapping<u32>"* %sret_slot to i32*
%15 = load i32, i32* %14, align 4
ret i32 %15
}
; Function Attrs: inlinehint uwtable
define i32 @_ZN3num3u3212wrapping_sub20h882c8c0558af65ac4PgE(i32, i32) unnamed_addr #0 {
entry-block:
%self = alloca i32
%rhs = alloca i32
%2 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %0, i32* %self, align 4
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = load i32, i32* %self, align 4
%5 = load i32, i32* %rhs, align 4
%6 = sub i32 %4, %5
%7 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %7)
%8 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %8)
ret i32 %6
}
; Function Attrs: alwaysinline uwtable
define i32 @"_ZN3num8wrapping23Wrapping$LT$u32$GT$.Mul3mul20h099df974307af8dahkbE"(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u32>"
%self = alloca %"num::Wrapping<u32>"
%other = alloca %"num::Wrapping<u32>"
%2 = bitcast %"num::Wrapping<u32>"* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
%3 = bitcast %"num::Wrapping<u32>"* %self to i32*
store i32 %0, i32* %3, align 4
%4 = bitcast %"num::Wrapping<u32>"* %other to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
%5 = bitcast %"num::Wrapping<u32>"* %other to i32*
store i32 %1, i32* %5, align 4
%6 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %self, i32 0, i32 0
%8 = load i32, i32* %7, align 4
%9 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %other, i32 0, i32 0
%10 = load i32, i32* %9, align 4
%11 = call i32 @_ZN3num3u3212wrapping_mul20hd46451d697eebbabkQgE(i32 %8, i32 %10)
store i32 %11, i32* %6, align 4
%12 = bitcast %"num::Wrapping<u32>"* %other to i8*
call void @llvm.lifetime.end(i64 4, i8* %12)
%13 = bitcast %"num::Wrapping<u32>"* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %13)
%14 = bitcast %"num::Wrapping<u32>"* %sret_slot to i32*
%15 = load i32, i32* %14, align 4
ret i32 %15
}
; Function Attrs: inlinehint uwtable
define i32 @_ZN3num3u3212wrapping_mul20hd46451d697eebbabkQgE(i32, i32) unnamed_addr #0 {
entry-block:
%self = alloca i32
%rhs = alloca i32
%2 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %0, i32* %self, align 4
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = load i32, i32* %self, align 4
%5 = load i32, i32* %rhs, align 4
%6 = mul i32 %4, %5
%7 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %7)
%8 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %8)
ret i32 %6
}
; Function Attrs: alwaysinline uwtable
define i32 @"_ZN3num8wrapping23Wrapping$LT$u32$GT$.Not3not20h97e42d070d85b7c2IkbE"(i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u32>"
%self = alloca %"num::Wrapping<u32>"
%1 = bitcast %"num::Wrapping<u32>"* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %1)
%2 = bitcast %"num::Wrapping<u32>"* %self to i32*
store i32 %0, i32* %2, align 4
%3 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %sret_slot, i32 0, i32 0
%4 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %self, i32 0, i32 0
%5 = load i32, i32* %4, align 4
%6 = xor i32 %5, -1
store i32 %6, i32* %3, align 4
%7 = bitcast %"num::Wrapping<u32>"* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %7)
%8 = bitcast %"num::Wrapping<u32>"* %sret_slot to i32*
%9 = load i32, i32* %8, align 4
ret i32 %9
}
; Function Attrs: alwaysinline uwtable
define i32 @"_ZN3num8wrapping26Wrapping$LT$u32$GT$.BitXor6bitxor20hcb1ed8169a4a2e9a3kbE"(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u32>"
%self = alloca %"num::Wrapping<u32>"
%other = alloca %"num::Wrapping<u32>"
%2 = bitcast %"num::Wrapping<u32>"* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
%3 = bitcast %"num::Wrapping<u32>"* %self to i32*
store i32 %0, i32* %3, align 4
%4 = bitcast %"num::Wrapping<u32>"* %other to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
%5 = bitcast %"num::Wrapping<u32>"* %other to i32*
store i32 %1, i32* %5, align 4
%6 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %other, i32 0, i32 0
%9 = load i32, i32* %7, align 4
%10 = load i32, i32* %8, align 4
%11 = xor i32 %9, %10
store i32 %11, i32* %6, align 4
%12 = bitcast %"num::Wrapping<u32>"* %other to i8*
call void @llvm.lifetime.end(i64 4, i8* %12)
%13 = bitcast %"num::Wrapping<u32>"* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %13)
%14 = bitcast %"num::Wrapping<u32>"* %sret_slot to i32*
%15 = load i32, i32* %14, align 4
ret i32 %15
}
; Function Attrs: alwaysinline uwtable
define i32 @"_ZN3num8wrapping25Wrapping$LT$u32$GT$.BitOr5bitor20hda13ad90a55df1a1ulbE"(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u32>"
%self = alloca %"num::Wrapping<u32>"
%other = alloca %"num::Wrapping<u32>"
%2 = bitcast %"num::Wrapping<u32>"* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
%3 = bitcast %"num::Wrapping<u32>"* %self to i32*
store i32 %0, i32* %3, align 4
%4 = bitcast %"num::Wrapping<u32>"* %other to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
%5 = bitcast %"num::Wrapping<u32>"* %other to i32*
store i32 %1, i32* %5, align 4
%6 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %other, i32 0, i32 0
%9 = load i32, i32* %7, align 4
%10 = load i32, i32* %8, align 4
%11 = or i32 %9, %10
store i32 %11, i32* %6, align 4
%12 = bitcast %"num::Wrapping<u32>"* %other to i8*
call void @llvm.lifetime.end(i64 4, i8* %12)
%13 = bitcast %"num::Wrapping<u32>"* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %13)
%14 = bitcast %"num::Wrapping<u32>"* %sret_slot to i32*
%15 = load i32, i32* %14, align 4
ret i32 %15
}
; Function Attrs: alwaysinline uwtable
define i32 @"_ZN3num8wrapping26Wrapping$LT$u32$GT$.BitAnd6bitand20h3d22a441b9241b13VlbE"(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u32>"
%self = alloca %"num::Wrapping<u32>"
%other = alloca %"num::Wrapping<u32>"
%2 = bitcast %"num::Wrapping<u32>"* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
%3 = bitcast %"num::Wrapping<u32>"* %self to i32*
store i32 %0, i32* %3, align 4
%4 = bitcast %"num::Wrapping<u32>"* %other to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
%5 = bitcast %"num::Wrapping<u32>"* %other to i32*
store i32 %1, i32* %5, align 4
%6 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<u32>", %"num::Wrapping<u32>"* %other, i32 0, i32 0
%9 = load i32, i32* %7, align 4
%10 = load i32, i32* %8, align 4
%11 = and i32 %9, %10
store i32 %11, i32* %6, align 4
%12 = bitcast %"num::Wrapping<u32>"* %other to i8*
call void @llvm.lifetime.end(i64 4, i8* %12)
%13 = bitcast %"num::Wrapping<u32>"* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %13)
%14 = bitcast %"num::Wrapping<u32>"* %sret_slot to i32*
%15 = load i32, i32* %14, align 4
ret i32 %15
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping23Wrapping$LT$u64$GT$.Add3add20h77277bc53ea102f0mmbE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u64>"
%self = alloca %"num::Wrapping<u64>"
%other = alloca %"num::Wrapping<u64>"
%2 = bitcast %"num::Wrapping<u64>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<u64>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<u64>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<u64>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %self, i32 0, i32 0
%8 = load i64, i64* %7, align 8
%9 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %other, i32 0, i32 0
%10 = load i64, i64* %9, align 8
%11 = call i64 @_ZN3num3u6412wrapping_add20h14585383ea5422dcr1gE(i64 %8, i64 %10)
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<u64>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<u64>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<u64>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: inlinehint uwtable
define i64 @_ZN3num3u6412wrapping_add20h14585383ea5422dcr1gE(i64, i64) unnamed_addr #0 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%2 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store i64 %0, i64* %self, align 8
%3 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %rhs, align 8
%4 = load i64, i64* %self, align 8
%5 = load i64, i64* %rhs, align 8
%6 = add i64 %4, %5
%7 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %8)
ret i64 %6
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping23Wrapping$LT$u64$GT$.Sub3sub20h5f25cf74142de1b9NmbE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u64>"
%self = alloca %"num::Wrapping<u64>"
%other = alloca %"num::Wrapping<u64>"
%2 = bitcast %"num::Wrapping<u64>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<u64>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<u64>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<u64>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %self, i32 0, i32 0
%8 = load i64, i64* %7, align 8
%9 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %other, i32 0, i32 0
%10 = load i64, i64* %9, align 8
%11 = call i64 @_ZN3num3u6412wrapping_sub20h5498c333f194f6b1H1gE(i64 %8, i64 %10)
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<u64>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<u64>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<u64>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: inlinehint uwtable
define i64 @_ZN3num3u6412wrapping_sub20h5498c333f194f6b1H1gE(i64, i64) unnamed_addr #0 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%2 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store i64 %0, i64* %self, align 8
%3 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %rhs, align 8
%4 = load i64, i64* %self, align 8
%5 = load i64, i64* %rhs, align 8
%6 = sub i64 %4, %5
%7 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %8)
ret i64 %6
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping23Wrapping$LT$u64$GT$.Mul3mul20hfda0e14f23bc18b5enbE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u64>"
%self = alloca %"num::Wrapping<u64>"
%other = alloca %"num::Wrapping<u64>"
%2 = bitcast %"num::Wrapping<u64>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<u64>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<u64>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<u64>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %self, i32 0, i32 0
%8 = load i64, i64* %7, align 8
%9 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %other, i32 0, i32 0
%10 = load i64, i64* %9, align 8
%11 = call i64 @_ZN3num3u6412wrapping_mul20hc6ace60754d0fb10X1gE(i64 %8, i64 %10)
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<u64>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<u64>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<u64>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: inlinehint uwtable
define i64 @_ZN3num3u6412wrapping_mul20hc6ace60754d0fb10X1gE(i64, i64) unnamed_addr #0 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%2 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store i64 %0, i64* %self, align 8
%3 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %rhs, align 8
%4 = load i64, i64* %self, align 8
%5 = load i64, i64* %rhs, align 8
%6 = mul i64 %4, %5
%7 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %8)
ret i64 %6
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping23Wrapping$LT$u64$GT$.Not3not20h0c75c43a41f3a6baFnbE"(i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u64>"
%self = alloca %"num::Wrapping<u64>"
%1 = bitcast %"num::Wrapping<u64>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
%2 = bitcast %"num::Wrapping<u64>"* %self to i64*
store i64 %0, i64* %2, align 8
%3 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %sret_slot, i32 0, i32 0
%4 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %self, i32 0, i32 0
%5 = load i64, i64* %4, align 8
%6 = xor i64 %5, -1
store i64 %6, i64* %3, align 8
%7 = bitcast %"num::Wrapping<u64>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = bitcast %"num::Wrapping<u64>"* %sret_slot to i64*
%9 = load i64, i64* %8, align 8
ret i64 %9
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping26Wrapping$LT$u64$GT$.BitXor6bitxor20h025922fdb3ec6c450nbE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u64>"
%self = alloca %"num::Wrapping<u64>"
%other = alloca %"num::Wrapping<u64>"
%2 = bitcast %"num::Wrapping<u64>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<u64>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<u64>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<u64>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %other, i32 0, i32 0
%9 = load i64, i64* %7, align 8
%10 = load i64, i64* %8, align 8
%11 = xor i64 %9, %10
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<u64>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<u64>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<u64>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping25Wrapping$LT$u64$GT$.BitOr5bitor20h30937a48b9105731robE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u64>"
%self = alloca %"num::Wrapping<u64>"
%other = alloca %"num::Wrapping<u64>"
%2 = bitcast %"num::Wrapping<u64>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<u64>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<u64>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<u64>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %other, i32 0, i32 0
%9 = load i64, i64* %7, align 8
%10 = load i64, i64* %8, align 8
%11 = or i64 %9, %10
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<u64>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<u64>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<u64>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping26Wrapping$LT$u64$GT$.BitAnd6bitand20h5d03a1758618717aSobE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<u64>"
%self = alloca %"num::Wrapping<u64>"
%other = alloca %"num::Wrapping<u64>"
%2 = bitcast %"num::Wrapping<u64>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<u64>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<u64>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<u64>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<u64>", %"num::Wrapping<u64>"* %other, i32 0, i32 0
%9 = load i64, i64* %7, align 8
%10 = load i64, i64* %8, align 8
%11 = and i64 %9, %10
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<u64>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<u64>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<u64>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping25Wrapping$LT$isize$GT$.Add3add20h09065d3a004b1920jpbE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<isize>"
%self = alloca %"num::Wrapping<isize>"
%other = alloca %"num::Wrapping<isize>"
%2 = bitcast %"num::Wrapping<isize>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<isize>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<isize>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<isize>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %self, i32 0, i32 0
%8 = load i64, i64* %7, align 8
%9 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %other, i32 0, i32 0
%10 = load i64, i64* %9, align 8
%11 = call i64 @_ZN3num5isize12wrapping_add20h2b7134a854dddd6bmhgE(i64 %8, i64 %10)
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<isize>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<isize>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<isize>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: inlinehint uwtable
define i64 @_ZN3num5isize12wrapping_add20h2b7134a854dddd6bmhgE(i64, i64) unnamed_addr #0 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%2 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store i64 %0, i64* %self, align 8
%3 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %rhs, align 8
%4 = load i64, i64* %self, align 8
%5 = load i64, i64* %rhs, align 8
%6 = add i64 %4, %5
%7 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %8)
ret i64 %6
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping25Wrapping$LT$isize$GT$.Sub3sub20hd914fc0c58f885f8KpbE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<isize>"
%self = alloca %"num::Wrapping<isize>"
%other = alloca %"num::Wrapping<isize>"
%2 = bitcast %"num::Wrapping<isize>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<isize>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<isize>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<isize>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %self, i32 0, i32 0
%8 = load i64, i64* %7, align 8
%9 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %other, i32 0, i32 0
%10 = load i64, i64* %9, align 8
%11 = call i64 @_ZN3num5isize12wrapping_sub20h49f83e45632bbaaeChgE(i64 %8, i64 %10)
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<isize>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<isize>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<isize>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: inlinehint uwtable
define i64 @_ZN3num5isize12wrapping_sub20h49f83e45632bbaaeChgE(i64, i64) unnamed_addr #0 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%2 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store i64 %0, i64* %self, align 8
%3 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %rhs, align 8
%4 = load i64, i64* %self, align 8
%5 = load i64, i64* %rhs, align 8
%6 = sub i64 %4, %5
%7 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %8)
ret i64 %6
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping25Wrapping$LT$isize$GT$.Mul3mul20h61e4f962db0389b2bqbE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<isize>"
%self = alloca %"num::Wrapping<isize>"
%other = alloca %"num::Wrapping<isize>"
%2 = bitcast %"num::Wrapping<isize>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<isize>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<isize>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<isize>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %self, i32 0, i32 0
%8 = load i64, i64* %7, align 8
%9 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %other, i32 0, i32 0
%10 = load i64, i64* %9, align 8
%11 = call i64 @_ZN3num5isize12wrapping_mul20hb5ed05b02e6a870fShgE(i64 %8, i64 %10)
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<isize>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<isize>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<isize>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: inlinehint uwtable
define i64 @_ZN3num5isize12wrapping_mul20hb5ed05b02e6a870fShgE(i64, i64) unnamed_addr #0 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%2 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store i64 %0, i64* %self, align 8
%3 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %rhs, align 8
%4 = load i64, i64* %self, align 8
%5 = load i64, i64* %rhs, align 8
%6 = mul i64 %4, %5
%7 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %8)
ret i64 %6
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping25Wrapping$LT$isize$GT$.Not3not20hd352b63d443e21ceCqbE"(i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<isize>"
%self = alloca %"num::Wrapping<isize>"
%1 = bitcast %"num::Wrapping<isize>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
%2 = bitcast %"num::Wrapping<isize>"* %self to i64*
store i64 %0, i64* %2, align 8
%3 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %sret_slot, i32 0, i32 0
%4 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %self, i32 0, i32 0
%5 = load i64, i64* %4, align 8
%6 = xor i64 %5, -1
store i64 %6, i64* %3, align 8
%7 = bitcast %"num::Wrapping<isize>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = bitcast %"num::Wrapping<isize>"* %sret_slot to i64*
%9 = load i64, i64* %8, align 8
ret i64 %9
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping28Wrapping$LT$isize$GT$.BitXor6bitxor20h100cfbcf773ddf3cXqbE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<isize>"
%self = alloca %"num::Wrapping<isize>"
%other = alloca %"num::Wrapping<isize>"
%2 = bitcast %"num::Wrapping<isize>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<isize>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<isize>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<isize>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %other, i32 0, i32 0
%9 = load i64, i64* %7, align 8
%10 = load i64, i64* %8, align 8
%11 = xor i64 %9, %10
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<isize>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<isize>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<isize>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping27Wrapping$LT$isize$GT$.BitOr5bitor20h392899cd8aa9017dorbE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<isize>"
%self = alloca %"num::Wrapping<isize>"
%other = alloca %"num::Wrapping<isize>"
%2 = bitcast %"num::Wrapping<isize>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<isize>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<isize>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<isize>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %other, i32 0, i32 0
%9 = load i64, i64* %7, align 8
%10 = load i64, i64* %8, align 8
%11 = or i64 %9, %10
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<isize>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<isize>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<isize>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping28Wrapping$LT$isize$GT$.BitAnd6bitand20h77af85d93959be1dPrbE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<isize>"
%self = alloca %"num::Wrapping<isize>"
%other = alloca %"num::Wrapping<isize>"
%2 = bitcast %"num::Wrapping<isize>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<isize>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<isize>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<isize>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<isize>", %"num::Wrapping<isize>"* %other, i32 0, i32 0
%9 = load i64, i64* %7, align 8
%10 = load i64, i64* %8, align 8
%11 = and i64 %9, %10
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<isize>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<isize>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<isize>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: alwaysinline uwtable
define i8 @"_ZN3num8wrapping22Wrapping$LT$i8$GT$.Add3add20h3c1ffddf640fbed4gsbE"(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i8>"
%self = alloca %"num::Wrapping<i8>"
%other = alloca %"num::Wrapping<i8>"
%2 = bitcast %"num::Wrapping<i8>"* %self to i8*
call void @llvm.lifetime.start(i64 1, i8* %2)
%3 = bitcast %"num::Wrapping<i8>"* %self to i8*
store i8 %0, i8* %3, align 1
%4 = bitcast %"num::Wrapping<i8>"* %other to i8*
call void @llvm.lifetime.start(i64 1, i8* %4)
%5 = bitcast %"num::Wrapping<i8>"* %other to i8*
store i8 %1, i8* %5, align 1
%6 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %self, i32 0, i32 0
%8 = load i8, i8* %7, align 1
%9 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %other, i32 0, i32 0
%10 = load i8, i8* %9, align 1
%11 = call i8 @_ZN3num2i812wrapping_add20ha27f5712e06491c8MAfE(i8 %8, i8 %10)
store i8 %11, i8* %6, align 1
%12 = bitcast %"num::Wrapping<i8>"* %other to i8*
call void @llvm.lifetime.end(i64 1, i8* %12)
%13 = bitcast %"num::Wrapping<i8>"* %self to i8*
call void @llvm.lifetime.end(i64 1, i8* %13)
%14 = bitcast %"num::Wrapping<i8>"* %sret_slot to i8*
%15 = load i8, i8* %14, align 1
ret i8 %15
}
; Function Attrs: inlinehint uwtable
define i8 @_ZN3num2i812wrapping_add20ha27f5712e06491c8MAfE(i8, i8) unnamed_addr #0 {
entry-block:
%self = alloca i8
%rhs = alloca i8
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
call void @llvm.lifetime.start(i64 1, i8* %rhs)
store i8 %1, i8* %rhs, align 1
%2 = load i8, i8* %self, align 1
%3 = load i8, i8* %rhs, align 1
%4 = add i8 %2, %3
call void @llvm.lifetime.end(i64 1, i8* %rhs)
call void @llvm.lifetime.end(i64 1, i8* %self)
ret i8 %4
}
; Function Attrs: alwaysinline uwtable
define i8 @"_ZN3num8wrapping22Wrapping$LT$i8$GT$.Sub3sub20h472ed05a53a51ba7HsbE"(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i8>"
%self = alloca %"num::Wrapping<i8>"
%other = alloca %"num::Wrapping<i8>"
%2 = bitcast %"num::Wrapping<i8>"* %self to i8*
call void @llvm.lifetime.start(i64 1, i8* %2)
%3 = bitcast %"num::Wrapping<i8>"* %self to i8*
store i8 %0, i8* %3, align 1
%4 = bitcast %"num::Wrapping<i8>"* %other to i8*
call void @llvm.lifetime.start(i64 1, i8* %4)
%5 = bitcast %"num::Wrapping<i8>"* %other to i8*
store i8 %1, i8* %5, align 1
%6 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %self, i32 0, i32 0
%8 = load i8, i8* %7, align 1
%9 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %other, i32 0, i32 0
%10 = load i8, i8* %9, align 1
%11 = call i8 @_ZN3num2i812wrapping_sub20h51de74257669001c2AfE(i8 %8, i8 %10)
store i8 %11, i8* %6, align 1
%12 = bitcast %"num::Wrapping<i8>"* %other to i8*
call void @llvm.lifetime.end(i64 1, i8* %12)
%13 = bitcast %"num::Wrapping<i8>"* %self to i8*
call void @llvm.lifetime.end(i64 1, i8* %13)
%14 = bitcast %"num::Wrapping<i8>"* %sret_slot to i8*
%15 = load i8, i8* %14, align 1
ret i8 %15
}
; Function Attrs: inlinehint uwtable
define i8 @_ZN3num2i812wrapping_sub20h51de74257669001c2AfE(i8, i8) unnamed_addr #0 {
entry-block:
%self = alloca i8
%rhs = alloca i8
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
call void @llvm.lifetime.start(i64 1, i8* %rhs)
store i8 %1, i8* %rhs, align 1
%2 = load i8, i8* %self, align 1
%3 = load i8, i8* %rhs, align 1
%4 = sub i8 %2, %3
call void @llvm.lifetime.end(i64 1, i8* %rhs)
call void @llvm.lifetime.end(i64 1, i8* %self)
ret i8 %4
}
; Function Attrs: alwaysinline uwtable
define i8 @"_ZN3num8wrapping22Wrapping$LT$i8$GT$.Mul3mul20hce438926dc23645d8sbE"(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i8>"
%self = alloca %"num::Wrapping<i8>"
%other = alloca %"num::Wrapping<i8>"
%2 = bitcast %"num::Wrapping<i8>"* %self to i8*
call void @llvm.lifetime.start(i64 1, i8* %2)
%3 = bitcast %"num::Wrapping<i8>"* %self to i8*
store i8 %0, i8* %3, align 1
%4 = bitcast %"num::Wrapping<i8>"* %other to i8*
call void @llvm.lifetime.start(i64 1, i8* %4)
%5 = bitcast %"num::Wrapping<i8>"* %other to i8*
store i8 %1, i8* %5, align 1
%6 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %self, i32 0, i32 0
%8 = load i8, i8* %7, align 1
%9 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %other, i32 0, i32 0
%10 = load i8, i8* %9, align 1
%11 = call i8 @_ZN3num2i812wrapping_mul20hbd67f7cc84343087iBfE(i8 %8, i8 %10)
store i8 %11, i8* %6, align 1
%12 = bitcast %"num::Wrapping<i8>"* %other to i8*
call void @llvm.lifetime.end(i64 1, i8* %12)
%13 = bitcast %"num::Wrapping<i8>"* %self to i8*
call void @llvm.lifetime.end(i64 1, i8* %13)
%14 = bitcast %"num::Wrapping<i8>"* %sret_slot to i8*
%15 = load i8, i8* %14, align 1
ret i8 %15
}
; Function Attrs: inlinehint uwtable
define i8 @_ZN3num2i812wrapping_mul20hbd67f7cc84343087iBfE(i8, i8) unnamed_addr #0 {
entry-block:
%self = alloca i8
%rhs = alloca i8
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
call void @llvm.lifetime.start(i64 1, i8* %rhs)
store i8 %1, i8* %rhs, align 1
%2 = load i8, i8* %self, align 1
%3 = load i8, i8* %rhs, align 1
%4 = mul i8 %2, %3
call void @llvm.lifetime.end(i64 1, i8* %rhs)
call void @llvm.lifetime.end(i64 1, i8* %self)
ret i8 %4
}
; Function Attrs: alwaysinline uwtable
define i8 @"_ZN3num8wrapping22Wrapping$LT$i8$GT$.Not3not20hb4fe405a8b8c87d6ztbE"(i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i8>"
%self = alloca %"num::Wrapping<i8>"
%1 = bitcast %"num::Wrapping<i8>"* %self to i8*
call void @llvm.lifetime.start(i64 1, i8* %1)
%2 = bitcast %"num::Wrapping<i8>"* %self to i8*
store i8 %0, i8* %2, align 1
%3 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %sret_slot, i32 0, i32 0
%4 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %self, i32 0, i32 0
%5 = load i8, i8* %4, align 1
%6 = xor i8 %5, -1
store i8 %6, i8* %3, align 1
%7 = bitcast %"num::Wrapping<i8>"* %self to i8*
call void @llvm.lifetime.end(i64 1, i8* %7)
%8 = bitcast %"num::Wrapping<i8>"* %sret_slot to i8*
%9 = load i8, i8* %8, align 1
ret i8 %9
}
; Function Attrs: alwaysinline uwtable
define i8 @"_ZN3num8wrapping25Wrapping$LT$i8$GT$.BitXor6bitxor20hf364d461ca8a5478UtbE"(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i8>"
%self = alloca %"num::Wrapping<i8>"
%other = alloca %"num::Wrapping<i8>"
%2 = bitcast %"num::Wrapping<i8>"* %self to i8*
call void @llvm.lifetime.start(i64 1, i8* %2)
%3 = bitcast %"num::Wrapping<i8>"* %self to i8*
store i8 %0, i8* %3, align 1
%4 = bitcast %"num::Wrapping<i8>"* %other to i8*
call void @llvm.lifetime.start(i64 1, i8* %4)
%5 = bitcast %"num::Wrapping<i8>"* %other to i8*
store i8 %1, i8* %5, align 1
%6 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %other, i32 0, i32 0
%9 = load i8, i8* %7, align 1
%10 = load i8, i8* %8, align 1
%11 = xor i8 %9, %10
store i8 %11, i8* %6, align 1
%12 = bitcast %"num::Wrapping<i8>"* %other to i8*
call void @llvm.lifetime.end(i64 1, i8* %12)
%13 = bitcast %"num::Wrapping<i8>"* %self to i8*
call void @llvm.lifetime.end(i64 1, i8* %13)
%14 = bitcast %"num::Wrapping<i8>"* %sret_slot to i8*
%15 = load i8, i8* %14, align 1
ret i8 %15
}
; Function Attrs: alwaysinline uwtable
define i8 @"_ZN3num8wrapping24Wrapping$LT$i8$GT$.BitOr5bitor20h8c00858826e0af3flubE"(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i8>"
%self = alloca %"num::Wrapping<i8>"
%other = alloca %"num::Wrapping<i8>"
%2 = bitcast %"num::Wrapping<i8>"* %self to i8*
call void @llvm.lifetime.start(i64 1, i8* %2)
%3 = bitcast %"num::Wrapping<i8>"* %self to i8*
store i8 %0, i8* %3, align 1
%4 = bitcast %"num::Wrapping<i8>"* %other to i8*
call void @llvm.lifetime.start(i64 1, i8* %4)
%5 = bitcast %"num::Wrapping<i8>"* %other to i8*
store i8 %1, i8* %5, align 1
%6 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %other, i32 0, i32 0
%9 = load i8, i8* %7, align 1
%10 = load i8, i8* %8, align 1
%11 = or i8 %9, %10
store i8 %11, i8* %6, align 1
%12 = bitcast %"num::Wrapping<i8>"* %other to i8*
call void @llvm.lifetime.end(i64 1, i8* %12)
%13 = bitcast %"num::Wrapping<i8>"* %self to i8*
call void @llvm.lifetime.end(i64 1, i8* %13)
%14 = bitcast %"num::Wrapping<i8>"* %sret_slot to i8*
%15 = load i8, i8* %14, align 1
ret i8 %15
}
; Function Attrs: alwaysinline uwtable
define i8 @"_ZN3num8wrapping25Wrapping$LT$i8$GT$.BitAnd6bitand20hab06f6f2d349e7e0MubE"(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i8>"
%self = alloca %"num::Wrapping<i8>"
%other = alloca %"num::Wrapping<i8>"
%2 = bitcast %"num::Wrapping<i8>"* %self to i8*
call void @llvm.lifetime.start(i64 1, i8* %2)
%3 = bitcast %"num::Wrapping<i8>"* %self to i8*
store i8 %0, i8* %3, align 1
%4 = bitcast %"num::Wrapping<i8>"* %other to i8*
call void @llvm.lifetime.start(i64 1, i8* %4)
%5 = bitcast %"num::Wrapping<i8>"* %other to i8*
store i8 %1, i8* %5, align 1
%6 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<i8>", %"num::Wrapping<i8>"* %other, i32 0, i32 0
%9 = load i8, i8* %7, align 1
%10 = load i8, i8* %8, align 1
%11 = and i8 %9, %10
store i8 %11, i8* %6, align 1
%12 = bitcast %"num::Wrapping<i8>"* %other to i8*
call void @llvm.lifetime.end(i64 1, i8* %12)
%13 = bitcast %"num::Wrapping<i8>"* %self to i8*
call void @llvm.lifetime.end(i64 1, i8* %13)
%14 = bitcast %"num::Wrapping<i8>"* %sret_slot to i8*
%15 = load i8, i8* %14, align 1
ret i8 %15
}
; Function Attrs: alwaysinline uwtable
define i16 @"_ZN3num8wrapping23Wrapping$LT$i16$GT$.Add3add20h9b2daf5f40381cb5dvbE"(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i16>"
%self = alloca %"num::Wrapping<i16>"
%other = alloca %"num::Wrapping<i16>"
%2 = bitcast %"num::Wrapping<i16>"* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
%3 = bitcast %"num::Wrapping<i16>"* %self to i16*
store i16 %0, i16* %3, align 2
%4 = bitcast %"num::Wrapping<i16>"* %other to i8*
call void @llvm.lifetime.start(i64 2, i8* %4)
%5 = bitcast %"num::Wrapping<i16>"* %other to i16*
store i16 %1, i16* %5, align 2
%6 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %self, i32 0, i32 0
%8 = load i16, i16* %7, align 2
%9 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %other, i32 0, i32 0
%10 = load i16, i16* %9, align 2
%11 = call i16 @_ZN3num3i1612wrapping_add20h7ce5dd23fe50704bqLfE(i16 %8, i16 %10)
store i16 %11, i16* %6, align 2
%12 = bitcast %"num::Wrapping<i16>"* %other to i8*
call void @llvm.lifetime.end(i64 2, i8* %12)
%13 = bitcast %"num::Wrapping<i16>"* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %13)
%14 = bitcast %"num::Wrapping<i16>"* %sret_slot to i16*
%15 = load i16, i16* %14, align 2
ret i16 %15
}
; Function Attrs: inlinehint uwtable
define i16 @_ZN3num3i1612wrapping_add20h7ce5dd23fe50704bqLfE(i16, i16) unnamed_addr #0 {
entry-block:
%self = alloca i16
%rhs = alloca i16
%2 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
store i16 %0, i16* %self, align 2
%3 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.start(i64 2, i8* %3)
store i16 %1, i16* %rhs, align 2
%4 = load i16, i16* %self, align 2
%5 = load i16, i16* %rhs, align 2
%6 = add i16 %4, %5
%7 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.end(i64 2, i8* %7)
%8 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %8)
ret i16 %6
}
; Function Attrs: alwaysinline uwtable
define i16 @"_ZN3num8wrapping23Wrapping$LT$i16$GT$.Sub3sub20h91cf597c1007c623EvbE"(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i16>"
%self = alloca %"num::Wrapping<i16>"
%other = alloca %"num::Wrapping<i16>"
%2 = bitcast %"num::Wrapping<i16>"* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
%3 = bitcast %"num::Wrapping<i16>"* %self to i16*
store i16 %0, i16* %3, align 2
%4 = bitcast %"num::Wrapping<i16>"* %other to i8*
call void @llvm.lifetime.start(i64 2, i8* %4)
%5 = bitcast %"num::Wrapping<i16>"* %other to i16*
store i16 %1, i16* %5, align 2
%6 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %self, i32 0, i32 0
%8 = load i16, i16* %7, align 2
%9 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %other, i32 0, i32 0
%10 = load i16, i16* %9, align 2
%11 = call i16 @_ZN3num3i1612wrapping_sub20hc21a8e9d756f104bGLfE(i16 %8, i16 %10)
store i16 %11, i16* %6, align 2
%12 = bitcast %"num::Wrapping<i16>"* %other to i8*
call void @llvm.lifetime.end(i64 2, i8* %12)
%13 = bitcast %"num::Wrapping<i16>"* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %13)
%14 = bitcast %"num::Wrapping<i16>"* %sret_slot to i16*
%15 = load i16, i16* %14, align 2
ret i16 %15
}
; Function Attrs: inlinehint uwtable
define i16 @_ZN3num3i1612wrapping_sub20hc21a8e9d756f104bGLfE(i16, i16) unnamed_addr #0 {
entry-block:
%self = alloca i16
%rhs = alloca i16
%2 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
store i16 %0, i16* %self, align 2
%3 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.start(i64 2, i8* %3)
store i16 %1, i16* %rhs, align 2
%4 = load i16, i16* %self, align 2
%5 = load i16, i16* %rhs, align 2
%6 = sub i16 %4, %5
%7 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.end(i64 2, i8* %7)
%8 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %8)
ret i16 %6
}
; Function Attrs: alwaysinline uwtable
define i16 @"_ZN3num8wrapping23Wrapping$LT$i16$GT$.Mul3mul20h44e14b70bf77b09e5vbE"(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i16>"
%self = alloca %"num::Wrapping<i16>"
%other = alloca %"num::Wrapping<i16>"
%2 = bitcast %"num::Wrapping<i16>"* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
%3 = bitcast %"num::Wrapping<i16>"* %self to i16*
store i16 %0, i16* %3, align 2
%4 = bitcast %"num::Wrapping<i16>"* %other to i8*
call void @llvm.lifetime.start(i64 2, i8* %4)
%5 = bitcast %"num::Wrapping<i16>"* %other to i16*
store i16 %1, i16* %5, align 2
%6 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %self, i32 0, i32 0
%8 = load i16, i16* %7, align 2
%9 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %other, i32 0, i32 0
%10 = load i16, i16* %9, align 2
%11 = call i16 @_ZN3num3i1612wrapping_mul20h939f896eeb8d530cWLfE(i16 %8, i16 %10)
store i16 %11, i16* %6, align 2
%12 = bitcast %"num::Wrapping<i16>"* %other to i8*
call void @llvm.lifetime.end(i64 2, i8* %12)
%13 = bitcast %"num::Wrapping<i16>"* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %13)
%14 = bitcast %"num::Wrapping<i16>"* %sret_slot to i16*
%15 = load i16, i16* %14, align 2
ret i16 %15
}
; Function Attrs: inlinehint uwtable
define i16 @_ZN3num3i1612wrapping_mul20h939f896eeb8d530cWLfE(i16, i16) unnamed_addr #0 {
entry-block:
%self = alloca i16
%rhs = alloca i16
%2 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
store i16 %0, i16* %self, align 2
%3 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.start(i64 2, i8* %3)
store i16 %1, i16* %rhs, align 2
%4 = load i16, i16* %self, align 2
%5 = load i16, i16* %rhs, align 2
%6 = mul i16 %4, %5
%7 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.end(i64 2, i8* %7)
%8 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %8)
ret i16 %6
}
; Function Attrs: alwaysinline uwtable
define i16 @"_ZN3num8wrapping23Wrapping$LT$i16$GT$.Not3not20hc503df88631c3cf7wwbE"(i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i16>"
%self = alloca %"num::Wrapping<i16>"
%1 = bitcast %"num::Wrapping<i16>"* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %1)
%2 = bitcast %"num::Wrapping<i16>"* %self to i16*
store i16 %0, i16* %2, align 2
%3 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %sret_slot, i32 0, i32 0
%4 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %self, i32 0, i32 0
%5 = load i16, i16* %4, align 2
%6 = xor i16 %5, -1
store i16 %6, i16* %3, align 2
%7 = bitcast %"num::Wrapping<i16>"* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %7)
%8 = bitcast %"num::Wrapping<i16>"* %sret_slot to i16*
%9 = load i16, i16* %8, align 2
ret i16 %9
}
; Function Attrs: alwaysinline uwtable
define i16 @"_ZN3num8wrapping26Wrapping$LT$i16$GT$.BitXor6bitxor20h58f39a9c6838ae31RwbE"(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i16>"
%self = alloca %"num::Wrapping<i16>"
%other = alloca %"num::Wrapping<i16>"
%2 = bitcast %"num::Wrapping<i16>"* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
%3 = bitcast %"num::Wrapping<i16>"* %self to i16*
store i16 %0, i16* %3, align 2
%4 = bitcast %"num::Wrapping<i16>"* %other to i8*
call void @llvm.lifetime.start(i64 2, i8* %4)
%5 = bitcast %"num::Wrapping<i16>"* %other to i16*
store i16 %1, i16* %5, align 2
%6 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %other, i32 0, i32 0
%9 = load i16, i16* %7, align 2
%10 = load i16, i16* %8, align 2
%11 = xor i16 %9, %10
store i16 %11, i16* %6, align 2
%12 = bitcast %"num::Wrapping<i16>"* %other to i8*
call void @llvm.lifetime.end(i64 2, i8* %12)
%13 = bitcast %"num::Wrapping<i16>"* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %13)
%14 = bitcast %"num::Wrapping<i16>"* %sret_slot to i16*
%15 = load i16, i16* %14, align 2
ret i16 %15
}
; Function Attrs: alwaysinline uwtable
define i16 @"_ZN3num8wrapping25Wrapping$LT$i16$GT$.BitOr5bitor20hd32b4b0d758a80cfixbE"(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i16>"
%self = alloca %"num::Wrapping<i16>"
%other = alloca %"num::Wrapping<i16>"
%2 = bitcast %"num::Wrapping<i16>"* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
%3 = bitcast %"num::Wrapping<i16>"* %self to i16*
store i16 %0, i16* %3, align 2
%4 = bitcast %"num::Wrapping<i16>"* %other to i8*
call void @llvm.lifetime.start(i64 2, i8* %4)
%5 = bitcast %"num::Wrapping<i16>"* %other to i16*
store i16 %1, i16* %5, align 2
%6 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %other, i32 0, i32 0
%9 = load i16, i16* %7, align 2
%10 = load i16, i16* %8, align 2
%11 = or i16 %9, %10
store i16 %11, i16* %6, align 2
%12 = bitcast %"num::Wrapping<i16>"* %other to i8*
call void @llvm.lifetime.end(i64 2, i8* %12)
%13 = bitcast %"num::Wrapping<i16>"* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %13)
%14 = bitcast %"num::Wrapping<i16>"* %sret_slot to i16*
%15 = load i16, i16* %14, align 2
ret i16 %15
}
; Function Attrs: alwaysinline uwtable
define i16 @"_ZN3num8wrapping26Wrapping$LT$i16$GT$.BitAnd6bitand20hff53c717530cf5dbJxbE"(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i16>"
%self = alloca %"num::Wrapping<i16>"
%other = alloca %"num::Wrapping<i16>"
%2 = bitcast %"num::Wrapping<i16>"* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
%3 = bitcast %"num::Wrapping<i16>"* %self to i16*
store i16 %0, i16* %3, align 2
%4 = bitcast %"num::Wrapping<i16>"* %other to i8*
call void @llvm.lifetime.start(i64 2, i8* %4)
%5 = bitcast %"num::Wrapping<i16>"* %other to i16*
store i16 %1, i16* %5, align 2
%6 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<i16>", %"num::Wrapping<i16>"* %other, i32 0, i32 0
%9 = load i16, i16* %7, align 2
%10 = load i16, i16* %8, align 2
%11 = and i16 %9, %10
store i16 %11, i16* %6, align 2
%12 = bitcast %"num::Wrapping<i16>"* %other to i8*
call void @llvm.lifetime.end(i64 2, i8* %12)
%13 = bitcast %"num::Wrapping<i16>"* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %13)
%14 = bitcast %"num::Wrapping<i16>"* %sret_slot to i16*
%15 = load i16, i16* %14, align 2
ret i16 %15
}
; Function Attrs: alwaysinline uwtable
define i32 @"_ZN3num8wrapping23Wrapping$LT$i32$GT$.Add3add20ha967777bba4981dfaybE"(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i32>"
%self = alloca %"num::Wrapping<i32>"
%other = alloca %"num::Wrapping<i32>"
%2 = bitcast %"num::Wrapping<i32>"* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
%3 = bitcast %"num::Wrapping<i32>"* %self to i32*
store i32 %0, i32* %3, align 4
%4 = bitcast %"num::Wrapping<i32>"* %other to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
%5 = bitcast %"num::Wrapping<i32>"* %other to i32*
store i32 %1, i32* %5, align 4
%6 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %self, i32 0, i32 0
%8 = load i32, i32* %7, align 4
%9 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %other, i32 0, i32 0
%10 = load i32, i32* %9, align 4
%11 = call i32 @_ZN3num3i3212wrapping_add20h5bc37dbb6f4cb18d4VfE(i32 %8, i32 %10)
store i32 %11, i32* %6, align 4
%12 = bitcast %"num::Wrapping<i32>"* %other to i8*
call void @llvm.lifetime.end(i64 4, i8* %12)
%13 = bitcast %"num::Wrapping<i32>"* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %13)
%14 = bitcast %"num::Wrapping<i32>"* %sret_slot to i32*
%15 = load i32, i32* %14, align 4
ret i32 %15
}
; Function Attrs: inlinehint uwtable
define i32 @_ZN3num3i3212wrapping_add20h5bc37dbb6f4cb18d4VfE(i32, i32) unnamed_addr #0 {
entry-block:
%self = alloca i32
%rhs = alloca i32
%2 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %0, i32* %self, align 4
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = load i32, i32* %self, align 4
%5 = load i32, i32* %rhs, align 4
%6 = add i32 %4, %5
%7 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %7)
%8 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %8)
ret i32 %6
}
; Function Attrs: alwaysinline uwtable
define i32 @"_ZN3num8wrapping23Wrapping$LT$i32$GT$.Sub3sub20h7a48794abd0a4dcaBybE"(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i32>"
%self = alloca %"num::Wrapping<i32>"
%other = alloca %"num::Wrapping<i32>"
%2 = bitcast %"num::Wrapping<i32>"* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
%3 = bitcast %"num::Wrapping<i32>"* %self to i32*
store i32 %0, i32* %3, align 4
%4 = bitcast %"num::Wrapping<i32>"* %other to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
%5 = bitcast %"num::Wrapping<i32>"* %other to i32*
store i32 %1, i32* %5, align 4
%6 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %self, i32 0, i32 0
%8 = load i32, i32* %7, align 4
%9 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %other, i32 0, i32 0
%10 = load i32, i32* %9, align 4
%11 = call i32 @_ZN3num3i3212wrapping_sub20h930a2756f3e93c67kWfE(i32 %8, i32 %10)
store i32 %11, i32* %6, align 4
%12 = bitcast %"num::Wrapping<i32>"* %other to i8*
call void @llvm.lifetime.end(i64 4, i8* %12)
%13 = bitcast %"num::Wrapping<i32>"* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %13)
%14 = bitcast %"num::Wrapping<i32>"* %sret_slot to i32*
%15 = load i32, i32* %14, align 4
ret i32 %15
}
; Function Attrs: inlinehint uwtable
define i32 @_ZN3num3i3212wrapping_sub20h930a2756f3e93c67kWfE(i32, i32) unnamed_addr #0 {
entry-block:
%self = alloca i32
%rhs = alloca i32
%2 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %0, i32* %self, align 4
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = load i32, i32* %self, align 4
%5 = load i32, i32* %rhs, align 4
%6 = sub i32 %4, %5
%7 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %7)
%8 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %8)
ret i32 %6
}
; Function Attrs: alwaysinline uwtable
define i32 @"_ZN3num8wrapping23Wrapping$LT$i32$GT$.Mul3mul20h4b756def7434b0b82ybE"(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i32>"
%self = alloca %"num::Wrapping<i32>"
%other = alloca %"num::Wrapping<i32>"
%2 = bitcast %"num::Wrapping<i32>"* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
%3 = bitcast %"num::Wrapping<i32>"* %self to i32*
store i32 %0, i32* %3, align 4
%4 = bitcast %"num::Wrapping<i32>"* %other to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
%5 = bitcast %"num::Wrapping<i32>"* %other to i32*
store i32 %1, i32* %5, align 4
%6 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %self, i32 0, i32 0
%8 = load i32, i32* %7, align 4
%9 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %other, i32 0, i32 0
%10 = load i32, i32* %9, align 4
%11 = call i32 @_ZN3num3i3212wrapping_mul20h6369fd0bdea30f6fAWfE(i32 %8, i32 %10)
store i32 %11, i32* %6, align 4
%12 = bitcast %"num::Wrapping<i32>"* %other to i8*
call void @llvm.lifetime.end(i64 4, i8* %12)
%13 = bitcast %"num::Wrapping<i32>"* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %13)
%14 = bitcast %"num::Wrapping<i32>"* %sret_slot to i32*
%15 = load i32, i32* %14, align 4
ret i32 %15
}
; Function Attrs: inlinehint uwtable
define i32 @_ZN3num3i3212wrapping_mul20h6369fd0bdea30f6fAWfE(i32, i32) unnamed_addr #0 {
entry-block:
%self = alloca i32
%rhs = alloca i32
%2 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %0, i32* %self, align 4
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = load i32, i32* %self, align 4
%5 = load i32, i32* %rhs, align 4
%6 = mul i32 %4, %5
%7 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %7)
%8 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %8)
ret i32 %6
}
; Function Attrs: alwaysinline uwtable
define i32 @"_ZN3num8wrapping23Wrapping$LT$i32$GT$.Not3not20h8e6c51ac31d62052tzbE"(i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i32>"
%self = alloca %"num::Wrapping<i32>"
%1 = bitcast %"num::Wrapping<i32>"* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %1)
%2 = bitcast %"num::Wrapping<i32>"* %self to i32*
store i32 %0, i32* %2, align 4
%3 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %sret_slot, i32 0, i32 0
%4 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %self, i32 0, i32 0
%5 = load i32, i32* %4, align 4
%6 = xor i32 %5, -1
store i32 %6, i32* %3, align 4
%7 = bitcast %"num::Wrapping<i32>"* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %7)
%8 = bitcast %"num::Wrapping<i32>"* %sret_slot to i32*
%9 = load i32, i32* %8, align 4
ret i32 %9
}
; Function Attrs: alwaysinline uwtable
define i32 @"_ZN3num8wrapping26Wrapping$LT$i32$GT$.BitXor6bitxor20h0245dde3f35d2de7OzbE"(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i32>"
%self = alloca %"num::Wrapping<i32>"
%other = alloca %"num::Wrapping<i32>"
%2 = bitcast %"num::Wrapping<i32>"* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
%3 = bitcast %"num::Wrapping<i32>"* %self to i32*
store i32 %0, i32* %3, align 4
%4 = bitcast %"num::Wrapping<i32>"* %other to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
%5 = bitcast %"num::Wrapping<i32>"* %other to i32*
store i32 %1, i32* %5, align 4
%6 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %other, i32 0, i32 0
%9 = load i32, i32* %7, align 4
%10 = load i32, i32* %8, align 4
%11 = xor i32 %9, %10
store i32 %11, i32* %6, align 4
%12 = bitcast %"num::Wrapping<i32>"* %other to i8*
call void @llvm.lifetime.end(i64 4, i8* %12)
%13 = bitcast %"num::Wrapping<i32>"* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %13)
%14 = bitcast %"num::Wrapping<i32>"* %sret_slot to i32*
%15 = load i32, i32* %14, align 4
ret i32 %15
}
; Function Attrs: alwaysinline uwtable
define i32 @"_ZN3num8wrapping25Wrapping$LT$i32$GT$.BitOr5bitor20h5c4b80051aca0181fAbE"(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i32>"
%self = alloca %"num::Wrapping<i32>"
%other = alloca %"num::Wrapping<i32>"
%2 = bitcast %"num::Wrapping<i32>"* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
%3 = bitcast %"num::Wrapping<i32>"* %self to i32*
store i32 %0, i32* %3, align 4
%4 = bitcast %"num::Wrapping<i32>"* %other to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
%5 = bitcast %"num::Wrapping<i32>"* %other to i32*
store i32 %1, i32* %5, align 4
%6 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %other, i32 0, i32 0
%9 = load i32, i32* %7, align 4
%10 = load i32, i32* %8, align 4
%11 = or i32 %9, %10
store i32 %11, i32* %6, align 4
%12 = bitcast %"num::Wrapping<i32>"* %other to i8*
call void @llvm.lifetime.end(i64 4, i8* %12)
%13 = bitcast %"num::Wrapping<i32>"* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %13)
%14 = bitcast %"num::Wrapping<i32>"* %sret_slot to i32*
%15 = load i32, i32* %14, align 4
ret i32 %15
}
; Function Attrs: alwaysinline uwtable
define i32 @"_ZN3num8wrapping26Wrapping$LT$i32$GT$.BitAnd6bitand20h85bdc272fb0f99f5GAbE"(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i32>"
%self = alloca %"num::Wrapping<i32>"
%other = alloca %"num::Wrapping<i32>"
%2 = bitcast %"num::Wrapping<i32>"* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
%3 = bitcast %"num::Wrapping<i32>"* %self to i32*
store i32 %0, i32* %3, align 4
%4 = bitcast %"num::Wrapping<i32>"* %other to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
%5 = bitcast %"num::Wrapping<i32>"* %other to i32*
store i32 %1, i32* %5, align 4
%6 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<i32>", %"num::Wrapping<i32>"* %other, i32 0, i32 0
%9 = load i32, i32* %7, align 4
%10 = load i32, i32* %8, align 4
%11 = and i32 %9, %10
store i32 %11, i32* %6, align 4
%12 = bitcast %"num::Wrapping<i32>"* %other to i8*
call void @llvm.lifetime.end(i64 4, i8* %12)
%13 = bitcast %"num::Wrapping<i32>"* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %13)
%14 = bitcast %"num::Wrapping<i32>"* %sret_slot to i32*
%15 = load i32, i32* %14, align 4
ret i32 %15
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping23Wrapping$LT$i64$GT$.Add3add20h392227c7d0704ad97AbE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i64>"
%self = alloca %"num::Wrapping<i64>"
%other = alloca %"num::Wrapping<i64>"
%2 = bitcast %"num::Wrapping<i64>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<i64>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<i64>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<i64>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %self, i32 0, i32 0
%8 = load i64, i64* %7, align 8
%9 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %other, i32 0, i32 0
%10 = load i64, i64* %9, align 8
%11 = call i64 @_ZN3num3i6412wrapping_add20h7c6b3de5558a4a13I6fE(i64 %8, i64 %10)
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<i64>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<i64>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<i64>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: inlinehint uwtable
define i64 @_ZN3num3i6412wrapping_add20h7c6b3de5558a4a13I6fE(i64, i64) unnamed_addr #0 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%2 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store i64 %0, i64* %self, align 8
%3 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %rhs, align 8
%4 = load i64, i64* %self, align 8
%5 = load i64, i64* %rhs, align 8
%6 = add i64 %4, %5
%7 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %8)
ret i64 %6
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping23Wrapping$LT$i64$GT$.Sub3sub20h327e78fa912016e8yBbE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i64>"
%self = alloca %"num::Wrapping<i64>"
%other = alloca %"num::Wrapping<i64>"
%2 = bitcast %"num::Wrapping<i64>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<i64>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<i64>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<i64>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %self, i32 0, i32 0
%8 = load i64, i64* %7, align 8
%9 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %other, i32 0, i32 0
%10 = load i64, i64* %9, align 8
%11 = call i64 @_ZN3num3i6412wrapping_sub20h2f7a2a48ca48dd47Y6fE(i64 %8, i64 %10)
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<i64>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<i64>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<i64>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: inlinehint uwtable
define i64 @_ZN3num3i6412wrapping_sub20h2f7a2a48ca48dd47Y6fE(i64, i64) unnamed_addr #0 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%2 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store i64 %0, i64* %self, align 8
%3 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %rhs, align 8
%4 = load i64, i64* %self, align 8
%5 = load i64, i64* %rhs, align 8
%6 = sub i64 %4, %5
%7 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %8)
ret i64 %6
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping23Wrapping$LT$i64$GT$.Mul3mul20hc067c51f02cede6fZBbE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i64>"
%self = alloca %"num::Wrapping<i64>"
%other = alloca %"num::Wrapping<i64>"
%2 = bitcast %"num::Wrapping<i64>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<i64>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<i64>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<i64>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %self, i32 0, i32 0
%8 = load i64, i64* %7, align 8
%9 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %other, i32 0, i32 0
%10 = load i64, i64* %9, align 8
%11 = call i64 @_ZN3num3i6412wrapping_mul20he6bc4ca739044300e7fE(i64 %8, i64 %10)
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<i64>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<i64>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<i64>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: inlinehint uwtable
define i64 @_ZN3num3i6412wrapping_mul20he6bc4ca739044300e7fE(i64, i64) unnamed_addr #0 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%2 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store i64 %0, i64* %self, align 8
%3 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %rhs, align 8
%4 = load i64, i64* %self, align 8
%5 = load i64, i64* %rhs, align 8
%6 = mul i64 %4, %5
%7 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %8)
ret i64 %6
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping23Wrapping$LT$i64$GT$.Not3not20hb3c9c2044c6d35d9qCbE"(i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i64>"
%self = alloca %"num::Wrapping<i64>"
%1 = bitcast %"num::Wrapping<i64>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
%2 = bitcast %"num::Wrapping<i64>"* %self to i64*
store i64 %0, i64* %2, align 8
%3 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %sret_slot, i32 0, i32 0
%4 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %self, i32 0, i32 0
%5 = load i64, i64* %4, align 8
%6 = xor i64 %5, -1
store i64 %6, i64* %3, align 8
%7 = bitcast %"num::Wrapping<i64>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = bitcast %"num::Wrapping<i64>"* %sret_slot to i64*
%9 = load i64, i64* %8, align 8
ret i64 %9
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping26Wrapping$LT$i64$GT$.BitXor6bitxor20h9336ec2d368a7b00LCbE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i64>"
%self = alloca %"num::Wrapping<i64>"
%other = alloca %"num::Wrapping<i64>"
%2 = bitcast %"num::Wrapping<i64>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<i64>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<i64>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<i64>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %other, i32 0, i32 0
%9 = load i64, i64* %7, align 8
%10 = load i64, i64* %8, align 8
%11 = xor i64 %9, %10
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<i64>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<i64>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<i64>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping25Wrapping$LT$i64$GT$.BitOr5bitor20h5dd8b1e1b9152f7fcDbE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i64>"
%self = alloca %"num::Wrapping<i64>"
%other = alloca %"num::Wrapping<i64>"
%2 = bitcast %"num::Wrapping<i64>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<i64>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<i64>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<i64>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %other, i32 0, i32 0
%9 = load i64, i64* %7, align 8
%10 = load i64, i64* %8, align 8
%11 = or i64 %9, %10
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<i64>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<i64>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<i64>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: alwaysinline uwtable
define i64 @"_ZN3num8wrapping26Wrapping$LT$i64$GT$.BitAnd6bitand20hfa1aaead6bc8c3d8DDbE"(i64, i64) unnamed_addr #6 {
entry-block:
%sret_slot = alloca %"num::Wrapping<i64>"
%self = alloca %"num::Wrapping<i64>"
%other = alloca %"num::Wrapping<i64>"
%2 = bitcast %"num::Wrapping<i64>"* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
%3 = bitcast %"num::Wrapping<i64>"* %self to i64*
store i64 %0, i64* %3, align 8
%4 = bitcast %"num::Wrapping<i64>"* %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %"num::Wrapping<i64>"* %other to i64*
store i64 %1, i64* %5, align 8
%6 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %sret_slot, i32 0, i32 0
%7 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %self, i32 0, i32 0
%8 = getelementptr inbounds %"num::Wrapping<i64>", %"num::Wrapping<i64>"* %other, i32 0, i32 0
%9 = load i64, i64* %7, align 8
%10 = load i64, i64* %8, align 8
%11 = and i64 %9, %10
store i64 %11, i64* %6, align 8
%12 = bitcast %"num::Wrapping<i64>"* %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = bitcast %"num::Wrapping<i64>"* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast %"num::Wrapping<i64>"* %sret_slot to i64*
%15 = load i64, i64* %14, align 8
ret i64 %15
}
; Function Attrs: alwaysinline uwtable
define i16 @_ZN3num8wrapping17i8.OverflowingOps15overflowing_add20h20121bf2edac2291KEbE(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i8, i8 }
%self = alloca i8
%rhs = alloca i8
%tmp = alloca { i8, i8 }
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
call void @llvm.lifetime.start(i64 1, i8* %rhs)
store i8 %1, i8* %rhs, align 1
%2 = load i8, i8* %self, align 1
%3 = load i8, i8* %rhs, align 1
%4 = call { i8, i1 } @llvm.sadd.with.overflow.i8(i8 %2, i8 %3)
%5 = extractvalue { i8, i1 } %4, 0
%6 = extractvalue { i8, i1 } %4, 1
%7 = zext i1 %6 to i8
%8 = insertvalue { i8, i8 } undef, i8 %5, 0
%9 = insertvalue { i8, i8 } %8, i8 %7, 1
%10 = bitcast { i8, i8 }* %tmp to i8*
call void @llvm.lifetime.start(i64 2, i8* %10)
store { i8, i8 } %9, { i8, i8 }* %tmp
%11 = bitcast { i8, i8 }* %tmp to i16*
%12 = load i16, i16* %11, align 1
%13 = bitcast { i8, i8 }* %sret_slot to i16*
store i16 %12, i16* %13, align 1
call void @llvm.lifetime.end(i64 1, i8* %rhs)
call void @llvm.lifetime.end(i64 1, i8* %self)
%14 = bitcast { i8, i8 }* %sret_slot to i16*
%15 = load i16, i16* %14, align 1
ret i16 %15
}
; Function Attrs: nounwind readnone
declare { i8, i1 } @llvm.sadd.with.overflow.i8(i8, i8) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define i16 @_ZN3num8wrapping17i8.OverflowingOps15overflowing_sub20h5dd0d52a1bba927a2EbE(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i8, i8 }
%self = alloca i8
%rhs = alloca i8
%tmp = alloca { i8, i8 }
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
call void @llvm.lifetime.start(i64 1, i8* %rhs)
store i8 %1, i8* %rhs, align 1
%2 = load i8, i8* %self, align 1
%3 = load i8, i8* %rhs, align 1
%4 = call { i8, i1 } @llvm.ssub.with.overflow.i8(i8 %2, i8 %3)
%5 = extractvalue { i8, i1 } %4, 0
%6 = extractvalue { i8, i1 } %4, 1
%7 = zext i1 %6 to i8
%8 = insertvalue { i8, i8 } undef, i8 %5, 0
%9 = insertvalue { i8, i8 } %8, i8 %7, 1
%10 = bitcast { i8, i8 }* %tmp to i8*
call void @llvm.lifetime.start(i64 2, i8* %10)
store { i8, i8 } %9, { i8, i8 }* %tmp
%11 = bitcast { i8, i8 }* %tmp to i16*
%12 = load i16, i16* %11, align 1
%13 = bitcast { i8, i8 }* %sret_slot to i16*
store i16 %12, i16* %13, align 1
call void @llvm.lifetime.end(i64 1, i8* %rhs)
call void @llvm.lifetime.end(i64 1, i8* %self)
%14 = bitcast { i8, i8 }* %sret_slot to i16*
%15 = load i16, i16* %14, align 1
ret i16 %15
}
; Function Attrs: nounwind readnone
declare { i8, i1 } @llvm.ssub.with.overflow.i8(i8, i8) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define i16 @_ZN3num8wrapping17i8.OverflowingOps15overflowing_mul20hd9a8e716f88d9920kFbE(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i8, i8 }
%self = alloca i8
%rhs = alloca i8
%tmp = alloca { i8, i8 }
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
call void @llvm.lifetime.start(i64 1, i8* %rhs)
store i8 %1, i8* %rhs, align 1
%2 = load i8, i8* %self, align 1
%3 = load i8, i8* %rhs, align 1
%4 = call { i8, i1 } @llvm.smul.with.overflow.i8(i8 %2, i8 %3)
%5 = extractvalue { i8, i1 } %4, 0
%6 = extractvalue { i8, i1 } %4, 1
%7 = zext i1 %6 to i8
%8 = insertvalue { i8, i8 } undef, i8 %5, 0
%9 = insertvalue { i8, i8 } %8, i8 %7, 1
%10 = bitcast { i8, i8 }* %tmp to i8*
call void @llvm.lifetime.start(i64 2, i8* %10)
store { i8, i8 } %9, { i8, i8 }* %tmp
%11 = bitcast { i8, i8 }* %tmp to i16*
%12 = load i16, i16* %11, align 1
%13 = bitcast { i8, i8 }* %sret_slot to i16*
store i16 %12, i16* %13, align 1
call void @llvm.lifetime.end(i64 1, i8* %rhs)
call void @llvm.lifetime.end(i64 1, i8* %self)
%14 = bitcast { i8, i8 }* %sret_slot to i16*
%15 = load i16, i16* %14, align 1
ret i16 %15
}
; Function Attrs: nounwind readnone
declare { i8, i1 } @llvm.smul.with.overflow.i8(i8, i8) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define i16 @_ZN3num8wrapping17i8.OverflowingOps15overflowing_div20h883526b636bbb9a0CFbE(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i8, i8 }
%self = alloca i8
%rhs = alloca i8
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
call void @llvm.lifetime.start(i64 1, i8* %rhs)
store i8 %1, i8* %rhs, align 1
%2 = load i8, i8* %self, align 1
%3 = icmp eq i8 %2, -128
br i1 %3, label %before_rhs, label %join
join: ; preds = %before_rhs, %entry-block
%4 = phi i1 [ %3, %entry-block ], [ %6, %before_rhs ]
br i1 %4, label %then-block-5815-, label %else-block
before_rhs: ; preds = %entry-block
%5 = load i8, i8* %rhs, align 1
%6 = icmp eq i8 %5, -1
br label %join
then-block-5815-: ; preds = %join
%7 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 0
%8 = load i8, i8* %self, align 1
store i8 %8, i8* %7, align 1
%9 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 1
store i8 1, i8* %9, align 1
br label %join5
else-block: ; preds = %join
%10 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 0
%11 = load i8, i8* %self, align 1
%12 = load i8, i8* %rhs, align 1
%13 = icmp eq i8 %12, 0
br i1 %13, label %cond, label %next
next: ; preds = %else-block
%14 = icmp eq i8 %12, -1
br i1 %14, label %cond2, label %next1
cond: ; preds = %else-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43576)
unreachable
next1: ; preds = %next3, %next
%15 = sdiv i8 %11, %12
store i8 %15, i8* %10, align 1
%16 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 1
store i8 0, i8* %16, align 1
br label %join5
cond2: ; preds = %next
%17 = icmp eq i8 %11, -128
br i1 %17, label %cond4, label %next3
next3: ; preds = %cond2
br label %next1
cond4: ; preds = %cond2
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43578)
unreachable
join5: ; preds = %next1, %then-block-5815-
call void @llvm.lifetime.end(i64 1, i8* %rhs)
call void @llvm.lifetime.end(i64 1, i8* %self)
%18 = bitcast { i8, i8 }* %sret_slot to i16*
%19 = load i16, i16* %18, align 1
ret i16 %19
}
; Function Attrs: cold noinline noreturn uwtable
define void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40)) unnamed_addr #7 {
entry-block:
%expr_file_line = alloca { %str_slice, %str_slice, i32 }*
%expr = alloca %str_slice
%file = alloca %str_slice
%line = alloca i32
%1 = alloca %"fmt::Arguments"
%2 = alloca [1 x %str_slice]
%__coerce_target = alloca { %str_slice*, i64 }
%3 = alloca { %str_slice, i32 }
%4 = bitcast { %str_slice, %str_slice, i32 }** %expr_file_line to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store { %str_slice, %str_slice, i32 }* %0, { %str_slice, %str_slice, i32 }** %expr_file_line, align 8
%5 = load { %str_slice, %str_slice, i32 }*, { %str_slice, %str_slice, i32 }** %expr_file_line, align 8, !nonnull !2
%6 = getelementptr inbounds { %str_slice, %str_slice, i32 }, { %str_slice, %str_slice, i32 }* %5, i32 0, i32 0
%7 = bitcast %str_slice* %expr to i8*
call void @llvm.lifetime.start(i64 16, i8* %7)
%8 = bitcast %str_slice* %6 to i8*
%9 = bitcast %str_slice* %expr to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* %8, i64 16, i32 8, i1 false)
%10 = getelementptr inbounds { %str_slice, %str_slice, i32 }, { %str_slice, %str_slice, i32 }* %5, i32 0, i32 1
%11 = bitcast %str_slice* %file to i8*
call void @llvm.lifetime.start(i64 16, i8* %11)
%12 = bitcast %str_slice* %10 to i8*
%13 = bitcast %str_slice* %file to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %13, i8* %12, i64 16, i32 8, i1 false)
%14 = getelementptr inbounds { %str_slice, %str_slice, i32 }, { %str_slice, %str_slice, i32 }* %5, i32 0, i32 2
%15 = bitcast i32* %line to i8*
call void @llvm.lifetime.start(i64 4, i8* %15)
%16 = load i32, i32* %14, align 4
store i32 %16, i32* %line, align 4
%17 = bitcast %"fmt::Arguments"* %1 to i8*
call void @llvm.lifetime.start(i64 48, i8* %17)
%18 = bitcast [1 x %str_slice]* %2 to i8*
call void @llvm.lifetime.start(i64 16, i8* %18)
%19 = getelementptr inbounds [1 x %str_slice], [1 x %str_slice]* %2, i32 0, i32 0
%20 = getelementptr inbounds %str_slice, %str_slice* %19, i32 0
%21 = bitcast %str_slice* %expr to i8*
%22 = bitcast %str_slice* %20 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %22, i8* %21, i64 16, i32 8, i1 false)
%23 = bitcast [1 x %str_slice]* %2 to %str_slice*
%24 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %__coerce_target, i32 0, i32 0
store %str_slice* %23, %str_slice** %24
%25 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %__coerce_target, i32 0, i32 1
store i64 1, i64* %25
%26 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %__coerce_target, i32 0, i32 0
%27 = load %str_slice*, %str_slice** %26
%28 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %__coerce_target, i32 0, i32 1
%29 = load i64, i64* %28
%30 = load %"fmt::ArgumentV1"*, %"fmt::ArgumentV1"** getelementptr inbounds ({ %"fmt::ArgumentV1"*, i64 }, { %"fmt::ArgumentV1"*, i64 }* @const44067, i32 0, i32 0)
%31 = load i64, i64* getelementptr inbounds ({ %"fmt::ArgumentV1"*, i64 }, { %"fmt::ArgumentV1"*, i64 }* @const44067, i32 0, i32 1)
call void @"_ZN3fmt23Arguments$LT$$u27$a$GT$6new_v120h32916b984e369815hbNE"(%"fmt::Arguments"* noalias nocapture sret dereferenceable(48) %1, %str_slice* noalias nonnull readonly %27, i64 %29, %"fmt::ArgumentV1"* noalias nonnull readonly %30, i64 %31)
%32 = bitcast { %str_slice, i32 }* %3 to i8*
call void @llvm.lifetime.start(i64 24, i8* %32)
%33 = getelementptr inbounds { %str_slice, i32 }, { %str_slice, i32 }* %3, i32 0, i32 0
%34 = bitcast %str_slice* %file to i8*
%35 = bitcast %str_slice* %33 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %35, i8* %34, i64 16, i32 8, i1 false)
%36 = getelementptr inbounds { %str_slice, i32 }, { %str_slice, i32 }* %3, i32 0, i32 1
%37 = load i32, i32* %line, align 4
store i32 %37, i32* %36, align 4
call void @_ZN9panicking9panic_fmt20h6fd5cab7f5e05869H8BE(%"fmt::Arguments"* noalias nocapture dereferenceable(48) %1, { %str_slice, i32 }* noalias readonly dereferenceable(24) %3)
%38 = bitcast %"fmt::Arguments"* %1 to i8*
call void @llvm.lifetime.end(i64 48, i8* %38)
unreachable
}
; Function Attrs: alwaysinline uwtable
define i16 @_ZN3num8wrapping17i8.OverflowingOps15overflowing_rem20h8302a9d27feb02868FbE(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i8, i8 }
%self = alloca i8
%rhs = alloca i8
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
call void @llvm.lifetime.start(i64 1, i8* %rhs)
store i8 %1, i8* %rhs, align 1
%2 = load i8, i8* %self, align 1
%3 = icmp eq i8 %2, -128
br i1 %3, label %before_rhs, label %join
join: ; preds = %before_rhs, %entry-block
%4 = phi i1 [ %3, %entry-block ], [ %6, %before_rhs ]
br i1 %4, label %then-block-5847-, label %else-block
before_rhs: ; preds = %entry-block
%5 = load i8, i8* %rhs, align 1
%6 = icmp eq i8 %5, -1
br label %join
then-block-5847-: ; preds = %join
%7 = bitcast { i8, i8 }* %sret_slot to { i8, i1 }*
%8 = bitcast { i8, i1 }* %7 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %8, i8* getelementptr inbounds ({ i8, i1 }, { i8, i1 }* @const43579, i32 0, i32 0), i64 2, i32 1, i1 false)
br label %join5
else-block: ; preds = %join
%9 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 0
%10 = load i8, i8* %self, align 1
%11 = load i8, i8* %rhs, align 1
%12 = icmp eq i8 %11, 0
br i1 %12, label %cond, label %next
next: ; preds = %else-block
%13 = icmp eq i8 %11, -1
br i1 %13, label %cond2, label %next1
cond: ; preds = %else-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43581)
unreachable
next1: ; preds = %next3, %next
%14 = srem i8 %10, %11
store i8 %14, i8* %9, align 1
%15 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 1
store i8 0, i8* %15, align 1
br label %join5
cond2: ; preds = %next
%16 = icmp eq i8 %10, -128
br i1 %16, label %cond4, label %next3
next3: ; preds = %cond2
br label %next1
cond4: ; preds = %cond2
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43583)
unreachable
join5: ; preds = %next1, %then-block-5847-
call void @llvm.lifetime.end(i64 1, i8* %rhs)
call void @llvm.lifetime.end(i64 1, i8* %self)
%17 = bitcast { i8, i8 }* %sret_slot to i16*
%18 = load i16, i16* %17, align 1
ret i16 %18
}
; Function Attrs: alwaysinline uwtable
define i16 @_ZN3num8wrapping17i8.OverflowingOps15overflowing_shl20h9e127748ad6c3998EGbE(i8, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i8, i8 }
%self = alloca i8
%rhs = alloca i32
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
%2 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %1, i32* %rhs, align 4
%3 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 0
%4 = load i32, i32* %rhs, align 4
%5 = and i32 %4, 7
%6 = load i8, i8* %self, align 1
%7 = trunc i32 %5 to i8
%8 = and i8 %7, 7
%9 = shl i8 %6, %8
store i8 %9, i8* %3, align 1
%10 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 1
%11 = load i32, i32* %rhs, align 4
%12 = icmp ugt i32 %11, 7
%13 = zext i1 %12 to i8
store i8 %13, i8* %10, align 1
%14 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %14)
call void @llvm.lifetime.end(i64 1, i8* %self)
%15 = bitcast { i8, i8 }* %sret_slot to i16*
%16 = load i16, i16* %15, align 1
ret i16 %16
}
; Function Attrs: alwaysinline uwtable
define i16 @_ZN3num8wrapping17i8.OverflowingOps15overflowing_shr20haee3c66edf848ce31GbE(i8, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i8, i8 }
%self = alloca i8
%rhs = alloca i32
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
%2 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %1, i32* %rhs, align 4
%3 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 0
%4 = load i32, i32* %rhs, align 4
%5 = and i32 %4, 7
%6 = load i8, i8* %self, align 1
%7 = trunc i32 %5 to i8
%8 = and i8 %7, 7
%9 = ashr i8 %6, %8
store i8 %9, i8* %3, align 1
%10 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 1
%11 = load i32, i32* %rhs, align 4
%12 = icmp ugt i32 %11, 7
%13 = zext i1 %12 to i8
store i8 %13, i8* %10, align 1
%14 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %14)
call void @llvm.lifetime.end(i64 1, i8* %self)
%15 = bitcast { i8, i8 }* %sret_slot to i16*
%16 = load i16, i16* %15, align 1
ret i16 %16
}
; Function Attrs: alwaysinline uwtable
define i16 @_ZN3num8wrapping17i8.OverflowingOps15overflowing_neg20h2db8665aab1526a3oHbE(i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i8, i8 }
%self = alloca i8
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
%1 = load i8, i8* %self, align 1
%2 = icmp eq i8 %1, -128
br i1 %2, label %then-block-5917-, label %else-block
then-block-5917-: ; preds = %entry-block
%3 = bitcast { i8, i8 }* %sret_slot to { i8, i1 }*
%4 = bitcast { i8, i1 }* %3 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %4, i8* getelementptr inbounds ({ i8, i1 }, { i8, i1 }* @const43585, i32 0, i32 0), i64 2, i32 1, i1 false)
br label %join
else-block: ; preds = %entry-block
%5 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 0
%6 = load i8, i8* %self, align 1
%7 = sub i8 0, %6
store i8 %7, i8* %5, align 1
%8 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 1
store i8 0, i8* %8, align 1
br label %join
join: ; preds = %else-block, %then-block-5917-
call void @llvm.lifetime.end(i64 1, i8* %self)
%9 = bitcast { i8, i8 }* %sret_slot to i16*
%10 = load i16, i16* %9, align 1
ret i16 %10
}
; Function Attrs: alwaysinline uwtable
define i32 @_ZN3num8wrapping18i16.OverflowingOps15overflowing_add20h047159babdc01a4bPHbE(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i16, i8 }
%self = alloca i16
%rhs = alloca i16
%tmp = alloca { i16, i8 }
%2 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
store i16 %0, i16* %self, align 2
%3 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.start(i64 2, i8* %3)
store i16 %1, i16* %rhs, align 2
%4 = load i16, i16* %self, align 2
%5 = load i16, i16* %rhs, align 2
%6 = call { i16, i1 } @llvm.sadd.with.overflow.i16(i16 %4, i16 %5)
%7 = extractvalue { i16, i1 } %6, 0
%8 = extractvalue { i16, i1 } %6, 1
%9 = zext i1 %8 to i8
%10 = insertvalue { i16, i8 } undef, i16 %7, 0
%11 = insertvalue { i16, i8 } %10, i8 %9, 1
%12 = bitcast { i16, i8 }* %tmp to i8*
call void @llvm.lifetime.start(i64 4, i8* %12)
store { i16, i8 } %11, { i16, i8 }* %tmp
%13 = bitcast { i16, i8 }* %tmp to i32*
%14 = load i32, i32* %13, align 2
%15 = bitcast { i16, i8 }* %sret_slot to i32*
store i32 %14, i32* %15, align 2
%16 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.end(i64 2, i8* %16)
%17 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %17)
%18 = bitcast { i16, i8 }* %sret_slot to i32*
%19 = load i32, i32* %18, align 2
ret i32 %19
}
; Function Attrs: nounwind readnone
declare { i16, i1 } @llvm.sadd.with.overflow.i16(i16, i16) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define i32 @_ZN3num8wrapping18i16.OverflowingOps15overflowing_sub20hd4d198bdd71cbf3c7HbE(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i16, i8 }
%self = alloca i16
%rhs = alloca i16
%tmp = alloca { i16, i8 }
%2 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
store i16 %0, i16* %self, align 2
%3 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.start(i64 2, i8* %3)
store i16 %1, i16* %rhs, align 2
%4 = load i16, i16* %self, align 2
%5 = load i16, i16* %rhs, align 2
%6 = call { i16, i1 } @llvm.ssub.with.overflow.i16(i16 %4, i16 %5)
%7 = extractvalue { i16, i1 } %6, 0
%8 = extractvalue { i16, i1 } %6, 1
%9 = zext i1 %8 to i8
%10 = insertvalue { i16, i8 } undef, i16 %7, 0
%11 = insertvalue { i16, i8 } %10, i8 %9, 1
%12 = bitcast { i16, i8 }* %tmp to i8*
call void @llvm.lifetime.start(i64 4, i8* %12)
store { i16, i8 } %11, { i16, i8 }* %tmp
%13 = bitcast { i16, i8 }* %tmp to i32*
%14 = load i32, i32* %13, align 2
%15 = bitcast { i16, i8 }* %sret_slot to i32*
store i32 %14, i32* %15, align 2
%16 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.end(i64 2, i8* %16)
%17 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %17)
%18 = bitcast { i16, i8 }* %sret_slot to i32*
%19 = load i32, i32* %18, align 2
ret i32 %19
}
; Function Attrs: nounwind readnone
declare { i16, i1 } @llvm.ssub.with.overflow.i16(i16, i16) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define i32 @_ZN3num8wrapping18i16.OverflowingOps15overflowing_mul20hed04ed47a5addc60pIbE(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i16, i8 }
%self = alloca i16
%rhs = alloca i16
%tmp = alloca { i16, i8 }
%2 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
store i16 %0, i16* %self, align 2
%3 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.start(i64 2, i8* %3)
store i16 %1, i16* %rhs, align 2
%4 = load i16, i16* %self, align 2
%5 = load i16, i16* %rhs, align 2
%6 = call { i16, i1 } @llvm.smul.with.overflow.i16(i16 %4, i16 %5)
%7 = extractvalue { i16, i1 } %6, 0
%8 = extractvalue { i16, i1 } %6, 1
%9 = zext i1 %8 to i8
%10 = insertvalue { i16, i8 } undef, i16 %7, 0
%11 = insertvalue { i16, i8 } %10, i8 %9, 1
%12 = bitcast { i16, i8 }* %tmp to i8*
call void @llvm.lifetime.start(i64 4, i8* %12)
store { i16, i8 } %11, { i16, i8 }* %tmp
%13 = bitcast { i16, i8 }* %tmp to i32*
%14 = load i32, i32* %13, align 2
%15 = bitcast { i16, i8 }* %sret_slot to i32*
store i32 %14, i32* %15, align 2
%16 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.end(i64 2, i8* %16)
%17 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %17)
%18 = bitcast { i16, i8 }* %sret_slot to i32*
%19 = load i32, i32* %18, align 2
ret i32 %19
}
; Function Attrs: nounwind readnone
declare { i16, i1 } @llvm.smul.with.overflow.i16(i16, i16) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define i32 @_ZN3num8wrapping18i16.OverflowingOps15overflowing_div20h5bb50609cf41aab0HIbE(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i16, i8 }
%self = alloca i16
%rhs = alloca i16
%2 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
store i16 %0, i16* %self, align 2
%3 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.start(i64 2, i8* %3)
store i16 %1, i16* %rhs, align 2
%4 = load i16, i16* %self, align 2
%5 = icmp eq i16 %4, -32768
br i1 %5, label %before_rhs, label %join
join: ; preds = %before_rhs, %entry-block
%6 = phi i1 [ %5, %entry-block ], [ %8, %before_rhs ]
br i1 %6, label %then-block-6006-, label %else-block
before_rhs: ; preds = %entry-block
%7 = load i16, i16* %rhs, align 2
%8 = icmp eq i16 %7, -1
br label %join
then-block-6006-: ; preds = %join
%9 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 0
%10 = load i16, i16* %self, align 2
store i16 %10, i16* %9, align 2
%11 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 1
store i8 1, i8* %11, align 1
br label %join5
else-block: ; preds = %join
%12 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 0
%13 = load i16, i16* %self, align 2
%14 = load i16, i16* %rhs, align 2
%15 = icmp eq i16 %14, 0
br i1 %15, label %cond, label %next
next: ; preds = %else-block
%16 = icmp eq i16 %14, -1
br i1 %16, label %cond2, label %next1
cond: ; preds = %else-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43576)
unreachable
next1: ; preds = %next3, %next
%17 = sdiv i16 %13, %14
store i16 %17, i16* %12, align 2
%18 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 1
store i8 0, i8* %18, align 1
br label %join5
cond2: ; preds = %next
%19 = icmp eq i16 %13, -32768
br i1 %19, label %cond4, label %next3
next3: ; preds = %cond2
br label %next1
cond4: ; preds = %cond2
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43578)
unreachable
join5: ; preds = %next1, %then-block-6006-
%20 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.end(i64 2, i8* %20)
%21 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %21)
%22 = bitcast { i16, i8 }* %sret_slot to i32*
%23 = load i32, i32* %22, align 2
ret i32 %23
}
; Function Attrs: alwaysinline uwtable
define i32 @_ZN3num8wrapping18i16.OverflowingOps15overflowing_rem20hdbbbffe800c34266dJbE(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i16, i8 }
%self = alloca i16
%rhs = alloca i16
%2 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
store i16 %0, i16* %self, align 2
%3 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.start(i64 2, i8* %3)
store i16 %1, i16* %rhs, align 2
%4 = load i16, i16* %self, align 2
%5 = icmp eq i16 %4, -32768
br i1 %5, label %before_rhs, label %join
join: ; preds = %before_rhs, %entry-block
%6 = phi i1 [ %5, %entry-block ], [ %8, %before_rhs ]
br i1 %6, label %then-block-6038-, label %else-block
before_rhs: ; preds = %entry-block
%7 = load i16, i16* %rhs, align 2
%8 = icmp eq i16 %7, -1
br label %join
then-block-6038-: ; preds = %join
%9 = bitcast { i16, i8 }* %sret_slot to { i16, i1, [1 x i8] }*
%10 = bitcast { i16, i1, [1 x i8] }* %9 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %10, i8* bitcast ({ i16, i1, [1 x i8] }* @const43589 to i8*), i64 4, i32 2, i1 false)
br label %join5
else-block: ; preds = %join
%11 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 0
%12 = load i16, i16* %self, align 2
%13 = load i16, i16* %rhs, align 2
%14 = icmp eq i16 %13, 0
br i1 %14, label %cond, label %next
next: ; preds = %else-block
%15 = icmp eq i16 %13, -1
br i1 %15, label %cond2, label %next1
cond: ; preds = %else-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43581)
unreachable
next1: ; preds = %next3, %next
%16 = srem i16 %12, %13
store i16 %16, i16* %11, align 2
%17 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 1
store i8 0, i8* %17, align 1
br label %join5
cond2: ; preds = %next
%18 = icmp eq i16 %12, -32768
br i1 %18, label %cond4, label %next3
next3: ; preds = %cond2
br label %next1
cond4: ; preds = %cond2
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43583)
unreachable
join5: ; preds = %next1, %then-block-6038-
%19 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.end(i64 2, i8* %19)
%20 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %20)
%21 = bitcast { i16, i8 }* %sret_slot to i32*
%22 = load i32, i32* %21, align 2
ret i32 %22
}
; Function Attrs: alwaysinline uwtable
define i32 @_ZN3num8wrapping18i16.OverflowingOps15overflowing_shl20hd651253647612d41JJbE(i16, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i16, i8 }
%self = alloca i16
%rhs = alloca i32
%2 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
store i16 %0, i16* %self, align 2
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 0
%5 = load i32, i32* %rhs, align 4
%6 = and i32 %5, 15
%7 = load i16, i16* %self, align 2
%8 = trunc i32 %6 to i16
%9 = and i16 %8, 15
%10 = shl i16 %7, %9
store i16 %10, i16* %4, align 2
%11 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 1
%12 = load i32, i32* %rhs, align 4
%13 = icmp ugt i32 %12, 15
%14 = zext i1 %13 to i8
store i8 %14, i8* %11, align 1
%15 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %15)
%16 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %16)
%17 = bitcast { i16, i8 }* %sret_slot to i32*
%18 = load i32, i32* %17, align 2
ret i32 %18
}
; Function Attrs: alwaysinline uwtable
define i32 @_ZN3num8wrapping18i16.OverflowingOps15overflowing_shr20hfec63052f8da56806JbE(i16, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i16, i8 }
%self = alloca i16
%rhs = alloca i32
%2 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
store i16 %0, i16* %self, align 2
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 0
%5 = load i32, i32* %rhs, align 4
%6 = and i32 %5, 15
%7 = load i16, i16* %self, align 2
%8 = trunc i32 %6 to i16
%9 = and i16 %8, 15
%10 = ashr i16 %7, %9
store i16 %10, i16* %4, align 2
%11 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 1
%12 = load i32, i32* %rhs, align 4
%13 = icmp ugt i32 %12, 15
%14 = zext i1 %13 to i8
store i8 %14, i8* %11, align 1
%15 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %15)
%16 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %16)
%17 = bitcast { i16, i8 }* %sret_slot to i32*
%18 = load i32, i32* %17, align 2
ret i32 %18
}
; Function Attrs: alwaysinline uwtable
define i32 @_ZN3num8wrapping18i16.OverflowingOps15overflowing_neg20h264857738d39bf81tKbE(i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i16, i8 }
%self = alloca i16
%1 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %1)
store i16 %0, i16* %self, align 2
%2 = load i16, i16* %self, align 2
%3 = icmp eq i16 %2, -32768
br i1 %3, label %then-block-6108-, label %else-block
then-block-6108-: ; preds = %entry-block
%4 = bitcast { i16, i8 }* %sret_slot to { i16, i1, [1 x i8] }*
%5 = bitcast { i16, i1, [1 x i8] }* %4 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* bitcast ({ i16, i1, [1 x i8] }* @const43591 to i8*), i64 4, i32 2, i1 false)
br label %join
else-block: ; preds = %entry-block
%6 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 0
%7 = load i16, i16* %self, align 2
%8 = sub i16 0, %7
store i16 %8, i16* %6, align 2
%9 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 1
store i8 0, i8* %9, align 1
br label %join
join: ; preds = %else-block, %then-block-6108-
%10 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %10)
%11 = bitcast { i16, i8 }* %sret_slot to i32*
%12 = load i32, i32* %11, align 2
ret i32 %12
}
; Function Attrs: alwaysinline uwtable
define i64 @_ZN3num8wrapping18i32.OverflowingOps15overflowing_add20h05f3dff3bbd7687fUKbE(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i32, i8 }
%self = alloca i32
%rhs = alloca i32
%tmp = alloca { i32, i8 }
%2 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %0, i32* %self, align 4
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = load i32, i32* %self, align 4
%5 = load i32, i32* %rhs, align 4
%6 = call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 %4, i32 %5)
%7 = extractvalue { i32, i1 } %6, 0
%8 = extractvalue { i32, i1 } %6, 1
%9 = zext i1 %8 to i8
%10 = insertvalue { i32, i8 } undef, i32 %7, 0
%11 = insertvalue { i32, i8 } %10, i8 %9, 1
%12 = bitcast { i32, i8 }* %tmp to i8*
call void @llvm.lifetime.start(i64 8, i8* %12)
store { i32, i8 } %11, { i32, i8 }* %tmp
%13 = bitcast { i32, i8 }* %tmp to i64*
%14 = load i64, i64* %13, align 4
%15 = bitcast { i32, i8 }* %sret_slot to i64*
store i64 %14, i64* %15, align 4
%16 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %16)
%17 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %17)
%18 = bitcast { i32, i8 }* %sret_slot to i64*
%19 = load i64, i64* %18, align 4
ret i64 %19
}
; Function Attrs: nounwind readnone
declare { i32, i1 } @llvm.sadd.with.overflow.i32(i32, i32) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define i64 @_ZN3num8wrapping18i32.OverflowingOps15overflowing_sub20h27196228e532b1eecLbE(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i32, i8 }
%self = alloca i32
%rhs = alloca i32
%tmp = alloca { i32, i8 }
%2 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %0, i32* %self, align 4
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = load i32, i32* %self, align 4
%5 = load i32, i32* %rhs, align 4
%6 = call { i32, i1 } @llvm.ssub.with.overflow.i32(i32 %4, i32 %5)
%7 = extractvalue { i32, i1 } %6, 0
%8 = extractvalue { i32, i1 } %6, 1
%9 = zext i1 %8 to i8
%10 = insertvalue { i32, i8 } undef, i32 %7, 0
%11 = insertvalue { i32, i8 } %10, i8 %9, 1
%12 = bitcast { i32, i8 }* %tmp to i8*
call void @llvm.lifetime.start(i64 8, i8* %12)
store { i32, i8 } %11, { i32, i8 }* %tmp
%13 = bitcast { i32, i8 }* %tmp to i64*
%14 = load i64, i64* %13, align 4
%15 = bitcast { i32, i8 }* %sret_slot to i64*
store i64 %14, i64* %15, align 4
%16 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %16)
%17 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %17)
%18 = bitcast { i32, i8 }* %sret_slot to i64*
%19 = load i64, i64* %18, align 4
ret i64 %19
}
; Function Attrs: nounwind readnone
declare { i32, i1 } @llvm.ssub.with.overflow.i32(i32, i32) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define i64 @_ZN3num8wrapping18i32.OverflowingOps15overflowing_mul20hd8aa560e0f41cc31uLbE(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i32, i8 }
%self = alloca i32
%rhs = alloca i32
%tmp = alloca { i32, i8 }
%2 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %0, i32* %self, align 4
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = load i32, i32* %self, align 4
%5 = load i32, i32* %rhs, align 4
%6 = call { i32, i1 } @llvm.smul.with.overflow.i32(i32 %4, i32 %5)
%7 = extractvalue { i32, i1 } %6, 0
%8 = extractvalue { i32, i1 } %6, 1
%9 = zext i1 %8 to i8
%10 = insertvalue { i32, i8 } undef, i32 %7, 0
%11 = insertvalue { i32, i8 } %10, i8 %9, 1
%12 = bitcast { i32, i8 }* %tmp to i8*
call void @llvm.lifetime.start(i64 8, i8* %12)
store { i32, i8 } %11, { i32, i8 }* %tmp
%13 = bitcast { i32, i8 }* %tmp to i64*
%14 = load i64, i64* %13, align 4
%15 = bitcast { i32, i8 }* %sret_slot to i64*
store i64 %14, i64* %15, align 4
%16 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %16)
%17 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %17)
%18 = bitcast { i32, i8 }* %sret_slot to i64*
%19 = load i64, i64* %18, align 4
ret i64 %19
}
; Function Attrs: nounwind readnone
declare { i32, i1 } @llvm.smul.with.overflow.i32(i32, i32) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define i64 @_ZN3num8wrapping18i32.OverflowingOps15overflowing_div20h056a1d16668edeb2MLbE(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i32, i8 }
%self = alloca i32
%rhs = alloca i32
%2 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %0, i32* %self, align 4
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = load i32, i32* %self, align 4
%5 = icmp eq i32 %4, -2147483648
br i1 %5, label %before_rhs, label %join
join: ; preds = %before_rhs, %entry-block
%6 = phi i1 [ %5, %entry-block ], [ %8, %before_rhs ]
br i1 %6, label %then-block-6197-, label %else-block
before_rhs: ; preds = %entry-block
%7 = load i32, i32* %rhs, align 4
%8 = icmp eq i32 %7, -1
br label %join
then-block-6197-: ; preds = %join
%9 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 0
%10 = load i32, i32* %self, align 4
store i32 %10, i32* %9, align 4
%11 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 1
store i8 1, i8* %11, align 1
br label %join5
else-block: ; preds = %join
%12 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 0
%13 = load i32, i32* %self, align 4
%14 = load i32, i32* %rhs, align 4
%15 = icmp eq i32 %14, 0
br i1 %15, label %cond, label %next
next: ; preds = %else-block
%16 = icmp eq i32 %14, -1
br i1 %16, label %cond2, label %next1
cond: ; preds = %else-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43576)
unreachable
next1: ; preds = %next3, %next
%17 = sdiv i32 %13, %14
store i32 %17, i32* %12, align 4
%18 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 1
store i8 0, i8* %18, align 1
br label %join5
cond2: ; preds = %next
%19 = icmp eq i32 %13, -2147483648
br i1 %19, label %cond4, label %next3
next3: ; preds = %cond2
br label %next1
cond4: ; preds = %cond2
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43578)
unreachable
join5: ; preds = %next1, %then-block-6197-
%20 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %20)
%21 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %21)
%22 = bitcast { i32, i8 }* %sret_slot to i64*
%23 = load i64, i64* %22, align 4
ret i64 %23
}
; Function Attrs: alwaysinline uwtable
define i64 @_ZN3num8wrapping18i32.OverflowingOps15overflowing_rem20he8592d21102053d6iMbE(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i32, i8 }
%self = alloca i32
%rhs = alloca i32
%2 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %0, i32* %self, align 4
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = load i32, i32* %self, align 4
%5 = icmp eq i32 %4, -2147483648
br i1 %5, label %before_rhs, label %join
join: ; preds = %before_rhs, %entry-block
%6 = phi i1 [ %5, %entry-block ], [ %8, %before_rhs ]
br i1 %6, label %then-block-6229-, label %else-block
before_rhs: ; preds = %entry-block
%7 = load i32, i32* %rhs, align 4
%8 = icmp eq i32 %7, -1
br label %join
then-block-6229-: ; preds = %join
%9 = bitcast { i32, i8 }* %sret_slot to { i32, i1, [3 x i8] }*
%10 = bitcast { i32, i1, [3 x i8] }* %9 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %10, i8* bitcast ({ i32, i1, [3 x i8] }* @const43595 to i8*), i64 8, i32 4, i1 false)
br label %join5
else-block: ; preds = %join
%11 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 0
%12 = load i32, i32* %self, align 4
%13 = load i32, i32* %rhs, align 4
%14 = icmp eq i32 %13, 0
br i1 %14, label %cond, label %next
next: ; preds = %else-block
%15 = icmp eq i32 %13, -1
br i1 %15, label %cond2, label %next1
cond: ; preds = %else-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43581)
unreachable
next1: ; preds = %next3, %next
%16 = srem i32 %12, %13
store i32 %16, i32* %11, align 4
%17 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 1
store i8 0, i8* %17, align 1
br label %join5
cond2: ; preds = %next
%18 = icmp eq i32 %12, -2147483648
br i1 %18, label %cond4, label %next3
next3: ; preds = %cond2
br label %next1
cond4: ; preds = %cond2
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43583)
unreachable
join5: ; preds = %next1, %then-block-6229-
%19 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %19)
%20 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %20)
%21 = bitcast { i32, i8 }* %sret_slot to i64*
%22 = load i64, i64* %21, align 4
ret i64 %22
}
; Function Attrs: alwaysinline uwtable
define i64 @_ZN3num8wrapping18i32.OverflowingOps15overflowing_shl20h902762266aa4ae6eOMbE(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i32, i8 }
%self = alloca i32
%rhs = alloca i32
%2 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %0, i32* %self, align 4
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 0
%5 = load i32, i32* %rhs, align 4
%6 = and i32 %5, 31
%7 = load i32, i32* %self, align 4
%8 = and i32 %6, 31
%9 = shl i32 %7, %8
store i32 %9, i32* %4, align 4
%10 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 1
%11 = load i32, i32* %rhs, align 4
%12 = icmp ugt i32 %11, 31
%13 = zext i1 %12 to i8
store i8 %13, i8* %10, align 1
%14 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %14)
%15 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %15)
%16 = bitcast { i32, i8 }* %sret_slot to i64*
%17 = load i64, i64* %16, align 4
ret i64 %17
}
; Function Attrs: alwaysinline uwtable
define i64 @_ZN3num8wrapping18i32.OverflowingOps15overflowing_shr20h0beb5ba693b7046bbNbE(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i32, i8 }
%self = alloca i32
%rhs = alloca i32
%2 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %0, i32* %self, align 4
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 0
%5 = load i32, i32* %rhs, align 4
%6 = and i32 %5, 31
%7 = load i32, i32* %self, align 4
%8 = and i32 %6, 31
%9 = ashr i32 %7, %8
store i32 %9, i32* %4, align 4
%10 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 1
%11 = load i32, i32* %rhs, align 4
%12 = icmp ugt i32 %11, 31
%13 = zext i1 %12 to i8
store i8 %13, i8* %10, align 1
%14 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %14)
%15 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %15)
%16 = bitcast { i32, i8 }* %sret_slot to i64*
%17 = load i64, i64* %16, align 4
ret i64 %17
}
; Function Attrs: alwaysinline uwtable
define i64 @_ZN3num8wrapping18i32.OverflowingOps15overflowing_neg20he7546a50fe08689fyNbE(i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i32, i8 }
%self = alloca i32
%1 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %1)
store i32 %0, i32* %self, align 4
%2 = load i32, i32* %self, align 4
%3 = icmp eq i32 %2, -2147483648
br i1 %3, label %then-block-6299-, label %else-block
then-block-6299-: ; preds = %entry-block
%4 = bitcast { i32, i8 }* %sret_slot to { i32, i1, [3 x i8] }*
%5 = bitcast { i32, i1, [3 x i8] }* %4 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* bitcast ({ i32, i1, [3 x i8] }* @const43596 to i8*), i64 8, i32 4, i1 false)
br label %join
else-block: ; preds = %entry-block
%6 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 0
%7 = load i32, i32* %self, align 4
%8 = sub i32 0, %7
store i32 %8, i32* %6, align 4
%9 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 1
store i8 0, i8* %9, align 1
br label %join
join: ; preds = %else-block, %then-block-6299-
%10 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %10)
%11 = bitcast { i32, i8 }* %sret_slot to i64*
%12 = load i64, i64* %11, align 4
ret i64 %12
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping18i64.OverflowingOps15overflowing_add20hcde021b8485034eaZNbE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %2, i64* %rhs, align 8
%5 = load i64, i64* %self, align 8
%6 = load i64, i64* %rhs, align 8
%7 = call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %5, i64 %6)
%8 = extractvalue { i64, i1 } %7, 0
%9 = extractvalue { i64, i1 } %7, 1
%10 = zext i1 %9 to i8
%11 = insertvalue { i64, i8 } undef, i64 %8, 0
%12 = insertvalue { i64, i8 } %11, i8 %10, 1
store { i64, i8 } %12, { i64, i8 }* %0, align 8
%13 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %14)
ret void
}
; Function Attrs: nounwind readnone
declare { i64, i1 } @llvm.sadd.with.overflow.i64(i64, i64) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping18i64.OverflowingOps15overflowing_sub20h968b795249b5d57dhObE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %2, i64* %rhs, align 8
%5 = load i64, i64* %self, align 8
%6 = load i64, i64* %rhs, align 8
%7 = call { i64, i1 } @llvm.ssub.with.overflow.i64(i64 %5, i64 %6)
%8 = extractvalue { i64, i1 } %7, 0
%9 = extractvalue { i64, i1 } %7, 1
%10 = zext i1 %9 to i8
%11 = insertvalue { i64, i8 } undef, i64 %8, 0
%12 = insertvalue { i64, i8 } %11, i8 %10, 1
store { i64, i8 } %12, { i64, i8 }* %0, align 8
%13 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %14)
ret void
}
; Function Attrs: nounwind readnone
declare { i64, i1 } @llvm.ssub.with.overflow.i64(i64, i64) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping18i64.OverflowingOps15overflowing_mul20hb022a4d030286267zObE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %2, i64* %rhs, align 8
%5 = load i64, i64* %self, align 8
%6 = load i64, i64* %rhs, align 8
%7 = call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %5, i64 %6)
%8 = extractvalue { i64, i1 } %7, 0
%9 = extractvalue { i64, i1 } %7, 1
%10 = zext i1 %9 to i8
%11 = insertvalue { i64, i8 } undef, i64 %8, 0
%12 = insertvalue { i64, i8 } %11, i8 %10, 1
store { i64, i8 } %12, { i64, i8 }* %0, align 8
%13 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %14)
ret void
}
; Function Attrs: nounwind readnone
declare { i64, i1 } @llvm.smul.with.overflow.i64(i64, i64) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping18i64.OverflowingOps15overflowing_div20haf2358da37c53bf2RObE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %2, i64* %rhs, align 8
%5 = load i64, i64* %self, align 8
%6 = icmp eq i64 %5, -9223372036854775808
br i1 %6, label %before_rhs, label %join
join: ; preds = %before_rhs, %entry-block
%7 = phi i1 [ %6, %entry-block ], [ %9, %before_rhs ]
br i1 %7, label %then-block-6388-, label %else-block
before_rhs: ; preds = %entry-block
%8 = load i64, i64* %rhs, align 8
%9 = icmp eq i64 %8, -1
br label %join
then-block-6388-: ; preds = %join
%10 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%11 = load i64, i64* %self, align 8
store i64 %11, i64* %10, align 8
%12 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
store i8 1, i8* %12, align 1
br label %join5
else-block: ; preds = %join
%13 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%14 = load i64, i64* %self, align 8
%15 = load i64, i64* %rhs, align 8
%16 = icmp eq i64 %15, 0
br i1 %16, label %cond, label %next
next: ; preds = %else-block
%17 = icmp eq i64 %15, -1
br i1 %17, label %cond2, label %next1
cond: ; preds = %else-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43576)
unreachable
next1: ; preds = %next3, %next
%18 = sdiv i64 %14, %15
store i64 %18, i64* %13, align 8
%19 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
store i8 0, i8* %19, align 1
br label %join5
cond2: ; preds = %next
%20 = icmp eq i64 %14, -9223372036854775808
br i1 %20, label %cond4, label %next3
next3: ; preds = %cond2
br label %next1
cond4: ; preds = %cond2
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43578)
unreachable
join5: ; preds = %next1, %then-block-6388-
%21 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %21)
%22 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %22)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping18i64.OverflowingOps15overflowing_rem20h6177c7f991718bf4nPbE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %2, i64* %rhs, align 8
%5 = load i64, i64* %self, align 8
%6 = icmp eq i64 %5, -9223372036854775808
br i1 %6, label %before_rhs, label %join
join: ; preds = %before_rhs, %entry-block
%7 = phi i1 [ %6, %entry-block ], [ %9, %before_rhs ]
br i1 %7, label %then-block-6420-, label %else-block
before_rhs: ; preds = %entry-block
%8 = load i64, i64* %rhs, align 8
%9 = icmp eq i64 %8, -1
br label %join
then-block-6420-: ; preds = %join
%10 = bitcast { i64, i8 }* %0 to { i64, i1, [7 x i8] }*
%11 = bitcast { i64, i1, [7 x i8] }* %10 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %11, i8* bitcast ({ i64, i1, [7 x i8] }* @const43600 to i8*), i64 16, i32 8, i1 false)
br label %join5
else-block: ; preds = %join
%12 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%13 = load i64, i64* %self, align 8
%14 = load i64, i64* %rhs, align 8
%15 = icmp eq i64 %14, 0
br i1 %15, label %cond, label %next
next: ; preds = %else-block
%16 = icmp eq i64 %14, -1
br i1 %16, label %cond2, label %next1
cond: ; preds = %else-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43581)
unreachable
next1: ; preds = %next3, %next
%17 = srem i64 %13, %14
store i64 %17, i64* %12, align 8
%18 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
store i8 0, i8* %18, align 1
br label %join5
cond2: ; preds = %next
%19 = icmp eq i64 %13, -9223372036854775808
br i1 %19, label %cond4, label %next3
next3: ; preds = %cond2
br label %next1
cond4: ; preds = %cond2
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43583)
unreachable
join5: ; preds = %next1, %then-block-6420-
%20 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %20)
%21 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %21)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping18i64.OverflowingOps15overflowing_shl20h5c790e51b6132409TPbE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i32) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i32
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
store i32 %2, i32* %rhs, align 4
%5 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%6 = load i32, i32* %rhs, align 4
%7 = and i32 %6, 63
%8 = load i64, i64* %self, align 8
%9 = zext i32 %7 to i64
%10 = and i64 %9, 63
%11 = shl i64 %8, %10
store i64 %11, i64* %5, align 8
%12 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
%13 = load i32, i32* %rhs, align 4
%14 = icmp ugt i32 %13, 63
%15 = zext i1 %14 to i8
store i8 %15, i8* %12, align 1
%16 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %16)
%17 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %17)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping18i64.OverflowingOps15overflowing_shr20h991ddb5b8ca35fefgQbE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i32) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i32
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
store i32 %2, i32* %rhs, align 4
%5 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%6 = load i32, i32* %rhs, align 4
%7 = and i32 %6, 63
%8 = load i64, i64* %self, align 8
%9 = zext i32 %7 to i64
%10 = and i64 %9, 63
%11 = ashr i64 %8, %10
store i64 %11, i64* %5, align 8
%12 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
%13 = load i32, i32* %rhs, align 4
%14 = icmp ugt i32 %13, 63
%15 = zext i1 %14 to i8
store i8 %15, i8* %12, align 1
%16 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %16)
%17 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %17)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping18i64.OverflowingOps15overflowing_neg20h4029042b00095a7cDQbE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%2 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store i64 %1, i64* %self, align 8
%3 = load i64, i64* %self, align 8
%4 = icmp eq i64 %3, -9223372036854775808
br i1 %4, label %then-block-6490-, label %else-block
then-block-6490-: ; preds = %entry-block
%5 = bitcast { i64, i8 }* %0 to { i64, i1, [7 x i8] }*
%6 = bitcast { i64, i1, [7 x i8] }* %5 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %6, i8* bitcast ({ i64, i1, [7 x i8] }* @const43601 to i8*), i64 16, i32 8, i1 false)
br label %join
else-block: ; preds = %entry-block
%7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%8 = load i64, i64* %self, align 8
%9 = sub i64 0, %8
store i64 %9, i64* %7, align 8
%10 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
store i8 0, i8* %10, align 1
br label %join
join: ; preds = %else-block, %then-block-6490-
%11 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %11)
ret void
}
; Function Attrs: alwaysinline uwtable
define i16 @_ZN3num8wrapping17u8.OverflowingOps15overflowing_add20hc9776e63858bc0a34QbE(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i8, i8 }
%self = alloca i8
%rhs = alloca i8
%tmp = alloca { i8, i8 }
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
call void @llvm.lifetime.start(i64 1, i8* %rhs)
store i8 %1, i8* %rhs, align 1
%2 = load i8, i8* %self, align 1
%3 = load i8, i8* %rhs, align 1
%4 = call { i8, i1 } @llvm.uadd.with.overflow.i8(i8 %2, i8 %3)
%5 = extractvalue { i8, i1 } %4, 0
%6 = extractvalue { i8, i1 } %4, 1
%7 = zext i1 %6 to i8
%8 = insertvalue { i8, i8 } undef, i8 %5, 0
%9 = insertvalue { i8, i8 } %8, i8 %7, 1
%10 = bitcast { i8, i8 }* %tmp to i8*
call void @llvm.lifetime.start(i64 2, i8* %10)
store { i8, i8 } %9, { i8, i8 }* %tmp
%11 = bitcast { i8, i8 }* %tmp to i16*
%12 = load i16, i16* %11, align 1
%13 = bitcast { i8, i8 }* %sret_slot to i16*
store i16 %12, i16* %13, align 1
call void @llvm.lifetime.end(i64 1, i8* %rhs)
call void @llvm.lifetime.end(i64 1, i8* %self)
%14 = bitcast { i8, i8 }* %sret_slot to i16*
%15 = load i16, i16* %14, align 1
ret i16 %15
}
; Function Attrs: nounwind readnone
declare { i8, i1 } @llvm.uadd.with.overflow.i8(i8, i8) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define i16 @_ZN3num8wrapping17u8.OverflowingOps15overflowing_sub20hdc2edf2fcbb861e1mRbE(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i8, i8 }
%self = alloca i8
%rhs = alloca i8
%tmp = alloca { i8, i8 }
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
call void @llvm.lifetime.start(i64 1, i8* %rhs)
store i8 %1, i8* %rhs, align 1
%2 = load i8, i8* %self, align 1
%3 = load i8, i8* %rhs, align 1
%4 = call { i8, i1 } @llvm.usub.with.overflow.i8(i8 %2, i8 %3)
%5 = extractvalue { i8, i1 } %4, 0
%6 = extractvalue { i8, i1 } %4, 1
%7 = zext i1 %6 to i8
%8 = insertvalue { i8, i8 } undef, i8 %5, 0
%9 = insertvalue { i8, i8 } %8, i8 %7, 1
%10 = bitcast { i8, i8 }* %tmp to i8*
call void @llvm.lifetime.start(i64 2, i8* %10)
store { i8, i8 } %9, { i8, i8 }* %tmp
%11 = bitcast { i8, i8 }* %tmp to i16*
%12 = load i16, i16* %11, align 1
%13 = bitcast { i8, i8 }* %sret_slot to i16*
store i16 %12, i16* %13, align 1
call void @llvm.lifetime.end(i64 1, i8* %rhs)
call void @llvm.lifetime.end(i64 1, i8* %self)
%14 = bitcast { i8, i8 }* %sret_slot to i16*
%15 = load i16, i16* %14, align 1
ret i16 %15
}
; Function Attrs: nounwind readnone
declare { i8, i1 } @llvm.usub.with.overflow.i8(i8, i8) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define i16 @_ZN3num8wrapping17u8.OverflowingOps15overflowing_mul20h840646b983ab5673ERbE(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i8, i8 }
%self = alloca i8
%rhs = alloca i8
%tmp = alloca { i8, i8 }
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
call void @llvm.lifetime.start(i64 1, i8* %rhs)
store i8 %1, i8* %rhs, align 1
%2 = load i8, i8* %self, align 1
%3 = load i8, i8* %rhs, align 1
%4 = call { i8, i1 } @llvm.umul.with.overflow.i8(i8 %2, i8 %3)
%5 = extractvalue { i8, i1 } %4, 0
%6 = extractvalue { i8, i1 } %4, 1
%7 = zext i1 %6 to i8
%8 = insertvalue { i8, i8 } undef, i8 %5, 0
%9 = insertvalue { i8, i8 } %8, i8 %7, 1
%10 = bitcast { i8, i8 }* %tmp to i8*
call void @llvm.lifetime.start(i64 2, i8* %10)
store { i8, i8 } %9, { i8, i8 }* %tmp
%11 = bitcast { i8, i8 }* %tmp to i16*
%12 = load i16, i16* %11, align 1
%13 = bitcast { i8, i8 }* %sret_slot to i16*
store i16 %12, i16* %13, align 1
call void @llvm.lifetime.end(i64 1, i8* %rhs)
call void @llvm.lifetime.end(i64 1, i8* %self)
%14 = bitcast { i8, i8 }* %sret_slot to i16*
%15 = load i16, i16* %14, align 1
ret i16 %15
}
; Function Attrs: nounwind readnone
declare { i8, i1 } @llvm.umul.with.overflow.i8(i8, i8) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define i16 @_ZN3num8wrapping17u8.OverflowingOps15overflowing_div20h4f9e492696057376WRbE(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i8, i8 }
%self = alloca i8
%rhs = alloca i8
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
call void @llvm.lifetime.start(i64 1, i8* %rhs)
store i8 %1, i8* %rhs, align 1
%2 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 0
%3 = load i8, i8* %self, align 1
%4 = load i8, i8* %rhs, align 1
%5 = icmp eq i8 %4, 0
br i1 %5, label %cond, label %next
next: ; preds = %entry-block
%6 = udiv i8 %3, %4
store i8 %6, i8* %2, align 1
%7 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 1
store i8 0, i8* %7, align 1
call void @llvm.lifetime.end(i64 1, i8* %rhs)
call void @llvm.lifetime.end(i64 1, i8* %self)
%8 = bitcast { i8, i8 }* %sret_slot to i16*
%9 = load i16, i16* %8, align 1
ret i16 %9
cond: ; preds = %entry-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43602)
unreachable
}
; Function Attrs: alwaysinline uwtable
define i16 @_ZN3num8wrapping17u8.OverflowingOps15overflowing_rem20h1d385d2449292797dSbE(i8, i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i8, i8 }
%self = alloca i8
%rhs = alloca i8
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
call void @llvm.lifetime.start(i64 1, i8* %rhs)
store i8 %1, i8* %rhs, align 1
%2 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 0
%3 = load i8, i8* %self, align 1
%4 = load i8, i8* %rhs, align 1
%5 = icmp eq i8 %4, 0
br i1 %5, label %cond, label %next
next: ; preds = %entry-block
%6 = urem i8 %3, %4
store i8 %6, i8* %2, align 1
%7 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 1
store i8 0, i8* %7, align 1
call void @llvm.lifetime.end(i64 1, i8* %rhs)
call void @llvm.lifetime.end(i64 1, i8* %self)
%8 = bitcast { i8, i8 }* %sret_slot to i16*
%9 = load i16, i16* %8, align 1
ret i16 %9
cond: ; preds = %entry-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43603)
unreachable
}
; Function Attrs: alwaysinline uwtable
define i16 @_ZN3num8wrapping17u8.OverflowingOps15overflowing_shl20hb05dd6f4e30e43cfuSbE(i8, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i8, i8 }
%self = alloca i8
%rhs = alloca i32
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
%2 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %1, i32* %rhs, align 4
%3 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 0
%4 = load i32, i32* %rhs, align 4
%5 = and i32 %4, 7
%6 = load i8, i8* %self, align 1
%7 = trunc i32 %5 to i8
%8 = and i8 %7, 7
%9 = shl i8 %6, %8
store i8 %9, i8* %3, align 1
%10 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 1
%11 = load i32, i32* %rhs, align 4
%12 = icmp ugt i32 %11, 7
%13 = zext i1 %12 to i8
store i8 %13, i8* %10, align 1
%14 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %14)
call void @llvm.lifetime.end(i64 1, i8* %self)
%15 = bitcast { i8, i8 }* %sret_slot to i16*
%16 = load i16, i16* %15, align 1
ret i16 %16
}
; Function Attrs: alwaysinline uwtable
define i16 @_ZN3num8wrapping17u8.OverflowingOps15overflowing_shr20h808578ceaf704c5fRSbE(i8, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i8, i8 }
%self = alloca i8
%rhs = alloca i32
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
%2 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %1, i32* %rhs, align 4
%3 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 0
%4 = load i32, i32* %rhs, align 4
%5 = and i32 %4, 7
%6 = load i8, i8* %self, align 1
%7 = trunc i32 %5 to i8
%8 = and i8 %7, 7
%9 = lshr i8 %6, %8
store i8 %9, i8* %3, align 1
%10 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 1
%11 = load i32, i32* %rhs, align 4
%12 = icmp ugt i32 %11, 7
%13 = zext i1 %12 to i8
store i8 %13, i8* %10, align 1
%14 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %14)
call void @llvm.lifetime.end(i64 1, i8* %self)
%15 = bitcast { i8, i8 }* %sret_slot to i16*
%16 = load i16, i16* %15, align 1
ret i16 %16
}
; Function Attrs: alwaysinline uwtable
define i16 @_ZN3num8wrapping17u8.OverflowingOps15overflowing_neg20hd41ef787b1772c23eTbE(i8) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i8, i8 }
%self = alloca i8
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
%1 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 0
%2 = load i8, i8* %self, align 1
%3 = xor i8 %2, -1
%4 = call i8 @_ZN3num2u812wrapping_add20hc8a32ac693713172ysgE(i8 %3, i8 1)
store i8 %4, i8* %1, align 1
%5 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 1
store i8 1, i8* %5, align 1
call void @llvm.lifetime.end(i64 1, i8* %self)
%6 = bitcast { i8, i8 }* %sret_slot to i16*
%7 = load i16, i16* %6, align 1
ret i16 %7
}
; Function Attrs: alwaysinline uwtable
define i32 @_ZN3num8wrapping18u16.OverflowingOps15overflowing_add20ha29b9399e0e9799dyTbE(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i16, i8 }
%self = alloca i16
%rhs = alloca i16
%tmp = alloca { i16, i8 }
%2 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
store i16 %0, i16* %self, align 2
%3 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.start(i64 2, i8* %3)
store i16 %1, i16* %rhs, align 2
%4 = load i16, i16* %self, align 2
%5 = load i16, i16* %rhs, align 2
%6 = call { i16, i1 } @llvm.uadd.with.overflow.i16(i16 %4, i16 %5)
%7 = extractvalue { i16, i1 } %6, 0
%8 = extractvalue { i16, i1 } %6, 1
%9 = zext i1 %8 to i8
%10 = insertvalue { i16, i8 } undef, i16 %7, 0
%11 = insertvalue { i16, i8 } %10, i8 %9, 1
%12 = bitcast { i16, i8 }* %tmp to i8*
call void @llvm.lifetime.start(i64 4, i8* %12)
store { i16, i8 } %11, { i16, i8 }* %tmp
%13 = bitcast { i16, i8 }* %tmp to i32*
%14 = load i32, i32* %13, align 2
%15 = bitcast { i16, i8 }* %sret_slot to i32*
store i32 %14, i32* %15, align 2
%16 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.end(i64 2, i8* %16)
%17 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %17)
%18 = bitcast { i16, i8 }* %sret_slot to i32*
%19 = load i32, i32* %18, align 2
ret i32 %19
}
; Function Attrs: nounwind readnone
declare { i16, i1 } @llvm.uadd.with.overflow.i16(i16, i16) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define i32 @_ZN3num8wrapping18u16.OverflowingOps15overflowing_sub20h48c69bc173bb4c50QTbE(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i16, i8 }
%self = alloca i16
%rhs = alloca i16
%tmp = alloca { i16, i8 }
%2 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
store i16 %0, i16* %self, align 2
%3 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.start(i64 2, i8* %3)
store i16 %1, i16* %rhs, align 2
%4 = load i16, i16* %self, align 2
%5 = load i16, i16* %rhs, align 2
%6 = call { i16, i1 } @llvm.usub.with.overflow.i16(i16 %4, i16 %5)
%7 = extractvalue { i16, i1 } %6, 0
%8 = extractvalue { i16, i1 } %6, 1
%9 = zext i1 %8 to i8
%10 = insertvalue { i16, i8 } undef, i16 %7, 0
%11 = insertvalue { i16, i8 } %10, i8 %9, 1
%12 = bitcast { i16, i8 }* %tmp to i8*
call void @llvm.lifetime.start(i64 4, i8* %12)
store { i16, i8 } %11, { i16, i8 }* %tmp
%13 = bitcast { i16, i8 }* %tmp to i32*
%14 = load i32, i32* %13, align 2
%15 = bitcast { i16, i8 }* %sret_slot to i32*
store i32 %14, i32* %15, align 2
%16 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.end(i64 2, i8* %16)
%17 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %17)
%18 = bitcast { i16, i8 }* %sret_slot to i32*
%19 = load i32, i32* %18, align 2
ret i32 %19
}
; Function Attrs: nounwind readnone
declare { i16, i1 } @llvm.usub.with.overflow.i16(i16, i16) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define i32 @_ZN3num8wrapping18u16.OverflowingOps15overflowing_mul20hed3a00c1d54d8c1d8TbE(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i16, i8 }
%self = alloca i16
%rhs = alloca i16
%tmp = alloca { i16, i8 }
%2 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
store i16 %0, i16* %self, align 2
%3 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.start(i64 2, i8* %3)
store i16 %1, i16* %rhs, align 2
%4 = load i16, i16* %self, align 2
%5 = load i16, i16* %rhs, align 2
%6 = call { i16, i1 } @llvm.umul.with.overflow.i16(i16 %4, i16 %5)
%7 = extractvalue { i16, i1 } %6, 0
%8 = extractvalue { i16, i1 } %6, 1
%9 = zext i1 %8 to i8
%10 = insertvalue { i16, i8 } undef, i16 %7, 0
%11 = insertvalue { i16, i8 } %10, i8 %9, 1
%12 = bitcast { i16, i8 }* %tmp to i8*
call void @llvm.lifetime.start(i64 4, i8* %12)
store { i16, i8 } %11, { i16, i8 }* %tmp
%13 = bitcast { i16, i8 }* %tmp to i32*
%14 = load i32, i32* %13, align 2
%15 = bitcast { i16, i8 }* %sret_slot to i32*
store i32 %14, i32* %15, align 2
%16 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.end(i64 2, i8* %16)
%17 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %17)
%18 = bitcast { i16, i8 }* %sret_slot to i32*
%19 = load i32, i32* %18, align 2
ret i32 %19
}
; Function Attrs: nounwind readnone
declare { i16, i1 } @llvm.umul.with.overflow.i16(i16, i16) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define i32 @_ZN3num8wrapping18u16.OverflowingOps15overflowing_div20h32091944d2fb57e5qUbE(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i16, i8 }
%self = alloca i16
%rhs = alloca i16
%2 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
store i16 %0, i16* %self, align 2
%3 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.start(i64 2, i8* %3)
store i16 %1, i16* %rhs, align 2
%4 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 0
%5 = load i16, i16* %self, align 2
%6 = load i16, i16* %rhs, align 2
%7 = icmp eq i16 %6, 0
br i1 %7, label %cond, label %next
next: ; preds = %entry-block
%8 = udiv i16 %5, %6
store i16 %8, i16* %4, align 2
%9 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 1
store i8 0, i8* %9, align 1
%10 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.end(i64 2, i8* %10)
%11 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %11)
%12 = bitcast { i16, i8 }* %sret_slot to i32*
%13 = load i32, i32* %12, align 2
ret i32 %13
cond: ; preds = %entry-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43602)
unreachable
}
; Function Attrs: alwaysinline uwtable
define i32 @_ZN3num8wrapping18u16.OverflowingOps15overflowing_rem20h9497910ece68bb8cHUbE(i16, i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i16, i8 }
%self = alloca i16
%rhs = alloca i16
%2 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
store i16 %0, i16* %self, align 2
%3 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.start(i64 2, i8* %3)
store i16 %1, i16* %rhs, align 2
%4 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 0
%5 = load i16, i16* %self, align 2
%6 = load i16, i16* %rhs, align 2
%7 = icmp eq i16 %6, 0
br i1 %7, label %cond, label %next
next: ; preds = %entry-block
%8 = urem i16 %5, %6
store i16 %8, i16* %4, align 2
%9 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 1
store i8 0, i8* %9, align 1
%10 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.end(i64 2, i8* %10)
%11 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %11)
%12 = bitcast { i16, i8 }* %sret_slot to i32*
%13 = load i32, i32* %12, align 2
ret i32 %13
cond: ; preds = %entry-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43603)
unreachable
}
; Function Attrs: alwaysinline uwtable
define i32 @_ZN3num8wrapping18u16.OverflowingOps15overflowing_shl20h1502952d103fb6b2YUbE(i16, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i16, i8 }
%self = alloca i16
%rhs = alloca i32
%2 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
store i16 %0, i16* %self, align 2
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 0
%5 = load i32, i32* %rhs, align 4
%6 = and i32 %5, 15
%7 = load i16, i16* %self, align 2
%8 = trunc i32 %6 to i16
%9 = and i16 %8, 15
%10 = shl i16 %7, %9
store i16 %10, i16* %4, align 2
%11 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 1
%12 = load i32, i32* %rhs, align 4
%13 = icmp ugt i32 %12, 15
%14 = zext i1 %13 to i8
store i8 %14, i8* %11, align 1
%15 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %15)
%16 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %16)
%17 = bitcast { i16, i8 }* %sret_slot to i32*
%18 = load i32, i32* %17, align 2
ret i32 %18
}
; Function Attrs: alwaysinline uwtable
define i32 @_ZN3num8wrapping18u16.OverflowingOps15overflowing_shr20he4dbc90acfa38e40lVbE(i16, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i16, i8 }
%self = alloca i16
%rhs = alloca i32
%2 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %2)
store i16 %0, i16* %self, align 2
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 0
%5 = load i32, i32* %rhs, align 4
%6 = and i32 %5, 15
%7 = load i16, i16* %self, align 2
%8 = trunc i32 %6 to i16
%9 = and i16 %8, 15
%10 = lshr i16 %7, %9
store i16 %10, i16* %4, align 2
%11 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 1
%12 = load i32, i32* %rhs, align 4
%13 = icmp ugt i32 %12, 15
%14 = zext i1 %13 to i8
store i8 %14, i8* %11, align 1
%15 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %15)
%16 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %16)
%17 = bitcast { i16, i8 }* %sret_slot to i32*
%18 = load i32, i32* %17, align 2
ret i32 %18
}
; Function Attrs: alwaysinline uwtable
define i32 @_ZN3num8wrapping18u16.OverflowingOps15overflowing_neg20h785b518a961c5058IVbE(i16) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i16, i8 }
%self = alloca i16
%1 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %1)
store i16 %0, i16* %self, align 2
%2 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 0
%3 = load i16, i16* %self, align 2
%4 = xor i16 %3, -1
%5 = call i16 @_ZN3num3u1612wrapping_add20h54caf0e7cdda9b7bbEgE(i16 %4, i16 1)
store i16 %5, i16* %2, align 2
%6 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %sret_slot, i32 0, i32 1
store i8 1, i8* %6, align 1
%7 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %7)
%8 = bitcast { i16, i8 }* %sret_slot to i32*
%9 = load i32, i32* %8, align 2
ret i32 %9
}
; Function Attrs: alwaysinline uwtable
define i64 @_ZN3num8wrapping18u32.OverflowingOps15overflowing_add20hf8288f768e74e6832VbE(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i32, i8 }
%self = alloca i32
%rhs = alloca i32
%tmp = alloca { i32, i8 }
%2 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %0, i32* %self, align 4
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = load i32, i32* %self, align 4
%5 = load i32, i32* %rhs, align 4
%6 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %4, i32 %5)
%7 = extractvalue { i32, i1 } %6, 0
%8 = extractvalue { i32, i1 } %6, 1
%9 = zext i1 %8 to i8
%10 = insertvalue { i32, i8 } undef, i32 %7, 0
%11 = insertvalue { i32, i8 } %10, i8 %9, 1
%12 = bitcast { i32, i8 }* %tmp to i8*
call void @llvm.lifetime.start(i64 8, i8* %12)
store { i32, i8 } %11, { i32, i8 }* %tmp
%13 = bitcast { i32, i8 }* %tmp to i64*
%14 = load i64, i64* %13, align 4
%15 = bitcast { i32, i8 }* %sret_slot to i64*
store i64 %14, i64* %15, align 4
%16 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %16)
%17 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %17)
%18 = bitcast { i32, i8 }* %sret_slot to i64*
%19 = load i64, i64* %18, align 4
ret i64 %19
}
; Function Attrs: nounwind readnone
declare { i32, i1 } @llvm.uadd.with.overflow.i32(i32, i32) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define i64 @_ZN3num8wrapping18u32.OverflowingOps15overflowing_sub20h6721824184383a57kWbE(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i32, i8 }
%self = alloca i32
%rhs = alloca i32
%tmp = alloca { i32, i8 }
%2 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %0, i32* %self, align 4
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = load i32, i32* %self, align 4
%5 = load i32, i32* %rhs, align 4
%6 = call { i32, i1 } @llvm.usub.with.overflow.i32(i32 %4, i32 %5)
%7 = extractvalue { i32, i1 } %6, 0
%8 = extractvalue { i32, i1 } %6, 1
%9 = zext i1 %8 to i8
%10 = insertvalue { i32, i8 } undef, i32 %7, 0
%11 = insertvalue { i32, i8 } %10, i8 %9, 1
%12 = bitcast { i32, i8 }* %tmp to i8*
call void @llvm.lifetime.start(i64 8, i8* %12)
store { i32, i8 } %11, { i32, i8 }* %tmp
%13 = bitcast { i32, i8 }* %tmp to i64*
%14 = load i64, i64* %13, align 4
%15 = bitcast { i32, i8 }* %sret_slot to i64*
store i64 %14, i64* %15, align 4
%16 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %16)
%17 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %17)
%18 = bitcast { i32, i8 }* %sret_slot to i64*
%19 = load i64, i64* %18, align 4
ret i64 %19
}
; Function Attrs: nounwind readnone
declare { i32, i1 } @llvm.usub.with.overflow.i32(i32, i32) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define i64 @_ZN3num8wrapping18u32.OverflowingOps15overflowing_mul20hba622f339c467cf9CWbE(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i32, i8 }
%self = alloca i32
%rhs = alloca i32
%tmp = alloca { i32, i8 }
%2 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %0, i32* %self, align 4
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = load i32, i32* %self, align 4
%5 = load i32, i32* %rhs, align 4
%6 = call { i32, i1 } @llvm.umul.with.overflow.i32(i32 %4, i32 %5)
%7 = extractvalue { i32, i1 } %6, 0
%8 = extractvalue { i32, i1 } %6, 1
%9 = zext i1 %8 to i8
%10 = insertvalue { i32, i8 } undef, i32 %7, 0
%11 = insertvalue { i32, i8 } %10, i8 %9, 1
%12 = bitcast { i32, i8 }* %tmp to i8*
call void @llvm.lifetime.start(i64 8, i8* %12)
store { i32, i8 } %11, { i32, i8 }* %tmp
%13 = bitcast { i32, i8 }* %tmp to i64*
%14 = load i64, i64* %13, align 4
%15 = bitcast { i32, i8 }* %sret_slot to i64*
store i64 %14, i64* %15, align 4
%16 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %16)
%17 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %17)
%18 = bitcast { i32, i8 }* %sret_slot to i64*
%19 = load i64, i64* %18, align 4
ret i64 %19
}
; Function Attrs: nounwind readnone
declare { i32, i1 } @llvm.umul.with.overflow.i32(i32, i32) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define i64 @_ZN3num8wrapping18u32.OverflowingOps15overflowing_div20hd30e2ed2f4177aa3UWbE(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i32, i8 }
%self = alloca i32
%rhs = alloca i32
%2 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %0, i32* %self, align 4
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 0
%5 = load i32, i32* %self, align 4
%6 = load i32, i32* %rhs, align 4
%7 = icmp eq i32 %6, 0
br i1 %7, label %cond, label %next
next: ; preds = %entry-block
%8 = udiv i32 %5, %6
store i32 %8, i32* %4, align 4
%9 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 1
store i8 0, i8* %9, align 1
%10 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %10)
%11 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %11)
%12 = bitcast { i32, i8 }* %sret_slot to i64*
%13 = load i64, i64* %12, align 4
ret i64 %13
cond: ; preds = %entry-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43602)
unreachable
}
; Function Attrs: alwaysinline uwtable
define i64 @_ZN3num8wrapping18u32.OverflowingOps15overflowing_rem20hc3e4904e0017f192bXbE(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i32, i8 }
%self = alloca i32
%rhs = alloca i32
%2 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %0, i32* %self, align 4
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 0
%5 = load i32, i32* %self, align 4
%6 = load i32, i32* %rhs, align 4
%7 = icmp eq i32 %6, 0
br i1 %7, label %cond, label %next
next: ; preds = %entry-block
%8 = urem i32 %5, %6
store i32 %8, i32* %4, align 4
%9 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 1
store i8 0, i8* %9, align 1
%10 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %10)
%11 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %11)
%12 = bitcast { i32, i8 }* %sret_slot to i64*
%13 = load i64, i64* %12, align 4
ret i64 %13
cond: ; preds = %entry-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43603)
unreachable
}
; Function Attrs: alwaysinline uwtable
define i64 @_ZN3num8wrapping18u32.OverflowingOps15overflowing_shl20hb0df96758be5f4e2sXbE(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i32, i8 }
%self = alloca i32
%rhs = alloca i32
%2 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %0, i32* %self, align 4
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 0
%5 = load i32, i32* %rhs, align 4
%6 = and i32 %5, 31
%7 = load i32, i32* %self, align 4
%8 = and i32 %6, 31
%9 = shl i32 %7, %8
store i32 %9, i32* %4, align 4
%10 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 1
%11 = load i32, i32* %rhs, align 4
%12 = icmp ugt i32 %11, 31
%13 = zext i1 %12 to i8
store i8 %13, i8* %10, align 1
%14 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %14)
%15 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %15)
%16 = bitcast { i32, i8 }* %sret_slot to i64*
%17 = load i64, i64* %16, align 4
ret i64 %17
}
; Function Attrs: alwaysinline uwtable
define i64 @_ZN3num8wrapping18u32.OverflowingOps15overflowing_shr20h5f2e39a7a7f725ecPXbE(i32, i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i32, i8 }
%self = alloca i32
%rhs = alloca i32
%2 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %0, i32* %self, align 4
%3 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %3)
store i32 %1, i32* %rhs, align 4
%4 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 0
%5 = load i32, i32* %rhs, align 4
%6 = and i32 %5, 31
%7 = load i32, i32* %self, align 4
%8 = and i32 %6, 31
%9 = lshr i32 %7, %8
store i32 %9, i32* %4, align 4
%10 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 1
%11 = load i32, i32* %rhs, align 4
%12 = icmp ugt i32 %11, 31
%13 = zext i1 %12 to i8
store i8 %13, i8* %10, align 1
%14 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %14)
%15 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %15)
%16 = bitcast { i32, i8 }* %sret_slot to i64*
%17 = load i64, i64* %16, align 4
ret i64 %17
}
; Function Attrs: alwaysinline uwtable
define i64 @_ZN3num8wrapping18u32.OverflowingOps15overflowing_neg20h90660b8c9d1dd3b8cYbE(i32) unnamed_addr #6 {
entry-block:
%sret_slot = alloca { i32, i8 }
%self = alloca i32
%1 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %1)
store i32 %0, i32* %self, align 4
%2 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 0
%3 = load i32, i32* %self, align 4
%4 = xor i32 %3, -1
%5 = call i32 @_ZN3num3u3212wrapping_add20h39718c532b7e77c7OPgE(i32 %4, i32 1)
store i32 %5, i32* %2, align 4
%6 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %sret_slot, i32 0, i32 1
store i8 1, i8* %6, align 1
%7 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %7)
%8 = bitcast { i32, i8 }* %sret_slot to i64*
%9 = load i64, i64* %8, align 4
ret i64 %9
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping18u64.OverflowingOps15overflowing_add20ha0207dcfd28513b3wYbE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %2, i64* %rhs, align 8
%5 = load i64, i64* %self, align 8
%6 = load i64, i64* %rhs, align 8
%7 = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %5, i64 %6)
%8 = extractvalue { i64, i1 } %7, 0
%9 = extractvalue { i64, i1 } %7, 1
%10 = zext i1 %9 to i8
%11 = insertvalue { i64, i8 } undef, i64 %8, 0
%12 = insertvalue { i64, i8 } %11, i8 %10, 1
store { i64, i8 } %12, { i64, i8 }* %0, align 8
%13 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %14)
ret void
}
; Function Attrs: nounwind readnone
declare { i64, i1 } @llvm.uadd.with.overflow.i64(i64, i64) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping18u64.OverflowingOps15overflowing_sub20h6f596f830ba6bcbeOYbE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %2, i64* %rhs, align 8
%5 = load i64, i64* %self, align 8
%6 = load i64, i64* %rhs, align 8
%7 = call { i64, i1 } @llvm.usub.with.overflow.i64(i64 %5, i64 %6)
%8 = extractvalue { i64, i1 } %7, 0
%9 = extractvalue { i64, i1 } %7, 1
%10 = zext i1 %9 to i8
%11 = insertvalue { i64, i8 } undef, i64 %8, 0
%12 = insertvalue { i64, i8 } %11, i8 %10, 1
store { i64, i8 } %12, { i64, i8 }* %0, align 8
%13 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %14)
ret void
}
; Function Attrs: nounwind readnone
declare { i64, i1 } @llvm.usub.with.overflow.i64(i64, i64) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping18u64.OverflowingOps15overflowing_mul20h71795bbcab9a51bd6YbE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %2, i64* %rhs, align 8
%5 = load i64, i64* %self, align 8
%6 = load i64, i64* %rhs, align 8
%7 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %5, i64 %6)
%8 = extractvalue { i64, i1 } %7, 0
%9 = extractvalue { i64, i1 } %7, 1
%10 = zext i1 %9 to i8
%11 = insertvalue { i64, i8 } undef, i64 %8, 0
%12 = insertvalue { i64, i8 } %11, i8 %10, 1
store { i64, i8 } %12, { i64, i8 }* %0, align 8
%13 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %14)
ret void
}
; Function Attrs: nounwind readnone
declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) unnamed_addr #5
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping18u64.OverflowingOps15overflowing_div20h9f1390a24b439586oZbE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %2, i64* %rhs, align 8
%5 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%6 = load i64, i64* %self, align 8
%7 = load i64, i64* %rhs, align 8
%8 = icmp eq i64 %7, 0
br i1 %8, label %cond, label %next
next: ; preds = %entry-block
%9 = udiv i64 %6, %7
store i64 %9, i64* %5, align 8
%10 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
store i8 0, i8* %10, align 1
%11 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %11)
%12 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
ret void
cond: ; preds = %entry-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43602)
unreachable
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping18u64.OverflowingOps15overflowing_rem20h1fbf67b672b46663FZbE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %2, i64* %rhs, align 8
%5 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%6 = load i64, i64* %self, align 8
%7 = load i64, i64* %rhs, align 8
%8 = icmp eq i64 %7, 0
br i1 %8, label %cond, label %next
next: ; preds = %entry-block
%9 = urem i64 %6, %7
store i64 %9, i64* %5, align 8
%10 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
store i8 0, i8* %10, align 1
%11 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %11)
%12 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
ret void
cond: ; preds = %entry-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43603)
unreachable
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping18u64.OverflowingOps15overflowing_shl20h6b57e4a6072b750aWZbE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i32) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i32
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
store i32 %2, i32* %rhs, align 4
%5 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%6 = load i32, i32* %rhs, align 4
%7 = and i32 %6, 63
%8 = load i64, i64* %self, align 8
%9 = zext i32 %7 to i64
%10 = and i64 %9, 63
%11 = shl i64 %8, %10
store i64 %11, i64* %5, align 8
%12 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
%13 = load i32, i32* %rhs, align 4
%14 = icmp ugt i32 %13, 63
%15 = zext i1 %14 to i8
store i8 %15, i8* %12, align 1
%16 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %16)
%17 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %17)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping18u64.OverflowingOps15overflowing_shr20h87027d6f7a10fc0cj0bE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i32) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i32
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
store i32 %2, i32* %rhs, align 4
%5 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%6 = load i32, i32* %rhs, align 4
%7 = and i32 %6, 63
%8 = load i64, i64* %self, align 8
%9 = zext i32 %7 to i64
%10 = and i64 %9, 63
%11 = lshr i64 %8, %10
store i64 %11, i64* %5, align 8
%12 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
%13 = load i32, i32* %rhs, align 4
%14 = icmp ugt i32 %13, 63
%15 = zext i1 %14 to i8
store i8 %15, i8* %12, align 1
%16 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %16)
%17 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %17)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping18u64.OverflowingOps15overflowing_neg20h2b935556cccf3acdG0bE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%2 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store i64 %1, i64* %self, align 8
%3 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%4 = load i64, i64* %self, align 8
%5 = xor i64 %4, -1
%6 = call i64 @_ZN3num3u6412wrapping_add20h14585383ea5422dcr1gE(i64 %5, i64 1)
store i64 %6, i64* %3, align 8
%7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
store i8 1, i8* %7, align 1
%8 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %8)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping20usize.OverflowingOps15overflowing_add20hae272db05ab30d1100bE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%res = alloca { i64, i8 }
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %2, i64* %rhs, align 8
%5 = bitcast { i64, i8 }* %res to i8*
call void @llvm.lifetime.start(i64 16, i8* %5)
%6 = load i64, i64* %self, align 8
%7 = load i64, i64* %rhs, align 8
%8 = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %6, i64 %7)
%9 = extractvalue { i64, i1 } %8, 0
%10 = extractvalue { i64, i1 } %8, 1
%11 = zext i1 %10 to i8
%12 = insertvalue { i64, i8 } undef, i64 %9, 0
%13 = insertvalue { i64, i8 } %12, i8 %11, 1
store { i64, i8 } %13, { i64, i8 }* %res, align 8
%14 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%15 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %res, i32 0, i32 0
%16 = load i64, i64* %15, align 8
store i64 %16, i64* %14, align 8
%17 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
%18 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %res, i32 0, i32 1
%19 = load i8, i8* %18, align 1, !range !1
%20 = trunc i8 %19 to i1
%21 = zext i1 %20 to i8
store i8 %21, i8* %17, align 1
%22 = bitcast { i64, i8 }* %res to i8*
call void @llvm.lifetime.end(i64 16, i8* %22)
%23 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %23)
%24 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %24)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping20usize.OverflowingOps15overflowing_sub20h88757c75421619d3w1bE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%res = alloca { i64, i8 }
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %2, i64* %rhs, align 8
%5 = bitcast { i64, i8 }* %res to i8*
call void @llvm.lifetime.start(i64 16, i8* %5)
%6 = load i64, i64* %self, align 8
%7 = load i64, i64* %rhs, align 8
%8 = call { i64, i1 } @llvm.usub.with.overflow.i64(i64 %6, i64 %7)
%9 = extractvalue { i64, i1 } %8, 0
%10 = extractvalue { i64, i1 } %8, 1
%11 = zext i1 %10 to i8
%12 = insertvalue { i64, i8 } undef, i64 %9, 0
%13 = insertvalue { i64, i8 } %12, i8 %11, 1
store { i64, i8 } %13, { i64, i8 }* %res, align 8
%14 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%15 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %res, i32 0, i32 0
%16 = load i64, i64* %15, align 8
store i64 %16, i64* %14, align 8
%17 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
%18 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %res, i32 0, i32 1
%19 = load i8, i8* %18, align 1, !range !1
%20 = trunc i8 %19 to i1
%21 = zext i1 %20 to i8
store i8 %21, i8* %17, align 1
%22 = bitcast { i64, i8 }* %res to i8*
call void @llvm.lifetime.end(i64 16, i8* %22)
%23 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %23)
%24 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %24)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping20usize.OverflowingOps15overflowing_mul20h3b948f8c48932ec321bE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%res = alloca { i64, i8 }
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %2, i64* %rhs, align 8
%5 = bitcast { i64, i8 }* %res to i8*
call void @llvm.lifetime.start(i64 16, i8* %5)
%6 = load i64, i64* %self, align 8
%7 = load i64, i64* %rhs, align 8
%8 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %6, i64 %7)
%9 = extractvalue { i64, i1 } %8, 0
%10 = extractvalue { i64, i1 } %8, 1
%11 = zext i1 %10 to i8
%12 = insertvalue { i64, i8 } undef, i64 %9, 0
%13 = insertvalue { i64, i8 } %12, i8 %11, 1
store { i64, i8 } %13, { i64, i8 }* %res, align 8
%14 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%15 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %res, i32 0, i32 0
%16 = load i64, i64* %15, align 8
store i64 %16, i64* %14, align 8
%17 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
%18 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %res, i32 0, i32 1
%19 = load i8, i8* %18, align 1, !range !1
%20 = trunc i8 %19 to i1
%21 = zext i1 %20 to i8
store i8 %21, i8* %17, align 1
%22 = bitcast { i64, i8 }* %res to i8*
call void @llvm.lifetime.end(i64 16, i8* %22)
%23 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %23)
%24 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %24)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping20usize.OverflowingOps15overflowing_div20h4b55a43ba09454efy2bE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%3 = alloca { i64, i8 }
%r = alloca i64
%f = alloca i8
%4 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %self, align 8
%5 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %5)
store i64 %2, i64* %rhs, align 8
%6 = bitcast { i64, i8 }* %3 to i8*
call void @llvm.lifetime.start(i64 16, i8* %6)
%7 = load i64, i64* %self, align 8
%8 = load i64, i64* %rhs, align 8
call void @_ZN3num8wrapping18u64.OverflowingOps15overflowing_div20h9f1390a24b439586oZbE({ i64, i8 }* noalias nocapture sret dereferenceable(16) %3, i64 %7, i64 %8)
%9 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %3, i32 0, i32 0
%10 = bitcast i64* %r to i8*
call void @llvm.lifetime.start(i64 8, i8* %10)
%11 = load i64, i64* %9, align 8
store i64 %11, i64* %r, align 8
%12 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %3, i32 0, i32 1
call void @llvm.lifetime.start(i64 1, i8* %f)
%13 = load i8, i8* %12, align 1, !range !1
%14 = trunc i8 %13 to i1
%15 = zext i1 %14 to i8
store i8 %15, i8* %f, align 1
%16 = bitcast { i64, i8 }* %3 to i8*
call void @llvm.lifetime.end(i64 16, i8* %16)
%17 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%18 = load i64, i64* %r, align 8
store i64 %18, i64* %17, align 8
%19 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
%20 = load i8, i8* %f, align 1, !range !1
%21 = trunc i8 %20 to i1
%22 = zext i1 %21 to i8
store i8 %22, i8* %19, align 1
call void @llvm.lifetime.end(i64 1, i8* %f)
%23 = bitcast i64* %r to i8*
call void @llvm.lifetime.end(i64 8, i8* %23)
%24 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %24)
%25 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %25)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping20usize.OverflowingOps15overflowing_rem20h379a30ddf97a633922bE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%3 = alloca { i64, i8 }
%r = alloca i64
%f = alloca i8
%4 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %self, align 8
%5 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %5)
store i64 %2, i64* %rhs, align 8
%6 = bitcast { i64, i8 }* %3 to i8*
call void @llvm.lifetime.start(i64 16, i8* %6)
%7 = load i64, i64* %self, align 8
%8 = load i64, i64* %rhs, align 8
call void @_ZN3num8wrapping18u64.OverflowingOps15overflowing_rem20h1fbf67b672b46663FZbE({ i64, i8 }* noalias nocapture sret dereferenceable(16) %3, i64 %7, i64 %8)
%9 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %3, i32 0, i32 0
%10 = bitcast i64* %r to i8*
call void @llvm.lifetime.start(i64 8, i8* %10)
%11 = load i64, i64* %9, align 8
store i64 %11, i64* %r, align 8
%12 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %3, i32 0, i32 1
call void @llvm.lifetime.start(i64 1, i8* %f)
%13 = load i8, i8* %12, align 1, !range !1
%14 = trunc i8 %13 to i1
%15 = zext i1 %14 to i8
store i8 %15, i8* %f, align 1
%16 = bitcast { i64, i8 }* %3 to i8*
call void @llvm.lifetime.end(i64 16, i8* %16)
%17 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%18 = load i64, i64* %r, align 8
store i64 %18, i64* %17, align 8
%19 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
%20 = load i8, i8* %f, align 1, !range !1
%21 = trunc i8 %20 to i1
%22 = zext i1 %21 to i8
store i8 %22, i8* %19, align 1
call void @llvm.lifetime.end(i64 1, i8* %f)
%23 = bitcast i64* %r to i8*
call void @llvm.lifetime.end(i64 8, i8* %23)
%24 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %24)
%25 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %25)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping20usize.OverflowingOps15overflowing_neg20h610c9144b77318aaw3bE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%2 = alloca { i64, i8 }
%r = alloca i64
%f = alloca i8
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast { i64, i8 }* %2 to i8*
call void @llvm.lifetime.start(i64 16, i8* %4)
%5 = load i64, i64* %self, align 8
call void @_ZN3num8wrapping18u64.OverflowingOps15overflowing_neg20h2b935556cccf3acdG0bE({ i64, i8 }* noalias nocapture sret dereferenceable(16) %2, i64 %5)
%6 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %2, i32 0, i32 0
%7 = bitcast i64* %r to i8*
call void @llvm.lifetime.start(i64 8, i8* %7)
%8 = load i64, i64* %6, align 8
store i64 %8, i64* %r, align 8
%9 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %2, i32 0, i32 1
call void @llvm.lifetime.start(i64 1, i8* %f)
%10 = load i8, i8* %9, align 1, !range !1
%11 = trunc i8 %10 to i1
%12 = zext i1 %11 to i8
store i8 %12, i8* %f, align 1
%13 = bitcast { i64, i8 }* %2 to i8*
call void @llvm.lifetime.end(i64 16, i8* %13)
%14 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%15 = load i64, i64* %r, align 8
store i64 %15, i64* %14, align 8
%16 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
%17 = load i8, i8* %f, align 1, !range !1
%18 = trunc i8 %17 to i1
%19 = zext i1 %18 to i8
store i8 %19, i8* %16, align 1
call void @llvm.lifetime.end(i64 1, i8* %f)
%20 = bitcast i64* %r to i8*
call void @llvm.lifetime.end(i64 8, i8* %20)
%21 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %21)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping20usize.OverflowingOps15overflowing_shl20hba4fe07ce2777651U3bE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i32) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i32
%3 = alloca { i64, i8 }
%r = alloca i64
%f = alloca i8
%4 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %self, align 8
%5 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %5)
store i32 %2, i32* %rhs, align 4
%6 = bitcast { i64, i8 }* %3 to i8*
call void @llvm.lifetime.start(i64 16, i8* %6)
%7 = load i64, i64* %self, align 8
%8 = load i32, i32* %rhs, align 4
call void @_ZN3num8wrapping18u64.OverflowingOps15overflowing_shl20h6b57e4a6072b750aWZbE({ i64, i8 }* noalias nocapture sret dereferenceable(16) %3, i64 %7, i32 %8)
%9 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %3, i32 0, i32 0
%10 = bitcast i64* %r to i8*
call void @llvm.lifetime.start(i64 8, i8* %10)
%11 = load i64, i64* %9, align 8
store i64 %11, i64* %r, align 8
%12 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %3, i32 0, i32 1
call void @llvm.lifetime.start(i64 1, i8* %f)
%13 = load i8, i8* %12, align 1, !range !1
%14 = trunc i8 %13 to i1
%15 = zext i1 %14 to i8
store i8 %15, i8* %f, align 1
%16 = bitcast { i64, i8 }* %3 to i8*
call void @llvm.lifetime.end(i64 16, i8* %16)
%17 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%18 = load i64, i64* %r, align 8
store i64 %18, i64* %17, align 8
%19 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
%20 = load i8, i8* %f, align 1, !range !1
%21 = trunc i8 %20 to i1
%22 = zext i1 %21 to i8
store i8 %22, i8* %19, align 1
call void @llvm.lifetime.end(i64 1, i8* %f)
%23 = bitcast i64* %r to i8*
call void @llvm.lifetime.end(i64 8, i8* %23)
%24 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %24)
%25 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %25)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping20usize.OverflowingOps15overflowing_shr20h88a0448e8e847c58m4bE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i32) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i32
%3 = alloca { i64, i8 }
%r = alloca i64
%f = alloca i8
%4 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %self, align 8
%5 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %5)
store i32 %2, i32* %rhs, align 4
%6 = bitcast { i64, i8 }* %3 to i8*
call void @llvm.lifetime.start(i64 16, i8* %6)
%7 = load i64, i64* %self, align 8
%8 = load i32, i32* %rhs, align 4
call void @_ZN3num8wrapping18u64.OverflowingOps15overflowing_shr20h87027d6f7a10fc0cj0bE({ i64, i8 }* noalias nocapture sret dereferenceable(16) %3, i64 %7, i32 %8)
%9 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %3, i32 0, i32 0
%10 = bitcast i64* %r to i8*
call void @llvm.lifetime.start(i64 8, i8* %10)
%11 = load i64, i64* %9, align 8
store i64 %11, i64* %r, align 8
%12 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %3, i32 0, i32 1
call void @llvm.lifetime.start(i64 1, i8* %f)
%13 = load i8, i8* %12, align 1, !range !1
%14 = trunc i8 %13 to i1
%15 = zext i1 %14 to i8
store i8 %15, i8* %f, align 1
%16 = bitcast { i64, i8 }* %3 to i8*
call void @llvm.lifetime.end(i64 16, i8* %16)
%17 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%18 = load i64, i64* %r, align 8
store i64 %18, i64* %17, align 8
%19 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
%20 = load i8, i8* %f, align 1, !range !1
%21 = trunc i8 %20 to i1
%22 = zext i1 %21 to i8
store i8 %22, i8* %19, align 1
call void @llvm.lifetime.end(i64 1, i8* %f)
%23 = bitcast i64* %r to i8*
call void @llvm.lifetime.end(i64 8, i8* %23)
%24 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %24)
%25 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %25)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping20isize.OverflowingOps15overflowing_add20h909a216bae36b048S4bE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%res = alloca { i64, i8 }
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %2, i64* %rhs, align 8
%5 = bitcast { i64, i8 }* %res to i8*
call void @llvm.lifetime.start(i64 16, i8* %5)
%6 = load i64, i64* %self, align 8
%7 = load i64, i64* %rhs, align 8
%8 = call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %6, i64 %7)
%9 = extractvalue { i64, i1 } %8, 0
%10 = extractvalue { i64, i1 } %8, 1
%11 = zext i1 %10 to i8
%12 = insertvalue { i64, i8 } undef, i64 %9, 0
%13 = insertvalue { i64, i8 } %12, i8 %11, 1
store { i64, i8 } %13, { i64, i8 }* %res, align 8
%14 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%15 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %res, i32 0, i32 0
%16 = load i64, i64* %15, align 8
store i64 %16, i64* %14, align 8
%17 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
%18 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %res, i32 0, i32 1
%19 = load i8, i8* %18, align 1, !range !1
%20 = trunc i8 %19 to i1
%21 = zext i1 %20 to i8
store i8 %21, i8* %17, align 1
%22 = bitcast { i64, i8 }* %res to i8*
call void @llvm.lifetime.end(i64 16, i8* %22)
%23 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %23)
%24 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %24)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping20isize.OverflowingOps15overflowing_sub20h35d6435da3e99965o5bE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%res = alloca { i64, i8 }
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %2, i64* %rhs, align 8
%5 = bitcast { i64, i8 }* %res to i8*
call void @llvm.lifetime.start(i64 16, i8* %5)
%6 = load i64, i64* %self, align 8
%7 = load i64, i64* %rhs, align 8
%8 = call { i64, i1 } @llvm.ssub.with.overflow.i64(i64 %6, i64 %7)
%9 = extractvalue { i64, i1 } %8, 0
%10 = extractvalue { i64, i1 } %8, 1
%11 = zext i1 %10 to i8
%12 = insertvalue { i64, i8 } undef, i64 %9, 0
%13 = insertvalue { i64, i8 } %12, i8 %11, 1
store { i64, i8 } %13, { i64, i8 }* %res, align 8
%14 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%15 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %res, i32 0, i32 0
%16 = load i64, i64* %15, align 8
store i64 %16, i64* %14, align 8
%17 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
%18 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %res, i32 0, i32 1
%19 = load i8, i8* %18, align 1, !range !1
%20 = trunc i8 %19 to i1
%21 = zext i1 %20 to i8
store i8 %21, i8* %17, align 1
%22 = bitcast { i64, i8 }* %res to i8*
call void @llvm.lifetime.end(i64 16, i8* %22)
%23 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %23)
%24 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %24)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping20isize.OverflowingOps15overflowing_mul20hddfd5cf1539fd978U5bE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%res = alloca { i64, i8 }
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %2, i64* %rhs, align 8
%5 = bitcast { i64, i8 }* %res to i8*
call void @llvm.lifetime.start(i64 16, i8* %5)
%6 = load i64, i64* %self, align 8
%7 = load i64, i64* %rhs, align 8
%8 = call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %6, i64 %7)
%9 = extractvalue { i64, i1 } %8, 0
%10 = extractvalue { i64, i1 } %8, 1
%11 = zext i1 %10 to i8
%12 = insertvalue { i64, i8 } undef, i64 %9, 0
%13 = insertvalue { i64, i8 } %12, i8 %11, 1
store { i64, i8 } %13, { i64, i8 }* %res, align 8
%14 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%15 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %res, i32 0, i32 0
%16 = load i64, i64* %15, align 8
store i64 %16, i64* %14, align 8
%17 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
%18 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %res, i32 0, i32 1
%19 = load i8, i8* %18, align 1, !range !1
%20 = trunc i8 %19 to i1
%21 = zext i1 %20 to i8
store i8 %21, i8* %17, align 1
%22 = bitcast { i64, i8 }* %res to i8*
call void @llvm.lifetime.end(i64 16, i8* %22)
%23 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %23)
%24 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %24)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping20isize.OverflowingOps15overflowing_div20h67d77fbfdc0c4b0fq6bE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%3 = alloca { i64, i8 }
%r = alloca i64
%f = alloca i8
%4 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %self, align 8
%5 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %5)
store i64 %2, i64* %rhs, align 8
%6 = bitcast { i64, i8 }* %3 to i8*
call void @llvm.lifetime.start(i64 16, i8* %6)
%7 = load i64, i64* %self, align 8
%8 = load i64, i64* %rhs, align 8
call void @_ZN3num8wrapping18i64.OverflowingOps15overflowing_div20haf2358da37c53bf2RObE({ i64, i8 }* noalias nocapture sret dereferenceable(16) %3, i64 %7, i64 %8)
%9 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %3, i32 0, i32 0
%10 = bitcast i64* %r to i8*
call void @llvm.lifetime.start(i64 8, i8* %10)
%11 = load i64, i64* %9, align 8
store i64 %11, i64* %r, align 8
%12 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %3, i32 0, i32 1
call void @llvm.lifetime.start(i64 1, i8* %f)
%13 = load i8, i8* %12, align 1, !range !1
%14 = trunc i8 %13 to i1
%15 = zext i1 %14 to i8
store i8 %15, i8* %f, align 1
%16 = bitcast { i64, i8 }* %3 to i8*
call void @llvm.lifetime.end(i64 16, i8* %16)
%17 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%18 = load i64, i64* %r, align 8
store i64 %18, i64* %17, align 8
%19 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
%20 = load i8, i8* %f, align 1, !range !1
%21 = trunc i8 %20 to i1
%22 = zext i1 %21 to i8
store i8 %22, i8* %19, align 1
call void @llvm.lifetime.end(i64 1, i8* %f)
%23 = bitcast i64* %r to i8*
call void @llvm.lifetime.end(i64 8, i8* %23)
%24 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %24)
%25 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %25)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping20isize.OverflowingOps15overflowing_rem20hbc42a634ae1a2244U6bE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i64
%3 = alloca { i64, i8 }
%r = alloca i64
%f = alloca i8
%4 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %self, align 8
%5 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %5)
store i64 %2, i64* %rhs, align 8
%6 = bitcast { i64, i8 }* %3 to i8*
call void @llvm.lifetime.start(i64 16, i8* %6)
%7 = load i64, i64* %self, align 8
%8 = load i64, i64* %rhs, align 8
call void @_ZN3num8wrapping18i64.OverflowingOps15overflowing_rem20h6177c7f991718bf4nPbE({ i64, i8 }* noalias nocapture sret dereferenceable(16) %3, i64 %7, i64 %8)
%9 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %3, i32 0, i32 0
%10 = bitcast i64* %r to i8*
call void @llvm.lifetime.start(i64 8, i8* %10)
%11 = load i64, i64* %9, align 8
store i64 %11, i64* %r, align 8
%12 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %3, i32 0, i32 1
call void @llvm.lifetime.start(i64 1, i8* %f)
%13 = load i8, i8* %12, align 1, !range !1
%14 = trunc i8 %13 to i1
%15 = zext i1 %14 to i8
store i8 %15, i8* %f, align 1
%16 = bitcast { i64, i8 }* %3 to i8*
call void @llvm.lifetime.end(i64 16, i8* %16)
%17 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%18 = load i64, i64* %r, align 8
store i64 %18, i64* %17, align 8
%19 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
%20 = load i8, i8* %f, align 1, !range !1
%21 = trunc i8 %20 to i1
%22 = zext i1 %21 to i8
store i8 %22, i8* %19, align 1
call void @llvm.lifetime.end(i64 1, i8* %f)
%23 = bitcast i64* %r to i8*
call void @llvm.lifetime.end(i64 8, i8* %23)
%24 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %24)
%25 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %25)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping20isize.OverflowingOps15overflowing_neg20hce84e224f7f54384o7bE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64) unnamed_addr #6 {
entry-block:
%self = alloca i64
%2 = alloca { i64, i8 }
%r = alloca i64
%f = alloca i8
%3 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %self, align 8
%4 = bitcast { i64, i8 }* %2 to i8*
call void @llvm.lifetime.start(i64 16, i8* %4)
%5 = load i64, i64* %self, align 8
call void @_ZN3num8wrapping18i64.OverflowingOps15overflowing_neg20h4029042b00095a7cDQbE({ i64, i8 }* noalias nocapture sret dereferenceable(16) %2, i64 %5)
%6 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %2, i32 0, i32 0
%7 = bitcast i64* %r to i8*
call void @llvm.lifetime.start(i64 8, i8* %7)
%8 = load i64, i64* %6, align 8
store i64 %8, i64* %r, align 8
%9 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %2, i32 0, i32 1
call void @llvm.lifetime.start(i64 1, i8* %f)
%10 = load i8, i8* %9, align 1, !range !1
%11 = trunc i8 %10 to i1
%12 = zext i1 %11 to i8
store i8 %12, i8* %f, align 1
%13 = bitcast { i64, i8 }* %2 to i8*
call void @llvm.lifetime.end(i64 16, i8* %13)
%14 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%15 = load i64, i64* %r, align 8
store i64 %15, i64* %14, align 8
%16 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
%17 = load i8, i8* %f, align 1, !range !1
%18 = trunc i8 %17 to i1
%19 = zext i1 %18 to i8
store i8 %19, i8* %16, align 1
call void @llvm.lifetime.end(i64 1, i8* %f)
%20 = bitcast i64* %r to i8*
call void @llvm.lifetime.end(i64 8, i8* %20)
%21 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %21)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping20isize.OverflowingOps15overflowing_shl20hb8272ded570cffadM7bE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i32) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i32
%3 = alloca { i64, i8 }
%r = alloca i64
%f = alloca i8
%4 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %self, align 8
%5 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %5)
store i32 %2, i32* %rhs, align 4
%6 = bitcast { i64, i8 }* %3 to i8*
call void @llvm.lifetime.start(i64 16, i8* %6)
%7 = load i64, i64* %self, align 8
%8 = load i32, i32* %rhs, align 4
call void @_ZN3num8wrapping18i64.OverflowingOps15overflowing_shl20h5c790e51b6132409TPbE({ i64, i8 }* noalias nocapture sret dereferenceable(16) %3, i64 %7, i32 %8)
%9 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %3, i32 0, i32 0
%10 = bitcast i64* %r to i8*
call void @llvm.lifetime.start(i64 8, i8* %10)
%11 = load i64, i64* %9, align 8
store i64 %11, i64* %r, align 8
%12 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %3, i32 0, i32 1
call void @llvm.lifetime.start(i64 1, i8* %f)
%13 = load i8, i8* %12, align 1, !range !1
%14 = trunc i8 %13 to i1
%15 = zext i1 %14 to i8
store i8 %15, i8* %f, align 1
%16 = bitcast { i64, i8 }* %3 to i8*
call void @llvm.lifetime.end(i64 16, i8* %16)
%17 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%18 = load i64, i64* %r, align 8
store i64 %18, i64* %17, align 8
%19 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
%20 = load i8, i8* %f, align 1, !range !1
%21 = trunc i8 %20 to i1
%22 = zext i1 %21 to i8
store i8 %22, i8* %19, align 1
call void @llvm.lifetime.end(i64 1, i8* %f)
%23 = bitcast i64* %r to i8*
call void @llvm.lifetime.end(i64 8, i8* %23)
%24 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %24)
%25 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %25)
ret void
}
; Function Attrs: alwaysinline uwtable
define void @_ZN3num8wrapping20isize.OverflowingOps15overflowing_shr20h6441ca3c8d35a13de8bE({ i64, i8 }* noalias nocapture sret dereferenceable(16), i64, i32) unnamed_addr #6 {
entry-block:
%self = alloca i64
%rhs = alloca i32
%3 = alloca { i64, i8 }
%r = alloca i64
%f = alloca i8
%4 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %self, align 8
%5 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %5)
store i32 %2, i32* %rhs, align 4
%6 = bitcast { i64, i8 }* %3 to i8*
call void @llvm.lifetime.start(i64 16, i8* %6)
%7 = load i64, i64* %self, align 8
%8 = load i32, i32* %rhs, align 4
call void @_ZN3num8wrapping18i64.OverflowingOps15overflowing_shr20h991ddb5b8ca35fefgQbE({ i64, i8 }* noalias nocapture sret dereferenceable(16) %3, i64 %7, i32 %8)
%9 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %3, i32 0, i32 0
%10 = bitcast i64* %r to i8*
call void @llvm.lifetime.start(i64 8, i8* %10)
%11 = load i64, i64* %9, align 8
store i64 %11, i64* %r, align 8
%12 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %3, i32 0, i32 1
call void @llvm.lifetime.start(i64 1, i8* %f)
%13 = load i8, i8* %12, align 1, !range !1
%14 = trunc i8 %13 to i1
%15 = zext i1 %14 to i8
store i8 %15, i8* %f, align 1
%16 = bitcast { i64, i8 }* %3 to i8*
call void @llvm.lifetime.end(i64 16, i8* %16)
%17 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 0
%18 = load i64, i64* %r, align 8
store i64 %18, i64* %17, align 8
%19 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %0, i32 0, i32 1
%20 = load i8, i8* %f, align 1, !range !1
%21 = trunc i8 %20 to i1
%22 = zext i1 %21 to i8
store i8 %22, i8* %19, align 1
call void @llvm.lifetime.end(i64 1, i8* %f)
%23 = bitcast i64* %r to i8*
call void @llvm.lifetime.end(i64 8, i8* %23)
%24 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %24)
%25 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %25)
ret void
}
; Function Attrs: uwtable
define i16 @_ZN3num7flt2dec9estimator23estimate_scaling_factor20h3652ca1571bbc801U8bE(i64, i16) unnamed_addr #2 {
entry-block:
%mant = alloca i64
%exp = alloca i16
%nbits = alloca i64
%2 = alloca i32
%3 = bitcast i64* %mant to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %0, i64* %mant, align 8
%4 = bitcast i16* %exp to i8*
call void @llvm.lifetime.start(i64 2, i8* %4)
store i16 %1, i16* %exp, align 2
%5 = bitcast i64* %nbits to i8*
call void @llvm.lifetime.start(i64 8, i8* %5)
%6 = bitcast i32* %2 to i8*
call void @llvm.lifetime.start(i64 4, i8* %6)
%7 = load i64, i64* %mant, align 8
%8 = sub i64 %7, 1
%9 = call i32 @_ZN3num3u6413leading_zeros20h0a03a71e3f0838f1kVgE(i64 %8)
store i32 %9, i32* %2, align 4
%10 = load i32, i32* %2, align 4
%11 = bitcast i32* %2 to i8*
call void @llvm.lifetime.end(i64 4, i8* %11)
%12 = zext i32 %10 to i64
%13 = sub i64 64, %12
store i64 %13, i64* %nbits, align 8
%14 = load i16, i16* %exp, align 2
%15 = sext i16 %14 to i64
%16 = load i64, i64* %nbits, align 8
%17 = add i64 %16, %15
%18 = mul i64 %17, 1292913986
%19 = ashr i64 %18, 32
%20 = trunc i64 %19 to i16
%21 = bitcast i64* %nbits to i8*
call void @llvm.lifetime.end(i64 8, i8* %21)
%22 = bitcast i16* %exp to i8*
call void @llvm.lifetime.end(i64 2, i8* %22)
%23 = bitcast i64* %mant to i8*
call void @llvm.lifetime.end(i64 8, i8* %23)
ret i16 %20
}
; Function Attrs: inlinehint uwtable
define i32 @_ZN3num3u6413leading_zeros20h0a03a71e3f0838f1kVgE(i64) unnamed_addr #0 {
entry-block:
%self = alloca i64
%1 = alloca i64
%2 = bitcast i64* %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store i64 %0, i64* %self, align 8
%3 = bitcast i64* %1 to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
%4 = load i64, i64* %self, align 8
%5 = call i64 @llvm.ctlz.i64(i64 %4, i1 false)
store i64 %5, i64* %1, align 8
%6 = load i64, i64* %1, align 8
%7 = bitcast i64* %1 to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = trunc i64 %6 to i32
%9 = bitcast i64* %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %9)
ret i32 %8
}
; Function Attrs: uwtable
define i16 @_ZN3num7flt2dec6bignum10u8.FullOps8full_add20h095213d6580a1777yacE(i8, i8, i1 zeroext) unnamed_addr #2 {
entry-block:
%sret_slot = alloca { i8, i8 }
%self = alloca i8
%other = alloca i8
%carry = alloca i8
%3 = alloca { i8, i8 }
%tmp = alloca { i8, i8 }
%let = alloca { i8, i8 }
%v = alloca i8
%carry1 = alloca i8
%4 = alloca { i8, i8 }
%5 = alloca i8
%tmp1 = alloca { i8, i8 }
%let2 = alloca { i8, i8 }
%v3 = alloca i8
%carry2 = alloca i8
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
call void @llvm.lifetime.start(i64 1, i8* %other)
store i8 %1, i8* %other, align 1
call void @llvm.lifetime.start(i64 1, i8* %carry)
%6 = zext i1 %2 to i8
store i8 %6, i8* %carry, align 1
%7 = bitcast { i8, i8 }* %3 to i8*
call void @llvm.lifetime.start(i64 2, i8* %7)
%8 = load i8, i8* %self, align 1
%9 = load i8, i8* %other, align 1
%10 = call { i8, i1 } @llvm.uadd.with.overflow.i8(i8 %8, i8 %9)
%11 = extractvalue { i8, i1 } %10, 0
%12 = extractvalue { i8, i1 } %10, 1
%13 = zext i1 %12 to i8
%14 = insertvalue { i8, i8 } undef, i8 %11, 0
%15 = insertvalue { i8, i8 } %14, i8 %13, 1
%16 = bitcast { i8, i8 }* %tmp to i8*
call void @llvm.lifetime.start(i64 2, i8* %16)
store { i8, i8 } %15, { i8, i8 }* %tmp
%17 = bitcast { i8, i8 }* %tmp to i16*
%18 = load i16, i16* %17, align 1
%19 = bitcast { i8, i8 }* %3 to i16*
store i16 %18, i16* %19, align 1
%20 = bitcast { i8, i8 }* %3 to i16*
%21 = load i16, i16* %20, align 1
%22 = bitcast { i8, i8 }* %3 to i8*
call void @llvm.lifetime.end(i64 2, i8* %22)
%23 = bitcast { i8, i8 }* %let to i8*
call void @llvm.lifetime.start(i64 2, i8* %23)
%24 = bitcast { i8, i8 }* %let to i16*
store i16 %21, i16* %24, align 1
%25 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %let, i32 0, i32 0
call void @llvm.lifetime.start(i64 1, i8* %v)
%26 = load i8, i8* %25, align 1
store i8 %26, i8* %v, align 1
%27 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %let, i32 0, i32 1
call void @llvm.lifetime.start(i64 1, i8* %carry1)
%28 = load i8, i8* %27, align 1, !range !1
%29 = trunc i8 %28 to i1
%30 = zext i1 %29 to i8
store i8 %30, i8* %carry1, align 1
%31 = bitcast { i8, i8 }* %let to i8*
call void @llvm.lifetime.end(i64 2, i8* %31)
%32 = bitcast { i8, i8 }* %4 to i8*
call void @llvm.lifetime.start(i64 2, i8* %32)
%33 = load i8, i8* %v, align 1
call void @llvm.lifetime.start(i64 1, i8* %5)
%34 = load i8, i8* %carry, align 1, !range !1
%35 = trunc i8 %34 to i1
br i1 %35, label %then-block-7750-, label %else-block
then-block-7750-: ; preds = %entry-block
store i8 1, i8* %5, align 1
br label %join
else-block: ; preds = %entry-block
store i8 0, i8* %5, align 1
br label %join
join: ; preds = %else-block, %then-block-7750-
%36 = load i8, i8* %5, align 1
call void @llvm.lifetime.end(i64 1, i8* %5)
%37 = call { i8, i1 } @llvm.uadd.with.overflow.i8(i8 %33, i8 %36)
%38 = extractvalue { i8, i1 } %37, 0
%39 = extractvalue { i8, i1 } %37, 1
%40 = zext i1 %39 to i8
%41 = insertvalue { i8, i8 } undef, i8 %38, 0
%42 = insertvalue { i8, i8 } %41, i8 %40, 1
%43 = bitcast { i8, i8 }* %tmp1 to i8*
call void @llvm.lifetime.start(i64 2, i8* %43)
store { i8, i8 } %42, { i8, i8 }* %tmp1
%44 = bitcast { i8, i8 }* %tmp1 to i16*
%45 = load i16, i16* %44, align 1
%46 = bitcast { i8, i8 }* %4 to i16*
store i16 %45, i16* %46, align 1
%47 = bitcast { i8, i8 }* %4 to i16*
%48 = load i16, i16* %47, align 1
%49 = bitcast { i8, i8 }* %4 to i8*
call void @llvm.lifetime.end(i64 2, i8* %49)
%50 = bitcast { i8, i8 }* %let2 to i8*
call void @llvm.lifetime.start(i64 2, i8* %50)
%51 = bitcast { i8, i8 }* %let2 to i16*
store i16 %48, i16* %51, align 1
%52 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %let2, i32 0, i32 0
call void @llvm.lifetime.start(i64 1, i8* %v3)
%53 = load i8, i8* %52, align 1
store i8 %53, i8* %v3, align 1
%54 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %let2, i32 0, i32 1
call void @llvm.lifetime.start(i64 1, i8* %carry2)
%55 = load i8, i8* %54, align 1, !range !1
%56 = trunc i8 %55 to i1
%57 = zext i1 %56 to i8
store i8 %57, i8* %carry2, align 1
%58 = bitcast { i8, i8 }* %let2 to i8*
call void @llvm.lifetime.end(i64 2, i8* %58)
%59 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 0
%60 = load i8, i8* %carry1, align 1, !range !1
%61 = trunc i8 %60 to i1
br i1 %61, label %join4, label %before_rhs
join4: ; preds = %before_rhs, %join
%62 = phi i1 [ %61, %join ], [ %69, %before_rhs ]
%63 = zext i1 %62 to i8
store i8 %63, i8* %59, align 1
%64 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 1
%65 = load i8, i8* %v3, align 1
store i8 %65, i8* %64, align 1
call void @llvm.lifetime.end(i64 1, i8* %carry2)
call void @llvm.lifetime.end(i64 1, i8* %v3)
call void @llvm.lifetime.end(i64 1, i8* %carry1)
call void @llvm.lifetime.end(i64 1, i8* %v)
call void @llvm.lifetime.end(i64 1, i8* %carry)
call void @llvm.lifetime.end(i64 1, i8* %other)
call void @llvm.lifetime.end(i64 1, i8* %self)
%66 = bitcast { i8, i8 }* %sret_slot to i16*
%67 = load i16, i16* %66, align 1
ret i16 %67
before_rhs: ; preds = %join
%68 = load i8, i8* %carry2, align 1, !range !1
%69 = trunc i8 %68 to i1
br label %join4
}
; Function Attrs: uwtable
define i16 @_ZN3num7flt2dec6bignum10u8.FullOps8full_mul20h25999529a6aca575kbcE(i8, i8, i8) unnamed_addr #2 {
entry-block:
%sret_slot = alloca { i8, i8 }
%self = alloca i8
%other = alloca i8
%carry = alloca i8
%nbits = alloca i64
%3 = alloca i64
%v = alloca i16
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
call void @llvm.lifetime.start(i64 1, i8* %other)
store i8 %1, i8* %other, align 1
call void @llvm.lifetime.start(i64 1, i8* %carry)
store i8 %2, i8* %carry, align 1
%4 = bitcast i64* %nbits to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast i64* %3 to i8*
call void @llvm.lifetime.start(i64 8, i8* %5)
%6 = call i64 @_ZN3mem7size_of21h14327607028964852902E()
store i64 %6, i64* %3, align 8
%7 = load i64, i64* %3, align 8
%8 = bitcast i64* %3 to i8*
call void @llvm.lifetime.end(i64 8, i8* %8)
%9 = mul i64 %7, 8
store i64 %9, i64* %nbits, align 8
%10 = bitcast i16* %v to i8*
call void @llvm.lifetime.start(i64 2, i8* %10)
%11 = load i8, i8* %self, align 1
%12 = zext i8 %11 to i16
%13 = load i8, i8* %other, align 1
%14 = zext i8 %13 to i16
%15 = mul i16 %12, %14
%16 = load i8, i8* %carry, align 1
%17 = zext i8 %16 to i16
%18 = add i16 %15, %17
store i16 %18, i16* %v, align 2
%19 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 0
%20 = load i16, i16* %v, align 2
%21 = load i64, i64* %nbits, align 8
%22 = trunc i64 %21 to i16
%23 = and i16 %22, 15
%24 = lshr i16 %20, %23
%25 = trunc i16 %24 to i8
store i8 %25, i8* %19, align 1
%26 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 1
%27 = load i16, i16* %v, align 2
%28 = trunc i16 %27 to i8
store i8 %28, i8* %26, align 1
%29 = bitcast i16* %v to i8*
call void @llvm.lifetime.end(i64 2, i8* %29)
%30 = bitcast i64* %nbits to i8*
call void @llvm.lifetime.end(i64 8, i8* %30)
call void @llvm.lifetime.end(i64 1, i8* %carry)
call void @llvm.lifetime.end(i64 1, i8* %other)
call void @llvm.lifetime.end(i64 1, i8* %self)
%31 = bitcast { i8, i8 }* %sret_slot to i16*
%32 = load i16, i16* %31, align 1
ret i16 %32
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN3mem7size_of21h14327607028964852902E() unnamed_addr #0 {
entry-block:
ret i64 1
}
; Function Attrs: uwtable
define i16 @_ZN3num7flt2dec6bignum10u8.FullOps12full_mul_add20he48e996ee39b32ef8bcE(i8, i8, i8, i8) unnamed_addr #2 {
entry-block:
%sret_slot = alloca { i8, i8 }
%self = alloca i8
%other = alloca i8
%other2 = alloca i8
%carry = alloca i8
%nbits = alloca i64
%4 = alloca i64
%v = alloca i16
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
call void @llvm.lifetime.start(i64 1, i8* %other)
store i8 %1, i8* %other, align 1
call void @llvm.lifetime.start(i64 1, i8* %other2)
store i8 %2, i8* %other2, align 1
call void @llvm.lifetime.start(i64 1, i8* %carry)
store i8 %3, i8* %carry, align 1
%5 = bitcast i64* %nbits to i8*
call void @llvm.lifetime.start(i64 8, i8* %5)
%6 = bitcast i64* %4 to i8*
call void @llvm.lifetime.start(i64 8, i8* %6)
%7 = call i64 @_ZN3mem7size_of21h14327607028964852902E()
store i64 %7, i64* %4, align 8
%8 = load i64, i64* %4, align 8
%9 = bitcast i64* %4 to i8*
call void @llvm.lifetime.end(i64 8, i8* %9)
%10 = mul i64 %8, 8
store i64 %10, i64* %nbits, align 8
%11 = bitcast i16* %v to i8*
call void @llvm.lifetime.start(i64 2, i8* %11)
%12 = load i8, i8* %self, align 1
%13 = zext i8 %12 to i16
%14 = load i8, i8* %other, align 1
%15 = zext i8 %14 to i16
%16 = mul i16 %13, %15
%17 = load i8, i8* %other2, align 1
%18 = zext i8 %17 to i16
%19 = add i16 %16, %18
%20 = load i8, i8* %carry, align 1
%21 = zext i8 %20 to i16
%22 = add i16 %19, %21
store i16 %22, i16* %v, align 2
%23 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 0
%24 = load i16, i16* %v, align 2
%25 = load i64, i64* %nbits, align 8
%26 = trunc i64 %25 to i16
%27 = and i16 %26, 15
%28 = lshr i16 %24, %27
%29 = trunc i16 %28 to i8
store i8 %29, i8* %23, align 1
%30 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 1
%31 = load i16, i16* %v, align 2
%32 = trunc i16 %31 to i8
store i8 %32, i8* %30, align 1
%33 = bitcast i16* %v to i8*
call void @llvm.lifetime.end(i64 2, i8* %33)
%34 = bitcast i64* %nbits to i8*
call void @llvm.lifetime.end(i64 8, i8* %34)
call void @llvm.lifetime.end(i64 1, i8* %carry)
call void @llvm.lifetime.end(i64 1, i8* %other2)
call void @llvm.lifetime.end(i64 1, i8* %other)
call void @llvm.lifetime.end(i64 1, i8* %self)
%35 = bitcast { i8, i8 }* %sret_slot to i16*
%36 = load i16, i16* %35, align 1
ret i16 %36
}
; Function Attrs: uwtable
define i16 @_ZN3num7flt2dec6bignum10u8.FullOps12full_div_rem20h077884344ee824334ccE(i8, i8, i8) unnamed_addr #2 {
entry-block:
%sret_slot = alloca { i8, i8 }
%self = alloca i8
%other = alloca i8
%borrow = alloca i8
%nbits = alloca i64
%3 = alloca i64
%lhs = alloca i16
%rhs = alloca i16
call void @llvm.lifetime.start(i64 1, i8* %self)
store i8 %0, i8* %self, align 1
call void @llvm.lifetime.start(i64 1, i8* %other)
store i8 %1, i8* %other, align 1
call void @llvm.lifetime.start(i64 1, i8* %borrow)
store i8 %2, i8* %borrow, align 1
%4 = bitcast i64* %nbits to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast i64* %3 to i8*
call void @llvm.lifetime.start(i64 8, i8* %5)
%6 = call i64 @_ZN3mem7size_of21h14327607028964852902E()
store i64 %6, i64* %3, align 8
%7 = load i64, i64* %3, align 8
%8 = bitcast i64* %3 to i8*
call void @llvm.lifetime.end(i64 8, i8* %8)
%9 = mul i64 %7, 8
store i64 %9, i64* %nbits, align 8
%10 = bitcast i16* %lhs to i8*
call void @llvm.lifetime.start(i64 2, i8* %10)
%11 = load i8, i8* %borrow, align 1
%12 = zext i8 %11 to i16
%13 = load i64, i64* %nbits, align 8
%14 = trunc i64 %13 to i16
%15 = and i16 %14, 15
%16 = shl i16 %12, %15
%17 = load i8, i8* %self, align 1
%18 = zext i8 %17 to i16
%19 = or i16 %16, %18
store i16 %19, i16* %lhs, align 2
%20 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.start(i64 2, i8* %20)
%21 = load i8, i8* %other, align 1
%22 = zext i8 %21 to i16
store i16 %22, i16* %rhs, align 2
%23 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 0
%24 = load i16, i16* %lhs, align 2
%25 = load i16, i16* %rhs, align 2
%26 = icmp eq i16 %25, 0
br i1 %26, label %cond, label %next
next: ; preds = %entry-block
%27 = udiv i16 %24, %25
%28 = trunc i16 %27 to i8
store i8 %28, i8* %23, align 1
%29 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %sret_slot, i32 0, i32 1
%30 = load i16, i16* %lhs, align 2
%31 = load i16, i16* %rhs, align 2
%32 = icmp eq i16 %31, 0
br i1 %32, label %cond2, label %next1
cond: ; preds = %entry-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43608)
unreachable
next1: ; preds = %next
%33 = urem i16 %30, %31
%34 = trunc i16 %33 to i8
store i8 %34, i8* %29, align 1
%35 = bitcast i16* %rhs to i8*
call void @llvm.lifetime.end(i64 2, i8* %35)
%36 = bitcast i16* %lhs to i8*
call void @llvm.lifetime.end(i64 2, i8* %36)
%37 = bitcast i64* %nbits to i8*
call void @llvm.lifetime.end(i64 8, i8* %37)
call void @llvm.lifetime.end(i64 1, i8* %borrow)
call void @llvm.lifetime.end(i64 1, i8* %other)
call void @llvm.lifetime.end(i64 1, i8* %self)
%38 = bitcast { i8, i8 }* %sret_slot to i16*
%39 = load i16, i16* %38, align 1
ret i16 %39
cond2: ; preds = %next
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43609)
unreachable
}
; Function Attrs: uwtable
define i32 @_ZN3num7flt2dec6bignum11u16.FullOps8full_add20h9c5fd1a50d73273ayecE(i16, i16, i1 zeroext) unnamed_addr #2 {
entry-block:
%sret_slot = alloca { i8, i16 }
%self = alloca i16
%other = alloca i16
%carry = alloca i8
%3 = alloca { i16, i8 }
%tmp = alloca { i16, i8 }
%let = alloca { i16, i8 }
%v = alloca i16
%carry1 = alloca i8
%4 = alloca { i16, i8 }
%5 = alloca i16
%tmp1 = alloca { i16, i8 }
%let2 = alloca { i16, i8 }
%v3 = alloca i16
%carry2 = alloca i8
%6 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %6)
store i16 %0, i16* %self, align 2
%7 = bitcast i16* %other to i8*
call void @llvm.lifetime.start(i64 2, i8* %7)
store i16 %1, i16* %other, align 2
call void @llvm.lifetime.start(i64 1, i8* %carry)
%8 = zext i1 %2 to i8
store i8 %8, i8* %carry, align 1
%9 = bitcast { i16, i8 }* %3 to i8*
call void @llvm.lifetime.start(i64 4, i8* %9)
%10 = load i16, i16* %self, align 2
%11 = load i16, i16* %other, align 2
%12 = call { i16, i1 } @llvm.uadd.with.overflow.i16(i16 %10, i16 %11)
%13 = extractvalue { i16, i1 } %12, 0
%14 = extractvalue { i16, i1 } %12, 1
%15 = zext i1 %14 to i8
%16 = insertvalue { i16, i8 } undef, i16 %13, 0
%17 = insertvalue { i16, i8 } %16, i8 %15, 1
%18 = bitcast { i16, i8 }* %tmp to i8*
call void @llvm.lifetime.start(i64 4, i8* %18)
store { i16, i8 } %17, { i16, i8 }* %tmp
%19 = bitcast { i16, i8 }* %tmp to i32*
%20 = load i32, i32* %19, align 2
%21 = bitcast { i16, i8 }* %3 to i32*
store i32 %20, i32* %21, align 2
%22 = bitcast { i16, i8 }* %3 to i32*
%23 = load i32, i32* %22, align 2
%24 = bitcast { i16, i8 }* %3 to i8*
call void @llvm.lifetime.end(i64 4, i8* %24)
%25 = bitcast { i16, i8 }* %let to i8*
call void @llvm.lifetime.start(i64 4, i8* %25)
%26 = bitcast { i16, i8 }* %let to i32*
store i32 %23, i32* %26, align 2
%27 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %let, i32 0, i32 0
%28 = bitcast i16* %v to i8*
call void @llvm.lifetime.start(i64 2, i8* %28)
%29 = load i16, i16* %27, align 2
store i16 %29, i16* %v, align 2
%30 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %let, i32 0, i32 1
call void @llvm.lifetime.start(i64 1, i8* %carry1)
%31 = load i8, i8* %30, align 1, !range !1
%32 = trunc i8 %31 to i1
%33 = zext i1 %32 to i8
store i8 %33, i8* %carry1, align 1
%34 = bitcast { i16, i8 }* %let to i8*
call void @llvm.lifetime.end(i64 4, i8* %34)
%35 = bitcast { i16, i8 }* %4 to i8*
call void @llvm.lifetime.start(i64 4, i8* %35)
%36 = load i16, i16* %v, align 2
%37 = bitcast i16* %5 to i8*
call void @llvm.lifetime.start(i64 2, i8* %37)
%38 = load i8, i8* %carry, align 1, !range !1
%39 = trunc i8 %38 to i1
br i1 %39, label %then-block-7998-, label %else-block
then-block-7998-: ; preds = %entry-block
store i16 1, i16* %5, align 2
br label %join
else-block: ; preds = %entry-block
store i16 0, i16* %5, align 2
br label %join
join: ; preds = %else-block, %then-block-7998-
%40 = load i16, i16* %5, align 2
%41 = bitcast i16* %5 to i8*
call void @llvm.lifetime.end(i64 2, i8* %41)
%42 = call { i16, i1 } @llvm.uadd.with.overflow.i16(i16 %36, i16 %40)
%43 = extractvalue { i16, i1 } %42, 0
%44 = extractvalue { i16, i1 } %42, 1
%45 = zext i1 %44 to i8
%46 = insertvalue { i16, i8 } undef, i16 %43, 0
%47 = insertvalue { i16, i8 } %46, i8 %45, 1
%48 = bitcast { i16, i8 }* %tmp1 to i8*
call void @llvm.lifetime.start(i64 4, i8* %48)
store { i16, i8 } %47, { i16, i8 }* %tmp1
%49 = bitcast { i16, i8 }* %tmp1 to i32*
%50 = load i32, i32* %49, align 2
%51 = bitcast { i16, i8 }* %4 to i32*
store i32 %50, i32* %51, align 2
%52 = bitcast { i16, i8 }* %4 to i32*
%53 = load i32, i32* %52, align 2
%54 = bitcast { i16, i8 }* %4 to i8*
call void @llvm.lifetime.end(i64 4, i8* %54)
%55 = bitcast { i16, i8 }* %let2 to i8*
call void @llvm.lifetime.start(i64 4, i8* %55)
%56 = bitcast { i16, i8 }* %let2 to i32*
store i32 %53, i32* %56, align 2
%57 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %let2, i32 0, i32 0
%58 = bitcast i16* %v3 to i8*
call void @llvm.lifetime.start(i64 2, i8* %58)
%59 = load i16, i16* %57, align 2
store i16 %59, i16* %v3, align 2
%60 = getelementptr inbounds { i16, i8 }, { i16, i8 }* %let2, i32 0, i32 1
call void @llvm.lifetime.start(i64 1, i8* %carry2)
%61 = load i8, i8* %60, align 1, !range !1
%62 = trunc i8 %61 to i1
%63 = zext i1 %62 to i8
store i8 %63, i8* %carry2, align 1
%64 = bitcast { i16, i8 }* %let2 to i8*
call void @llvm.lifetime.end(i64 4, i8* %64)
%65 = getelementptr inbounds { i8, i16 }, { i8, i16 }* %sret_slot, i32 0, i32 0
%66 = load i8, i8* %carry1, align 1, !range !1
%67 = trunc i8 %66 to i1
br i1 %67, label %join4, label %before_rhs
join4: ; preds = %before_rhs, %join
%68 = phi i1 [ %67, %join ], [ %79, %before_rhs ]
%69 = zext i1 %68 to i8
store i8 %69, i8* %65, align 1
%70 = getelementptr inbounds { i8, i16 }, { i8, i16 }* %sret_slot, i32 0, i32 1
%71 = load i16, i16* %v3, align 2
store i16 %71, i16* %70, align 2
call void @llvm.lifetime.end(i64 1, i8* %carry2)
%72 = bitcast i16* %v3 to i8*
call void @llvm.lifetime.end(i64 2, i8* %72)
call void @llvm.lifetime.end(i64 1, i8* %carry1)
%73 = bitcast i16* %v to i8*
call void @llvm.lifetime.end(i64 2, i8* %73)
call void @llvm.lifetime.end(i64 1, i8* %carry)
%74 = bitcast i16* %other to i8*
call void @llvm.lifetime.end(i64 2, i8* %74)
%75 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %75)
%76 = bitcast { i8, i16 }* %sret_slot to i32*
%77 = load i32, i32* %76, align 2
ret i32 %77
before_rhs: ; preds = %join
%78 = load i8, i8* %carry2, align 1, !range !1
%79 = trunc i8 %78 to i1
br label %join4
}
; Function Attrs: uwtable
define i32 @_ZN3num7flt2dec6bignum11u16.FullOps8full_mul20h47b1f886d9a42900kfcE(i16, i16, i16) unnamed_addr #2 {
entry-block:
%sret_slot = alloca { i16, i16 }
%self = alloca i16
%other = alloca i16
%carry = alloca i16
%nbits = alloca i64
%3 = alloca i64
%v = alloca i32
%4 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %4)
store i16 %0, i16* %self, align 2
%5 = bitcast i16* %other to i8*
call void @llvm.lifetime.start(i64 2, i8* %5)
store i16 %1, i16* %other, align 2
%6 = bitcast i16* %carry to i8*
call void @llvm.lifetime.start(i64 2, i8* %6)
store i16 %2, i16* %carry, align 2
%7 = bitcast i64* %nbits to i8*
call void @llvm.lifetime.start(i64 8, i8* %7)
%8 = bitcast i64* %3 to i8*
call void @llvm.lifetime.start(i64 8, i8* %8)
%9 = call i64 @_ZN3mem7size_of20h9541873515897831608E()
store i64 %9, i64* %3, align 8
%10 = load i64, i64* %3, align 8
%11 = bitcast i64* %3 to i8*
call void @llvm.lifetime.end(i64 8, i8* %11)
%12 = mul i64 %10, 8
store i64 %12, i64* %nbits, align 8
%13 = bitcast i32* %v to i8*
call void @llvm.lifetime.start(i64 4, i8* %13)
%14 = load i16, i16* %self, align 2
%15 = zext i16 %14 to i32
%16 = load i16, i16* %other, align 2
%17 = zext i16 %16 to i32
%18 = mul i32 %15, %17
%19 = load i16, i16* %carry, align 2
%20 = zext i16 %19 to i32
%21 = add i32 %18, %20
store i32 %21, i32* %v, align 4
%22 = getelementptr inbounds { i16, i16 }, { i16, i16 }* %sret_slot, i32 0, i32 0
%23 = load i32, i32* %v, align 4
%24 = load i64, i64* %nbits, align 8
%25 = trunc i64 %24 to i32
%26 = and i32 %25, 31
%27 = lshr i32 %23, %26
%28 = trunc i32 %27 to i16
store i16 %28, i16* %22, align 2
%29 = getelementptr inbounds { i16, i16 }, { i16, i16 }* %sret_slot, i32 0, i32 1
%30 = load i32, i32* %v, align 4
%31 = trunc i32 %30 to i16
store i16 %31, i16* %29, align 2
%32 = bitcast i32* %v to i8*
call void @llvm.lifetime.end(i64 4, i8* %32)
%33 = bitcast i64* %nbits to i8*
call void @llvm.lifetime.end(i64 8, i8* %33)
%34 = bitcast i16* %carry to i8*
call void @llvm.lifetime.end(i64 2, i8* %34)
%35 = bitcast i16* %other to i8*
call void @llvm.lifetime.end(i64 2, i8* %35)
%36 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %36)
%37 = bitcast { i16, i16 }* %sret_slot to i32*
%38 = load i32, i32* %37, align 2
ret i32 %38
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN3mem7size_of20h9541873515897831608E() unnamed_addr #0 {
entry-block:
ret i64 2
}
; Function Attrs: uwtable
define i32 @_ZN3num7flt2dec6bignum11u16.FullOps12full_mul_add20hec91e64255c8ecae8fcE(i16, i16, i16, i16) unnamed_addr #2 {
entry-block:
%sret_slot = alloca { i16, i16 }
%self = alloca i16
%other = alloca i16
%other2 = alloca i16
%carry = alloca i16
%nbits = alloca i64
%4 = alloca i64
%v = alloca i32
%5 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %5)
store i16 %0, i16* %self, align 2
%6 = bitcast i16* %other to i8*
call void @llvm.lifetime.start(i64 2, i8* %6)
store i16 %1, i16* %other, align 2
%7 = bitcast i16* %other2 to i8*
call void @llvm.lifetime.start(i64 2, i8* %7)
store i16 %2, i16* %other2, align 2
%8 = bitcast i16* %carry to i8*
call void @llvm.lifetime.start(i64 2, i8* %8)
store i16 %3, i16* %carry, align 2
%9 = bitcast i64* %nbits to i8*
call void @llvm.lifetime.start(i64 8, i8* %9)
%10 = bitcast i64* %4 to i8*
call void @llvm.lifetime.start(i64 8, i8* %10)
%11 = call i64 @_ZN3mem7size_of20h9541873515897831608E()
store i64 %11, i64* %4, align 8
%12 = load i64, i64* %4, align 8
%13 = bitcast i64* %4 to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = mul i64 %12, 8
store i64 %14, i64* %nbits, align 8
%15 = bitcast i32* %v to i8*
call void @llvm.lifetime.start(i64 4, i8* %15)
%16 = load i16, i16* %self, align 2
%17 = zext i16 %16 to i32
%18 = load i16, i16* %other, align 2
%19 = zext i16 %18 to i32
%20 = mul i32 %17, %19
%21 = load i16, i16* %other2, align 2
%22 = zext i16 %21 to i32
%23 = add i32 %20, %22
%24 = load i16, i16* %carry, align 2
%25 = zext i16 %24 to i32
%26 = add i32 %23, %25
store i32 %26, i32* %v, align 4
%27 = getelementptr inbounds { i16, i16 }, { i16, i16 }* %sret_slot, i32 0, i32 0
%28 = load i32, i32* %v, align 4
%29 = load i64, i64* %nbits, align 8
%30 = trunc i64 %29 to i32
%31 = and i32 %30, 31
%32 = lshr i32 %28, %31
%33 = trunc i32 %32 to i16
store i16 %33, i16* %27, align 2
%34 = getelementptr inbounds { i16, i16 }, { i16, i16 }* %sret_slot, i32 0, i32 1
%35 = load i32, i32* %v, align 4
%36 = trunc i32 %35 to i16
store i16 %36, i16* %34, align 2
%37 = bitcast i32* %v to i8*
call void @llvm.lifetime.end(i64 4, i8* %37)
%38 = bitcast i64* %nbits to i8*
call void @llvm.lifetime.end(i64 8, i8* %38)
%39 = bitcast i16* %carry to i8*
call void @llvm.lifetime.end(i64 2, i8* %39)
%40 = bitcast i16* %other2 to i8*
call void @llvm.lifetime.end(i64 2, i8* %40)
%41 = bitcast i16* %other to i8*
call void @llvm.lifetime.end(i64 2, i8* %41)
%42 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %42)
%43 = bitcast { i16, i16 }* %sret_slot to i32*
%44 = load i32, i32* %43, align 2
ret i32 %44
}
; Function Attrs: uwtable
define i32 @_ZN3num7flt2dec6bignum11u16.FullOps12full_div_rem20h6e5995a4fd4db2514gcE(i16, i16, i16) unnamed_addr #2 {
entry-block:
%sret_slot = alloca { i16, i16 }
%self = alloca i16
%other = alloca i16
%borrow = alloca i16
%nbits = alloca i64
%3 = alloca i64
%lhs = alloca i32
%rhs = alloca i32
%4 = bitcast i16* %self to i8*
call void @llvm.lifetime.start(i64 2, i8* %4)
store i16 %0, i16* %self, align 2
%5 = bitcast i16* %other to i8*
call void @llvm.lifetime.start(i64 2, i8* %5)
store i16 %1, i16* %other, align 2
%6 = bitcast i16* %borrow to i8*
call void @llvm.lifetime.start(i64 2, i8* %6)
store i16 %2, i16* %borrow, align 2
%7 = bitcast i64* %nbits to i8*
call void @llvm.lifetime.start(i64 8, i8* %7)
%8 = bitcast i64* %3 to i8*
call void @llvm.lifetime.start(i64 8, i8* %8)
%9 = call i64 @_ZN3mem7size_of20h9541873515897831608E()
store i64 %9, i64* %3, align 8
%10 = load i64, i64* %3, align 8
%11 = bitcast i64* %3 to i8*
call void @llvm.lifetime.end(i64 8, i8* %11)
%12 = mul i64 %10, 8
store i64 %12, i64* %nbits, align 8
%13 = bitcast i32* %lhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %13)
%14 = load i16, i16* %borrow, align 2
%15 = zext i16 %14 to i32
%16 = load i64, i64* %nbits, align 8
%17 = trunc i64 %16 to i32
%18 = and i32 %17, 31
%19 = shl i32 %15, %18
%20 = load i16, i16* %self, align 2
%21 = zext i16 %20 to i32
%22 = or i32 %19, %21
store i32 %22, i32* %lhs, align 4
%23 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.start(i64 4, i8* %23)
%24 = load i16, i16* %other, align 2
%25 = zext i16 %24 to i32
store i32 %25, i32* %rhs, align 4
%26 = getelementptr inbounds { i16, i16 }, { i16, i16 }* %sret_slot, i32 0, i32 0
%27 = load i32, i32* %lhs, align 4
%28 = load i32, i32* %rhs, align 4
%29 = icmp eq i32 %28, 0
br i1 %29, label %cond, label %next
next: ; preds = %entry-block
%30 = udiv i32 %27, %28
%31 = trunc i32 %30 to i16
store i16 %31, i16* %26, align 2
%32 = getelementptr inbounds { i16, i16 }, { i16, i16 }* %sret_slot, i32 0, i32 1
%33 = load i32, i32* %lhs, align 4
%34 = load i32, i32* %rhs, align 4
%35 = icmp eq i32 %34, 0
br i1 %35, label %cond2, label %next1
cond: ; preds = %entry-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43608)
unreachable
next1: ; preds = %next
%36 = urem i32 %33, %34
%37 = trunc i32 %36 to i16
store i16 %37, i16* %32, align 2
%38 = bitcast i32* %rhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %38)
%39 = bitcast i32* %lhs to i8*
call void @llvm.lifetime.end(i64 4, i8* %39)
%40 = bitcast i64* %nbits to i8*
call void @llvm.lifetime.end(i64 8, i8* %40)
%41 = bitcast i16* %borrow to i8*
call void @llvm.lifetime.end(i64 2, i8* %41)
%42 = bitcast i16* %other to i8*
call void @llvm.lifetime.end(i64 2, i8* %42)
%43 = bitcast i16* %self to i8*
call void @llvm.lifetime.end(i64 2, i8* %43)
%44 = bitcast { i16, i16 }* %sret_slot to i32*
%45 = load i32, i32* %44, align 2
ret i32 %45
cond2: ; preds = %next
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43609)
unreachable
}
; Function Attrs: uwtable
define i64 @_ZN3num7flt2dec6bignum11u32.FullOps8full_add20h44ed614bdfacc600yicE(i32, i32, i1 zeroext) unnamed_addr #2 {
entry-block:
%sret_slot = alloca { i8, i32 }
%self = alloca i32
%other = alloca i32
%carry = alloca i8
%3 = alloca { i32, i8 }
%tmp = alloca { i32, i8 }
%let = alloca { i32, i8 }
%v = alloca i32
%carry1 = alloca i8
%4 = alloca { i32, i8 }
%5 = alloca i32
%tmp1 = alloca { i32, i8 }
%let2 = alloca { i32, i8 }
%v3 = alloca i32
%carry2 = alloca i8
%6 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %6)
store i32 %0, i32* %self, align 4
%7 = bitcast i32* %other to i8*
call void @llvm.lifetime.start(i64 4, i8* %7)
store i32 %1, i32* %other, align 4
call void @llvm.lifetime.start(i64 1, i8* %carry)
%8 = zext i1 %2 to i8
store i8 %8, i8* %carry, align 1
%9 = bitcast { i32, i8 }* %3 to i8*
call void @llvm.lifetime.start(i64 8, i8* %9)
%10 = load i32, i32* %self, align 4
%11 = load i32, i32* %other, align 4
%12 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %10, i32 %11)
%13 = extractvalue { i32, i1 } %12, 0
%14 = extractvalue { i32, i1 } %12, 1
%15 = zext i1 %14 to i8
%16 = insertvalue { i32, i8 } undef, i32 %13, 0
%17 = insertvalue { i32, i8 } %16, i8 %15, 1
%18 = bitcast { i32, i8 }* %tmp to i8*
call void @llvm.lifetime.start(i64 8, i8* %18)
store { i32, i8 } %17, { i32, i8 }* %tmp
%19 = bitcast { i32, i8 }* %tmp to i64*
%20 = load i64, i64* %19, align 4
%21 = bitcast { i32, i8 }* %3 to i64*
store i64 %20, i64* %21, align 4
%22 = bitcast { i32, i8 }* %3 to i64*
%23 = load i64, i64* %22, align 4
%24 = bitcast { i32, i8 }* %3 to i8*
call void @llvm.lifetime.end(i64 8, i8* %24)
%25 = bitcast { i32, i8 }* %let to i8*
call void @llvm.lifetime.start(i64 8, i8* %25)
%26 = bitcast { i32, i8 }* %let to i64*
store i64 %23, i64* %26, align 4
%27 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %let, i32 0, i32 0
%28 = bitcast i32* %v to i8*
call void @llvm.lifetime.start(i64 4, i8* %28)
%29 = load i32, i32* %27, align 4
store i32 %29, i32* %v, align 4
%30 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %let, i32 0, i32 1
call void @llvm.lifetime.start(i64 1, i8* %carry1)
%31 = load i8, i8* %30, align 1, !range !1
%32 = trunc i8 %31 to i1
%33 = zext i1 %32 to i8
store i8 %33, i8* %carry1, align 1
%34 = bitcast { i32, i8 }* %let to i8*
call void @llvm.lifetime.end(i64 8, i8* %34)
%35 = bitcast { i32, i8 }* %4 to i8*
call void @llvm.lifetime.start(i64 8, i8* %35)
%36 = load i32, i32* %v, align 4
%37 = bitcast i32* %5 to i8*
call void @llvm.lifetime.start(i64 4, i8* %37)
%38 = load i8, i8* %carry, align 1, !range !1
%39 = trunc i8 %38 to i1
br i1 %39, label %then-block-8246-, label %else-block
then-block-8246-: ; preds = %entry-block
store i32 1, i32* %5, align 4
br label %join
else-block: ; preds = %entry-block
store i32 0, i32* %5, align 4
br label %join
join: ; preds = %else-block, %then-block-8246-
%40 = load i32, i32* %5, align 4
%41 = bitcast i32* %5 to i8*
call void @llvm.lifetime.end(i64 4, i8* %41)
%42 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %36, i32 %40)
%43 = extractvalue { i32, i1 } %42, 0
%44 = extractvalue { i32, i1 } %42, 1
%45 = zext i1 %44 to i8
%46 = insertvalue { i32, i8 } undef, i32 %43, 0
%47 = insertvalue { i32, i8 } %46, i8 %45, 1
%48 = bitcast { i32, i8 }* %tmp1 to i8*
call void @llvm.lifetime.start(i64 8, i8* %48)
store { i32, i8 } %47, { i32, i8 }* %tmp1
%49 = bitcast { i32, i8 }* %tmp1 to i64*
%50 = load i64, i64* %49, align 4
%51 = bitcast { i32, i8 }* %4 to i64*
store i64 %50, i64* %51, align 4
%52 = bitcast { i32, i8 }* %4 to i64*
%53 = load i64, i64* %52, align 4
%54 = bitcast { i32, i8 }* %4 to i8*
call void @llvm.lifetime.end(i64 8, i8* %54)
%55 = bitcast { i32, i8 }* %let2 to i8*
call void @llvm.lifetime.start(i64 8, i8* %55)
%56 = bitcast { i32, i8 }* %let2 to i64*
store i64 %53, i64* %56, align 4
%57 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %let2, i32 0, i32 0
%58 = bitcast i32* %v3 to i8*
call void @llvm.lifetime.start(i64 4, i8* %58)
%59 = load i32, i32* %57, align 4
store i32 %59, i32* %v3, align 4
%60 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %let2, i32 0, i32 1
call void @llvm.lifetime.start(i64 1, i8* %carry2)
%61 = load i8, i8* %60, align 1, !range !1
%62 = trunc i8 %61 to i1
%63 = zext i1 %62 to i8
store i8 %63, i8* %carry2, align 1
%64 = bitcast { i32, i8 }* %let2 to i8*
call void @llvm.lifetime.end(i64 8, i8* %64)
%65 = getelementptr inbounds { i8, i32 }, { i8, i32 }* %sret_slot, i32 0, i32 0
%66 = load i8, i8* %carry1, align 1, !range !1
%67 = trunc i8 %66 to i1
br i1 %67, label %join4, label %before_rhs
join4: ; preds = %before_rhs, %join
%68 = phi i1 [ %67, %join ], [ %79, %before_rhs ]
%69 = zext i1 %68 to i8
store i8 %69, i8* %65, align 1
%70 = getelementptr inbounds { i8, i32 }, { i8, i32 }* %sret_slot, i32 0, i32 1
%71 = load i32, i32* %v3, align 4
store i32 %71, i32* %70, align 4
call void @llvm.lifetime.end(i64 1, i8* %carry2)
%72 = bitcast i32* %v3 to i8*
call void @llvm.lifetime.end(i64 4, i8* %72)
call void @llvm.lifetime.end(i64 1, i8* %carry1)
%73 = bitcast i32* %v to i8*
call void @llvm.lifetime.end(i64 4, i8* %73)
call void @llvm.lifetime.end(i64 1, i8* %carry)
%74 = bitcast i32* %other to i8*
call void @llvm.lifetime.end(i64 4, i8* %74)
%75 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %75)
%76 = bitcast { i8, i32 }* %sret_slot to i64*
%77 = load i64, i64* %76, align 4
ret i64 %77
before_rhs: ; preds = %join
%78 = load i8, i8* %carry2, align 1, !range !1
%79 = trunc i8 %78 to i1
br label %join4
}
; Function Attrs: uwtable
define i64 @_ZN3num7flt2dec6bignum11u32.FullOps8full_mul20hec274f145b0d9886kjcE(i32, i32, i32) unnamed_addr #2 {
entry-block:
%sret_slot = alloca { i32, i32 }
%self = alloca i32
%other = alloca i32
%carry = alloca i32
%nbits = alloca i64
%3 = alloca i64
%v = alloca i64
%4 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
store i32 %0, i32* %self, align 4
%5 = bitcast i32* %other to i8*
call void @llvm.lifetime.start(i64 4, i8* %5)
store i32 %1, i32* %other, align 4
%6 = bitcast i32* %carry to i8*
call void @llvm.lifetime.start(i64 4, i8* %6)
store i32 %2, i32* %carry, align 4
%7 = bitcast i64* %nbits to i8*
call void @llvm.lifetime.start(i64 8, i8* %7)
%8 = bitcast i64* %3 to i8*
call void @llvm.lifetime.start(i64 8, i8* %8)
%9 = call i64 @_ZN3mem7size_of20h4125651325415643322E()
store i64 %9, i64* %3, align 8
%10 = load i64, i64* %3, align 8
%11 = bitcast i64* %3 to i8*
call void @llvm.lifetime.end(i64 8, i8* %11)
%12 = mul i64 %10, 8
store i64 %12, i64* %nbits, align 8
%13 = bitcast i64* %v to i8*
call void @llvm.lifetime.start(i64 8, i8* %13)
%14 = load i32, i32* %self, align 4
%15 = zext i32 %14 to i64
%16 = load i32, i32* %other, align 4
%17 = zext i32 %16 to i64
%18 = mul i64 %15, %17
%19 = load i32, i32* %carry, align 4
%20 = zext i32 %19 to i64
%21 = add i64 %18, %20
store i64 %21, i64* %v, align 8
%22 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %sret_slot, i32 0, i32 0
%23 = load i64, i64* %v, align 8
%24 = load i64, i64* %nbits, align 8
%25 = and i64 %24, 63
%26 = lshr i64 %23, %25
%27 = trunc i64 %26 to i32
store i32 %27, i32* %22, align 4
%28 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %sret_slot, i32 0, i32 1
%29 = load i64, i64* %v, align 8
%30 = trunc i64 %29 to i32
store i32 %30, i32* %28, align 4
%31 = bitcast i64* %v to i8*
call void @llvm.lifetime.end(i64 8, i8* %31)
%32 = bitcast i64* %nbits to i8*
call void @llvm.lifetime.end(i64 8, i8* %32)
%33 = bitcast i32* %carry to i8*
call void @llvm.lifetime.end(i64 4, i8* %33)
%34 = bitcast i32* %other to i8*
call void @llvm.lifetime.end(i64 4, i8* %34)
%35 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %35)
%36 = bitcast { i32, i32 }* %sret_slot to i64*
%37 = load i64, i64* %36, align 4
ret i64 %37
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN3mem7size_of20h4125651325415643322E() unnamed_addr #0 {
entry-block:
ret i64 4
}
; Function Attrs: uwtable
define i64 @_ZN3num7flt2dec6bignum11u32.FullOps12full_mul_add20ha266eb1caaaa9d348jcE(i32, i32, i32, i32) unnamed_addr #2 {
entry-block:
%sret_slot = alloca { i32, i32 }
%self = alloca i32
%other = alloca i32
%other2 = alloca i32
%carry = alloca i32
%nbits = alloca i64
%4 = alloca i64
%v = alloca i64
%5 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %5)
store i32 %0, i32* %self, align 4
%6 = bitcast i32* %other to i8*
call void @llvm.lifetime.start(i64 4, i8* %6)
store i32 %1, i32* %other, align 4
%7 = bitcast i32* %other2 to i8*
call void @llvm.lifetime.start(i64 4, i8* %7)
store i32 %2, i32* %other2, align 4
%8 = bitcast i32* %carry to i8*
call void @llvm.lifetime.start(i64 4, i8* %8)
store i32 %3, i32* %carry, align 4
%9 = bitcast i64* %nbits to i8*
call void @llvm.lifetime.start(i64 8, i8* %9)
%10 = bitcast i64* %4 to i8*
call void @llvm.lifetime.start(i64 8, i8* %10)
%11 = call i64 @_ZN3mem7size_of20h4125651325415643322E()
store i64 %11, i64* %4, align 8
%12 = load i64, i64* %4, align 8
%13 = bitcast i64* %4 to i8*
call void @llvm.lifetime.end(i64 8, i8* %13)
%14 = mul i64 %12, 8
store i64 %14, i64* %nbits, align 8
%15 = bitcast i64* %v to i8*
call void @llvm.lifetime.start(i64 8, i8* %15)
%16 = load i32, i32* %self, align 4
%17 = zext i32 %16 to i64
%18 = load i32, i32* %other, align 4
%19 = zext i32 %18 to i64
%20 = mul i64 %17, %19
%21 = load i32, i32* %other2, align 4
%22 = zext i32 %21 to i64
%23 = add i64 %20, %22
%24 = load i32, i32* %carry, align 4
%25 = zext i32 %24 to i64
%26 = add i64 %23, %25
store i64 %26, i64* %v, align 8
%27 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %sret_slot, i32 0, i32 0
%28 = load i64, i64* %v, align 8
%29 = load i64, i64* %nbits, align 8
%30 = and i64 %29, 63
%31 = lshr i64 %28, %30
%32 = trunc i64 %31 to i32
store i32 %32, i32* %27, align 4
%33 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %sret_slot, i32 0, i32 1
%34 = load i64, i64* %v, align 8
%35 = trunc i64 %34 to i32
store i32 %35, i32* %33, align 4
%36 = bitcast i64* %v to i8*
call void @llvm.lifetime.end(i64 8, i8* %36)
%37 = bitcast i64* %nbits to i8*
call void @llvm.lifetime.end(i64 8, i8* %37)
%38 = bitcast i32* %carry to i8*
call void @llvm.lifetime.end(i64 4, i8* %38)
%39 = bitcast i32* %other2 to i8*
call void @llvm.lifetime.end(i64 4, i8* %39)
%40 = bitcast i32* %other to i8*
call void @llvm.lifetime.end(i64 4, i8* %40)
%41 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %41)
%42 = bitcast { i32, i32 }* %sret_slot to i64*
%43 = load i64, i64* %42, align 4
ret i64 %43
}
; Function Attrs: uwtable
define i64 @_ZN3num7flt2dec6bignum11u32.FullOps12full_div_rem20h809dd614c421c6684kcE(i32, i32, i32) unnamed_addr #2 {
entry-block:
%sret_slot = alloca { i32, i32 }
%self = alloca i32
%other = alloca i32
%borrow = alloca i32
%nbits = alloca i64
%3 = alloca i64
%lhs = alloca i64
%rhs = alloca i64
%4 = bitcast i32* %self to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
store i32 %0, i32* %self, align 4
%5 = bitcast i32* %other to i8*
call void @llvm.lifetime.start(i64 4, i8* %5)
store i32 %1, i32* %other, align 4
%6 = bitcast i32* %borrow to i8*
call void @llvm.lifetime.start(i64 4, i8* %6)
store i32 %2, i32* %borrow, align 4
%7 = bitcast i64* %nbits to i8*
call void @llvm.lifetime.start(i64 8, i8* %7)
%8 = bitcast i64* %3 to i8*
call void @llvm.lifetime.start(i64 8, i8* %8)
%9 = call i64 @_ZN3mem7size_of20h4125651325415643322E()
store i64 %9, i64* %3, align 8
%10 = load i64, i64* %3, align 8
%11 = bitcast i64* %3 to i8*
call void @llvm.lifetime.end(i64 8, i8* %11)
%12 = mul i64 %10, 8
store i64 %12, i64* %nbits, align 8
%13 = bitcast i64* %lhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %13)
%14 = load i32, i32* %borrow, align 4
%15 = zext i32 %14 to i64
%16 = load i64, i64* %nbits, align 8
%17 = and i64 %16, 63
%18 = shl i64 %15, %17
%19 = load i32, i32* %self, align 4
%20 = zext i32 %19 to i64
%21 = or i64 %18, %20
store i64 %21, i64* %lhs, align 8
%22 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.start(i64 8, i8* %22)
%23 = load i32, i32* %other, align 4
%24 = zext i32 %23 to i64
store i64 %24, i64* %rhs, align 8
%25 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %sret_slot, i32 0, i32 0
%26 = load i64, i64* %lhs, align 8
%27 = load i64, i64* %rhs, align 8
%28 = icmp eq i64 %27, 0
br i1 %28, label %cond, label %next
next: ; preds = %entry-block
%29 = udiv i64 %26, %27
%30 = trunc i64 %29 to i32
store i32 %30, i32* %25, align 4
%31 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %sret_slot, i32 0, i32 1
%32 = load i64, i64* %lhs, align 8
%33 = load i64, i64* %rhs, align 8
%34 = icmp eq i64 %33, 0
br i1 %34, label %cond2, label %next1
cond: ; preds = %entry-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43608)
unreachable
next1: ; preds = %next
%35 = urem i64 %32, %33
%36 = trunc i64 %35 to i32
store i32 %36, i32* %31, align 4
%37 = bitcast i64* %rhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %37)
%38 = bitcast i64* %lhs to i8*
call void @llvm.lifetime.end(i64 8, i8* %38)
%39 = bitcast i64* %nbits to i8*
call void @llvm.lifetime.end(i64 8, i8* %39)
%40 = bitcast i32* %borrow to i8*
call void @llvm.lifetime.end(i64 4, i8* %40)
%41 = bitcast i32* %other to i8*
call void @llvm.lifetime.end(i64 4, i8* %41)
%42 = bitcast i32* %self to i8*
call void @llvm.lifetime.end(i64 4, i8* %42)
%43 = bitcast { i32, i32 }* %sret_slot to i64*
%44 = load i64, i64* %43, align 4
ret i64 %44
cond2: ; preds = %next
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc43609)
unreachable
}
; Function Attrs: uwtable
define void @_ZN3num7flt2dec6bignum8Big32x3610from_small20h7d33b6b38af351e3JmcE(%"num::flt2dec::bignum::Big32x36"* noalias nocapture sret dereferenceable(152), i32) unnamed_addr #2 {
entry-block:
%v = alloca i32
%base = alloca [36 x i32]
%2 = bitcast i32* %v to i8*
call void @llvm.lifetime.start(i64 4, i8* %2)
store i32 %1, i32* %v, align 4
%3 = bitcast [36 x i32]* %base to i8*
call void @llvm.lifetime.start(i64 144, i8* %3)
%4 = getelementptr inbounds [36 x i32], [36 x i32]* %base, i32 0, i32 0
br label %expr_repeat
expr_repeat: ; preds = %expr_repeat, %entry-block
%5 = phi i64 [ 0, %entry-block ], [ %7, %expr_repeat ]
%6 = getelementptr inbounds i32, i32* %4, i64 %5
store i32 0, i32* %6, align 4
%7 = add i64 %5, 1
%8 = icmp ult i64 %7, 36
br i1 %8, label %expr_repeat, label %"expr_repeat: next"
"expr_repeat: next": ; preds = %expr_repeat
%9 = getelementptr inbounds [36 x i32], [36 x i32]* %base, i32 0, i32 0
%10 = call i1 @llvm.expect.i1(i1 false, i1 false)
br i1 %10, label %cond, label %next
next: ; preds = %"expr_repeat: next"
%11 = getelementptr inbounds i32, i32* %9, i64 0
%12 = load i32, i32* %v, align 4
store i32 %12, i32* %11, align 4
%13 = getelementptr inbounds %"num::flt2dec::bignum::Big32x36", %"num::flt2dec::bignum::Big32x36"* %0, i32 0, i32 0
store i64 1, i64* %13, align 8
%14 = getelementptr inbounds %"num::flt2dec::bignum::Big32x36", %"num::flt2dec::bignum::Big32x36"* %0, i32 0, i32 1
%15 = bitcast [36 x i32]* %base to i8*
%16 = bitcast [36 x i32]* %14 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %16, i8* %15, i64 144, i32 4, i1 false)
%17 = bitcast [36 x i32]* %base to i8*
call void @llvm.lifetime.end(i64 144, i8* %17)
%18 = bitcast i32* %v to i8*
call void @llvm.lifetime.end(i64 4, i8* %18)
ret void
cond: ; preds = %"expr_repeat: next"
call void @_ZN9panicking18panic_bounds_check20h237e73ee030240aaN7BE({ %str_slice, i32 }* noalias readonly dereferenceable(24) @panic_bounds_check_loc43611, i64 0, i64 36)
unreachable
}
; Function Attrs: nounwind readnone
declare i1 @llvm.expect.i1(i1, i1) unnamed_addr #5
; Function Attrs: cold noinline noreturn uwtable
define void @_ZN9panicking18panic_bounds_check20h237e73ee030240aaN7BE({ %str_slice, i32 }* noalias readonly dereferenceable(24), i64, i64) unnamed_addr #7 {
entry-block:
%file_line = alloca { %str_slice, i32 }*
%index = alloca i64
%len = alloca i64
%3 = alloca %"fmt::Arguments"
%4 = alloca { %str_slice*, i64 }
%5 = alloca [2 x %"fmt::ArgumentV1"]
%6 = alloca { i64*, i64* }
%__llmatch = alloca i64**
%__arg0 = alloca i64*
%__llmatch1 = alloca i64**
%__arg1 = alloca i64*
%__coerce_target = alloca { %"fmt::ArgumentV1"*, i64 }
%7 = bitcast { %str_slice, i32 }** %file_line to i8*
call void @llvm.lifetime.start(i64 8, i8* %7)
store { %str_slice, i32 }* %0, { %str_slice, i32 }** %file_line, align 8
%8 = bitcast i64* %index to i8*
call void @llvm.lifetime.start(i64 8, i8* %8)
store i64 %1, i64* %index, align 8
%9 = bitcast i64* %len to i8*
call void @llvm.lifetime.start(i64 8, i8* %9)
store i64 %2, i64* %len, align 8
%10 = bitcast %"fmt::Arguments"* %3 to i8*
call void @llvm.lifetime.start(i64 48, i8* %10)
%11 = bitcast { %str_slice*, i64 }* %4 to i8*
call void @llvm.lifetime.start(i64 16, i8* %11)
%12 = bitcast { %str_slice*, i64 }* %4 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %12, i8* bitcast ({ %str_slice*, i64 }* @_ZN9panicking18panic_bounds_check15__STATIC_FMTSTR20h9a0d40d93917c69ab8BE to i8*), i64 16, i32 8, i1 false)
%13 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %4, i32 0, i32 0
%14 = load %str_slice*, %str_slice** %13
%15 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %4, i32 0, i32 1
%16 = load i64, i64* %15
%17 = bitcast [2 x %"fmt::ArgumentV1"]* %5 to i8*
call void @llvm.lifetime.start(i64 32, i8* %17)
%18 = bitcast { i64*, i64* }* %6 to i8*
call void @llvm.lifetime.start(i64 16, i8* %18)
%19 = getelementptr inbounds { i64*, i64* }, { i64*, i64* }* %6, i32 0, i32 0
store i64* %len, i64** %19, align 8
%20 = getelementptr inbounds { i64*, i64* }, { i64*, i64* }* %6, i32 0, i32 1
store i64* %index, i64** %20, align 8
%21 = getelementptr inbounds { i64*, i64* }, { i64*, i64* }* %6, i32 0, i32 0
%22 = getelementptr inbounds { i64*, i64* }, { i64*, i64* }* %6, i32 0, i32 1
%23 = bitcast i64*** %__llmatch1 to i8*
call void @llvm.lifetime.start(i64 8, i8* %23)
store i64** %22, i64*** %__llmatch1
%24 = bitcast i64*** %__llmatch to i8*
call void @llvm.lifetime.start(i64 8, i8* %24)
store i64** %21, i64*** %__llmatch
br label %case_body
case_body: ; preds = %entry-block
%25 = load i64**, i64*** %__llmatch
%26 = bitcast i64** %__arg0 to i8*
call void @llvm.lifetime.start(i64 8, i8* %26)
%27 = load i64*, i64** %25, align 8, !nonnull !2
store i64* %27, i64** %__arg0, align 8
%28 = load i64**, i64*** %__llmatch1
%29 = bitcast i64** %__arg1 to i8*
call void @llvm.lifetime.start(i64 8, i8* %29)
%30 = load i64*, i64** %28, align 8, !nonnull !2
store i64* %30, i64** %__arg1, align 8
%31 = getelementptr inbounds [2 x %"fmt::ArgumentV1"], [2 x %"fmt::ArgumentV1"]* %5, i32 0, i32 0
%32 = getelementptr inbounds %"fmt::ArgumentV1", %"fmt::ArgumentV1"* %31, i32 0
%33 = load i64*, i64** %__arg0, align 8, !nonnull !2
call void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new20h4473555948147189664E"(%"fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16) %32, i64* noalias readonly dereferenceable(8) %33, i8 (i64*, %"fmt::Formatter"*)* @_ZN3fmt3num18usize.fmt..Display3fmt20h1307f0a0aaa587a885LE)
%34 = getelementptr inbounds %"fmt::ArgumentV1", %"fmt::ArgumentV1"* %31, i32 1
%35 = load i64*, i64** %__arg1, align 8, !nonnull !2
call void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new20h4473555948147189664E"(%"fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16) %34, i64* noalias readonly dereferenceable(8) %35, i8 (i64*, %"fmt::Formatter"*)* @_ZN3fmt3num18usize.fmt..Display3fmt20h1307f0a0aaa587a885LE)
%36 = bitcast i64*** %__llmatch1 to i8*
call void @llvm.lifetime.end(i64 8, i8* %36)
%37 = bitcast i64** %__arg1 to i8*
call void @llvm.lifetime.end(i64 8, i8* %37)
%38 = bitcast i64*** %__llmatch to i8*
call void @llvm.lifetime.end(i64 8, i8* %38)
%39 = bitcast i64** %__arg0 to i8*
call void @llvm.lifetime.end(i64 8, i8* %39)
br label %join
join: ; preds = %case_body
%40 = bitcast [2 x %"fmt::ArgumentV1"]* %5 to %"fmt::ArgumentV1"*
%41 = getelementptr inbounds { %"fmt::ArgumentV1"*, i64 }, { %"fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0
store %"fmt::ArgumentV1"* %40, %"fmt::ArgumentV1"** %41
%42 = getelementptr inbounds { %"fmt::ArgumentV1"*, i64 }, { %"fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1
store i64 2, i64* %42
%43 = getelementptr inbounds { %"fmt::ArgumentV1"*, i64 }, { %"fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0
%44 = load %"fmt::ArgumentV1"*, %"fmt::ArgumentV1"** %43
%45 = getelementptr inbounds { %"fmt::ArgumentV1"*, i64 }, { %"fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1
%46 = load i64, i64* %45
call void @"_ZN3fmt23Arguments$LT$$u27$a$GT$6new_v120h32916b984e369815hbNE"(%"fmt::Arguments"* noalias nocapture sret dereferenceable(48) %3, %str_slice* noalias nonnull readonly %14, i64 %16, %"fmt::ArgumentV1"* noalias nonnull readonly %44, i64 %46)
%47 = load { %str_slice, i32 }*, { %str_slice, i32 }** %file_line, align 8, !nonnull !2
call void @_ZN9panicking9panic_fmt20h6fd5cab7f5e05869H8BE(%"fmt::Arguments"* noalias nocapture dereferenceable(48) %3, { %str_slice, i32 }* noalias readonly dereferenceable(24) %47)
%48 = bitcast %"fmt::Arguments"* %3 to i8*
call void @llvm.lifetime.end(i64 48, i8* %48)
unreachable
}
; Function Attrs: uwtable
define void @_ZN3num7flt2dec6bignum8Big32x368from_u6420h097d04ac469590615mcE(%"num::flt2dec::bignum::Big32x36"* noalias nocapture sret dereferenceable(152), i64) unnamed_addr #2 {
entry-block:
%v = alloca i64
%base = alloca [36 x i32]
%sz = alloca i64
%2 = alloca i64
%3 = bitcast i64* %v to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %v, align 8
%4 = bitcast [36 x i32]* %base to i8*
call void @llvm.lifetime.start(i64 144, i8* %4)
%5 = getelementptr inbounds [36 x i32], [36 x i32]* %base, i32 0, i32 0
br label %expr_repeat
expr_repeat: ; preds = %expr_repeat, %entry-block
%6 = phi i64 [ 0, %entry-block ], [ %8, %expr_repeat ]
%7 = getelementptr inbounds i32, i32* %5, i64 %6
store i32 0, i32* %7, align 4
%8 = add i64 %6, 1
%9 = icmp ult i64 %8, 36
br i1 %9, label %expr_repeat, label %"expr_repeat: next"
"expr_repeat: next": ; preds = %expr_repeat
%10 = bitcast i64* %sz to i8*
call void @llvm.lifetime.start(i64 8, i8* %10)
store i64 0, i64* %sz, align 8
br label %while_cond
while_exit: ; preds = %while_cond
%11 = getelementptr inbounds %"num::flt2dec::bignum::Big32x36", %"num::flt2dec::bignum::Big32x36"* %0, i32 0, i32 0
%12 = load i64, i64* %sz, align 8
store i64 %12, i64* %11, align 8
%13 = getelementptr inbounds %"num::flt2dec::bignum::Big32x36", %"num::flt2dec::bignum::Big32x36"* %0, i32 0, i32 1
%14 = bitcast [36 x i32]* %base to i8*
%15 = bitcast [36 x i32]* %13 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %15, i8* %14, i64 144, i32 4, i1 false)
%16 = bitcast i64* %sz to i8*
call void @llvm.lifetime.end(i64 8, i8* %16)
%17 = bitcast [36 x i32]* %base to i8*
call void @llvm.lifetime.end(i64 144, i8* %17)
%18 = bitcast i64* %v to i8*
call void @llvm.lifetime.end(i64 8, i8* %18)
ret void
while_cond: ; preds = %next, %"expr_repeat: next"
%19 = load i64, i64* %v, align 8
%20 = icmp ugt i64 %19, 0
br i1 %20, label %while_body, label %while_exit
while_body: ; preds = %while_cond
%21 = load i64, i64* %v, align 8
%22 = trunc i64 %21 to i32
%23 = load i64, i64* %sz, align 8
%24 = getelementptr inbounds [36 x i32], [36 x i32]* %base, i32 0, i32 0
%25 = icmp uge i64 %23, 36
%26 = call i1 @llvm.expect.i1(i1 %25, i1 false)
br i1 %26, label %cond, label %next
next: ; preds = %while_body
%27 = getelementptr inbounds i32, i32* %24, i64 %23
store i32 %22, i32* %27, align 4
%28 = load i64, i64* %v, align 8
%29 = bitcast i64* %2 to i8*
call void @llvm.lifetime.start(i64 8, i8* %29)
%30 = call i64 @_ZN3mem7size_of20h4125651325415643322E()
store i64 %30, i64* %2, align 8
%31 = load i64, i64* %2, align 8
%32 = bitcast i64* %2 to i8*
call void @llvm.lifetime.end(i64 8, i8* %32)
%33 = mul i64 %31, 8
%34 = and i64 %33, 63
%35 = lshr i64 %28, %34
store i64 %35, i64* %v, align 8
%36 = load i64, i64* %sz, align 8
%37 = add i64 %36, 1
store i64 %37, i64* %sz, align 8
br label %while_cond
cond: ; preds = %while_body
call void @_ZN9panicking18panic_bounds_check20h237e73ee030240aaN7BE({ %str_slice, i32 }* noalias readonly dereferenceable(24) @panic_bounds_check_loc43612, i64 %23, i64 36)
unreachable
}
; Function Attrs: uwtable
define zeroext i1 @_ZN3num7flt2dec6bignum8Big32x367is_zero20hc3f158a46ff8de66RncE(%"num::flt2dec::bignum::Big32x36"* noalias readonly dereferenceable(152)) unnamed_addr #2 {
entry-block:
%self = alloca %"num::flt2dec::bignum::Big32x36"*
%1 = alloca %"slice::Iter<u32>"
%__coerce_target = alloca { i32*, i64 }
%2 = alloca %"ops::RangeTo<usize>"
%overloaded_index_elt = alloca { i32*, i64 }
%__fat_ptr = alloca { i32*, i64 }
%3 = bitcast %"num::flt2dec::bignum::Big32x36"** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store %"num::flt2dec::bignum::Big32x36"* %0, %"num::flt2dec::bignum::Big32x36"** %self, align 8
%4 = bitcast %"slice::Iter<u32>"* %1 to i8*
call void @llvm.lifetime.start(i64 16, i8* %4)
%5 = load %"num::flt2dec::bignum::Big32x36"*, %"num::flt2dec::bignum::Big32x36"** %self, align 8, !nonnull !2
%6 = getelementptr inbounds %"num::flt2dec::bignum::Big32x36", %"num::flt2dec::bignum::Big32x36"* %5, i32 0, i32 1
%7 = bitcast [36 x i32]* %6 to i32*
%8 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %__coerce_target, i32 0, i32 0
store i32* %7, i32** %8
%9 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %__coerce_target, i32 0, i32 1
store i64 36, i64* %9
%10 = bitcast %"ops::RangeTo<usize>"* %2 to i8*
call void @llvm.lifetime.start(i64 8, i8* %10)
%11 = getelementptr inbounds %"ops::RangeTo<usize>", %"ops::RangeTo<usize>"* %2, i32 0, i32 0
%12 = load %"num::flt2dec::bignum::Big32x36"*, %"num::flt2dec::bignum::Big32x36"** %self, align 8, !nonnull !2
%13 = getelementptr inbounds %"num::flt2dec::bignum::Big32x36", %"num::flt2dec::bignum::Big32x36"* %12, i32 0, i32 0
%14 = load i64, i64* %13, align 8
store i64 %14, i64* %11, align 8
%15 = bitcast %"ops::RangeTo<usize>"* %2 to i64*
%16 = load i64, i64* %15, align 8
%17 = bitcast %"ops::RangeTo<usize>"* %2 to i8*
call void @llvm.lifetime.end(i64 8, i8* %17)
%18 = bitcast { i32*, i64 }* %overloaded_index_elt to i8*
call void @llvm.lifetime.start(i64 16, i8* %18)
%19 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %__coerce_target, i32 0, i32 0
%20 = load i32*, i32** %19
%21 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %__coerce_target, i32 0, i32 1
%22 = load i64, i64* %21
%23 = call { i32*, i64 } @"_ZN5slice56_$u5b$T$u5d$.ops..Index$LT$ops..RangeTo$LT$usize$GT$$GT$5index21h18093220961502650614E"(i32* noalias nonnull readonly %20, i64 %22, i64 %16)
store { i32*, i64 } %23, { i32*, i64 }* %overloaded_index_elt, align 8
%24 = bitcast { i32*, i64 }* %__fat_ptr to i8*
call void @llvm.lifetime.start(i64 16, i8* %24)
%25 = bitcast { i32*, i64 }* %overloaded_index_elt to i8*
%26 = bitcast { i32*, i64 }* %__fat_ptr to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %26, i8* %25, i64 16, i32 8, i1 false)
%27 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %__fat_ptr, i32 0, i32 0
%28 = load i32*, i32** %27
%29 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %__fat_ptr, i32 0, i32 1
%30 = load i64, i64* %29
call void @"_ZN5slice21_$u5b$T$u5d$.SliceExt4iter21h13703703381004627772E"(%"slice::Iter<u32>"* noalias nocapture sret dereferenceable(16) %1, i32* noalias nonnull readonly %28, i64 %30)
%31 = call zeroext i1 @_ZN4iter8Iterator3all20h7573691891675112475E(%"slice::Iter<u32>"* noalias dereferenceable(16) %1, %closure.0 undef)
%32 = zext i1 %31 to i8
%33 = bitcast %"slice::Iter<u32>"* %1 to i8*
call void @llvm.lifetime.end(i64 16, i8* %33)
%34 = bitcast %"num::flt2dec::bignum::Big32x36"** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %34)
%35 = trunc i8 %32 to i1
ret i1 %35
}
; Function Attrs: inlinehint uwtable
define internal zeroext i1 @_ZN4iter8Iterator3all20h7573691891675112475E(%"slice::Iter<u32>"* noalias dereferenceable(16), %closure.0) unnamed_addr #0 {
entry-block:
%sret_slot = alloca i8
%self = alloca %"slice::Iter<u32>"*
%f = alloca %closure.0
%result = alloca {}
%2 = alloca %"slice::Iter<u32>"*
%3 = alloca %"slice::Iter<u32>"*
%match = alloca %"slice::Iter<u32>"*
%iter = alloca %"slice::Iter<u32>"**
%4 = alloca i8*
%match1 = alloca i8*
%__llmatch = alloca i32**
%x = alloca i32*
%5 = alloca i8
%6 = bitcast %"slice::Iter<u32>"** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %6)
store %"slice::Iter<u32>"* %0, %"slice::Iter<u32>"** %self, align 8
%7 = bitcast %closure.0* %f to i8*
call void @llvm.lifetime.start(i64 0, i8* %7)
%8 = bitcast {}* %result to i8*
call void @llvm.lifetime.start(i64 0, i8* %8)
%9 = bitcast %"slice::Iter<u32>"** %2 to i8*
call void @llvm.lifetime.start(i64 8, i8* %9)
%10 = bitcast %"slice::Iter<u32>"** %3 to i8*
call void @llvm.lifetime.start(i64 8, i8* %10)
%11 = load %"slice::Iter<u32>"*, %"slice::Iter<u32>"** %self, align 8, !nonnull !2
%12 = call dereferenceable(16) %"slice::Iter<u32>"* @_ZN4iter8Iterator6by_ref20h4947923434145485298E(%"slice::Iter<u32>"* noalias dereferenceable(16) %11)
store %"slice::Iter<u32>"* %12, %"slice::Iter<u32>"** %3, align 8
%13 = load %"slice::Iter<u32>"*, %"slice::Iter<u32>"** %3, align 8, !nonnull !2
%14 = bitcast %"slice::Iter<u32>"** %3 to i8*
call void @llvm.lifetime.end(i64 8, i8* %14)
%15 = call dereferenceable(16) %"slice::Iter<u32>"* @_ZN4iter14I.IntoIterator9into_iter19h257626559875800590E(%"slice::Iter<u32>"* noalias dereferenceable(16) %13)
store %"slice::Iter<u32>"* %15, %"slice::Iter<u32>"** %2, align 8
%16 = load %"slice::Iter<u32>"*, %"slice::Iter<u32>"** %2, align 8, !nonnull !2
%17 = bitcast %"slice::Iter<u32>"** %2 to i8*
call void @llvm.lifetime.end(i64 8, i8* %17)
%18 = bitcast %"slice::Iter<u32>"** %match to i8*
call void @llvm.lifetime.start(i64 8, i8* %18)
store %"slice::Iter<u32>"* %16, %"slice::Iter<u32>"** %match, align 8
%19 = bitcast %"slice::Iter<u32>"*** %iter to i8*
call void @llvm.lifetime.start(i64 8, i8* %19)
store %"slice::Iter<u32>"** %match, %"slice::Iter<u32>"*** %iter
br label %case_body
case_body: ; preds = %entry-block
%20 = load %"slice::Iter<u32>"**, %"slice::Iter<u32>"*** %iter
br label %loop_body
loop_exit: ; preds = %clean_ast_108279_6
%21 = bitcast %"slice::Iter<u32>"*** %iter to i8*
call void @llvm.lifetime.end(i64 8, i8* %21)
br label %join7
loop_body: ; preds = %join, %case_body
%22 = bitcast i8** %4 to i8*
call void @llvm.lifetime.start(i64 8, i8* %22)
%23 = call i8* @"_ZN4iter34_$RF$$u27$a$u20$mut$u20$I.Iterator4next20h8606647266037004043E"(%"slice::Iter<u32>"** noalias dereferenceable(8) %20)
store i8* %23, i8** %4, align 8
%24 = load i8*, i8** %4, align 8
%25 = bitcast i8** %4 to i8*
call void @llvm.lifetime.end(i64 8, i8* %25)
%26 = bitcast i8** %match1 to i8*
call void @llvm.lifetime.start(i64 8, i8* %26)
store i8* %24, i8** %match1, align 8
%27 = load i8*, i8** %match1
%28 = icmp ne i8* %27, null
switch i1 %28, label %match_else [
i1 true, label %match_case
]
case_body2: ; preds = %match_case
%29 = load i32**, i32*** %__llmatch
%30 = bitcast i32** %x to i8*
call void @llvm.lifetime.start(i64 8, i8* %30)
%31 = load i32*, i32** %29, align 8, !nonnull !2
store i32* %31, i32** %x, align 8
call void @llvm.lifetime.start(i64 1, i8* %5)
%32 = load i32*, i32** %x, align 8, !nonnull !2
%33 = call zeroext i1 @_ZN3num7flt2dec6bignum8Big32x367is_zero13closure.43616E(%closure.0* noalias %f, i32* noalias readonly dereferenceable(4) %32)
%34 = zext i1 %33 to i8
store i8 %34, i8* %5, align 1
%35 = load i8, i8* %5, align 1, !range !1
%36 = trunc i8 %35 to i1
call void @llvm.lifetime.end(i64 1, i8* %5)
%37 = xor i1 %36, true
br i1 %37, label %then-block-108294-, label %next-block
case_body3: ; preds = %match_else
br label %clean_ast_108279_6
match_else: ; preds = %loop_body
br label %case_body3
match_case: ; preds = %loop_body
%38 = bitcast i8** %match1 to i32**
%39 = bitcast i32*** %__llmatch to i8*
call void @llvm.lifetime.start(i64 8, i8* %39)
store i32** %38, i32*** %__llmatch
br label %case_body2
then-block-108294-: ; preds = %case_body2
store i8 0, i8* %sret_slot, align 1
br label %clean_custom_5
clean_custom_: ; preds = %join7, %clean_ast_108269_
%40 = bitcast %closure.0* %f to i8*
call void @llvm.lifetime.end(i64 0, i8* %40)
%41 = bitcast %"slice::Iter<u32>"** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %41)
br label %return
clean_ast_108269_: ; preds = %clean_custom_4
%42 = bitcast %"slice::Iter<u32>"** %match to i8*
call void @llvm.lifetime.end(i64 8, i8* %42)
br label %clean_custom_
clean_custom_4: ; preds = %clean_ast_108279_
%43 = bitcast %"slice::Iter<u32>"*** %iter to i8*
call void @llvm.lifetime.end(i64 8, i8* %43)
br label %clean_ast_108269_
clean_ast_108279_: ; preds = %clean_custom_5
%44 = bitcast i8** %match1 to i8*
call void @llvm.lifetime.end(i64 8, i8* %44)
br label %clean_custom_4
clean_custom_5: ; preds = %then-block-108294-
%45 = bitcast i32*** %__llmatch to i8*
call void @llvm.lifetime.end(i64 8, i8* %45)
%46 = bitcast i32** %x to i8*
call void @llvm.lifetime.end(i64 8, i8* %46)
br label %clean_ast_108279_
next-block: ; preds = %case_body2
%47 = bitcast i32*** %__llmatch to i8*
call void @llvm.lifetime.end(i64 8, i8* %47)
%48 = bitcast i32** %x to i8*
call void @llvm.lifetime.end(i64 8, i8* %48)
br label %join
clean_ast_108279_6: ; preds = %case_body3
%49 = bitcast i8** %match1 to i8*
call void @llvm.lifetime.end(i64 8, i8* %49)
br label %loop_exit
join: ; preds = %next-block
%50 = bitcast i8** %match1 to i8*
call void @llvm.lifetime.end(i64 8, i8* %50)
br label %loop_body
join7: ; preds = %loop_exit
%51 = bitcast %"slice::Iter<u32>"** %match to i8*
call void @llvm.lifetime.end(i64 8, i8* %51)
%52 = bitcast {}* %result to i8*
call void @llvm.lifetime.end(i64 0, i8* %52)
store i8 1, i8* %sret_slot, align 1
br label %clean_custom_
return: ; preds = %clean_custom_
%53 = load i8, i8* %sret_slot, align 1, !range !1
%54 = trunc i8 %53 to i1
ret i1 %54
}
; Function Attrs: uwtable
define internal dereferenceable(16) %"slice::Iter<u32>"* @_ZN4iter14I.IntoIterator9into_iter19h257626559875800590E(%"slice::Iter<u32>"* noalias dereferenceable(16)) unnamed_addr #2 {
entry-block:
%self = alloca %"slice::Iter<u32>"*
%1 = bitcast %"slice::Iter<u32>"** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store %"slice::Iter<u32>"* %0, %"slice::Iter<u32>"** %self, align 8
%2 = load %"slice::Iter<u32>"*, %"slice::Iter<u32>"** %self, align 8, !nonnull !2
%3 = bitcast %"slice::Iter<u32>"** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %3)
ret %"slice::Iter<u32>"* %2
}
; Function Attrs: uwtable
define internal dereferenceable(16) %"slice::Iter<u32>"* @_ZN4iter8Iterator6by_ref20h4947923434145485298E(%"slice::Iter<u32>"* noalias dereferenceable(16)) unnamed_addr #2 {
entry-block:
%self = alloca %"slice::Iter<u32>"*
%1 = bitcast %"slice::Iter<u32>"** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store %"slice::Iter<u32>"* %0, %"slice::Iter<u32>"** %self, align 8
%2 = load %"slice::Iter<u32>"*, %"slice::Iter<u32>"** %self, align 8, !nonnull !2
%3 = bitcast %"slice::Iter<u32>"** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %3)
ret %"slice::Iter<u32>"* %2
}
; Function Attrs: uwtable
define internal i8* @"_ZN4iter34_$RF$$u27$a$u20$mut$u20$I.Iterator4next20h8606647266037004043E"(%"slice::Iter<u32>"** noalias dereferenceable(8)) unnamed_addr #2 {
entry-block:
%self = alloca %"slice::Iter<u32>"**
%1 = bitcast %"slice::Iter<u32>"*** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store %"slice::Iter<u32>"** %0, %"slice::Iter<u32>"*** %self, align 8
%2 = load %"slice::Iter<u32>"**, %"slice::Iter<u32>"*** %self, align 8, !nonnull !2
%3 = load %"slice::Iter<u32>"*, %"slice::Iter<u32>"** %2, align 8, !nonnull !2
%4 = call i8* @"_ZN5slice36Iter$LT$$u27$a$C$$u20$T$GT$.Iterator4next21h17988686776990959875E"(%"slice::Iter<u32>"* noalias dereferenceable(16) %3)
%5 = bitcast %"slice::Iter<u32>"*** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %5)
ret i8* %4
}
; Function Attrs: inlinehint uwtable
define internal i8* @"_ZN5slice36Iter$LT$$u27$a$C$$u20$T$GT$.Iterator4next21h17988686776990959875E"(%"slice::Iter<u32>"* noalias dereferenceable(16)) unnamed_addr #0 {
entry-block:
%sret_slot = alloca i8*
%self = alloca %"slice::Iter<u32>"*
%1 = alloca i64
%2 = alloca i8
%3 = alloca i8
%old = alloca i32*
%4 = alloca i32*
%ptr = alloca i32*
%5 = alloca i64
%6 = alloca i8*
%7 = alloca i32*
%ptr2 = alloca i32*
%8 = alloca i32*
%9 = alloca i64
%10 = bitcast %"slice::Iter<u32>"** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %10)
store %"slice::Iter<u32>"* %0, %"slice::Iter<u32>"** %self, align 8
%11 = bitcast i64* %1 to i8*
call void @llvm.lifetime.start(i64 8, i8* %11)
%12 = call i64 @_ZN3mem7size_of20h4125651325415643322E()
store i64 %12, i64* %1, align 8
%13 = load i64, i64* %1, align 8
%14 = bitcast i64* %1 to i8*
call void @llvm.lifetime.end(i64 8, i8* %14)
%15 = icmp ne i64 %13, 0
br i1 %15, label %then-block-126282-, label %next-block
then-block-126282-: ; preds = %entry-block
call void @llvm.lifetime.start(i64 1, i8* %2)
%16 = load %"slice::Iter<u32>"*, %"slice::Iter<u32>"** %self, align 8, !nonnull !2
%17 = getelementptr inbounds %"slice::Iter<u32>", %"slice::Iter<u32>"* %16, i32 0, i32 0
%18 = load i32*, i32** %17, align 8
%19 = call zeroext i1 @"_ZN3ptr16_$BP$const$u20$T7is_null21h13949666015118894368E"(i32* %18)
%20 = zext i1 %19 to i8
store i8 %20, i8* %2, align 1
%21 = load i8, i8* %2, align 1, !range !1
%22 = trunc i8 %21 to i1
call void @llvm.lifetime.end(i64 1, i8* %2)
%23 = xor i1 %22, true
call void @llvm.assume(i1 %23)
call void @llvm.lifetime.start(i64 1, i8* %3)
%24 = load %"slice::Iter<u32>"*, %"slice::Iter<u32>"** %self, align 8, !nonnull !2
%25 = getelementptr inbounds %"slice::Iter<u32>", %"slice::Iter<u32>"* %24, i32 0, i32 1
%26 = load i32*, i32** %25, align 8
%27 = call zeroext i1 @"_ZN3ptr16_$BP$const$u20$T7is_null21h13949666015118894368E"(i32* %26)
%28 = zext i1 %27 to i8
store i8 %28, i8* %3, align 1
%29 = load i8, i8* %3, align 1, !range !1
%30 = trunc i8 %29 to i1
call void @llvm.lifetime.end(i64 1, i8* %3)
%31 = xor i1 %30, true
call void @llvm.assume(i1 %31)
br label %next-block
next-block: ; preds = %then-block-126282-, %entry-block
%32 = load %"slice::Iter<u32>"*, %"slice::Iter<u32>"** %self, align 8, !nonnull !2
%33 = getelementptr inbounds %"slice::Iter<u32>", %"slice::Iter<u32>"* %32, i32 0, i32 0
%34 = load %"slice::Iter<u32>"*, %"slice::Iter<u32>"** %self, align 8, !nonnull !2
%35 = getelementptr inbounds %"slice::Iter<u32>", %"slice::Iter<u32>"* %34, i32 0, i32 1
%36 = load i32*, i32** %33, align 8
%37 = load i32*, i32** %35, align 8
%38 = icmp eq i32* %36, %37
br i1 %38, label %then-block-126303-, label %else-block
then-block-126303-: ; preds = %next-block
%39 = bitcast i8** %sret_slot to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %39, i8* bitcast (i8** @const43614 to i8*), i64 8, i32 8, i1 false)
br label %join5
else-block: ; preds = %next-block
%40 = bitcast i32** %old to i8*
call void @llvm.lifetime.start(i64 8, i8* %40)
%41 = load %"slice::Iter<u32>"*, %"slice::Iter<u32>"** %self, align 8, !nonnull !2
%42 = getelementptr inbounds %"slice::Iter<u32>", %"slice::Iter<u32>"* %41, i32 0, i32 0
%43 = load i32*, i32** %42, align 8
store i32* %43, i32** %old, align 8
%44 = bitcast i32** %4 to i8*
call void @llvm.lifetime.start(i64 8, i8* %44)
%45 = bitcast i32** %ptr to i8*
call void @llvm.lifetime.start(i64 8, i8* %45)
%46 = load %"slice::Iter<u32>"*, %"slice::Iter<u32>"** %self, align 8, !nonnull !2
%47 = getelementptr inbounds %"slice::Iter<u32>", %"slice::Iter<u32>"* %46, i32 0, i32 0
%48 = load i32*, i32** %47, align 8
store i32* %48, i32** %ptr, align 8
%49 = bitcast i64* %5 to i8*
call void @llvm.lifetime.start(i64 8, i8* %49)
%50 = load i32*, i32** %ptr, align 8
%51 = call i64 @_ZN5slice13size_from_ptr20h1689821366228711994E(i32* %50)
store i64 %51, i64* %5, align 8
%52 = load i64, i64* %5, align 8
%53 = bitcast i64* %5 to i8*
call void @llvm.lifetime.end(i64 8, i8* %53)
%54 = icmp eq i64 %52, 0
br i1 %54, label %then-block-126329-, label %else-block1
then-block-126329-: ; preds = %else-block
%55 = bitcast i8** %6 to i8*
call void @llvm.lifetime.start(i64 8, i8* %55)
%56 = load i32*, i32** %ptr, align 8
%57 = bitcast i32* %56 to i8*
%58 = getelementptr i8, i8* %57, i64 1
store i8* %58, i8** %6, align 8
%59 = load i8*, i8** %6, align 8
%60 = bitcast i8** %6 to i8*
call void @llvm.lifetime.end(i64 8, i8* %60)
%61 = bitcast i8* %59 to i32*
store i32* %61, i32** %4, align 8
br label %join
else-block1: ; preds = %else-block
%62 = load i32*, i32** %ptr, align 8
%63 = call i32* @"_ZN3ptr16_$BP$const$u20$T6offset21h16624248233940954270E"(i32* %62, i64 1)
store i32* %63, i32** %4, align 8
br label %join
join: ; preds = %else-block1, %then-block-126329-
%64 = bitcast i32** %ptr to i8*
call void @llvm.lifetime.end(i64 8, i8* %64)
%65 = load i32*, i32** %4, align 8
%66 = bitcast i32** %4 to i8*
call void @llvm.lifetime.end(i64 8, i8* %66)
%67 = load %"slice::Iter<u32>"*, %"slice::Iter<u32>"** %self, align 8, !nonnull !2
%68 = getelementptr inbounds %"slice::Iter<u32>", %"slice::Iter<u32>"* %67, i32 0, i32 0
store i32* %65, i32** %68, align 8
%69 = bitcast i8** %sret_slot to i32**
%70 = bitcast i32** %7 to i8*
call void @llvm.lifetime.start(i64 8, i8* %70)
%71 = bitcast i32** %ptr2 to i8*
call void @llvm.lifetime.start(i64 8, i8* %71)
%72 = load i32*, i32** %old, align 8
store i32* %72, i32** %ptr2, align 8
%73 = bitcast i32** %8 to i8*
call void @llvm.lifetime.start(i64 8, i8* %73)
%74 = bitcast i64* %9 to i8*
call void @llvm.lifetime.start(i64 8, i8* %74)
%75 = load i32*, i32** %ptr2, align 8
%76 = call i64 @_ZN5slice13size_from_ptr20h1689821366228711994E(i32* %75)
store i64 %76, i64* %9, align 8
%77 = load i64, i64* %9, align 8
%78 = bitcast i64* %9 to i8*
call void @llvm.lifetime.end(i64 8, i8* %78)
%79 = icmp eq i64 %77, 0
br i1 %79, label %then-block-126359-, label %else-block3
then-block-126359-: ; preds = %join
store i32* inttoptr (i64 1 to i32*), i32** %8, align 8
br label %join4
else-block3: ; preds = %join
%80 = load i32*, i32** %ptr2, align 8
store i32* %80, i32** %8
br label %join4
join4: ; preds = %else-block3, %then-block-126359-
%81 = load i32*, i32** %8, align 8, !nonnull !2
%82 = bitcast i32** %8 to i8*
call void @llvm.lifetime.end(i64 8, i8* %82)
store i32* %81, i32** %7, align 8
%83 = bitcast i32** %ptr2 to i8*
call void @llvm.lifetime.end(i64 8, i8* %83)
%84 = load i32*, i32** %7, align 8, !nonnull !2
%85 = bitcast i32** %7 to i8*
call void @llvm.lifetime.end(i64 8, i8* %85)
store i32* %84, i32** %69, align 8
%86 = bitcast i32** %old to i8*
call void @llvm.lifetime.end(i64 8, i8* %86)
br label %join5
join5: ; preds = %join4, %then-block-126303-
%87 = bitcast %"slice::Iter<u32>"** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %87)
%88 = load i8*, i8** %sret_slot, align 8
ret i8* %88
}
; Function Attrs: inlinehint uwtable
define internal zeroext i1 @"_ZN3ptr16_$BP$const$u20$T7is_null21h13949666015118894368E"(i32*) unnamed_addr #0 {
entry-block:
%self = alloca i32*
%1 = bitcast i32** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store i32* %0, i32** %self, align 8
%2 = load i32*, i32** %self, align 8
%3 = icmp eq i32* %2, null
%4 = zext i1 %3 to i8
%5 = bitcast i32** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %5)
%6 = trunc i8 %4 to i1
ret i1 %6
}
; Function Attrs: nounwind
declare void @llvm.assume(i1) unnamed_addr #3
; Function Attrs: alwaysinline uwtable
define internal i64 @_ZN5slice13size_from_ptr20h1689821366228711994E(i32*) unnamed_addr #6 {
entry-block:
%__arg = alloca i32*
%1 = bitcast i32** %__arg to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store i32* %0, i32** %__arg, align 8
%2 = call i64 @_ZN3mem7size_of20h4125651325415643322E()
%3 = bitcast i32** %__arg to i8*
call void @llvm.lifetime.end(i64 8, i8* %3)
ret i64 %2
}
; Function Attrs: inlinehint uwtable
define internal i32* @"_ZN3ptr16_$BP$const$u20$T6offset21h16624248233940954270E"(i32*, i64) unnamed_addr #0 {
entry-block:
%self = alloca i32*
%count = alloca i64
%2 = bitcast i32** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store i32* %0, i32** %self, align 8
%3 = bitcast i64* %count to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %count, align 8
%4 = load i32*, i32** %self, align 8
%5 = load i64, i64* %count, align 8
%6 = getelementptr inbounds i32, i32* %4, i64 %5
%7 = bitcast i64* %count to i8*
call void @llvm.lifetime.end(i64 8, i8* %7)
%8 = bitcast i32** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %8)
ret i32* %6
}
; Function Attrs: inlinehint uwtable
define internal zeroext i1 @_ZN3num7flt2dec6bignum8Big32x367is_zero13closure.43616E(%closure.0* noalias, i32* noalias readonly dereferenceable(4)) unnamed_addr #4 {
entry-block:
%__arg = alloca i32*
%v = alloca i32
%2 = bitcast i32** %__arg to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store i32* %1, i32** %__arg, align 8
%3 = load i32*, i32** %__arg
%4 = bitcast i32* %v to i8*
call void @llvm.lifetime.start(i64 4, i8* %4)
%5 = load i32, i32* %3, align 4
store i32 %5, i32* %v, align 4
%6 = load i32, i32* %v, align 4
%7 = icmp eq i32 %6, 0
%8 = zext i1 %7 to i8
%9 = bitcast i32* %v to i8*
call void @llvm.lifetime.end(i64 4, i8* %9)
%10 = bitcast i32** %__arg to i8*
call void @llvm.lifetime.end(i64 8, i8* %10)
%11 = trunc i8 %8 to i1
ret i1 %11
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN5slice21_$u5b$T$u5d$.SliceExt4iter21h13703703381004627772E"(%"slice::Iter<u32>"* noalias nocapture sret dereferenceable(16), i32* noalias nonnull readonly, i64) unnamed_addr #0 {
entry-block:
%self = alloca { i32*, i64 }
%p = alloca i32*
%3 = alloca i64
%p1 = alloca i32*
%4 = alloca i8
%ptr = alloca i32*
%5 = alloca i64
%6 = alloca i8*
%7 = alloca i64
%8 = alloca i64
%9 = insertvalue { i32*, i64 } undef, i32* %1, 0
%10 = insertvalue { i32*, i64 } %9, i64 %2, 1
%11 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.start(i64 16, i8* %11)
store { i32*, i64 } %10, { i32*, i64 }* %self, align 8
%12 = bitcast i32** %p to i8*
call void @llvm.lifetime.start(i64 8, i8* %12)
%13 = bitcast i64* %3 to i8*
call void @llvm.lifetime.start(i64 8, i8* %13)
%14 = call i64 @_ZN3mem7size_of20h4125651325415643322E()
store i64 %14, i64* %3, align 8
%15 = load i64, i64* %3, align 8
%16 = bitcast i64* %3 to i8*
call void @llvm.lifetime.end(i64 8, i8* %16)
%17 = icmp eq i64 %15, 0
br i1 %17, label %then-block-124131-, label %else-block
then-block-124131-: ; preds = %entry-block
store i32* inttoptr (i64 1 to i32*), i32** %p, align 8
br label %join
else-block: ; preds = %entry-block
%18 = bitcast i32** %p1 to i8*
call void @llvm.lifetime.start(i64 8, i8* %18)
%19 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 0
%20 = load i32*, i32** %19
%21 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 1
%22 = load i64, i64* %21
%23 = call i32* @"_ZN5slice21_$u5b$T$u5d$.SliceExt6as_ptr20h8185024613234627950E"(i32* noalias nonnull readonly %20, i64 %22)
store i32* %23, i32** %p1, align 8
call void @llvm.lifetime.start(i64 1, i8* %4)
%24 = load i32*, i32** %p1, align 8
%25 = call zeroext i1 @"_ZN3ptr16_$BP$const$u20$T7is_null21h13949666015118894368E"(i32* %24)
%26 = zext i1 %25 to i8
store i8 %26, i8* %4, align 1
%27 = load i8, i8* %4, align 1, !range !1
%28 = trunc i8 %27 to i1
call void @llvm.lifetime.end(i64 1, i8* %4)
%29 = xor i1 %28, true
call void @llvm.assume(i1 %29)
%30 = load i32*, i32** %p1, align 8
store i32* %30, i32** %p, align 8
%31 = bitcast i32** %p1 to i8*
call void @llvm.lifetime.end(i64 8, i8* %31)
br label %join
join: ; preds = %else-block, %then-block-124131-
%32 = getelementptr inbounds %"slice::Iter<u32>", %"slice::Iter<u32>"* %0, i32 0, i32 0
%33 = load i32*, i32** %p, align 8
store i32* %33, i32** %32, align 8
%34 = getelementptr inbounds %"slice::Iter<u32>", %"slice::Iter<u32>"* %0, i32 0, i32 1
%35 = bitcast i32** %ptr to i8*
call void @llvm.lifetime.start(i64 8, i8* %35)
%36 = load i32*, i32** %p, align 8
store i32* %36, i32** %ptr, align 8
%37 = bitcast i64* %5 to i8*
call void @llvm.lifetime.start(i64 8, i8* %37)
%38 = load i32*, i32** %ptr, align 8
%39 = call i64 @_ZN5slice13size_from_ptr20h1689821366228711994E(i32* %38)
store i64 %39, i64* %5, align 8
%40 = load i64, i64* %5, align 8
%41 = bitcast i64* %5 to i8*
call void @llvm.lifetime.end(i64 8, i8* %41)
%42 = icmp eq i64 %40, 0
br i1 %42, label %then-block-124164-, label %else-block2
then-block-124164-: ; preds = %join
%43 = bitcast i8** %6 to i8*
call void @llvm.lifetime.start(i64 8, i8* %43)
%44 = load i32*, i32** %ptr, align 8
%45 = bitcast i32* %44 to i8*
%46 = bitcast i64* %7 to i8*
call void @llvm.lifetime.start(i64 8, i8* %46)
%47 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 0
%48 = load i32*, i32** %47
%49 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 1
%50 = load i64, i64* %49
%51 = call i64 @"_ZN5slice21_$u5b$T$u5d$.SliceExt3len21h10789329301273490820E"(i32* noalias nonnull readonly %48, i64 %50)
store i64 %51, i64* %7, align 8
%52 = load i64, i64* %7, align 8
%53 = bitcast i64* %7 to i8*
call void @llvm.lifetime.end(i64 8, i8* %53)
%54 = getelementptr i8, i8* %45, i64 %52
store i8* %54, i8** %6, align 8
%55 = load i8*, i8** %6, align 8
%56 = bitcast i8** %6 to i8*
call void @llvm.lifetime.end(i64 8, i8* %56)
%57 = bitcast i8* %55 to i32*
store i32* %57, i32** %34, align 8
br label %join3
else-block2: ; preds = %join
%58 = load i32*, i32** %ptr, align 8
%59 = bitcast i64* %8 to i8*
call void @llvm.lifetime.start(i64 8, i8* %59)
%60 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 0
%61 = load i32*, i32** %60
%62 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 1
%63 = load i64, i64* %62
%64 = call i64 @"_ZN5slice21_$u5b$T$u5d$.SliceExt3len21h10789329301273490820E"(i32* noalias nonnull readonly %61, i64 %63)
store i64 %64, i64* %8, align 8
%65 = load i64, i64* %8, align 8
%66 = bitcast i64* %8 to i8*
call void @llvm.lifetime.end(i64 8, i8* %66)
%67 = call i32* @"_ZN3ptr16_$BP$const$u20$T6offset21h16624248233940954270E"(i32* %58, i64 %65)
store i32* %67, i32** %34, align 8
br label %join3
join3: ; preds = %else-block2, %then-block-124164-
%68 = bitcast i32** %ptr to i8*
call void @llvm.lifetime.end(i64 8, i8* %68)
%69 = getelementptr inbounds %"slice::Iter<u32>", %"slice::Iter<u32>"* %0, i32 0, i32 2
%70 = bitcast %"marker::PhantomData<&'static u32>"* %69 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %70, i8* bitcast (%"marker::PhantomData<&'static u32>"* @const43618 to i8*), i64 0, i32 1, i1 false)
%71 = bitcast i32** %p to i8*
call void @llvm.lifetime.end(i64 8, i8* %71)
%72 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.end(i64 16, i8* %72)
ret void
}
; Function Attrs: inlinehint uwtable
define internal i32* @"_ZN5slice21_$u5b$T$u5d$.SliceExt6as_ptr20h8185024613234627950E"(i32* noalias nonnull readonly, i64) unnamed_addr #0 {
entry-block:
%self = alloca { i32*, i64 }
%2 = alloca %"raw::Slice<u32>"
%3 = insertvalue { i32*, i64 } undef, i32* %0, 0
%4 = insertvalue { i32*, i64 } %3, i64 %1, 1
%5 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.start(i64 16, i8* %5)
store { i32*, i64 } %4, { i32*, i64 }* %self, align 8
%6 = bitcast %"raw::Slice<u32>"* %2 to i8*
call void @llvm.lifetime.start(i64 16, i8* %6)
%7 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 0
%8 = load i32*, i32** %7
%9 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 1
%10 = load i64, i64* %9
call void @_ZN3raw4Repr4repr20h8530958648119263582E(%"raw::Slice<u32>"* noalias nocapture sret dereferenceable(16) %2, i32* noalias nonnull readonly %8, i64 %10)
%11 = getelementptr inbounds %"raw::Slice<u32>", %"raw::Slice<u32>"* %2, i32 0, i32 0
%12 = load i32*, i32** %11, align 8
%13 = bitcast %"raw::Slice<u32>"* %2 to i8*
call void @llvm.lifetime.end(i64 16, i8* %13)
%14 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.end(i64 16, i8* %14)
ret i32* %12
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3raw4Repr4repr20h8530958648119263582E(%"raw::Slice<u32>"* noalias nocapture sret dereferenceable(16), i32* noalias nonnull readonly, i64) unnamed_addr #0 {
entry-block:
%self = alloca { i32*, i64 }
%3 = insertvalue { i32*, i64 } undef, i32* %1, 0
%4 = insertvalue { i32*, i64 } %3, i64 %2, 1
%5 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.start(i64 16, i8* %5)
store { i32*, i64 } %4, { i32*, i64 }* %self, align 8
call void @_ZN3mem14transmute_copy21h17751542385444535273E(%"raw::Slice<u32>"* noalias nocapture sret dereferenceable(16) %0, { i32*, i64 }* noalias readonly dereferenceable(16) %self)
%6 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.end(i64 16, i8* %6)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3mem14transmute_copy21h17751542385444535273E(%"raw::Slice<u32>"* noalias nocapture sret dereferenceable(16), { i32*, i64 }* noalias readonly dereferenceable(16)) unnamed_addr #0 {
entry-block:
%src = alloca { i32*, i64 }*
%2 = bitcast { i32*, i64 }** %src to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store { i32*, i64 }* %1, { i32*, i64 }** %src, align 8
%3 = load { i32*, i64 }*, { i32*, i64 }** %src, align 8
%4 = bitcast { i32*, i64 }* %3 to %"raw::Slice<u32>"*
call void @_ZN3ptr4read20h2153910800644215568E(%"raw::Slice<u32>"* noalias nocapture sret dereferenceable(16) %0, %"raw::Slice<u32>"* %4)
%5 = bitcast { i32*, i64 }** %src to i8*
call void @llvm.lifetime.end(i64 8, i8* %5)
ret void
}
; Function Attrs: alwaysinline uwtable
define internal void @_ZN3ptr4read20h2153910800644215568E(%"raw::Slice<u32>"* noalias nocapture sret dereferenceable(16), %"raw::Slice<u32>"*) unnamed_addr #6 {
entry-block:
%src = alloca %"raw::Slice<u32>"*
%tmp = alloca %"raw::Slice<u32>"
%2 = bitcast %"raw::Slice<u32>"** %src to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store %"raw::Slice<u32>"* %1, %"raw::Slice<u32>"** %src, align 8
%3 = bitcast %"raw::Slice<u32>"* %tmp to i8*
call void @llvm.lifetime.start(i64 16, i8* %3)
call void @_ZN3mem13uninitialized20h3110330219745135956E(%"raw::Slice<u32>"* noalias nocapture sret dereferenceable(16) %tmp)
%4 = load %"raw::Slice<u32>"*, %"raw::Slice<u32>"** %src, align 8
%5 = bitcast %"raw::Slice<u32>"* %tmp to i8*
%6 = bitcast %"raw::Slice<u32>"* %4 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %6, i64 16, i32 8, i1 false)
%7 = bitcast %"raw::Slice<u32>"* %tmp to i8*
%8 = bitcast %"raw::Slice<u32>"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %8, i8* %7, i64 16, i32 8, i1 false)
%9 = bitcast %"raw::Slice<u32>"* %tmp to i8*
call void @llvm.lifetime.end(i64 16, i8* %9)
%10 = bitcast %"raw::Slice<u32>"** %src to i8*
call void @llvm.lifetime.end(i64 8, i8* %10)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3mem13uninitialized20h3110330219745135956E(%"raw::Slice<u32>"* noalias nocapture sret dereferenceable(16)) unnamed_addr #0 {
entry-block:
ret void
}
; Function Attrs: inlinehint uwtable
define internal i64 @"_ZN5slice21_$u5b$T$u5d$.SliceExt3len21h10789329301273490820E"(i32* noalias nonnull readonly, i64) unnamed_addr #0 {
entry-block:
%self = alloca { i32*, i64 }
%2 = alloca %"raw::Slice<u32>"
%3 = insertvalue { i32*, i64 } undef, i32* %0, 0
%4 = insertvalue { i32*, i64 } %3, i64 %1, 1
%5 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.start(i64 16, i8* %5)
store { i32*, i64 } %4, { i32*, i64 }* %self, align 8
%6 = bitcast %"raw::Slice<u32>"* %2 to i8*
call void @llvm.lifetime.start(i64 16, i8* %6)
%7 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 0
%8 = load i32*, i32** %7
%9 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 1
%10 = load i64, i64* %9
call void @_ZN3raw4Repr4repr20h8530958648119263582E(%"raw::Slice<u32>"* noalias nocapture sret dereferenceable(16) %2, i32* noalias nonnull readonly %8, i64 %10)
%11 = getelementptr inbounds %"raw::Slice<u32>", %"raw::Slice<u32>"* %2, i32 0, i32 1
%12 = load i64, i64* %11, align 8
%13 = bitcast %"raw::Slice<u32>"* %2 to i8*
call void @llvm.lifetime.end(i64 16, i8* %13)
%14 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.end(i64 16, i8* %14)
ret i64 %12
}
; Function Attrs: inlinehint uwtable
define internal { i32*, i64 } @"_ZN5slice56_$u5b$T$u5d$.ops..Index$LT$ops..RangeTo$LT$usize$GT$$GT$5index21h18093220961502650614E"(i32* noalias nonnull readonly, i64, i64) unnamed_addr #0 {
entry-block:
%sret_slot = alloca { i32*, i64 }
%self = alloca { i32*, i64 }
%index = alloca %"ops::RangeTo<usize>"
%3 = alloca { i32*, i64 }
%4 = alloca %"ops::Range<usize>"
%5 = insertvalue { i32*, i64 } undef, i32* %0, 0
%6 = insertvalue { i32*, i64 } %5, i64 %1, 1
%7 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.start(i64 16, i8* %7)
store { i32*, i64 } %6, { i32*, i64 }* %self, align 8
%8 = bitcast %"ops::RangeTo<usize>"* %index to i8*
call void @llvm.lifetime.start(i64 8, i8* %8)
%9 = bitcast %"ops::RangeTo<usize>"* %index to i64*
store i64 %2, i64* %9, align 8
%10 = bitcast { i32*, i64 }* %3 to i8*
call void @llvm.lifetime.start(i64 16, i8* %10)
%11 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 0
%12 = load i32*, i32** %11
%13 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 1
%14 = load i64, i64* %13
%15 = bitcast %"ops::Range<usize>"* %4 to i8*
call void @llvm.lifetime.start(i64 16, i8* %15)
%16 = getelementptr inbounds %"ops::Range<usize>", %"ops::Range<usize>"* %4, i32 0, i32 0
store i64 0, i64* %16, align 8
%17 = getelementptr inbounds %"ops::Range<usize>", %"ops::Range<usize>"* %4, i32 0, i32 1
%18 = getelementptr inbounds %"ops::RangeTo<usize>", %"ops::RangeTo<usize>"* %index, i32 0, i32 0
%19 = load i64, i64* %18, align 8
store i64 %19, i64* %17, align 8
%20 = call { i32*, i64 } @"_ZN5slice54_$u5b$T$u5d$.ops..Index$LT$ops..Range$LT$usize$GT$$GT$5index20h2804395842260086815E"(i32* noalias nonnull readonly %12, i64 %14, %"ops::Range<usize>"* noalias nocapture dereferenceable(16) %4)
store { i32*, i64 } %20, { i32*, i64 }* %3, align 8
%21 = bitcast %"ops::Range<usize>"* %4 to i8*
call void @llvm.lifetime.end(i64 16, i8* %21)
%22 = bitcast { i32*, i64 }* %3 to i8*
%23 = bitcast { i32*, i64 }* %sret_slot to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %23, i8* %22, i64 16, i32 8, i1 false)
%24 = bitcast { i32*, i64 }* %3 to i8*
call void @llvm.lifetime.end(i64 16, i8* %24)
%25 = bitcast %"ops::RangeTo<usize>"* %index to i8*
call void @llvm.lifetime.end(i64 8, i8* %25)
%26 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.end(i64 16, i8* %26)
%27 = load { i32*, i64 }, { i32*, i64 }* %sret_slot, align 8
ret { i32*, i64 } %27
}
; Function Attrs: inlinehint uwtable
define internal { i32*, i64 } @"_ZN5slice54_$u5b$T$u5d$.ops..Index$LT$ops..Range$LT$usize$GT$$GT$5index20h2804395842260086815E"(i32* noalias nonnull readonly, i64, %"ops::Range<usize>"* noalias nocapture dereferenceable(16)) unnamed_addr #0 {
entry-block:
%sret_slot = alloca { i32*, i64 }
%self = alloca { i32*, i64 }
%3 = alloca i64
%4 = alloca { i32*, i64 }
%5 = alloca { i32*, i64 }
%6 = alloca i32*
%7 = alloca i32*
%8 = insertvalue { i32*, i64 } undef, i32* %0, 0
%9 = insertvalue { i32*, i64 } %8, i64 %1, 1
%10 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.start(i64 16, i8* %10)
store { i32*, i64 } %9, { i32*, i64 }* %self, align 8
%11 = getelementptr inbounds %"ops::Range<usize>", %"ops::Range<usize>"* %2, i32 0, i32 0
%12 = getelementptr inbounds %"ops::Range<usize>", %"ops::Range<usize>"* %2, i32 0, i32 1
%13 = load i64, i64* %11, align 8
%14 = load i64, i64* %12, align 8
%15 = icmp ule i64 %13, %14
%16 = xor i1 %15, true
br i1 %16, label %then-block-125661-, label %next-block
then-block-125661-: ; preds = %entry-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @"_ZN5slice54_$u5b$T$u5d$.ops..Index$LT$ops..Range$LT$usize$GT$$GT$5index14_MSG_FILE_LINE20h6e428c54043941af1QGE" to { %str_slice, %str_slice, i32 }*))
unreachable
next-block: ; preds = %entry-block
%17 = getelementptr inbounds %"ops::Range<usize>", %"ops::Range<usize>"* %2, i32 0, i32 1
%18 = bitcast i64* %3 to i8*
call void @llvm.lifetime.start(i64 8, i8* %18)
%19 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 0
%20 = load i32*, i32** %19
%21 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 1
%22 = load i64, i64* %21
%23 = call i64 @"_ZN5slice21_$u5b$T$u5d$.SliceExt3len21h10789329301273490820E"(i32* noalias nonnull readonly %20, i64 %22)
store i64 %23, i64* %3, align 8
%24 = load i64, i64* %3, align 8
%25 = bitcast i64* %3 to i8*
call void @llvm.lifetime.end(i64 8, i8* %25)
%26 = load i64, i64* %17, align 8
%27 = icmp ule i64 %26, %24
%28 = xor i1 %27, true
br i1 %28, label %then-block-125690-, label %next-block1
then-block-125690-: ; preds = %next-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @"_ZN5slice54_$u5b$T$u5d$.ops..Index$LT$ops..Range$LT$usize$GT$$GT$5index14_MSG_FILE_LINE20h6e428c54043941afuRGE" to { %str_slice, %str_slice, i32 }*))
unreachable
next-block1: ; preds = %next-block
%29 = bitcast { i32*, i64 }* %4 to i8*
call void @llvm.lifetime.start(i64 16, i8* %29)
%30 = bitcast { i32*, i64 }* %5 to i8*
call void @llvm.lifetime.start(i64 16, i8* %30)
%31 = bitcast i32** %6 to i8*
call void @llvm.lifetime.start(i64 8, i8* %31)
%32 = bitcast i32** %7 to i8*
call void @llvm.lifetime.start(i64 8, i8* %32)
%33 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 0
%34 = load i32*, i32** %33
%35 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 1
%36 = load i64, i64* %35
%37 = call i32* @"_ZN5slice21_$u5b$T$u5d$.SliceExt6as_ptr20h8185024613234627950E"(i32* noalias nonnull readonly %34, i64 %36)
store i32* %37, i32** %7, align 8
%38 = load i32*, i32** %7, align 8
%39 = bitcast i32** %7 to i8*
call void @llvm.lifetime.end(i64 8, i8* %39)
%40 = getelementptr inbounds %"ops::Range<usize>", %"ops::Range<usize>"* %2, i32 0, i32 0
%41 = load i64, i64* %40, align 8
%42 = call i32* @"_ZN3ptr16_$BP$const$u20$T6offset21h16624248233940954270E"(i32* %38, i64 %41)
store i32* %42, i32** %6, align 8
%43 = load i32*, i32** %6, align 8
%44 = bitcast i32** %6 to i8*
call void @llvm.lifetime.end(i64 8, i8* %44)
%45 = getelementptr inbounds %"ops::Range<usize>", %"ops::Range<usize>"* %2, i32 0, i32 1
%46 = getelementptr inbounds %"ops::Range<usize>", %"ops::Range<usize>"* %2, i32 0, i32 0
%47 = load i64, i64* %45, align 8
%48 = load i64, i64* %46, align 8
%49 = sub i64 %47, %48
%50 = call { i32*, i64 } @_ZN5slice14from_raw_parts20h5245010131318023926E(i32* %43, i64 %49)
store { i32*, i64 } %50, { i32*, i64 }* %5, align 8
%51 = bitcast { i32*, i64 }* %5 to i8*
%52 = bitcast { i32*, i64 }* %4 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %52, i8* %51, i64 16, i32 8, i1 false)
%53 = bitcast { i32*, i64 }* %5 to i8*
call void @llvm.lifetime.end(i64 16, i8* %53)
%54 = bitcast { i32*, i64 }* %4 to i8*
%55 = bitcast { i32*, i64 }* %sret_slot to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %55, i8* %54, i64 16, i32 8, i1 false)
%56 = bitcast { i32*, i64 }* %4 to i8*
call void @llvm.lifetime.end(i64 16, i8* %56)
%57 = bitcast %"ops::Range<usize>"* %2 to i8*
call void @llvm.lifetime.end(i64 16, i8* %57)
%58 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.end(i64 16, i8* %58)
%59 = load { i32*, i64 }, { i32*, i64 }* %sret_slot, align 8
ret { i32*, i64 } %59
}
; Function Attrs: inlinehint uwtable
define internal { i32*, i64 } @_ZN5slice14from_raw_parts20h5245010131318023926E(i32*, i64) unnamed_addr #0 {
entry-block:
%sret_slot = alloca { i32*, i64 }
%p = alloca i32*
%len = alloca i64
%2 = bitcast i32** %p to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store i32* %0, i32** %p, align 8
%3 = bitcast i64* %len to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %len, align 8
%4 = bitcast { i32*, i64 }* %sret_slot to %"raw::Slice<u32>"*
%5 = getelementptr inbounds %"raw::Slice<u32>", %"raw::Slice<u32>"* %4, i32 0, i32 0
%6 = load i32*, i32** %p, align 8
store i32* %6, i32** %5, align 8
%7 = getelementptr inbounds %"raw::Slice<u32>", %"raw::Slice<u32>"* %4, i32 0, i32 1
%8 = load i64, i64* %len, align 8
store i64 %8, i64* %7, align 8
%9 = bitcast i64* %len to i8*
call void @llvm.lifetime.end(i64 8, i8* %9)
%10 = bitcast i32** %p to i8*
call void @llvm.lifetime.end(i64 8, i8* %10)
%11 = load { i32*, i64 }, { i32*, i64 }* %sret_slot, align 8
ret { i32*, i64 } %11
}
; Function Attrs: uwtable
define dereferenceable(152) %"num::flt2dec::bignum::Big32x36"* @_ZN3num7flt2dec6bignum8Big32x363add20h1808d7f26c0e4158focE(%"num::flt2dec::bignum::Big32x36"* noalias dereferenceable(152), %"num::flt2dec::bignum::Big32x36"* noalias readonly dereferenceable(152)) unnamed_addr #2 {
entry-block:
%self = alloca %"num::flt2dec::bignum::Big32x36"*
%other = alloca %"num::flt2dec::bignum::Big32x36"*
%sz = alloca i64
%carry = alloca i8
%result = alloca {}
%2 = alloca %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"
%3 = alloca %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"
%4 = alloca %"slice::IterMut<u32>"
%__coerce_target = alloca { i32*, i64 }
%5 = alloca %"ops::RangeTo<usize>"
%overloaded_index_elt = alloca { i32*, i64 }
%__fat_ptr = alloca { i32*, i64 }
%__coerce_target1 = alloca { i32*, i64 }
%6 = alloca %"ops::RangeTo<usize>"
%overloaded_index_elt2 = alloca { i32*, i64 }
%__fat_ptr3 = alloca { i32*, i64 }
%iter = alloca %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"*
%7 = alloca %"option::Option<(&'static mut u32, &'static u32)>"
%a = alloca i32**
%__llmatch = alloca i32**
%b = alloca i32*
%8 = alloca { i8, i32 }
%let = alloca { i8, i32 }
%c = alloca i8
%v = alloca i32
%9 = bitcast %"num::flt2dec::bignum::Big32x36"** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %9)
store %"num::flt2dec::bignum::Big32x36"* %0, %"num::flt2dec::bignum::Big32x36"** %self, align 8
%10 = bitcast %"num::flt2dec::bignum::Big32x36"** %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %10)
store %"num::flt2dec::bignum::Big32x36"* %1, %"num::flt2dec::bignum::Big32x36"** %other, align 8
%11 = bitcast i64* %sz to i8*
call void @llvm.lifetime.start(i64 8, i8* %11)
%12 = load %"num::flt2dec::bignum::Big32x36"*, %"num::flt2dec::bignum::Big32x36"** %self, align 8, !nonnull !2
%13 = getelementptr inbounds %"num::flt2dec::bignum::Big32x36", %"num::flt2dec::bignum::Big32x36"* %12, i32 0, i32 0
%14 = load i64, i64* %13, align 8
%15 = load %"num::flt2dec::bignum::Big32x36"*, %"num::flt2dec::bignum::Big32x36"** %other, align 8, !nonnull !2
%16 = getelementptr inbounds %"num::flt2dec::bignum::Big32x36", %"num::flt2dec::bignum::Big32x36"* %15, i32 0, i32 0
%17 = load i64, i64* %16, align 8
%18 = call i64 @_ZN3cmp3max21h17569119418434179040E(i64 %14, i64 %17)
store i64 %18, i64* %sz, align 8
call void @llvm.lifetime.start(i64 1, i8* %carry)
store i8 0, i8* %carry, align 1
%19 = bitcast {}* %result to i8*
call void @llvm.lifetime.start(i64 0, i8* %19)
%20 = bitcast %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"* %2 to i8*
call void @llvm.lifetime.start(i64 32, i8* %20)
%21 = bitcast %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"* %3 to i8*
call void @llvm.lifetime.start(i64 32, i8* %21)
%22 = bitcast %"slice::IterMut<u32>"* %4 to i8*
call void @llvm.lifetime.start(i64 16, i8* %22)
%23 = load %"num::flt2dec::bignum::Big32x36"*, %"num::flt2dec::bignum::Big32x36"** %self, align 8, !nonnull !2
%24 = getelementptr inbounds %"num::flt2dec::bignum::Big32x36", %"num::flt2dec::bignum::Big32x36"* %23, i32 0, i32 1
%25 = bitcast [36 x i32]* %24 to i32*
%26 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %__coerce_target, i32 0, i32 0
store i32* %25, i32** %26
%27 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %__coerce_target, i32 0, i32 1
store i64 36, i64* %27
%28 = bitcast %"ops::RangeTo<usize>"* %5 to i8*
call void @llvm.lifetime.start(i64 8, i8* %28)
%29 = getelementptr inbounds %"ops::RangeTo<usize>", %"ops::RangeTo<usize>"* %5, i32 0, i32 0
%30 = load i64, i64* %sz, align 8
store i64 %30, i64* %29, align 8
%31 = bitcast %"ops::RangeTo<usize>"* %5 to i64*
%32 = load i64, i64* %31, align 8
%33 = bitcast %"ops::RangeTo<usize>"* %5 to i8*
call void @llvm.lifetime.end(i64 8, i8* %33)
%34 = bitcast { i32*, i64 }* %overloaded_index_elt to i8*
call void @llvm.lifetime.start(i64 16, i8* %34)
%35 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %__coerce_target, i32 0, i32 0
%36 = load i32*, i32** %35
%37 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %__coerce_target, i32 0, i32 1
%38 = load i64, i64* %37
%39 = call { i32*, i64 } @"_ZN5slice59_$u5b$T$u5d$.ops..IndexMut$LT$ops..RangeTo$LT$usize$GT$$GT$9index_mut20h6124698314950640338E"(i32* noalias nonnull %36, i64 %38, i64 %32)
store { i32*, i64 } %39, { i32*, i64 }* %overloaded_index_elt, align 8
%40 = bitcast { i32*, i64 }* %__fat_ptr to i8*
call void @llvm.lifetime.start(i64 16, i8* %40)
%41 = bitcast { i32*, i64 }* %overloaded_index_elt to i8*
%42 = bitcast { i32*, i64 }* %__fat_ptr to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %42, i8* %41, i64 16, i32 8, i1 false)
%43 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %__fat_ptr, i32 0, i32 0
%44 = load i32*, i32** %43
%45 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %__fat_ptr, i32 0, i32 1
%46 = load i64, i64* %45
call void @"_ZN5slice21_$u5b$T$u5d$.SliceExt8iter_mut21h11495445293580348981E"(%"slice::IterMut<u32>"* noalias nocapture sret dereferenceable(16) %4, i32* noalias nonnull %44, i64 %46)
%47 = load %"num::flt2dec::bignum::Big32x36"*, %"num::flt2dec::bignum::Big32x36"** %other, align 8, !nonnull !2
%48 = getelementptr inbounds %"num::flt2dec::bignum::Big32x36", %"num::flt2dec::bignum::Big32x36"* %47, i32 0, i32 1
%49 = bitcast [36 x i32]* %48 to i32*
%50 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %__coerce_target1, i32 0, i32 0
store i32* %49, i32** %50
%51 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %__coerce_target1, i32 0, i32 1
store i64 36, i64* %51
%52 = bitcast %"ops::RangeTo<usize>"* %6 to i8*
call void @llvm.lifetime.start(i64 8, i8* %52)
%53 = getelementptr inbounds %"ops::RangeTo<usize>", %"ops::RangeTo<usize>"* %6, i32 0, i32 0
%54 = load i64, i64* %sz, align 8
store i64 %54, i64* %53, align 8
%55 = bitcast %"ops::RangeTo<usize>"* %6 to i64*
%56 = load i64, i64* %55, align 8
%57 = bitcast %"ops::RangeTo<usize>"* %6 to i8*
call void @llvm.lifetime.end(i64 8, i8* %57)
%58 = bitcast { i32*, i64 }* %overloaded_index_elt2 to i8*
call void @llvm.lifetime.start(i64 16, i8* %58)
%59 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %__coerce_target1, i32 0, i32 0
%60 = load i32*, i32** %59
%61 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %__coerce_target1, i32 0, i32 1
%62 = load i64, i64* %61
%63 = call { i32*, i64 } @"_ZN5slice56_$u5b$T$u5d$.ops..Index$LT$ops..RangeTo$LT$usize$GT$$GT$5index21h18093220961502650614E"(i32* noalias nonnull readonly %60, i64 %62, i64 %56)
store { i32*, i64 } %63, { i32*, i64 }* %overloaded_index_elt2, align 8
%64 = bitcast { i32*, i64 }* %__fat_ptr3 to i8*
call void @llvm.lifetime.start(i64 16, i8* %64)
%65 = bitcast { i32*, i64 }* %overloaded_index_elt2 to i8*
%66 = bitcast { i32*, i64 }* %__fat_ptr3 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %66, i8* %65, i64 16, i32 8, i1 false)
%67 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %__fat_ptr3, i32 0, i32 0
%68 = load i32*, i32** %67
%69 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %__fat_ptr3, i32 0, i32 1
%70 = load i64, i64* %69
call void @_ZN4iter8Iterator3zip21h16785923938305249218E(%"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"* noalias nocapture sret dereferenceable(32) %3, %"slice::IterMut<u32>"* noalias nocapture dereferenceable(16) %4, i32* noalias nonnull readonly %68, i64 %70)
%71 = bitcast %"slice::IterMut<u32>"* %4 to i8*
call void @llvm.lifetime.end(i64 16, i8* %71)
call void @_ZN4iter14I.IntoIterator9into_iter21h12432923736620794277E(%"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"* noalias nocapture sret dereferenceable(32) %2, %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"* noalias nocapture dereferenceable(32) %3)
%72 = bitcast %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"* %3 to i8*
call void @llvm.lifetime.end(i64 32, i8* %72)
%73 = bitcast %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"** %iter to i8*
call void @llvm.lifetime.start(i64 8, i8* %73)
store %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"* %2, %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"** %iter
br label %case_body
case_body: ; preds = %entry-block
%74 = load %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"*, %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"** %iter
br label %loop_body
loop_exit: ; preds = %clean_ast_8617_
%75 = bitcast %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"** %iter to i8*
call void @llvm.lifetime.end(i64 8, i8* %75)
br label %join6
loop_body: ; preds = %join, %case_body
%76 = bitcast %"option::Option<(&'static mut u32, &'static u32)>"* %7 to i8*
call void @llvm.lifetime.start(i64 16, i8* %76)
call void @"_ZN4iter30Zip$LT$A$C$$u20$B$GT$.Iterator4next20h8352294025034994784E"(%"option::Option<(&'static mut u32, &'static u32)>"* noalias nocapture sret dereferenceable(16) %7, %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"* noalias dereferenceable(32) %74)
%77 = getelementptr inbounds %"option::Option<(&'static mut u32, &'static u32)>", %"option::Option<(&'static mut u32, &'static u32)>"* %7, i32 0, i32 0, i32 0
%78 = load i32*, i32** %77
%79 = icmp ne i32* %78, null
switch i1 %79, label %match_else [
i1 true, label %match_case
]
case_body4: ; preds = %match_case
%80 = load i32**, i32*** %a
%81 = load i32**, i32*** %__llmatch
%82 = bitcast i32** %b to i8*
call void @llvm.lifetime.start(i64 8, i8* %82)
%83 = load i32*, i32** %81, align 8, !nonnull !2
store i32* %83, i32** %b, align 8
%84 = bitcast { i8, i32 }* %8 to i8*
call void @llvm.lifetime.start(i64 8, i8* %84)
%85 = load i32*, i32** %80, align 8, !nonnull !2
%86 = load i32, i32* %85, align 4
%87 = load i32*, i32** %b, align 8, !nonnull !2
%88 = load i32, i32* %87, align 4
%89 = load i8, i8* %carry, align 1, !range !1
%90 = trunc i8 %89 to i1
%91 = call i64 @_ZN3num7flt2dec6bignum11u32.FullOps8full_add20h44ed614bdfacc600yicE(i32 %86, i32 %88, i1 zeroext %90)
%92 = bitcast { i8, i32 }* %8 to i64*
store i64 %91, i64* %92, align 4
%93 = bitcast { i8, i32 }* %8 to i64*
%94 = load i64, i64* %93, align 4
%95 = bitcast { i8, i32 }* %8 to i8*
call void @llvm.lifetime.end(i64 8, i8* %95)
%96 = bitcast { i8, i32 }* %let to i8*
call void @llvm.lifetime.start(i64 8, i8* %96)
%97 = bitcast { i8, i32 }* %let to i64*
store i64 %94, i64* %97, align 4
%98 = getelementptr inbounds { i8, i32 }, { i8, i32 }* %let, i32 0, i32 0
call void @llvm.lifetime.start(i64 1, i8* %c)
%99 = load i8, i8* %98, align 1, !range !1
%100 = trunc i8 %99 to i1
%101 = zext i1 %100 to i8
store i8 %101, i8* %c, align 1
%102 = getelementptr inbounds { i8, i32 }, { i8, i32 }* %let, i32 0, i32 1
%103 = bitcast i32* %v to i8*
call void @llvm.lifetime.start(i64 4, i8* %103)
%104 = load i32, i32* %102, align 4
store i32 %104, i32* %v, align 4
%105 = bitcast { i8, i32 }* %let to i8*
call void @llvm.lifetime.end(i64 8, i8* %105)
%106 = load i32*, i32** %80, align 8, !nonnull !2
%107 = load i32, i32* %v, align 4
store i32 %107, i32* %106, align 4
%108 = load i8, i8* %c, align 1, !range !1
%109 = trunc i8 %108 to i1
%110 = zext i1 %109 to i8
store i8 %110, i8* %carry, align 1
%111 = bitcast i32* %v to i8*
call void @llvm.lifetime.end(i64 4, i8* %111)
call void @llvm.lifetime.end(i64 1, i8* %c)
%112 = bitcast i32*** %__llmatch to i8*
call void @llvm.lifetime.end(i64 8, i8* %112)
%113 = bitcast i32** %b to i8*
call void @llvm.lifetime.end(i64 8, i8* %113)
%114 = bitcast i32*** %a to i8*
call void @llvm.lifetime.end(i64 8, i8* %114)
br label %join
case_body5: ; preds = %match_else
br label %clean_ast_8617_
match_else: ; preds = %loop_body
br label %case_body5
match_case: ; preds = %loop_body
%115 = getelementptr inbounds %"option::Option<(&'static mut u32, &'static u32)>", %"option::Option<(&'static mut u32, &'static u32)>"* %7, i32 0, i32 0
%116 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %115, i32 0, i32 0
%117 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %115, i32 0, i32 1
%118 = bitcast i32*** %__llmatch to i8*
call void @llvm.lifetime.start(i64 8, i8* %118)
store i32** %117, i32*** %__llmatch
%119 = bitcast i32*** %a to i8*
call void @llvm.lifetime.start(i64 8, i8* %119)
store i32** %116, i32*** %a
br label %case_body4
clean_ast_8617_: ; preds = %case_body5
%120 = bitcast %"option::Option<(&'static mut u32, &'static u32)>"* %7 to i8*
call void @llvm.lifetime.end(i64 16, i8* %120)
br label %loop_exit
join: ; preds = %case_body4
%121 = bitcast %"option::Option<(&'static mut u32, &'static u32)>"* %7 to i8*
call void @llvm.lifetime.end(i64 16, i8* %121)
br label %loop_body
join6: ; preds = %loop_exit
%122 = bitcast %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"* %2 to i8*
call void @llvm.lifetime.end(i64 32, i8* %122)
%123 = bitcast {}* %result to i8*
call void @llvm.lifetime.end(i64 0, i8* %123)
%124 = load i8, i8* %carry, align 1, !range !1
%125 = trunc i8 %124 to i1
br i1 %125, label %then-block-8656-, label %next-block
then-block-8656-: ; preds = %join6
%126 = load %"num::flt2dec::bignum::Big32x36"*, %"num::flt2dec::bignum::Big32x36"** %self, align 8, !nonnull !2
%127 = getelementptr inbounds %"num::flt2dec::bignum::Big32x36", %"num::flt2dec::bignum::Big32x36"* %126, i32 0, i32 1
%128 = load i64, i64* %sz, align 8
%129 = getelementptr inbounds [36 x i32], [36 x i32]* %127, i32 0, i32 0
%130 = icmp uge i64 %128, 36
%131 = call i1 @llvm.expect.i1(i1 %130, i1 false)
br i1 %131, label %cond, label %next
next: ; preds = %then-block-8656-
%132 = getelementptr inbounds i32, i32* %129, i64 %128
store i32 1, i32* %132, align 4
%133 = load i64, i64* %sz, align 8
%134 = add i64 %133, 1
store i64 %134, i64* %sz, align 8
br label %next-block
cond: ; preds = %then-block-8656-
call void @_ZN9panicking18panic_bounds_check20h237e73ee030240aaN7BE({ %str_slice, i32 }* noalias readonly dereferenceable(24) @panic_bounds_check_loc43632, i64 %128, i64 36)
unreachable
next-block: ; preds = %next, %join6
%135 = load %"num::flt2dec::bignum::Big32x36"*, %"num::flt2dec::bignum::Big32x36"** %self, align 8, !nonnull !2
%136 = getelementptr inbounds %"num::flt2dec::bignum::Big32x36", %"num::flt2dec::bignum::Big32x36"* %135, i32 0, i32 0
%137 = load i64, i64* %sz, align 8
store i64 %137, i64* %136, align 8
%138 = load %"num::flt2dec::bignum::Big32x36"*, %"num::flt2dec::bignum::Big32x36"** %self, align 8, !nonnull !2
call void @llvm.lifetime.end(i64 1, i8* %carry)
%139 = bitcast i64* %sz to i8*
call void @llvm.lifetime.end(i64 8, i8* %139)
%140 = bitcast %"num::flt2dec::bignum::Big32x36"** %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %140)
%141 = bitcast %"num::flt2dec::bignum::Big32x36"** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %141)
ret %"num::flt2dec::bignum::Big32x36"* %138
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN3cmp3max21h17569119418434179040E(i64, i64) unnamed_addr #0 {
entry-block:
%sret_slot = alloca i64
%v1 = alloca i64
%v2 = alloca i64
%2 = alloca i8
%3 = bitcast i64* %v1 to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %0, i64* %v1, align 8
%4 = bitcast i64* %v2 to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %v2, align 8
call void @llvm.lifetime.start(i64 1, i8* %2)
%5 = call zeroext i1 @_ZN3cmp5impls16usize.PartialOrd2ge20h3d834c1232ee39796KsE(i64* noalias readonly dereferenceable(8) %v2, i64* noalias readonly dereferenceable(8) %v1)
%6 = zext i1 %5 to i8
store i8 %6, i8* %2, align 1
%7 = load i8, i8* %2, align 1, !range !1
%8 = trunc i8 %7 to i1
call void @llvm.lifetime.end(i64 1, i8* %2)
br i1 %8, label %then-block-70497-, label %else-block
then-block-70497-: ; preds = %entry-block
%9 = load i64, i64* %v2, align 8
store i64 %9, i64* %sret_slot, align 8
br label %join
else-block: ; preds = %entry-block
%10 = load i64, i64* %v1, align 8
store i64 %10, i64* %sret_slot, align 8
br label %join
join: ; preds = %else-block, %then-block-70497-
%11 = bitcast i64* %v2 to i8*
call void @llvm.lifetime.end(i64 8, i8* %11)
%12 = bitcast i64* %v1 to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
%13 = load i64, i64* %sret_slot, align 8
ret i64 %13
}
; Function Attrs: inlinehint uwtable
define zeroext i1 @_ZN3cmp5impls16usize.PartialOrd2ge20h3d834c1232ee39796KsE(i64* noalias readonly dereferenceable(8), i64* noalias readonly dereferenceable(8)) unnamed_addr #0 {
entry-block:
%self = alloca i64*
%other = alloca i64*
%2 = bitcast i64** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store i64* %0, i64** %self, align 8
%3 = bitcast i64** %other to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64* %1, i64** %other, align 8
%4 = load i64*, i64** %self, align 8, !nonnull !2
%5 = load i64*, i64** %other, align 8, !nonnull !2
%6 = load i64, i64* %4, align 8
%7 = load i64, i64* %5, align 8
%8 = icmp uge i64 %6, %7
%9 = zext i1 %8 to i8
%10 = bitcast i64** %other to i8*
call void @llvm.lifetime.end(i64 8, i8* %10)
%11 = bitcast i64** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %11)
%12 = trunc i8 %9 to i1
ret i1 %12
}
; Function Attrs: uwtable
define internal void @_ZN4iter14I.IntoIterator9into_iter21h12432923736620794277E(%"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"* noalias nocapture sret dereferenceable(32), %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"* noalias nocapture dereferenceable(32)) unnamed_addr #2 {
entry-block:
%2 = bitcast %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"* %1 to i8*
%3 = bitcast %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %3, i8* %2, i64 32, i32 8, i1 false)
%4 = bitcast %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"* %1 to i8*
call void @llvm.lifetime.end(i64 32, i8* %4)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN4iter8Iterator3zip21h16785923938305249218E(%"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"* noalias nocapture sret dereferenceable(32), %"slice::IterMut<u32>"* noalias nocapture dereferenceable(16), i32* noalias nonnull readonly, i64) unnamed_addr #0 {
entry-block:
%other = alloca { i32*, i64 }
%4 = insertvalue { i32*, i64 } undef, i32* %2, 0
%5 = insertvalue { i32*, i64 } %4, i64 %3, 1
%6 = bitcast { i32*, i64 }* %other to i8*
call void @llvm.lifetime.start(i64 16, i8* %6)
store { i32*, i64 } %5, { i32*, i64 }* %other, align 8
%7 = getelementptr inbounds %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>", %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"* %0, i32 0, i32 0
%8 = bitcast %"slice::IterMut<u32>"* %1 to i8*
%9 = bitcast %"slice::IterMut<u32>"* %7 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* %8, i64 16, i32 8, i1 false)
%10 = getelementptr inbounds %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>", %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"* %0, i32 0, i32 1
%11 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %other, i32 0, i32 0
%12 = load i32*, i32** %11
%13 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %other, i32 0, i32 1
%14 = load i64, i64* %13
call void @"_ZN5slice40_$RF$$u27$a$u20$$u5b$T$u5d$.IntoIterator9into_iter21h11275002074765435445E"(%"slice::Iter<u32>"* noalias nocapture sret dereferenceable(16) %10, i32* noalias nonnull readonly %12, i64 %14)
%15 = bitcast { i32*, i64 }* %other to i8*
call void @llvm.lifetime.end(i64 16, i8* %15)
%16 = bitcast %"slice::IterMut<u32>"* %1 to i8*
call void @llvm.lifetime.end(i64 16, i8* %16)
ret void
}
; Function Attrs: uwtable
define internal void @"_ZN5slice40_$RF$$u27$a$u20$$u5b$T$u5d$.IntoIterator9into_iter21h11275002074765435445E"(%"slice::Iter<u32>"* noalias nocapture sret dereferenceable(16), i32* noalias nonnull readonly, i64) unnamed_addr #2 {
entry-block:
%self = alloca { i32*, i64 }
%3 = insertvalue { i32*, i64 } undef, i32* %1, 0
%4 = insertvalue { i32*, i64 } %3, i64 %2, 1
%5 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.start(i64 16, i8* %5)
store { i32*, i64 } %4, { i32*, i64 }* %self, align 8
%6 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 0
%7 = load i32*, i32** %6
%8 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 1
%9 = load i64, i64* %8
call void @"_ZN5slice21_$u5b$T$u5d$.SliceExt4iter21h13703703381004627772E"(%"slice::Iter<u32>"* noalias nocapture sret dereferenceable(16) %0, i32* noalias nonnull readonly %7, i64 %9)
%10 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.end(i64 16, i8* %10)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN5slice21_$u5b$T$u5d$.SliceExt8iter_mut21h11495445293580348981E"(%"slice::IterMut<u32>"* noalias nocapture sret dereferenceable(16), i32* noalias nonnull, i64) unnamed_addr #0 {
entry-block:
%self = alloca { i32*, i64 }
%p = alloca i32*
%3 = alloca i64
%p1 = alloca i32*
%4 = alloca i8
%ptr = alloca i32*
%5 = alloca i64
%6 = alloca i8*
%7 = alloca i64
%8 = alloca i64
%9 = insertvalue { i32*, i64 } undef, i32* %1, 0
%10 = insertvalue { i32*, i64 } %9, i64 %2, 1
%11 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.start(i64 16, i8* %11)
store { i32*, i64 } %10, { i32*, i64 }* %self, align 8
%12 = bitcast i32** %p to i8*
call void @llvm.lifetime.start(i64 8, i8* %12)
%13 = bitcast i64* %3 to i8*
call void @llvm.lifetime.start(i64 8, i8* %13)
%14 = call i64 @_ZN3mem7size_of20h4125651325415643322E()
store i64 %14, i64* %3, align 8
%15 = load i64, i64* %3, align 8
%16 = bitcast i64* %3 to i8*
call void @llvm.lifetime.end(i64 8, i8* %16)
%17 = icmp eq i64 %15, 0
br i1 %17, label %then-block-124669-, label %else-block
then-block-124669-: ; preds = %entry-block
store i32* inttoptr (i64 1 to i32*), i32** %p, align 8
br label %join
else-block: ; preds = %entry-block
%18 = bitcast i32** %p1 to i8*
call void @llvm.lifetime.start(i64 8, i8* %18)
%19 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 0
%20 = load i32*, i32** %19
%21 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 1
%22 = load i64, i64* %21
%23 = call i32* @"_ZN5slice21_$u5b$T$u5d$.SliceExt10as_mut_ptr20h6579736442856853846E"(i32* noalias nonnull %20, i64 %22)
store i32* %23, i32** %p1, align 8
call void @llvm.lifetime.start(i64 1, i8* %4)
%24 = load i32*, i32** %p1, align 8
%25 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null20h5321699873322523225E"(i32* %24)
%26 = zext i1 %25 to i8
store i8 %26, i8* %4, align 1
%27 = load i8, i8* %4, align 1, !range !1
%28 = trunc i8 %27 to i1
call void @llvm.lifetime.end(i64 1, i8* %4)
%29 = xor i1 %28, true
call void @llvm.assume(i1 %29)
%30 = load i32*, i32** %p1, align 8
store i32* %30, i32** %p, align 8
%31 = bitcast i32** %p1 to i8*
call void @llvm.lifetime.end(i64 8, i8* %31)
br label %join
join: ; preds = %else-block, %then-block-124669-
%32 = getelementptr inbounds %"slice::IterMut<u32>", %"slice::IterMut<u32>"* %0, i32 0, i32 0
%33 = load i32*, i32** %p, align 8
store i32* %33, i32** %32, align 8
%34 = getelementptr inbounds %"slice::IterMut<u32>", %"slice::IterMut<u32>"* %0, i32 0, i32 1
%35 = bitcast i32** %ptr to i8*
call void @llvm.lifetime.start(i64 8, i8* %35)
%36 = load i32*, i32** %p, align 8
store i32* %36, i32** %ptr, align 8
%37 = bitcast i64* %5 to i8*
call void @llvm.lifetime.start(i64 8, i8* %37)
%38 = load i32*, i32** %ptr, align 8
%39 = call i64 @_ZN5slice13size_from_ptr20h1689821366228711994E(i32* %38)
store i64 %39, i64* %5, align 8
%40 = load i64, i64* %5, align 8
%41 = bitcast i64* %5 to i8*
call void @llvm.lifetime.end(i64 8, i8* %41)
%42 = icmp eq i64 %40, 0
br i1 %42, label %then-block-124702-, label %else-block2
then-block-124702-: ; preds = %join
%43 = bitcast i8** %6 to i8*
call void @llvm.lifetime.start(i64 8, i8* %43)
%44 = load i32*, i32** %ptr, align 8
%45 = bitcast i32* %44 to i8*
%46 = bitcast i64* %7 to i8*
call void @llvm.lifetime.start(i64 8, i8* %46)
%47 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 0
%48 = load i32*, i32** %47
%49 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 1
%50 = load i64, i64* %49
%51 = call i64 @"_ZN5slice21_$u5b$T$u5d$.SliceExt3len21h10789329301273490820E"(i32* noalias nonnull readonly %48, i64 %50)
store i64 %51, i64* %7, align 8
%52 = load i64, i64* %7, align 8
%53 = bitcast i64* %7 to i8*
call void @llvm.lifetime.end(i64 8, i8* %53)
%54 = getelementptr i8, i8* %45, i64 %52
store i8* %54, i8** %6, align 8
%55 = load i8*, i8** %6, align 8
%56 = bitcast i8** %6 to i8*
call void @llvm.lifetime.end(i64 8, i8* %56)
%57 = bitcast i8* %55 to i32*
store i32* %57, i32** %34, align 8
br label %join3
else-block2: ; preds = %join
%58 = load i32*, i32** %ptr, align 8
%59 = bitcast i64* %8 to i8*
call void @llvm.lifetime.start(i64 8, i8* %59)
%60 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 0
%61 = load i32*, i32** %60
%62 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 1
%63 = load i64, i64* %62
%64 = call i64 @"_ZN5slice21_$u5b$T$u5d$.SliceExt3len21h10789329301273490820E"(i32* noalias nonnull readonly %61, i64 %63)
store i64 %64, i64* %8, align 8
%65 = load i64, i64* %8, align 8
%66 = bitcast i64* %8 to i8*
call void @llvm.lifetime.end(i64 8, i8* %66)
%67 = call i32* @"_ZN3ptr14_$BP$mut$u20$T6offset20h8407611375416755751E"(i32* %58, i64 %65)
store i32* %67, i32** %34, align 8
br label %join3
join3: ; preds = %else-block2, %then-block-124702-
%68 = bitcast i32** %ptr to i8*
call void @llvm.lifetime.end(i64 8, i8* %68)
%69 = getelementptr inbounds %"slice::IterMut<u32>", %"slice::IterMut<u32>"* %0, i32 0, i32 2
%70 = bitcast %"marker::PhantomData<&'static mut u32>"* %69 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %70, i8* bitcast (%"marker::PhantomData<&'static mut u32>"* @const43623 to i8*), i64 0, i32 1, i1 false)
%71 = bitcast i32** %p to i8*
call void @llvm.lifetime.end(i64 8, i8* %71)
%72 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.end(i64 16, i8* %72)
ret void
}
; Function Attrs: inlinehint uwtable
define internal i32* @"_ZN5slice21_$u5b$T$u5d$.SliceExt10as_mut_ptr20h6579736442856853846E"(i32* noalias nonnull, i64) unnamed_addr #0 {
entry-block:
%self = alloca { i32*, i64 }
%2 = alloca %"raw::Slice<u32>"
%3 = insertvalue { i32*, i64 } undef, i32* %0, 0
%4 = insertvalue { i32*, i64 } %3, i64 %1, 1
%5 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.start(i64 16, i8* %5)
store { i32*, i64 } %4, { i32*, i64 }* %self, align 8
%6 = bitcast %"raw::Slice<u32>"* %2 to i8*
call void @llvm.lifetime.start(i64 16, i8* %6)
%7 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 0
%8 = load i32*, i32** %7
%9 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 1
%10 = load i64, i64* %9
call void @_ZN3raw4Repr4repr20h8530958648119263582E(%"raw::Slice<u32>"* noalias nocapture sret dereferenceable(16) %2, i32* noalias nonnull readonly %8, i64 %10)
%11 = getelementptr inbounds %"raw::Slice<u32>", %"raw::Slice<u32>"* %2, i32 0, i32 0
%12 = load i32*, i32** %11, align 8
%13 = bitcast %"raw::Slice<u32>"* %2 to i8*
call void @llvm.lifetime.end(i64 16, i8* %13)
%14 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.end(i64 16, i8* %14)
ret i32* %12
}
; Function Attrs: inlinehint uwtable
define internal zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null20h5321699873322523225E"(i32*) unnamed_addr #0 {
entry-block:
%self = alloca i32*
%1 = bitcast i32** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %1)
store i32* %0, i32** %self, align 8
%2 = load i32*, i32** %self, align 8
%3 = icmp eq i32* %2, null
%4 = zext i1 %3 to i8
%5 = bitcast i32** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %5)
%6 = trunc i8 %4 to i1
ret i1 %6
}
; Function Attrs: inlinehint uwtable
define internal i32* @"_ZN3ptr14_$BP$mut$u20$T6offset20h8407611375416755751E"(i32*, i64) unnamed_addr #0 {
entry-block:
%self = alloca i32*
%count = alloca i64
%2 = alloca i32*
%3 = bitcast i32** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i32* %0, i32** %self, align 8
%4 = bitcast i64* %count to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store i64 %1, i64* %count, align 8
%5 = bitcast i32** %2 to i8*
call void @llvm.lifetime.start(i64 8, i8* %5)
%6 = load i32*, i32** %self, align 8
%7 = load i64, i64* %count, align 8
%8 = getelementptr inbounds i32, i32* %6, i64 %7
store i32* %8, i32** %2, align 8
%9 = load i32*, i32** %2, align 8
%10 = bitcast i32** %2 to i8*
call void @llvm.lifetime.end(i64 8, i8* %10)
%11 = bitcast i64* %count to i8*
call void @llvm.lifetime.end(i64 8, i8* %11)
%12 = bitcast i32** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
ret i32* %9
}
; Function Attrs: inlinehint uwtable
define internal { i32*, i64 } @"_ZN5slice59_$u5b$T$u5d$.ops..IndexMut$LT$ops..RangeTo$LT$usize$GT$$GT$9index_mut20h6124698314950640338E"(i32* noalias nonnull, i64, i64) unnamed_addr #0 {
entry-block:
%sret_slot = alloca { i32*, i64 }
%self = alloca { i32*, i64 }
%index = alloca %"ops::RangeTo<usize>"
%3 = alloca { i32*, i64 }
%4 = alloca %"ops::Range<usize>"
%5 = insertvalue { i32*, i64 } undef, i32* %0, 0
%6 = insertvalue { i32*, i64 } %5, i64 %1, 1
%7 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.start(i64 16, i8* %7)
store { i32*, i64 } %6, { i32*, i64 }* %self, align 8
%8 = bitcast %"ops::RangeTo<usize>"* %index to i8*
call void @llvm.lifetime.start(i64 8, i8* %8)
%9 = bitcast %"ops::RangeTo<usize>"* %index to i64*
store i64 %2, i64* %9, align 8
%10 = bitcast { i32*, i64 }* %3 to i8*
call void @llvm.lifetime.start(i64 16, i8* %10)
%11 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 0
%12 = load i32*, i32** %11
%13 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 1
%14 = load i64, i64* %13
%15 = bitcast %"ops::Range<usize>"* %4 to i8*
call void @llvm.lifetime.start(i64 16, i8* %15)
%16 = getelementptr inbounds %"ops::Range<usize>", %"ops::Range<usize>"* %4, i32 0, i32 0
store i64 0, i64* %16, align 8
%17 = getelementptr inbounds %"ops::Range<usize>", %"ops::Range<usize>"* %4, i32 0, i32 1
%18 = getelementptr inbounds %"ops::RangeTo<usize>", %"ops::RangeTo<usize>"* %index, i32 0, i32 0
%19 = load i64, i64* %18, align 8
store i64 %19, i64* %17, align 8
%20 = call { i32*, i64 } @"_ZN5slice57_$u5b$T$u5d$.ops..IndexMut$LT$ops..Range$LT$usize$GT$$GT$9index_mut21h17114389079751788827E"(i32* noalias nonnull %12, i64 %14, %"ops::Range<usize>"* noalias nocapture dereferenceable(16) %4)
store { i32*, i64 } %20, { i32*, i64 }* %3, align 8
%21 = bitcast %"ops::Range<usize>"* %4 to i8*
call void @llvm.lifetime.end(i64 16, i8* %21)
%22 = bitcast { i32*, i64 }* %3 to i8*
%23 = bitcast { i32*, i64 }* %sret_slot to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %23, i8* %22, i64 16, i32 8, i1 false)
%24 = bitcast { i32*, i64 }* %3 to i8*
call void @llvm.lifetime.end(i64 16, i8* %24)
%25 = bitcast %"ops::RangeTo<usize>"* %index to i8*
call void @llvm.lifetime.end(i64 8, i8* %25)
%26 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.end(i64 16, i8* %26)
%27 = load { i32*, i64 }, { i32*, i64 }* %sret_slot, align 8
ret { i32*, i64 } %27
}
; Function Attrs: inlinehint uwtable
define internal { i32*, i64 } @"_ZN5slice57_$u5b$T$u5d$.ops..IndexMut$LT$ops..Range$LT$usize$GT$$GT$9index_mut21h17114389079751788827E"(i32* noalias nonnull, i64, %"ops::Range<usize>"* noalias nocapture dereferenceable(16)) unnamed_addr #0 {
entry-block:
%sret_slot = alloca { i32*, i64 }
%self = alloca { i32*, i64 }
%3 = alloca i64
%4 = alloca { i32*, i64 }
%5 = alloca { i32*, i64 }
%6 = alloca i32*
%7 = alloca i32*
%8 = insertvalue { i32*, i64 } undef, i32* %0, 0
%9 = insertvalue { i32*, i64 } %8, i64 %1, 1
%10 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.start(i64 16, i8* %10)
store { i32*, i64 } %9, { i32*, i64 }* %self, align 8
%11 = getelementptr inbounds %"ops::Range<usize>", %"ops::Range<usize>"* %2, i32 0, i32 0
%12 = getelementptr inbounds %"ops::Range<usize>", %"ops::Range<usize>"* %2, i32 0, i32 1
%13 = load i64, i64* %11, align 8
%14 = load i64, i64* %12, align 8
%15 = icmp ule i64 %13, %14
%16 = xor i1 %15, true
br i1 %16, label %then-block-125840-, label %next-block
then-block-125840-: ; preds = %entry-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @"_ZN5slice57_$u5b$T$u5d$.ops..IndexMut$LT$ops..Range$LT$usize$GT$$GT$9index_mut14_MSG_FILE_LINE20h6e428c54043941afUTGE" to { %str_slice, %str_slice, i32 }*))
unreachable
next-block: ; preds = %entry-block
%17 = getelementptr inbounds %"ops::Range<usize>", %"ops::Range<usize>"* %2, i32 0, i32 1
%18 = bitcast i64* %3 to i8*
call void @llvm.lifetime.start(i64 8, i8* %18)
%19 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 0
%20 = load i32*, i32** %19
%21 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 1
%22 = load i64, i64* %21
%23 = call i64 @"_ZN5slice21_$u5b$T$u5d$.SliceExt3len21h10789329301273490820E"(i32* noalias nonnull readonly %20, i64 %22)
store i64 %23, i64* %3, align 8
%24 = load i64, i64* %3, align 8
%25 = bitcast i64* %3 to i8*
call void @llvm.lifetime.end(i64 8, i8* %25)
%26 = load i64, i64* %17, align 8
%27 = icmp ule i64 %26, %24
%28 = xor i1 %27, true
br i1 %28, label %then-block-125869-, label %next-block1
then-block-125869-: ; preds = %next-block
call void @_ZN9panicking5panic20h57b53d875a567e59e7BE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) bitcast ({ %str_slice, %str_slice, i32, [4 x i8] }* @"_ZN5slice57_$u5b$T$u5d$.ops..IndexMut$LT$ops..Range$LT$usize$GT$$GT$9index_mut14_MSG_FILE_LINE20h6e428c54043941afnUGE" to { %str_slice, %str_slice, i32 }*))
unreachable
next-block1: ; preds = %next-block
%29 = bitcast { i32*, i64 }* %4 to i8*
call void @llvm.lifetime.start(i64 16, i8* %29)
%30 = bitcast { i32*, i64 }* %5 to i8*
call void @llvm.lifetime.start(i64 16, i8* %30)
%31 = bitcast i32** %6 to i8*
call void @llvm.lifetime.start(i64 8, i8* %31)
%32 = bitcast i32** %7 to i8*
call void @llvm.lifetime.start(i64 8, i8* %32)
%33 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 0
%34 = load i32*, i32** %33
%35 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %self, i32 0, i32 1
%36 = load i64, i64* %35
%37 = call i32* @"_ZN5slice21_$u5b$T$u5d$.SliceExt10as_mut_ptr20h6579736442856853846E"(i32* noalias nonnull %34, i64 %36)
store i32* %37, i32** %7, align 8
%38 = load i32*, i32** %7, align 8
%39 = bitcast i32** %7 to i8*
call void @llvm.lifetime.end(i64 8, i8* %39)
%40 = getelementptr inbounds %"ops::Range<usize>", %"ops::Range<usize>"* %2, i32 0, i32 0
%41 = load i64, i64* %40, align 8
%42 = call i32* @"_ZN3ptr14_$BP$mut$u20$T6offset20h8407611375416755751E"(i32* %38, i64 %41)
store i32* %42, i32** %6, align 8
%43 = load i32*, i32** %6, align 8
%44 = bitcast i32** %6 to i8*
call void @llvm.lifetime.end(i64 8, i8* %44)
%45 = getelementptr inbounds %"ops::Range<usize>", %"ops::Range<usize>"* %2, i32 0, i32 1
%46 = getelementptr inbounds %"ops::Range<usize>", %"ops::Range<usize>"* %2, i32 0, i32 0
%47 = load i64, i64* %45, align 8
%48 = load i64, i64* %46, align 8
%49 = sub i64 %47, %48
%50 = call { i32*, i64 } @_ZN5slice18from_raw_parts_mut20h2453143898684749224E(i32* %43, i64 %49)
store { i32*, i64 } %50, { i32*, i64 }* %5, align 8
%51 = bitcast { i32*, i64 }* %5 to i8*
%52 = bitcast { i32*, i64 }* %4 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %52, i8* %51, i64 16, i32 8, i1 false)
%53 = bitcast { i32*, i64 }* %5 to i8*
call void @llvm.lifetime.end(i64 16, i8* %53)
%54 = bitcast { i32*, i64 }* %4 to i8*
%55 = bitcast { i32*, i64 }* %sret_slot to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %55, i8* %54, i64 16, i32 8, i1 false)
%56 = bitcast { i32*, i64 }* %4 to i8*
call void @llvm.lifetime.end(i64 16, i8* %56)
%57 = bitcast %"ops::Range<usize>"* %2 to i8*
call void @llvm.lifetime.end(i64 16, i8* %57)
%58 = bitcast { i32*, i64 }* %self to i8*
call void @llvm.lifetime.end(i64 16, i8* %58)
%59 = load { i32*, i64 }, { i32*, i64 }* %sret_slot, align 8
ret { i32*, i64 } %59
}
; Function Attrs: inlinehint uwtable
define internal { i32*, i64 } @_ZN5slice18from_raw_parts_mut20h2453143898684749224E(i32*, i64) unnamed_addr #0 {
entry-block:
%sret_slot = alloca { i32*, i64 }
%p = alloca i32*
%len = alloca i64
%2 = bitcast i32** %p to i8*
call void @llvm.lifetime.start(i64 8, i8* %2)
store i32* %0, i32** %p, align 8
%3 = bitcast i64* %len to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i64 %1, i64* %len, align 8
%4 = bitcast { i32*, i64 }* %sret_slot to %"raw::Slice<u32>"*
%5 = getelementptr inbounds %"raw::Slice<u32>", %"raw::Slice<u32>"* %4, i32 0, i32 0
%6 = load i32*, i32** %p, align 8
store i32* %6, i32** %5, align 8
%7 = getelementptr inbounds %"raw::Slice<u32>", %"raw::Slice<u32>"* %4, i32 0, i32 1
%8 = load i64, i64* %len, align 8
store i64 %8, i64* %7, align 8
%9 = bitcast i64* %len to i8*
call void @llvm.lifetime.end(i64 8, i8* %9)
%10 = bitcast i32** %p to i8*
call void @llvm.lifetime.end(i64 8, i8* %10)
%11 = load { i32*, i64 }, { i32*, i64 }* %sret_slot, align 8
ret { i32*, i64 } %11
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN4iter30Zip$LT$A$C$$u20$B$GT$.Iterator4next20h8352294025034994784E"(%"option::Option<(&'static mut u32, &'static u32)>"* noalias nocapture sret dereferenceable(16), %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"* noalias dereferenceable(32)) unnamed_addr #0 {
entry-block:
%self = alloca %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"*
%2 = alloca i8*
%3 = alloca %closure.1
%4 = bitcast %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
store %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"* %1, %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"** %self, align 8
%5 = bitcast i8** %2 to i8*
call void @llvm.lifetime.start(i64 8, i8* %5)
%6 = load %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"*, %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"** %self, align 8, !nonnull !2
%7 = getelementptr inbounds %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>", %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"* %6, i32 0, i32 0
%8 = call i8* @"_ZN5slice39IterMut$LT$$u27$a$C$$u20$T$GT$.Iterator4next21h16390438492890736598E"(%"slice::IterMut<u32>"* noalias dereferenceable(16) %7)
store i8* %8, i8** %2, align 8
%9 = load i8*, i8** %2, align 8
%10 = bitcast i8** %2 to i8*
call void @llvm.lifetime.end(i64 8, i8* %10)
%11 = bitcast %closure.1* %3 to i8*
call void @llvm.lifetime.start(i64 8, i8* %11)
%12 = getelementptr inbounds %closure.1, %closure.1* %3, i32 0, i32 0
store %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"** %self, %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"*** %12
%13 = bitcast %closure.1* %3 to i64*
%14 = load i64, i64* %13, align 8
%15 = bitcast %closure.1* %3 to i8*
call void @llvm.lifetime.end(i64 8, i8* %15)
call void @"_ZN6option15Option$LT$T$GT$8and_then21h13395882188463669542E"(%"option::Option<(&'static mut u32, &'static u32)>"* noalias nocapture sret dereferenceable(16) %0, i8* %9, i64 %14)
%16 = bitcast %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %16)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN6option15Option$LT$T$GT$8and_then21h13395882188463669542E"(%"option::Option<(&'static mut u32, &'static u32)>"* noalias nocapture sret dereferenceable(16), i8*, i64) unnamed_addr #0 {
entry-block:
%self = alloca i8*
%f = alloca %closure.1
%x = alloca i32**
%3 = bitcast i8** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %3)
store i8* %1, i8** %self, align 8
%4 = bitcast %closure.1* %f to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = bitcast %closure.1* %f to i64*
store i64 %2, i64* %5, align 8
%6 = load i8*, i8** %self
%7 = icmp ne i8* %6, null
switch i1 %7, label %match_else [
i1 true, label %match_case
]
case_body: ; preds = %match_case
%8 = load i32**, i32*** %x
%9 = bitcast %closure.1* %f to i64*
%10 = load i64, i64* %9, align 8
%11 = load i32*, i32** %8, align 8, !nonnull !2
call void @"_ZN4iter30Zip$LT$A$C$$u20$B$GT$.Iterator4next13closure.43624E"(%"option::Option<(&'static mut u32, &'static u32)>"* noalias nocapture sret dereferenceable(16) %0, i64 %10, i32* noalias dereferenceable(4) %11)
%12 = bitcast i32*** %x to i8*
call void @llvm.lifetime.end(i64 8, i8* %12)
br label %join
case_body1: ; preds = %match_else
%13 = bitcast %"option::Option<(&'static mut u32, &'static u32)>"* %0 to { { i8*, i8* } }*
%14 = bitcast { { i8*, i8* } }* %13 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %14, i8* bitcast ({ { i8*, i8* } }* @const43626 to i8*), i64 16, i32 8, i1 false)
br label %join
match_else: ; preds = %entry-block
br label %case_body1
match_case: ; preds = %entry-block
%15 = bitcast i8** %self to i32**
%16 = bitcast i32*** %x to i8*
call void @llvm.lifetime.start(i64 8, i8* %16)
store i32** %15, i32*** %x
br label %case_body
join: ; preds = %case_body1, %case_body
%17 = bitcast %closure.1* %f to i8*
call void @llvm.lifetime.end(i64 8, i8* %17)
%18 = bitcast i8** %self to i8*
call void @llvm.lifetime.end(i64 8, i8* %18)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN4iter30Zip$LT$A$C$$u20$B$GT$.Iterator4next13closure.43624E"(%"option::Option<(&'static mut u32, &'static u32)>"* noalias nocapture sret dereferenceable(16), i64, i32* noalias dereferenceable(4)) unnamed_addr #4 {
entry-block:
%x = alloca i32*
%closure_env = alloca %closure.1
%3 = alloca i8*
%4 = alloca %closure.2
%5 = bitcast i32** %x to i8*
call void @llvm.lifetime.start(i64 8, i8* %5)
store i32* %2, i32** %x, align 8
%6 = bitcast %closure.1* %closure_env to i8*
call void @llvm.lifetime.start(i64 8, i8* %6)
%7 = bitcast %closure.1* %closure_env to i64*
store i64 %1, i64* %7, align 8
%8 = getelementptr inbounds %closure.1, %closure.1* %closure_env, i32 0, i32 0
%9 = load %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"**, %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"*** %8
%10 = bitcast i8** %3 to i8*
call void @llvm.lifetime.start(i64 8, i8* %10)
%11 = load %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"*, %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"** %9, align 8, !nonnull !2
%12 = getelementptr inbounds %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>", %"iter::Zip<slice::IterMut<u32>, slice::Iter<u32>>"* %11, i32 0, i32 1
%13 = call i8* @"_ZN5slice36Iter$LT$$u27$a$C$$u20$T$GT$.Iterator4next21h17988686776990959875E"(%"slice::Iter<u32>"* noalias dereferenceable(16) %12)
store i8* %13, i8** %3, align 8
%14 = load i8*, i8** %3, align 8
%15 = bitcast i8** %3 to i8*
call void @llvm.lifetime.end(i64 8, i8* %15)
%16 = bitcast %closure.2* %4 to i8*
call void @llvm.lifetime.start(i64 8, i8* %16)
%17 = getelementptr inbounds %closure.2, %closure.2* %4, i32 0, i32 0
%18 = load i32*, i32** %x, align 8, !nonnull !2
store i32* %18, i32** %17, align 8
%19 = bitcast %closure.2* %4 to i64*
%20 = load i64, i64* %19, align 8
%21 = bitcast %closure.2* %4 to i8*
call void @llvm.lifetime.end(i64 8, i8* %21)
call void @"_ZN6option15Option$LT$T$GT$8and_then20h9030917949127121372E"(%"option::Option<(&'static mut u32, &'static u32)>"* noalias nocapture sret dereferenceable(16) %0, i8* %14, i64 %20)
%22 = bitcast i32** %x to i8*
call void @llvm.lifetime.end(i64 8, i8* %22)
ret void
}
; Function Attrs: inlinehint uwtable
define internal i8* @"_ZN5slice39IterMut$LT$$u27$a$C$$u20$T$GT$.Iterator4next21h16390438492890736598E"(%"slice::IterMut<u32>"* noalias dereferenceable(16)) unnamed_addr #0 {
entry-block:
%sret_slot = alloca i8*
%self = alloca %"slice::IterMut<u32>"*
%1 = alloca i64
%2 = alloca i8
%3 = alloca i8
%old = alloca i32*
%4 = alloca i32*
%ptr = alloca i32*
%5 = alloca i64
%6 = alloca i8*
%7 = alloca i32*
%ptr2 = alloca i32*
%8 = alloca i32*
%9 = alloca i64
%10 = bitcast %"slice::IterMut<u32>"** %self to i8*
call void @llvm.lifetime.start(i64 8, i8* %10)
store %"slice::IterMut<u32>"* %0, %"slice::IterMut<u32>"** %self, align 8
%11 = bitcast i64* %1 to i8*
call void @llvm.lifetime.start(i64 8, i8* %11)
%12 = call i64 @_ZN3mem7size_of20h4125651325415643322E()
store i64 %12, i64* %1, align 8
%13 = load i64, i64* %1, align 8
%14 = bitcast i64* %1 to i8*
call void @llvm.lifetime.end(i64 8, i8* %14)
%15 = icmp ne i64 %13, 0
br i1 %15, label %then-block-126945-, label %next-block
then-block-126945-: ; preds = %entry-block
call void @llvm.lifetime.start(i64 1, i8* %2)
%16 = load %"slice::IterMut<u32>"*, %"slice::IterMut<u32>"** %self, align 8, !nonnull !2
%17 = getelementptr inbounds %"slice::IterMut<u32>", %"slice::IterMut<u32>"* %16, i32 0, i32 0
%18 = load i32*, i32** %17, align 8
%19 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null20h5321699873322523225E"(i32* %18)
%20 = zext i1 %19 to i8
store i8 %20, i8* %2, align 1
%21 = load i8, i8* %2, align 1, !range !1
%22 = trunc i8 %21 to i1
call void @llvm.lifetime.end(i64 1, i8* %2)
%23 = xor i1 %22, true
call void @llvm.assume(i1 %23)
call void @llvm.lifetime.start(i64 1, i8* %3)
%24 = load %"slice::IterMut<u32>"*, %"slice::IterMut<u32>"** %self, align 8, !nonnull !2
%25 = getelementptr inbounds %"slice::IterMut<u32>", %"slice::IterMut<u32>"* %24, i32 0, i32 1
%26 = load i32*, i32** %25, align 8
%27 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null20h5321699873322523225E"(i32* %26)
%28 = zext i1 %27 to i8
store i8 %28, i8* %3, align 1
%29 = load i8, i8* %3, align 1, !range !1
%30 = trunc i8 %29 to i1
call void @llvm.lifetime.end(i64 1, i8* %3)
%31 = xor i1 %30, true
call void @llvm.assume(i1 %31)
br label %next-block
next-block:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment