; ModuleID = 'foo.0.rs'
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-darwin"
%str_slice = type { i8*, i64 }
%"2.core::fmt::Formatter" = type { i32, i32, i8, %"2.core::option::Option<usize>", %"2.core::option::Option<usize>", { i8*, void (i8*)** }, %"2.core::slice::Iter<core::fmt::ArgumentV1>", { %"2.core::fmt::ArgumentV1"*, i64 } }
%"2.core::option::Option<usize>" = type { i64, [0 x i64], [1 x i64] }
%"2.core::slice::Iter<core::fmt::ArgumentV1>" = type { %"2.core::fmt::ArgumentV1"*, %"2.core::fmt::ArgumentV1"*, %"2.core::marker::PhantomData<&'static core::fmt::ArgumentV1>" }
%"2.core::fmt::ArgumentV1" = type { %"2.core::fmt::Void"*, i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* }
%"2.core::fmt::Void" = type {}
%"2.core::marker::PhantomData<&'static core::fmt::ArgumentV1>" = type {}
%"9.test::Bencher" = type { i64, %"1.std::time::duration::Duration", i64 }
%"1.std::time::duration::Duration" = type { i64, i32 }
%"2.core::fmt::Arguments" = type { { %str_slice*, i64 }, %"2.core::option::Option<&'static [core::fmt::rt::v1::Argument]>", { %"2.core::fmt::ArgumentV1"*, i64 } }
%"2.core::option::Option<&'static [core::fmt::rt::v1::Argument]>" = type { { %"2.core::fmt::rt::v1::Argument"*, i64 } }
%"2.core::fmt::rt::v1::Argument" = type { %"2.core::fmt::rt::v1::Position", %"2.core::fmt::rt::v1::FormatSpec" }
%"2.core::fmt::rt::v1::Position" = type { i64, [0 x i64], [1 x i64] }
%"2.core::fmt::rt::v1::FormatSpec" = type { i32, i8, i32, %"2.core::fmt::rt::v1::Count", %"2.core::fmt::rt::v1::Count" }
%"2.core::fmt::rt::v1::Count" = type { i64, [0 x i64], [1 x i64] }
%"2.core::result::Result<collections::string::String, std::env::VarError>" = type { i64, [0 x i64], [3 x i64] }
%"1.std::ffi::os_str::OsStr" = type { %"1.std::sys::os_str::Slice" }
%"1.std::sys::os_str::Slice" = type { i8 }
%"2.core::num::ParseIntError" = type { i8 }
%"1.std::sys_common::libunwind::_Unwind_Exception" = type { i64, void (i32, %"1.std::sys_common::libunwind::_Unwind_Exception"*)*, [6 x i64] }
%"1.std::sys_common::libunwind::_Unwind_Context" = type {}
%"1.std::env::VarError" = type { %"1.std::ffi::os_str::OsString" }
%"1.std::ffi::os_str::OsString" = type { %"1.std::sys::os_str::Buf" }
%"1.std::sys::os_str::Buf" = type { %"3.collections::vec::Vec<u8>" }
%"3.collections::vec::Vec<u8>" = type { %"5.alloc::raw_vec::RawVec<u8>", i64 }
%"5.alloc::raw_vec::RawVec<u8>" = type { %"2.core::ptr::Unique<u8>", i64 }
%"2.core::ptr::Unique<u8>" = type { %"2.core::nonzero::NonZero<*const u8>", %"2.core::marker::PhantomData<u8>" }
%"2.core::nonzero::NonZero<*const u8>" = type { i8* }
%"2.core::marker::PhantomData<u8>" = type {}
%"1.std::sys::time::inner::SteadyTime" = type { i64 }
%"2.core::fmt::builders::DebugTuple" = type { %"2.core::fmt::Formatter"*, %"2.core::result::Result<(), core::fmt::Error>", i8 }
%"2.core::result::Result<(), core::fmt::Error>" = type { i8, [0 x i8], [0 x i8] }
%"9.test::TestDescAndFn" = type { %"9.test::TestDesc", %"9.test::TestFn" }
%"9.test::TestDesc" = type { %"9.test::TestName", i8, %"9.test::ShouldPanic" }
%"9.test::TestName" = type { i64, [0 x i64], [3 x i64] }
%"9.test::ShouldPanic" = type { i64, [0 x i64], [2 x i64] }
%"9.test::TestFn" = type { i64, [0 x i64], [2 x i64] }
@"_ZN6result13_$LT$impl$GT$6unwrap15__STATIC_FMTSTR20hfde92a5f8211a6eapRNE" = external global { %str_slice*, i64 }
@"_ZN6result13_$LT$impl$GT$6unwrap10_FILE_LINE20h33c927af8b7cee049QNE" = external global { %str_slice, i32 }
@str4850 = internal constant [5 x i8] c"COUNT"
@str5027 = internal constant [0 x i8] zeroinitializer
@vtable5034 = internal unnamed_addr constant { void (i8*)*, i64, i64, i8 (i32*, %"2.core::fmt::Formatter"*)* } { void (i8*)* @_ZN2i89drop.503117h5a1a7132d371cd5eE, i64 4, i64 4, i8 (i32*, %"2.core::fmt::Formatter"*)* @"_ZN3fmt3num13_$LT$impl$GT$3fmt20h71f0089d2af9b62213UE" }, align 8
@str5043 = internal constant [44 x i8] c"assertion failed: `(left == right)` (left: `"
@str5044 = internal constant [11 x i8] c"`, right: `"
@str5045 = internal constant [2 x i8] c"`)"
@ref5046 = internal unnamed_addr constant [3 x %str_slice] [%str_slice { i8* getelementptr inbounds ([44 x i8], [44 x i8]* @str5043, i32 0, i32 0), i64 44 }, %str_slice { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @str5044, i32 0, i32 0), i64 11 }, %str_slice { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str5045, i32 0, i32 0), i64 2 }], align 8
@str5047 = internal constant [6 x i8] c"foo.rs"
@"_ZN12bench_uninit16_$LT$closure$GT$10_FILE_LINE20hbb8a7ccdee0203e85gaE" = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str5047, i32 0, i32 0), i64 6 }, i32 65, [4 x i8] undef }, align 8
@"_ZN19bench_uninit_struct16_$LT$closure$GT$10_FILE_LINE20hbb8a7ccdee0203e8eoaE" = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str5047, i32 0, i32 0), i64 6 }, i32 126, [4 x i8] undef }, align 8
@"_ZN10bench_init16_$LT$closure$GT$10_FILE_LINE20hbb8a7ccdee0203e8suaE" = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str5047, i32 0, i32 0), i64 6 }, i32 171, [4 x i8] undef }, align 8
@vtable5102 = internal unnamed_addr constant { void (i8*)*, i64, i64, i64 (%str_slice*)* } { void (i8*)* @_ZN2i89drop.503117h5a1a7132d371cd5eE, i64 16, i64 8, i64 (%str_slice*)* @"_ZN3any13_$LT$impl$GT$11get_type_id11get_type_id21h13600774729998767096E" }, align 8
@str5103 = internal constant [14 x i8] c"explicit panic"
@_ZN9do_option10_FILE_LINE20hbb8a7ccdee0203e8CzaE = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str5047, i32 0, i32 0), i64 6 }, i32 221, [4 x i8] undef }, align 8
@"_ZN12bench_option16_$LT$closure$GT$10_FILE_LINE20hbb8a7ccdee0203e8QBaE" = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str5047, i32 0, i32 0), i64 6 }, i32 230, [4 x i8] undef }, align 8
@"_ZN10bench_enum16_$LT$closure$GT$10_FILE_LINE20hbb8a7ccdee0203e8FKaE" = internal constant { %str_slice, i32, [4 x i8] } { %str_slice { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str5047, i32 0, i32 0), i64 6 }, i32 306, [4 x i8] undef }, align 8
@str5116 = internal constant [12 x i8] c"bench_uninit"
@str5117 = internal constant [19 x i8] c"bench_uninit_struct"
@str5118 = internal constant [10 x i8] c"bench_init"
@str5119 = internal constant [12 x i8] c"bench_option"
@str5120 = internal constant [10 x i8] c"bench_enum"
@ref5121 = internal unnamed_addr constant { { { { i64, %str_slice, [8 x i8] }, i1, { i64, [16 x i8] } }, { i64, void (%"9.test::Bencher"*)*, [8 x i8] } }, { { { i64, %str_slice, [8 x i8] }, i1, { i64, [16 x i8] } }, { i64, void (%"9.test::Bencher"*)*, [8 x i8] } }, { { { i64, %str_slice, [8 x i8] }, i1, { i64, [16 x i8] } }, { i64, void (%"9.test::Bencher"*)*, [8 x i8] } }, { { { i64, %str_slice, [8 x i8] }, i1, { i64, [16 x i8] } }, { i64, void (%"9.test::Bencher"*)*, [8 x i8] } }, { { { i64, %str_slice, [8 x i8] }, i1, { i64, [16 x i8] } }, { i64, void (%"9.test::Bencher"*)*, [8 x i8] } } } { { { { i64, %str_slice, [8 x i8] }, i1, { i64, [16 x i8] } }, { i64, void (%"9.test::Bencher"*)*, [8 x i8] } } { { { i64, %str_slice, [8 x i8] }, i1, { i64, [16 x i8] } } { { i64, %str_slice, [8 x i8] } { i64 0, %str_slice { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @str5116, i32 0, i32 0), i64 12 }, [8 x i8] undef }, i1 false, { i64, [16 x i8] } { i64 0, [16 x i8] undef } }, { i64, void (%"9.test::Bencher"*)*, [8 x i8] } { i64 1, void (%"9.test::Bencher"*)* @_ZN12bench_uninit20h59a893883fa448a02eaE, [8 x i8] undef } }, { { { i64, %str_slice, [8 x i8] }, i1, { i64, [16 x i8] } }, { i64, void (%"9.test::Bencher"*)*, [8 x i8] } } { { { i64, %str_slice, [8 x i8] }, i1, { i64, [16 x i8] } } { { i64, %str_slice, [8 x i8] } { i64 0, %str_slice { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @str5117, i32 0, i32 0), i64 19 }, [8 x i8] undef }, i1 false, { i64, [16 x i8] } { i64 0, [16 x i8] undef } }, { i64, void (%"9.test::Bencher"*)*, [8 x i8] } { i64 1, void (%"9.test::Bencher"*)* @_ZN19bench_uninit_struct20he35cfa0a41ec10c1bmaE, [8 x i8] undef } }, { { { i64, %str_slice, [8 x i8] }, i1, { i64, [16 x i8] } }, { i64, void (%"9.test::Bencher"*)*, [8 x i8] } } { { { i64, %str_slice, [8 x i8] }, i1, { i64, [16 x i8] } } { { i64, %str_slice, [8 x i8] } { i64 0, %str_slice { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @str5118, i32 0, i32 0), i64 10 }, [8 x i8] undef }, i1 false, { i64, [16 x i8] } { i64 0, [16 x i8] undef } }, { i64, void (%"9.test::Bencher"*)*, [8 x i8] } { i64 1, void (%"9.test::Bencher"*)* @_ZN10bench_init20hb040779420847534psaE, [8 x i8] undef } }, { { { i64, %str_slice, [8 x i8] }, i1, { i64, [16 x i8] } }, { i64, void (%"9.test::Bencher"*)*, [8 x i8] } } { { { i64, %str_slice, [8 x i8] }, i1, { i64, [16 x i8] } } { { i64, %str_slice, [8 x i8] } { i64 0, %str_slice { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @str5119, i32 0, i32 0), i64 12 }, [8 x i8] undef }, i1 false, { i64, [16 x i8] } { i64 0, [16 x i8] undef } }, { i64, void (%"9.test::Bencher"*)*, [8 x i8] } { i64 1, void (%"9.test::Bencher"*)* @_ZN12bench_option20h3ed7b2917bf9a7b8NzaE, [8 x i8] undef } }, { { { i64, %str_slice, [8 x i8] }, i1, { i64, [16 x i8] } }, { i64, void (%"9.test::Bencher"*)*, [8 x i8] } } { { { i64, %str_slice, [8 x i8] }, i1, { i64, [16 x i8] } } { { i64, %str_slice, [8 x i8] } { i64 0, %str_slice { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @str5120, i32 0, i32 0), i64 10 }, [8 x i8] undef }, i1 false, { i64, [16 x i8] } { i64 0, [16 x i8] undef } }, { i64, void (%"9.test::Bencher"*)*, [8 x i8] } { i64 1, void (%"9.test::Bencher"*)* @_ZN10bench_enum20hb8f0f8ea8ff91c3bCIaE, [8 x i8] undef } } }, align 8
; Function Attrs: uwtable
define internal fastcc i32 @_ZN5range20he72cc40c9292b713uaaE() unnamed_addr #0 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%self.i = alloca i64, align 8
%0 = alloca %"2.core::fmt::Arguments", align 16
%1 = alloca %"2.core::fmt::Arguments", align 16
%2 = alloca [1 x %"2.core::fmt::ArgumentV1"], align 8
%3 = alloca %"2.core::result::Result<collections::string::String, std::env::VarError>", align 8
%4 = bitcast %"2.core::result::Result<collections::string::String, std::env::VarError>"* %3 to i8*
call void @llvm.lifetime.start(i64 32, i8* %4)
%5 = tail call { %"1.std::ffi::os_str::OsStr"*, i64 } @"_ZN3ffi6os_str13_$LT$impl$GT$6as_ref20hc5ba21e38875edd7B1eE"(i8* noalias nonnull readonly getelementptr inbounds ([5 x i8], [5 x i8]* @str4850, i64 0, i64 0), i64 5), !noalias !0
%6 = extractvalue { %"1.std::ffi::os_str::OsStr"*, i64 } %5, 0
%7 = extractvalue { %"1.std::ffi::os_str::OsStr"*, i64 } %5, 1
call void @_ZN3env4_var20h33296049f6408d90x7dE(%"2.core::result::Result<collections::string::String, std::env::VarError>"* noalias nocapture nonnull sret dereferenceable(32) %3, %"1.std::ffi::os_str::OsStr"* noalias nonnull readonly %6, i64 %7)
%8 = getelementptr inbounds %"2.core::result::Result<collections::string::String, std::env::VarError>", %"2.core::result::Result<collections::string::String, std::env::VarError>"* %3, i64 0, i32 0
%9 = load i64, i64* %8, align 8, !range !3, !alias.scope !4, !noalias !7
%switch.i = icmp eq i64 %9, 1
%10 = getelementptr inbounds %"2.core::result::Result<collections::string::String, std::env::VarError>", %"2.core::result::Result<collections::string::String, std::env::VarError>"* %3, i64 0, i32 2
br i1 %switch.i, label %normal-return5.i, label %normal-return
unwind_custom_.i: ; preds = %normal-return5.i
%11 = landingpad { i8*, i32 }
cleanup
%12 = bitcast [3 x i64]* %10 to i8**
%13 = load i8*, i8** %12, align 8, !alias.scope !4, !noalias !7
%14 = icmp eq i8* %13, null
br i1 %14, label %_ZN18std..env..VarError9drop.483117h9f964c07601573f7E.exit.i, label %enum-iter-variant-1.i.26.i
enum-iter-variant-1.i.26.i: ; preds = %unwind_custom_.i
%15 = getelementptr inbounds %"2.core::result::Result<collections::string::String, std::env::VarError>", %"2.core::result::Result<collections::string::String, std::env::VarError>"* %3, i64 0, i32 2, i64 1
%16 = load i64, i64* %15, align 8, !alias.scope !9, !noalias !7
switch i64 %16, label %then-block-10202-.i.i.i.i.i.i.i.i [
i64 0, label %_ZN18std..env..VarError9drop.483117h9f964c07601573f7E.exit.i
i64 2097865012304223517, label %_ZN18std..env..VarError9drop.483117h9f964c07601573f7E.exit.i
]
then-block-10202-.i.i.i.i.i.i.i.i: ; preds = %enum-iter-variant-1.i.26.i
call void @__rust_deallocate(i8* %13, i64 %16, i64 1) #1, !noalias !12
br label %_ZN18std..env..VarError9drop.483117h9f964c07601573f7E.exit.i
_ZN18std..env..VarError9drop.483117h9f964c07601573f7E.exit.i: ; preds = %then-block-10202-.i.i.i.i.i.i.i.i, %enum-iter-variant-1.i.26.i, %enum-iter-variant-1.i.26.i, %unwind_custom_.i
call void @llvm.lifetime.end(i64 32, i8* %4), !alias.scope !4, !noalias !7
resume { i8*, i32 } %11
normal-return5.i: ; preds = %entry-block
%17 = bitcast %"2.core::fmt::Arguments"* %1 to i8*
call void @llvm.lifetime.start(i64 48, i8* %17), !noalias !13
%18 = load <2 x i64>, <2 x i64>* bitcast ({ %str_slice*, i64 }* @"_ZN6result13_$LT$impl$GT$6unwrap15__STATIC_FMTSTR20hfde92a5f8211a6eapRNE" to <2 x i64>*), align 8, !noalias !13
%19 = bitcast [1 x %"2.core::fmt::ArgumentV1"]* %2 to i8*
call void @llvm.lifetime.start(i64 16, i8* %19), !noalias !13
%20 = getelementptr inbounds [1 x %"2.core::fmt::ArgumentV1"], [1 x %"2.core::fmt::ArgumentV1"]* %2, i64 0, i64 0
%21 = getelementptr inbounds [1 x %"2.core::fmt::ArgumentV1"], [1 x %"2.core::fmt::ArgumentV1"]* %2, i64 0, i64 0, i32 1
store i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* bitcast (i8 (%"1.std::env::VarError"*, %"2.core::fmt::Formatter"*)* @"_ZN3env13_$LT$impl$GT$3fmt20h5018ecb21ff9cdf1iceE" to i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)*), i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)** %21, align 8, !alias.scope !14, !noalias !17
%22 = bitcast [1 x %"2.core::fmt::ArgumentV1"]* %2 to [3 x i64]**
store [3 x i64]* %10, [3 x i64]** %22, align 8, !alias.scope !14, !noalias !17
%23 = bitcast %"2.core::fmt::Arguments"* %1 to <2 x i64>*
store <2 x i64> %18, <2 x i64>* %23, align 16, !alias.scope !19, !noalias !22
%24 = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %1, i64 0, i32 1
%25 = bitcast %"2.core::option::Option<&'static [core::fmt::rt::v1::Argument]>"* %24 to i8*
call void @llvm.memset.p0i8.i64(i8* %25, i8 0, i64 16, i32 16, i1 false) #1, !alias.scope !19, !noalias !22
%args.sroa.0.0..sroa_idx.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %1, i64 0, i32 2, i32 0
store %"2.core::fmt::ArgumentV1"* %20, %"2.core::fmt::ArgumentV1"** %args.sroa.0.0..sroa_idx.i.i, align 16, !alias.scope !19, !noalias !22
%args.sroa.2.0..sroa_idx1.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %1, i64 0, i32 2, i32 1
store i64 1, i64* %args.sroa.2.0..sroa_idx1.i.i, align 8, !alias.scope !19, !noalias !22
invoke void @_ZN9panicking9panic_fmt20h7adfa609c7a69838THKE(%"2.core::fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %1, { %str_slice, i32 }* noalias nonnull readonly dereferenceable(24) @"_ZN6result13_$LT$impl$GT$6unwrap10_FILE_LINE20h33c927af8b7cee049QNE")
to label %normal-return6.i unwind label %unwind_custom_.i, !noalias !7
normal-return6.i: ; preds = %normal-return5.i
call void @llvm.lifetime.end(i64 48, i8* %17), !noalias !13
unreachable
normal-return: ; preds = %entry-block
%.sroa.0.0..sroa_cast25 = bitcast [3 x i64]* %10 to i8**
%.sroa.0.0.copyload = load i8*, i8** %.sroa.0.0..sroa_cast25, align 8
%.sroa.7.0..sroa_idx28 = getelementptr inbounds %"2.core::result::Result<collections::string::String, std::env::VarError>", %"2.core::result::Result<collections::string::String, std::env::VarError>"* %3, i64 0, i32 2, i64 1
%.sroa.7.0.copyload = load i64, i64* %.sroa.7.0..sroa_idx28, align 8
%.sroa.9.0..sroa_idx32 = getelementptr inbounds %"2.core::result::Result<collections::string::String, std::env::VarError>", %"2.core::result::Result<collections::string::String, std::env::VarError>"* %3, i64 0, i32 2, i64 2
%.sroa.9.0.copyload = load i64, i64* %.sroa.9.0..sroa_idx32, align 8
call void @llvm.lifetime.end(i64 32, i8* %4), !alias.scope !4, !noalias !7
call void @llvm.lifetime.end(i64 32, i8* %4)
%26 = invoke i64 @"_ZN3num13_$LT$impl$GT$8from_str20h31bc7276fabe8bafA3iE"(i8* noalias nonnull readonly %.sroa.0.0.copyload, i64 %.sroa.9.0.copyload)
to label %normal-return1 unwind label %unwind_ast_23_
unwind_ast_23_: ; preds = %match_case2.i, %normal-return
%27 = landingpad { i8*, i32 }
cleanup
switch i64 %.sroa.7.0.copyload, label %then-block-10202-.i.i.i.i.i [
i64 0, label %_ZN27collections..string..String9drop.454217hf06e85a2d7b4b92bE.exit
i64 2097865012304223517, label %_ZN27collections..string..String9drop.454217hf06e85a2d7b4b92bE.exit
]
then-block-10202-.i.i.i.i.i: ; preds = %unwind_ast_23_
call void @__rust_deallocate(i8* %.sroa.0.0.copyload, i64 %.sroa.7.0.copyload, i64 1) #1, !noalias !25
br label %_ZN27collections..string..String9drop.454217hf06e85a2d7b4b92bE.exit
_ZN27collections..string..String9drop.454217hf06e85a2d7b4b92bE.exit: ; preds = %unwind_ast_23_, %unwind_ast_23_, %then-block-10202-.i.i.i.i.i
resume { i8*, i32 } %27
normal-return1: ; preds = %normal-return
%28 = bitcast i64* %self.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %28)
store i64 %26, i64* %self.i, align 8
%trunc.i = trunc i64 %26 to i8
%switch.i.14 = icmp eq i8 %trunc.i, 1
br i1 %switch.i.14, label %match_case2.i, label %normal-return2
match_case2.i: ; preds = %normal-return1
%29 = bitcast i64* %self.i to { i8, %"2.core::num::ParseIntError" }*
%30 = getelementptr inbounds { i8, %"2.core::num::ParseIntError" }, { i8, %"2.core::num::ParseIntError" }* %29, i64 0, i32 1
%31 = bitcast %"2.core::fmt::Arguments"* %0 to i8*
call void @llvm.lifetime.start(i64 48, i8* %31)
%32 = load <2 x i64>, <2 x i64>* bitcast ({ %str_slice*, i64 }* @"_ZN6result13_$LT$impl$GT$6unwrap15__STATIC_FMTSTR20hfde92a5f8211a6eapRNE" to <2 x i64>*), align 8
%33 = bitcast [1 x %"2.core::fmt::ArgumentV1"]* %2 to i8*
call void @llvm.lifetime.start(i64 16, i8* %33)
%34 = getelementptr inbounds [1 x %"2.core::fmt::ArgumentV1"], [1 x %"2.core::fmt::ArgumentV1"]* %2, i64 0, i64 0
%35 = getelementptr inbounds [1 x %"2.core::fmt::ArgumentV1"], [1 x %"2.core::fmt::ArgumentV1"]* %2, i64 0, i64 0, i32 1
store i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* bitcast (i8 (%"2.core::num::ParseIntError"*, %"2.core::fmt::Formatter"*)* @"_ZN3num13_$LT$impl$GT$3fmt20he816adf9ecbcf81agojE" to i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)*), i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)** %35, align 8, !alias.scope !28, !noalias !31
%36 = bitcast [1 x %"2.core::fmt::ArgumentV1"]* %2 to %"2.core::num::ParseIntError"**
store %"2.core::num::ParseIntError"* %30, %"2.core::num::ParseIntError"** %36, align 8, !alias.scope !28, !noalias !31
%37 = bitcast %"2.core::fmt::Arguments"* %0 to <2 x i64>*
store <2 x i64> %32, <2 x i64>* %37, align 16, !alias.scope !33, !noalias !36
%38 = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %0, i64 0, i32 1
%39 = bitcast %"2.core::option::Option<&'static [core::fmt::rt::v1::Argument]>"* %38 to i8*
call void @llvm.memset.p0i8.i64(i8* %39, i8 0, i64 16, i32 16, i1 false) #1, !alias.scope !33, !noalias !36
%args.sroa.0.0..sroa_idx.i.i.17 = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %0, i64 0, i32 2, i32 0
store %"2.core::fmt::ArgumentV1"* %34, %"2.core::fmt::ArgumentV1"** %args.sroa.0.0..sroa_idx.i.i.17, align 16, !alias.scope !33, !noalias !36
%args.sroa.2.0..sroa_idx1.i.i.18 = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %0, i64 0, i32 2, i32 1
store i64 1, i64* %args.sroa.2.0..sroa_idx1.i.i.18, align 8, !alias.scope !33, !noalias !36
invoke void @_ZN9panicking9panic_fmt20h7adfa609c7a69838THKE(%"2.core::fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %0, { %str_slice, i32 }* noalias nonnull readonly dereferenceable(24) @"_ZN6result13_$LT$impl$GT$6unwrap10_FILE_LINE20h33c927af8b7cee049QNE")
to label %.noexc unwind label %unwind_ast_23_
.noexc: ; preds = %match_case2.i
unreachable
normal-return2: ; preds = %normal-return1
%40 = lshr i64 %26, 32
%41 = trunc i64 %40 to i32
call void @llvm.lifetime.end(i64 8, i8* %28)
switch i64 %.sroa.7.0.copyload, label %then-block-10202-.i.i.i.i.i.19 [
i64 0, label %_ZN27collections..string..String9drop.454217hf06e85a2d7b4b92bE.exit20
i64 2097865012304223517, label %_ZN27collections..string..String9drop.454217hf06e85a2d7b4b92bE.exit20
]
then-block-10202-.i.i.i.i.i.19: ; preds = %normal-return2
tail call void @__rust_deallocate(i8* %.sroa.0.0.copyload, i64 %.sroa.7.0.copyload, i64 1) #1, !noalias !39
br label %_ZN27collections..string..String9drop.454217hf06e85a2d7b4b92bE.exit20
_ZN27collections..string..String9drop.454217hf06e85a2d7b4b92bE.exit20: ; preds = %normal-return2, %normal-return2, %then-block-10202-.i.i.i.i.i.19
ret i32 %41
}
; Function Attrs: nounwind
declare void @llvm.lifetime.start(i64, i8* nocapture) #1
; Function Attrs: nounwind
declare void @llvm.lifetime.end(i64, i8* nocapture) #1
; Function Attrs: cold noinline noreturn
declare void @_ZN9panicking9panic_fmt20h7adfa609c7a69838THKE(%"2.core::fmt::Arguments"* noalias nocapture dereferenceable(48), { %str_slice, i32 }* noalias readonly dereferenceable(24)) unnamed_addr #2
; Function Attrs: nounwind
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1) #1
declare i8 @"_ZN3num13_$LT$impl$GT$3fmt20he816adf9ecbcf81agojE"(%"2.core::num::ParseIntError"* noalias readonly dereferenceable(1), %"2.core::fmt::Formatter"* noalias dereferenceable(96)) unnamed_addr #3
declare i64 @"_ZN3num13_$LT$impl$GT$8from_str20h31bc7276fabe8bafA3iE"(i8* noalias nonnull readonly, i64) unnamed_addr #3
; Function Attrs: nounwind
declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) #1
; Function Attrs: nounwind
declare i32 @rust_eh_personality(i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*) unnamed_addr #4
; Function Attrs: nounwind
declare void @__rust_deallocate(i8*, i64, i64) unnamed_addr #4
declare i8 @"_ZN3env13_$LT$impl$GT$3fmt20h5018ecb21ff9cdf1iceE"(%"1.std::env::VarError"* noalias readonly dereferenceable(24), %"2.core::fmt::Formatter"* noalias dereferenceable(96)) unnamed_addr #3
declare void @_ZN3env4_var20h33296049f6408d90x7dE(%"2.core::result::Result<collections::string::String, std::env::VarError>"* noalias nocapture sret dereferenceable(32), %"1.std::ffi::os_str::OsStr"* noalias nonnull readonly, i64) unnamed_addr #3
declare { %"1.std::ffi::os_str::OsStr"*, i64 } @"_ZN3ffi6os_str13_$LT$impl$GT$6as_ref20hc5ba21e38875edd7B1eE"(i8* noalias nonnull readonly, i64) unnamed_addr #3
; Function Attrs: noinline nounwind uwtable
define internal fastcc void @_ZN9do_uninit20he95f261f8900bc45GaaE({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* noalias nocapture dereferenceable(40), i32) unnamed_addr #5 {
entry-block:
br label %loop_body
loop_body: ; preds = %loop_body.backedge, %entry-block
%state.0 = phi i8 [ 0, %entry-block ], [ %state.0.be, %loop_body.backedge ]
%x0.0 = phi i32 [ undef, %entry-block ], [ %x0.0.be, %loop_body.backedge ]
%x1.0 = phi i32 [ undef, %entry-block ], [ %x1.0.be, %loop_body.backedge ]
%x2.0 = phi i32 [ undef, %entry-block ], [ %x2.0.be, %loop_body.backedge ]
%x3.0 = phi i32 [ undef, %entry-block ], [ %x3.0.be, %loop_body.backedge ]
%x4.0 = phi i32 [ undef, %entry-block ], [ %x4.0.be, %loop_body.backedge ]
%x5.0 = phi i32 [ undef, %entry-block ], [ %x5.0.be, %loop_body.backedge ]
%x6.0 = phi i32 [ undef, %entry-block ], [ %x6.0.be, %loop_body.backedge ]
%x7.0 = phi i32 [ undef, %entry-block ], [ %x7.0.be, %loop_body.backedge ]
%x8.0 = phi i32 [ undef, %entry-block ], [ %x8.0.be, %loop_body.backedge ]
%j.0 = phi i32 [ 0, %entry-block ], [ %j.0.be, %loop_body.backedge ]
switch i8 %state.0, label %match_else [
i8 0, label %match_case
i8 1, label %match_case10
i8 2, label %match_case11
i8 3, label %match_case12
i8 4, label %match_case13
i8 5, label %match_case14
i8 6, label %match_case15
i8 7, label %match_case16
i8 8, label %match_case17
i8 9, label %match_case18
]
match_else: ; preds = %loop_body
unreachable
match_case: ; preds = %loop_body
%2 = add i32 %j.0, %1
br label %loop_body.backedge
match_case10: ; preds = %loop_body
%3 = add i32 %j.0, %1
br label %loop_body.backedge
match_case11: ; preds = %loop_body
%4 = add i32 %j.0, %1
br label %loop_body.backedge
match_case12: ; preds = %loop_body
%5 = add i32 %j.0, %1
br label %loop_body.backedge
match_case13: ; preds = %loop_body
%6 = add i32 %j.0, %1
br label %loop_body.backedge
match_case14: ; preds = %loop_body
%7 = add i32 %j.0, %1
br label %loop_body.backedge
match_case15: ; preds = %loop_body
%8 = add i32 %j.0, %1
br label %loop_body.backedge
match_case16: ; preds = %loop_body
%9 = add i32 %j.0, %1
br label %loop_body.backedge
match_case17: ; preds = %loop_body
%10 = add i32 %j.0, %1
br label %loop_body.backedge
loop_body.backedge: ; preds = %match_case17, %match_case16, %match_case15, %match_case14, %match_case13, %match_case12, %match_case11, %match_case10, %match_case
%state.0.be = phi i8 [ 9, %match_case17 ], [ 8, %match_case16 ], [ 7, %match_case15 ], [ 6, %match_case14 ], [ 5, %match_case13 ], [ 4, %match_case12 ], [ 3, %match_case11 ], [ 2, %match_case10 ], [ 1, %match_case ]
%x0.0.be = phi i32 [ %x0.0, %match_case17 ], [ %x0.0, %match_case16 ], [ %x0.0, %match_case15 ], [ %x0.0, %match_case14 ], [ %x0.0, %match_case13 ], [ %x0.0, %match_case12 ], [ %x0.0, %match_case11 ], [ %x0.0, %match_case10 ], [ %2, %match_case ]
%x1.0.be = phi i32 [ %x1.0, %match_case17 ], [ %x1.0, %match_case16 ], [ %x1.0, %match_case15 ], [ %x1.0, %match_case14 ], [ %x1.0, %match_case13 ], [ %x1.0, %match_case12 ], [ %x1.0, %match_case11 ], [ %3, %match_case10 ], [ %x1.0, %match_case ]
%x2.0.be = phi i32 [ %x2.0, %match_case17 ], [ %x2.0, %match_case16 ], [ %x2.0, %match_case15 ], [ %x2.0, %match_case14 ], [ %x2.0, %match_case13 ], [ %x2.0, %match_case12 ], [ %4, %match_case11 ], [ %x2.0, %match_case10 ], [ %x2.0, %match_case ]
%x3.0.be = phi i32 [ %x3.0, %match_case17 ], [ %x3.0, %match_case16 ], [ %x3.0, %match_case15 ], [ %x3.0, %match_case14 ], [ %x3.0, %match_case13 ], [ %5, %match_case12 ], [ %x3.0, %match_case11 ], [ %x3.0, %match_case10 ], [ %x3.0, %match_case ]
%x4.0.be = phi i32 [ %x4.0, %match_case17 ], [ %x4.0, %match_case16 ], [ %x4.0, %match_case15 ], [ %x4.0, %match_case14 ], [ %6, %match_case13 ], [ %x4.0, %match_case12 ], [ %x4.0, %match_case11 ], [ %x4.0, %match_case10 ], [ %x4.0, %match_case ]
%x5.0.be = phi i32 [ %x5.0, %match_case17 ], [ %x5.0, %match_case16 ], [ %x5.0, %match_case15 ], [ %7, %match_case14 ], [ %x5.0, %match_case13 ], [ %x5.0, %match_case12 ], [ %x5.0, %match_case11 ], [ %x5.0, %match_case10 ], [ %x5.0, %match_case ]
%x6.0.be = phi i32 [ %x6.0, %match_case17 ], [ %x6.0, %match_case16 ], [ %8, %match_case15 ], [ %x6.0, %match_case14 ], [ %x6.0, %match_case13 ], [ %x6.0, %match_case12 ], [ %x6.0, %match_case11 ], [ %x6.0, %match_case10 ], [ %x6.0, %match_case ]
%x7.0.be = phi i32 [ %x7.0, %match_case17 ], [ %9, %match_case16 ], [ %x7.0, %match_case15 ], [ %x7.0, %match_case14 ], [ %x7.0, %match_case13 ], [ %x7.0, %match_case12 ], [ %x7.0, %match_case11 ], [ %x7.0, %match_case10 ], [ %x7.0, %match_case ]
%x8.0.be = phi i32 [ %10, %match_case17 ], [ %x8.0, %match_case16 ], [ %x8.0, %match_case15 ], [ %x8.0, %match_case14 ], [ %x8.0, %match_case13 ], [ %x8.0, %match_case12 ], [ %x8.0, %match_case11 ], [ %x8.0, %match_case10 ], [ %x8.0, %match_case ]
%j.0.be = add i32 %j.0, 1
br label %loop_body
match_case18: ; preds = %loop_body
%j.0.lcssa116 = phi i32 [ %j.0, %loop_body ]
%x8.0.lcssa115 = phi i32 [ %x8.0, %loop_body ]
%x7.0.lcssa114 = phi i32 [ %x7.0, %loop_body ]
%x6.0.lcssa113 = phi i32 [ %x6.0, %loop_body ]
%x5.0.lcssa112 = phi i32 [ %x5.0, %loop_body ]
%x4.0.lcssa111 = phi i32 [ %x4.0, %loop_body ]
%x3.0.lcssa110 = phi i32 [ %x3.0, %loop_body ]
%x2.0.lcssa109 = phi i32 [ %x2.0, %loop_body ]
%x1.0.lcssa108 = phi i32 [ %x1.0, %loop_body ]
%x0.0.lcssa107 = phi i32 [ %x0.0, %loop_body ]
%11 = add i32 %j.0.lcssa116, %1
%12 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 0
store i32 %x0.0.lcssa107, i32* %12, align 4
%13 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 1
store i32 %x1.0.lcssa108, i32* %13, align 4
%14 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 2
store i32 %x2.0.lcssa109, i32* %14, align 4
%15 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 3
store i32 %x3.0.lcssa110, i32* %15, align 4
%16 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 4
store i32 %x4.0.lcssa111, i32* %16, align 4
%17 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 5
store i32 %x5.0.lcssa112, i32* %17, align 4
%18 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 6
store i32 %x6.0.lcssa113, i32* %18, align 4
%19 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 7
store i32 %x7.0.lcssa114, i32* %19, align 4
%20 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 8
store i32 %x8.0.lcssa115, i32* %20, align 4
%21 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 9
store i32 %11, i32* %21, align 4
ret void
}
; Function Attrs: uwtable
define internal void @_ZN12bench_uninit20h59a893883fa448a02eaE(%"9.test::Bencher"* noalias nocapture dereferenceable(32)) unnamed_addr #0 {
entry-block:
%dummy.i.i.i.i = alloca {}, align 8
%tuple.i.i.i.i = alloca { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, align 8
%1 = alloca { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, align 8
%2 = alloca %"2.core::fmt::Arguments", align 8
%3 = alloca [2 x %"2.core::fmt::ArgumentV1"], align 8
%arg.i.i.i.i = alloca { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, align 8
%start.i.i = alloca %"1.std::sys::time::inner::SteadyTime", align 8
%addr_of.i.i = alloca %"1.std::sys::time::inner::SteadyTime", align 8
%4 = alloca %"1.std::time::duration::Duration", align 8
%5 = bitcast %"1.std::time::duration::Duration"* %4 to i8*
call void @llvm.lifetime.start(i64 16, i8* %5), !noalias !42
%6 = bitcast %"1.std::sys::time::inner::SteadyTime"* %start.i.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %6), !noalias !45
%7 = tail call i64 @"_ZN3sys4time5inner13_$LT$impl$GT$3now20h5f02674f74649da6iOwE"(), !noalias !45
%8 = getelementptr inbounds %"1.std::sys::time::inner::SteadyTime", %"1.std::sys::time::inner::SteadyTime"* %start.i.i, i64 0, i32 0
store i64 %7, i64* %8, align 8, !noalias !45
%arg.idx.val.val.idx.i.i = getelementptr %"9.test::Bencher", %"9.test::Bencher"* %0, i64 0, i32 0
%arg.idx.val.val.idx.val.i.i = load i64, i64* %arg.idx.val.val.idx.i.i, align 8, !alias.scope !42, !noalias !49
%9 = icmp eq i64 %arg.idx.val.val.idx.val.i.i, 0
br i1 %9, label %"_ZN13_$LT$impl$GT$4iter4iter20h4318514408530987351E.exit", label %match_case.lr.ph.i.i.i
match_case.lr.ph.i.i.i: ; preds = %entry-block
%10 = bitcast { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i to i8*
%11 = bitcast { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1 to i8*
%12 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, i64 0, i32 0
%13 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, i64 0, i32 1
%14 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, i64 0, i32 5
%15 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, i64 0, i32 9
%16 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, i64 0, i32 2
%17 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, i64 0, i32 4
%18 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, i64 0, i32 6
%19 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, i64 0, i32 8
%20 = bitcast { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %arg.i.i.i.i to i8*
%21 = bitcast { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i to i64*
%22 = bitcast i32* %16 to i64*
%23 = bitcast i32* %17 to i64*
%24 = bitcast i32* %18 to i64*
%25 = bitcast i32* %19 to i64*
%26 = bitcast {}* %dummy.i.i.i.i to i8*
%27 = bitcast i32* %13 to <4 x i32>*
%28 = bitcast i32* %14 to <4 x i32>*
br label %match_case.i.i.i
match_case.i.i.i: ; preds = %"_ZN12bench_uninit16_$LT$closure$GT$12closure.4980E.exit.i.i.i", %match_case.lr.ph.i.i.i
%.sroa.011.0..val.i1722.i.i.i = phi i64 [ 0, %match_case.lr.ph.i.i.i ], [ %29, %"_ZN12bench_uninit16_$LT$closure$GT$12closure.4980E.exit.i.i.i" ]
%29 = add nuw i64 %.sroa.011.0..val.i1722.i.i.i, 1
%30 = call fastcc i32 @_ZN5range20he72cc40c9292b713uaaE(), !noalias !45
%31 = icmp sgt i32 %30, 0
br i1 %31, label %match_case.i.i.i.i.preheader, label %"_ZN12bench_uninit16_$LT$closure$GT$12closure.4980E.exit.i.i.i"
match_case.i.i.i.i.preheader: ; preds = %match_case.i.i.i
br label %match_case.i.i.i.i
match_case.i.i.i.i: ; preds = %match_case.i.i.i.i.preheader, %next-block.i.i.i.i
%match1.sroa.5.0.extract.trunc8.i.i.i.i = phi i32 [ %match.sroa.0.0..val.i57.i.i.i.i, %next-block.i.i.i.i ], [ 0, %match_case.i.i.i.i.preheader ]
%match.sroa.0.0..val.i57.i.i.i.i = phi i32 [ %match.sroa.0.0..val.i5.i.i.i.i, %next-block.i.i.i.i ], [ 1, %match_case.i.i.i.i.preheader ]
call void @llvm.lifetime.start(i64 40, i8* %10), !noalias !45
call fastcc void @_ZN9do_uninit20he95f261f8900bc45GaaE({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* noalias nocapture nonnull dereferenceable(40) %tuple.i.i.i.i, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i), !noalias !45
call void @llvm.lifetime.start(i64 40, i8* %11), !noalias !45
store i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32* %12, align 8, !noalias !45
%32 = insertelement <4 x i32> undef, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32 0
%33 = insertelement <4 x i32> %32, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32 1
%34 = insertelement <4 x i32> %33, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32 2
%35 = insertelement <4 x i32> %34, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32 3
%36 = add <4 x i32> %35, <i32 1, i32 2, i32 3, i32 4>
store <4 x i32> %36, <4 x i32>* %27, align 4, !noalias !45
%37 = add <4 x i32> %35, <i32 5, i32 6, i32 7, i32 8>
store <4 x i32> %37, <4 x i32>* %28, align 4, !noalias !45
%38 = add i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, 9
store i32 %38, i32* %15, align 4, !noalias !45
%.val61.i.i.i.i.i = load i64, i64* %21, align 8, !noalias !45
%39 = trunc i64 %.val61.i.i.i.i.i to i32
%40 = icmp eq i32 %39, %match1.sroa.5.0.extract.trunc8.i.i.i.i
br i1 %40, label %join.i.i.i.i.i, label %then-block-382-.i.i.i.i
join.i.i.i.i.i: ; preds = %match_case.i.i.i.i
%41 = lshr i64 %.val61.i.i.i.i.i, 32
%42 = trunc i64 %41 to i32
%43 = extractelement <4 x i32> %36, i32 0
%44 = icmp eq i32 %42, %43
br i1 %44, label %join1.i.i.i.i.i, label %then-block-382-.i.i.i.i
join1.i.i.i.i.i: ; preds = %join.i.i.i.i.i
%.val57.i.i.i.i.i = load i64, i64* %22, align 8, !noalias !45
%45 = trunc i64 %.val57.i.i.i.i.i to i32
%46 = extractelement <4 x i32> %36, i32 1
%47 = icmp eq i32 %45, %46
br i1 %47, label %join3.i.i.i.i.i, label %then-block-382-.i.i.i.i
join3.i.i.i.i.i: ; preds = %join1.i.i.i.i.i
%48 = lshr i64 %.val57.i.i.i.i.i, 32
%49 = trunc i64 %48 to i32
%50 = extractelement <4 x i32> %36, i32 2
%51 = icmp eq i32 %49, %50
br i1 %51, label %join5.i.i.i.i.i, label %then-block-382-.i.i.i.i
join5.i.i.i.i.i: ; preds = %join3.i.i.i.i.i
%.val53.i.i.i.i.i = load i64, i64* %23, align 8, !noalias !45
%52 = trunc i64 %.val53.i.i.i.i.i to i32
%53 = extractelement <4 x i32> %36, i32 3
%54 = icmp eq i32 %52, %53
br i1 %54, label %join7.i.i.i.i.i, label %then-block-382-.i.i.i.i
join7.i.i.i.i.i: ; preds = %join5.i.i.i.i.i
%55 = lshr i64 %.val53.i.i.i.i.i, 32
%56 = trunc i64 %55 to i32
%57 = extractelement <4 x i32> %37, i32 0
%58 = icmp eq i32 %56, %57
br i1 %58, label %join9.i.i.i.i.i, label %then-block-382-.i.i.i.i
join9.i.i.i.i.i: ; preds = %join7.i.i.i.i.i
%.val49.i.i.i.i.i = load i64, i64* %24, align 8, !noalias !45
%59 = trunc i64 %.val49.i.i.i.i.i to i32
%60 = extractelement <4 x i32> %37, i32 1
%61 = icmp eq i32 %59, %60
br i1 %61, label %join11.i.i.i.i.i, label %then-block-382-.i.i.i.i
join11.i.i.i.i.i: ; preds = %join9.i.i.i.i.i
%62 = lshr i64 %.val49.i.i.i.i.i, 32
%63 = trunc i64 %62 to i32
%64 = extractelement <4 x i32> %37, i32 2
%65 = icmp eq i32 %63, %64
br i1 %65, label %join13.i.i.i.i.i, label %then-block-382-.i.i.i.i
join13.i.i.i.i.i: ; preds = %join11.i.i.i.i.i
%.val45.i.i.i.i.i = load i64, i64* %25, align 8, !noalias !45
%66 = trunc i64 %.val45.i.i.i.i.i to i32
%67 = extractelement <4 x i32> %37, i32 3
%68 = icmp eq i32 %66, %67
br i1 %68, label %"_ZN5tuple13_$LT$impl$GT$2eq2eq20h3529837864892923379E.exit.i.i.i.i", label %then-block-382-.i.i.i.i
"_ZN5tuple13_$LT$impl$GT$2eq2eq20h3529837864892923379E.exit.i.i.i.i": ; preds = %join13.i.i.i.i.i
%69 = lshr i64 %.val45.i.i.i.i.i, 32
%70 = trunc i64 %69 to i32
%71 = icmp eq i32 %70, %38
br i1 %71, label %next-block.i.i.i.i, label %then-block-382-.i.i.i.i
then-block-382-.i.i.i.i: ; preds = %"_ZN5tuple13_$LT$impl$GT$2eq2eq20h3529837864892923379E.exit.i.i.i.i", %join13.i.i.i.i.i, %join11.i.i.i.i.i, %join9.i.i.i.i.i, %join7.i.i.i.i.i, %join5.i.i.i.i.i, %join3.i.i.i.i.i, %join1.i.i.i.i.i, %join.i.i.i.i.i, %match_case.i.i.i.i
%72 = bitcast %"2.core::fmt::Arguments"* %2 to i8*
call void @llvm.lifetime.start(i64 48, i8* %72), !noalias !45
%73 = bitcast [2 x %"2.core::fmt::ArgumentV1"]* %3 to i8*
call void @llvm.lifetime.start(i64 32, i8* %73), !noalias !45
%74 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %3, i64 0, i64 0
%75 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %3, i64 0, i64 0, i32 1
store i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* bitcast (i8 ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }*, %"2.core::fmt::Formatter"*)* @"_ZN3fmt13_$LT$impl$GT$3fmt3fmt19h476066522519926309E" to i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)*), i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)** %75, align 8, !alias.scope !50, !noalias !53
%76 = bitcast [2 x %"2.core::fmt::ArgumentV1"]* %3 to { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }**
store { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }** %76, align 8, !alias.scope !50, !noalias !53
%77 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %3, i64 0, i64 1
%78 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %3, i64 0, i64 1, i32 1
store i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* bitcast (i8 ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }*, %"2.core::fmt::Formatter"*)* @"_ZN3fmt13_$LT$impl$GT$3fmt3fmt19h476066522519926309E" to i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)*), i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)** %78, align 8, !alias.scope !55, !noalias !58
%79 = bitcast %"2.core::fmt::ArgumentV1"* %77 to { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }**
store { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }** %79, align 8, !alias.scope !55, !noalias !58
%pieces.sroa.0.0..sroa_idx.i.i.i.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref5046, i64 0, i64 0), %str_slice** %pieces.sroa.0.0..sroa_idx.i.i.i.i.i, align 8, !alias.scope !60, !noalias !63
%pieces.sroa.2.0..sroa_idx2.i.i.i.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 0, i32 1
store i64 3, i64* %pieces.sroa.2.0..sroa_idx2.i.i.i.i.i, align 8, !alias.scope !60, !noalias !63
%80 = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 1
%81 = bitcast %"2.core::option::Option<&'static [core::fmt::rt::v1::Argument]>"* %80 to i8*
call void @llvm.memset.p0i8.i64(i8* %81, i8 0, i64 16, i32 8, i1 false) #1, !alias.scope !60, !noalias !63
%args.sroa.0.0..sroa_idx.i.i.i.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 2, i32 0
store %"2.core::fmt::ArgumentV1"* %74, %"2.core::fmt::ArgumentV1"** %args.sroa.0.0..sroa_idx.i.i.i.i.i, align 8, !alias.scope !60, !noalias !63
%args.sroa.2.0..sroa_idx1.i.i.i.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 2, i32 1
store i64 2, i64* %args.sroa.2.0..sroa_idx1.i.i.i.i.i, align 8, !alias.scope !60, !noalias !63
call void @_ZN10sys_common6unwind16begin_unwind_fmt20h45f40b85e7f7daca6bsE(%"2.core::fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %2, { %str_slice, i32 }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @"_ZN12bench_uninit16_$LT$closure$GT$10_FILE_LINE20hbb8a7ccdee0203e85gaE" to { %str_slice, i32 }*)), !noalias !45
unreachable
next-block.i.i.i.i: ; preds = %"_ZN5tuple13_$LT$impl$GT$2eq2eq20h3529837864892923379E.exit.i.i.i.i"
call void @llvm.lifetime.end(i64 40, i8* %11), !noalias !45
call void @llvm.lifetime.start(i64 40, i8* %20), !noalias !45
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %20, i8* %10, i64 40, i32 8, i1 false), !noalias !45
call void asm "", "r,~{dirflag},~{fpsr},~{flags}"({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* nonnull %arg.i.i.i.i) #1, !noalias !66, !srcloc !69
call void @llvm.lifetime.end(i64 40, i8* %20) #1, !alias.scope !70, !noalias !66
call void @llvm.lifetime.end(i64 40, i8* %20), !noalias !45
call void @llvm.lifetime.end(i64 40, i8* %10), !noalias !45
%82 = icmp slt i32 %match.sroa.0.0..val.i57.i.i.i.i, %30
%83 = zext i1 %82 to i32
%match.sroa.0.0..val.i5.i.i.i.i = add i32 %83, %match.sroa.0.0..val.i57.i.i.i.i
br i1 %82, label %match_case.i.i.i.i, label %"_ZN12bench_uninit16_$LT$closure$GT$12closure.4980E.exit.i.i.i.loopexit"
"_ZN12bench_uninit16_$LT$closure$GT$12closure.4980E.exit.i.i.i.loopexit": ; preds = %next-block.i.i.i.i
br label %"_ZN12bench_uninit16_$LT$closure$GT$12closure.4980E.exit.i.i.i"
"_ZN12bench_uninit16_$LT$closure$GT$12closure.4980E.exit.i.i.i": ; preds = %"_ZN12bench_uninit16_$LT$closure$GT$12closure.4980E.exit.i.i.i.loopexit", %match_case.i.i.i
call void @llvm.lifetime.start(i64 0, i8* %26), !noalias !45
call void asm "", "r,~{dirflag},~{fpsr},~{flags}"({}* nonnull %dummy.i.i.i.i) #1, !noalias !45, !srcloc !69
call void @llvm.lifetime.end(i64 0, i8* %26), !noalias !45
%84 = icmp ult i64 %29, %arg.idx.val.val.idx.val.i.i
br i1 %84, label %match_case.i.i.i, label %"_ZN13_$LT$impl$GT$4iter4iter20h4318514408530987351E.exit.loopexit"
"_ZN13_$LT$impl$GT$4iter4iter20h4318514408530987351E.exit.loopexit": ; preds = %"_ZN12bench_uninit16_$LT$closure$GT$12closure.4980E.exit.i.i.i"
br label %"_ZN13_$LT$impl$GT$4iter4iter20h4318514408530987351E.exit"
"_ZN13_$LT$impl$GT$4iter4iter20h4318514408530987351E.exit": ; preds = %"_ZN13_$LT$impl$GT$4iter4iter20h4318514408530987351E.exit.loopexit", %entry-block
%85 = call i64 @"_ZN3sys4time5inner13_$LT$impl$GT$3now20h5f02674f74649da6iOwE"(), !noalias !45
%86 = bitcast %"1.std::sys::time::inner::SteadyTime"* %addr_of.i.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %86), !noalias !45
%87 = getelementptr inbounds %"1.std::sys::time::inner::SteadyTime", %"1.std::sys::time::inner::SteadyTime"* %addr_of.i.i, i64 0, i32 0
store i64 %85, i64* %87, align 8, !noalias !45
call void @"_ZN3sys4time5inner13_$LT$impl$GT$3sub20h24527b4d609c46783OwE"(%"1.std::time::duration::Duration"* noalias nocapture nonnull sret dereferenceable(16) %4, %"1.std::sys::time::inner::SteadyTime"* noalias nonnull readonly dereferenceable(8) %addr_of.i.i, %"1.std::sys::time::inner::SteadyTime"* noalias nonnull readonly dereferenceable(8) %start.i.i), !noalias !72
call void @llvm.lifetime.end(i64 8, i8* %86), !noalias !45
call void @llvm.lifetime.end(i64 8, i8* %6), !noalias !45
%88 = getelementptr inbounds %"9.test::Bencher", %"9.test::Bencher"* %0, i64 0, i32 1
%89 = bitcast %"1.std::time::duration::Duration"* %88 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %89, i8* %5, i64 16, i32 8, i1 false)
call void @llvm.lifetime.end(i64 16, i8* %5), !noalias !42
ret void
}
declare i64 @"_ZN3sys4time5inner13_$LT$impl$GT$3now20h5f02674f74649da6iOwE"() unnamed_addr #3
declare void @"_ZN3sys4time5inner13_$LT$impl$GT$3sub20h24527b4d609c46783OwE"(%"1.std::time::duration::Duration"* noalias nocapture sret dereferenceable(16), %"1.std::sys::time::inner::SteadyTime"* noalias readonly dereferenceable(8), %"1.std::sys::time::inner::SteadyTime"* noalias readonly dereferenceable(8)) unnamed_addr #3
; Function Attrs: cold noinline noreturn
declare void @_ZN10sys_common6unwind16begin_unwind_fmt20h45f40b85e7f7daca6bsE(%"2.core::fmt::Arguments"* noalias nocapture dereferenceable(48), { %str_slice, i32 }* noalias readonly dereferenceable(24)) unnamed_addr #2
; Function Attrs: uwtable
define internal i8 @"_ZN3fmt13_$LT$impl$GT$3fmt3fmt19h476066522519926309E"({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* noalias readonly dereferenceable(40), %"2.core::fmt::Formatter"* noalias dereferenceable(96)) unnamed_addr #0 {
entry-block:
%builder = alloca %"2.core::fmt::builders::DebugTuple", align 8
%2 = bitcast %"2.core::fmt::builders::DebugTuple"* %builder to i8*
call void @llvm.lifetime.start(i64 16, i8* %2)
call void @_ZN3fmt8builders15debug_tuple_new20h614e8b40bb82ba99iXVE(%"2.core::fmt::builders::DebugTuple"* noalias nocapture nonnull sret dereferenceable(16) %builder, %"2.core::fmt::Formatter"* noalias nonnull dereferenceable(96) %1, i8* noalias nonnull readonly getelementptr inbounds ([0 x i8], [0 x i8]* @str5027, i64 0, i64 0), i64 0)
%3 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 1
%4 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 2
%5 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 3
%6 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 4
%7 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 5
%8 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 6
%9 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 7
%10 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 8
%11 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 9
%12 = bitcast { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0 to i8*
%13 = call dereferenceable(16) %"2.core::fmt::builders::DebugTuple"* @"_ZN3fmt8builders13_$LT$impl$GT$5field20h5f8aebc32ec91f0aLXVE"(%"2.core::fmt::builders::DebugTuple"* noalias nonnull dereferenceable(16) %builder, i8* nonnull %12, void (i8*)** nonnull getelementptr inbounds ({ void (i8*)*, i64, i64, i8 (i32*, %"2.core::fmt::Formatter"*)* }, { void (i8*)*, i64, i64, i8 (i32*, %"2.core::fmt::Formatter"*)* }* @vtable5034, i64 0, i32 0))
%14 = bitcast i32* %3 to i8*
%15 = call dereferenceable(16) %"2.core::fmt::builders::DebugTuple"* @"_ZN3fmt8builders13_$LT$impl$GT$5field20h5f8aebc32ec91f0aLXVE"(%"2.core::fmt::builders::DebugTuple"* noalias nonnull dereferenceable(16) %builder, i8* nonnull %14, void (i8*)** nonnull getelementptr inbounds ({ void (i8*)*, i64, i64, i8 (i32*, %"2.core::fmt::Formatter"*)* }, { void (i8*)*, i64, i64, i8 (i32*, %"2.core::fmt::Formatter"*)* }* @vtable5034, i64 0, i32 0))
%16 = bitcast i32* %4 to i8*
%17 = call dereferenceable(16) %"2.core::fmt::builders::DebugTuple"* @"_ZN3fmt8builders13_$LT$impl$GT$5field20h5f8aebc32ec91f0aLXVE"(%"2.core::fmt::builders::DebugTuple"* noalias nonnull dereferenceable(16) %builder, i8* nonnull %16, void (i8*)** nonnull getelementptr inbounds ({ void (i8*)*, i64, i64, i8 (i32*, %"2.core::fmt::Formatter"*)* }, { void (i8*)*, i64, i64, i8 (i32*, %"2.core::fmt::Formatter"*)* }* @vtable5034, i64 0, i32 0))
%18 = bitcast i32* %5 to i8*
%19 = call dereferenceable(16) %"2.core::fmt::builders::DebugTuple"* @"_ZN3fmt8builders13_$LT$impl$GT$5field20h5f8aebc32ec91f0aLXVE"(%"2.core::fmt::builders::DebugTuple"* noalias nonnull dereferenceable(16) %builder, i8* nonnull %18, void (i8*)** nonnull getelementptr inbounds ({ void (i8*)*, i64, i64, i8 (i32*, %"2.core::fmt::Formatter"*)* }, { void (i8*)*, i64, i64, i8 (i32*, %"2.core::fmt::Formatter"*)* }* @vtable5034, i64 0, i32 0))
%20 = bitcast i32* %6 to i8*
%21 = call dereferenceable(16) %"2.core::fmt::builders::DebugTuple"* @"_ZN3fmt8builders13_$LT$impl$GT$5field20h5f8aebc32ec91f0aLXVE"(%"2.core::fmt::builders::DebugTuple"* noalias nonnull dereferenceable(16) %builder, i8* nonnull %20, void (i8*)** nonnull getelementptr inbounds ({ void (i8*)*, i64, i64, i8 (i32*, %"2.core::fmt::Formatter"*)* }, { void (i8*)*, i64, i64, i8 (i32*, %"2.core::fmt::Formatter"*)* }* @vtable5034, i64 0, i32 0))
%22 = bitcast i32* %7 to i8*
%23 = call dereferenceable(16) %"2.core::fmt::builders::DebugTuple"* @"_ZN3fmt8builders13_$LT$impl$GT$5field20h5f8aebc32ec91f0aLXVE"(%"2.core::fmt::builders::DebugTuple"* noalias nonnull dereferenceable(16) %builder, i8* nonnull %22, void (i8*)** nonnull getelementptr inbounds ({ void (i8*)*, i64, i64, i8 (i32*, %"2.core::fmt::Formatter"*)* }, { void (i8*)*, i64, i64, i8 (i32*, %"2.core::fmt::Formatter"*)* }* @vtable5034, i64 0, i32 0))
%24 = bitcast i32* %8 to i8*
%25 = call dereferenceable(16) %"2.core::fmt::builders::DebugTuple"* @"_ZN3fmt8builders13_$LT$impl$GT$5field20h5f8aebc32ec91f0aLXVE"(%"2.core::fmt::builders::DebugTuple"* noalias nonnull dereferenceable(16) %builder, i8* nonnull %24, void (i8*)** nonnull getelementptr inbounds ({ void (i8*)*, i64, i64, i8 (i32*, %"2.core::fmt::Formatter"*)* }, { void (i8*)*, i64, i64, i8 (i32*, %"2.core::fmt::Formatter"*)* }* @vtable5034, i64 0, i32 0))
%26 = bitcast i32* %9 to i8*
%27 = call dereferenceable(16) %"2.core::fmt::builders::DebugTuple"* @"_ZN3fmt8builders13_$LT$impl$GT$5field20h5f8aebc32ec91f0aLXVE"(%"2.core::fmt::builders::DebugTuple"* noalias nonnull dereferenceable(16) %builder, i8* nonnull %26, void (i8*)** nonnull getelementptr inbounds ({ void (i8*)*, i64, i64, i8 (i32*, %"2.core::fmt::Formatter"*)* }, { void (i8*)*, i64, i64, i8 (i32*, %"2.core::fmt::Formatter"*)* }* @vtable5034, i64 0, i32 0))
%28 = bitcast i32* %10 to i8*
%29 = call dereferenceable(16) %"2.core::fmt::builders::DebugTuple"* @"_ZN3fmt8builders13_$LT$impl$GT$5field20h5f8aebc32ec91f0aLXVE"(%"2.core::fmt::builders::DebugTuple"* noalias nonnull dereferenceable(16) %builder, i8* nonnull %28, void (i8*)** nonnull getelementptr inbounds ({ void (i8*)*, i64, i64, i8 (i32*, %"2.core::fmt::Formatter"*)* }, { void (i8*)*, i64, i64, i8 (i32*, %"2.core::fmt::Formatter"*)* }* @vtable5034, i64 0, i32 0))
%30 = bitcast i32* %11 to i8*
%31 = call dereferenceable(16) %"2.core::fmt::builders::DebugTuple"* @"_ZN3fmt8builders13_$LT$impl$GT$5field20h5f8aebc32ec91f0aLXVE"(%"2.core::fmt::builders::DebugTuple"* noalias nonnull dereferenceable(16) %builder, i8* nonnull %30, void (i8*)** nonnull getelementptr inbounds ({ void (i8*)*, i64, i64, i8 (i32*, %"2.core::fmt::Formatter"*)* }, { void (i8*)*, i64, i64, i8 (i32*, %"2.core::fmt::Formatter"*)* }* @vtable5034, i64 0, i32 0))
%32 = call i8 @"_ZN3fmt8builders13_$LT$impl$GT$6finish20h99a44e5d8b43c490D0VE"(%"2.core::fmt::builders::DebugTuple"* noalias nonnull dereferenceable(16) %builder)
call void @llvm.lifetime.end(i64 16, i8* %2)
ret i8 %32
}
declare void @_ZN3fmt8builders15debug_tuple_new20h614e8b40bb82ba99iXVE(%"2.core::fmt::builders::DebugTuple"* noalias nocapture sret dereferenceable(16), %"2.core::fmt::Formatter"* noalias dereferenceable(96), i8* noalias nonnull readonly, i64) unnamed_addr #3
declare dereferenceable(16) %"2.core::fmt::builders::DebugTuple"* @"_ZN3fmt8builders13_$LT$impl$GT$5field20h5f8aebc32ec91f0aLXVE"(%"2.core::fmt::builders::DebugTuple"* noalias dereferenceable(16), i8* nonnull, void (i8*)** nonnull) unnamed_addr #3
; Function Attrs: nounwind readnone
define internal void @_ZN2i89drop.503117h5a1a7132d371cd5eE(i8* nocapture) unnamed_addr #6 {
entry-block:
ret void
}
declare i8 @"_ZN3fmt3num13_$LT$impl$GT$3fmt20h71f0089d2af9b62213UE"(i32* noalias readonly dereferenceable(4), %"2.core::fmt::Formatter"* noalias dereferenceable(96)) unnamed_addr #3
declare i8 @"_ZN3fmt8builders13_$LT$impl$GT$6finish20h99a44e5d8b43c490D0VE"(%"2.core::fmt::builders::DebugTuple"* noalias dereferenceable(16)) unnamed_addr #3
; Function Attrs: noinline nounwind uwtable
define internal fastcc void @_ZN16do_uninit_struct20h2e8049fed9fb4973JhaE({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* noalias nocapture dereferenceable(40), i32) unnamed_addr #5 {
entry-block:
br label %loop_body
loop_body: ; preds = %loop_body.backedge, %entry-block
%uninit.sroa.37.0 = phi i32 [ undef, %entry-block ], [ %uninit.sroa.37.0.be, %loop_body.backedge ]
%uninit.sroa.34.0 = phi i32 [ undef, %entry-block ], [ %uninit.sroa.34.0.be, %loop_body.backedge ]
%uninit.sroa.31.0 = phi i32 [ undef, %entry-block ], [ %uninit.sroa.31.0.be, %loop_body.backedge ]
%uninit.sroa.28.0 = phi i32 [ undef, %entry-block ], [ %uninit.sroa.28.0.be, %loop_body.backedge ]
%uninit.sroa.25.0 = phi i32 [ undef, %entry-block ], [ %uninit.sroa.25.0.be, %loop_body.backedge ]
%uninit.sroa.22.0 = phi i32 [ undef, %entry-block ], [ %uninit.sroa.22.0.be, %loop_body.backedge ]
%uninit.sroa.19.0 = phi i32 [ undef, %entry-block ], [ %uninit.sroa.19.0.be, %loop_body.backedge ]
%uninit.sroa.16.0 = phi i32 [ undef, %entry-block ], [ %uninit.sroa.16.0.be, %loop_body.backedge ]
%uninit.sroa.1339.0 = phi i32 [ undef, %entry-block ], [ %uninit.sroa.1339.0.be, %loop_body.backedge ]
%uninit.sroa.0.0 = phi i8 [ 0, %entry-block ], [ %uninit.sroa.0.0.be, %loop_body.backedge ]
%j.0 = phi i32 [ 0, %entry-block ], [ %j.0.be, %loop_body.backedge ]
switch i8 %uninit.sroa.0.0, label %match_else [
i8 0, label %match_case
i8 1, label %match_case10
i8 2, label %match_case11
i8 3, label %match_case12
i8 4, label %match_case13
i8 5, label %match_case14
i8 6, label %match_case15
i8 7, label %match_case16
i8 8, label %match_case17
i8 9, label %match_case18
]
match_else: ; preds = %loop_body
unreachable
match_case: ; preds = %loop_body
%2 = add i32 %j.0, %1
br label %loop_body.backedge
match_case10: ; preds = %loop_body
%3 = add i32 %j.0, %1
br label %loop_body.backedge
match_case11: ; preds = %loop_body
%4 = add i32 %j.0, %1
br label %loop_body.backedge
match_case12: ; preds = %loop_body
%5 = add i32 %j.0, %1
br label %loop_body.backedge
match_case13: ; preds = %loop_body
%6 = add i32 %j.0, %1
br label %loop_body.backedge
match_case14: ; preds = %loop_body
%7 = add i32 %j.0, %1
br label %loop_body.backedge
match_case15: ; preds = %loop_body
%8 = add i32 %j.0, %1
br label %loop_body.backedge
match_case16: ; preds = %loop_body
%9 = add i32 %j.0, %1
br label %loop_body.backedge
match_case17: ; preds = %loop_body
%10 = add i32 %j.0, %1
br label %loop_body.backedge
loop_body.backedge: ; preds = %match_case17, %match_case16, %match_case15, %match_case14, %match_case13, %match_case12, %match_case11, %match_case10, %match_case
%uninit.sroa.37.0.be = phi i32 [ %10, %match_case17 ], [ %uninit.sroa.37.0, %match_case16 ], [ %uninit.sroa.37.0, %match_case15 ], [ %uninit.sroa.37.0, %match_case14 ], [ %uninit.sroa.37.0, %match_case13 ], [ %uninit.sroa.37.0, %match_case12 ], [ %uninit.sroa.37.0, %match_case11 ], [ %uninit.sroa.37.0, %match_case10 ], [ %uninit.sroa.37.0, %match_case ]
%uninit.sroa.34.0.be = phi i32 [ %uninit.sroa.34.0, %match_case17 ], [ %9, %match_case16 ], [ %uninit.sroa.34.0, %match_case15 ], [ %uninit.sroa.34.0, %match_case14 ], [ %uninit.sroa.34.0, %match_case13 ], [ %uninit.sroa.34.0, %match_case12 ], [ %uninit.sroa.34.0, %match_case11 ], [ %uninit.sroa.34.0, %match_case10 ], [ %uninit.sroa.34.0, %match_case ]
%uninit.sroa.31.0.be = phi i32 [ %uninit.sroa.31.0, %match_case17 ], [ %uninit.sroa.31.0, %match_case16 ], [ %8, %match_case15 ], [ %uninit.sroa.31.0, %match_case14 ], [ %uninit.sroa.31.0, %match_case13 ], [ %uninit.sroa.31.0, %match_case12 ], [ %uninit.sroa.31.0, %match_case11 ], [ %uninit.sroa.31.0, %match_case10 ], [ %uninit.sroa.31.0, %match_case ]
%uninit.sroa.28.0.be = phi i32 [ %uninit.sroa.28.0, %match_case17 ], [ %uninit.sroa.28.0, %match_case16 ], [ %uninit.sroa.28.0, %match_case15 ], [ %7, %match_case14 ], [ %uninit.sroa.28.0, %match_case13 ], [ %uninit.sroa.28.0, %match_case12 ], [ %uninit.sroa.28.0, %match_case11 ], [ %uninit.sroa.28.0, %match_case10 ], [ %uninit.sroa.28.0, %match_case ]
%uninit.sroa.25.0.be = phi i32 [ %uninit.sroa.25.0, %match_case17 ], [ %uninit.sroa.25.0, %match_case16 ], [ %uninit.sroa.25.0, %match_case15 ], [ %uninit.sroa.25.0, %match_case14 ], [ %6, %match_case13 ], [ %uninit.sroa.25.0, %match_case12 ], [ %uninit.sroa.25.0, %match_case11 ], [ %uninit.sroa.25.0, %match_case10 ], [ %uninit.sroa.25.0, %match_case ]
%uninit.sroa.22.0.be = phi i32 [ %uninit.sroa.22.0, %match_case17 ], [ %uninit.sroa.22.0, %match_case16 ], [ %uninit.sroa.22.0, %match_case15 ], [ %uninit.sroa.22.0, %match_case14 ], [ %uninit.sroa.22.0, %match_case13 ], [ %5, %match_case12 ], [ %uninit.sroa.22.0, %match_case11 ], [ %uninit.sroa.22.0, %match_case10 ], [ %uninit.sroa.22.0, %match_case ]
%uninit.sroa.19.0.be = phi i32 [ %uninit.sroa.19.0, %match_case17 ], [ %uninit.sroa.19.0, %match_case16 ], [ %uninit.sroa.19.0, %match_case15 ], [ %uninit.sroa.19.0, %match_case14 ], [ %uninit.sroa.19.0, %match_case13 ], [ %uninit.sroa.19.0, %match_case12 ], [ %4, %match_case11 ], [ %uninit.sroa.19.0, %match_case10 ], [ %uninit.sroa.19.0, %match_case ]
%uninit.sroa.16.0.be = phi i32 [ %uninit.sroa.16.0, %match_case17 ], [ %uninit.sroa.16.0, %match_case16 ], [ %uninit.sroa.16.0, %match_case15 ], [ %uninit.sroa.16.0, %match_case14 ], [ %uninit.sroa.16.0, %match_case13 ], [ %uninit.sroa.16.0, %match_case12 ], [ %uninit.sroa.16.0, %match_case11 ], [ %3, %match_case10 ], [ %uninit.sroa.16.0, %match_case ]
%uninit.sroa.1339.0.be = phi i32 [ %uninit.sroa.1339.0, %match_case17 ], [ %uninit.sroa.1339.0, %match_case16 ], [ %uninit.sroa.1339.0, %match_case15 ], [ %uninit.sroa.1339.0, %match_case14 ], [ %uninit.sroa.1339.0, %match_case13 ], [ %uninit.sroa.1339.0, %match_case12 ], [ %uninit.sroa.1339.0, %match_case11 ], [ %uninit.sroa.1339.0, %match_case10 ], [ %2, %match_case ]
%uninit.sroa.0.0.be = phi i8 [ 9, %match_case17 ], [ 8, %match_case16 ], [ 7, %match_case15 ], [ 6, %match_case14 ], [ 5, %match_case13 ], [ 4, %match_case12 ], [ 3, %match_case11 ], [ 2, %match_case10 ], [ 1, %match_case ]
%j.0.be = add i32 %j.0, 1
br label %loop_body
match_case18: ; preds = %loop_body
%j.0.lcssa118 = phi i32 [ %j.0, %loop_body ]
%uninit.sroa.1339.0.lcssa117 = phi i32 [ %uninit.sroa.1339.0, %loop_body ]
%uninit.sroa.16.0.lcssa116 = phi i32 [ %uninit.sroa.16.0, %loop_body ]
%uninit.sroa.19.0.lcssa115 = phi i32 [ %uninit.sroa.19.0, %loop_body ]
%uninit.sroa.22.0.lcssa114 = phi i32 [ %uninit.sroa.22.0, %loop_body ]
%uninit.sroa.25.0.lcssa113 = phi i32 [ %uninit.sroa.25.0, %loop_body ]
%uninit.sroa.28.0.lcssa112 = phi i32 [ %uninit.sroa.28.0, %loop_body ]
%uninit.sroa.31.0.lcssa111 = phi i32 [ %uninit.sroa.31.0, %loop_body ]
%uninit.sroa.34.0.lcssa110 = phi i32 [ %uninit.sroa.34.0, %loop_body ]
%uninit.sroa.37.0.lcssa109 = phi i32 [ %uninit.sroa.37.0, %loop_body ]
%11 = add i32 %j.0.lcssa118, %1
%12 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 0
store i32 %uninit.sroa.1339.0.lcssa117, i32* %12, align 4
%13 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 1
store i32 %uninit.sroa.16.0.lcssa116, i32* %13, align 4
%14 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 2
store i32 %uninit.sroa.19.0.lcssa115, i32* %14, align 4
%15 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 3
store i32 %uninit.sroa.22.0.lcssa114, i32* %15, align 4
%16 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 4
store i32 %uninit.sroa.25.0.lcssa113, i32* %16, align 4
%17 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 5
store i32 %uninit.sroa.28.0.lcssa112, i32* %17, align 4
%18 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 6
store i32 %uninit.sroa.31.0.lcssa111, i32* %18, align 4
%19 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 7
store i32 %uninit.sroa.34.0.lcssa110, i32* %19, align 4
%20 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 8
store i32 %uninit.sroa.37.0.lcssa109, i32* %20, align 4
%21 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 9
store i32 %11, i32* %21, align 4
ret void
}
; Function Attrs: uwtable
define internal void @_ZN19bench_uninit_struct20he35cfa0a41ec10c1bmaE(%"9.test::Bencher"* noalias nocapture dereferenceable(32)) unnamed_addr #0 {
entry-block:
%dummy.i.i.i.i = alloca {}, align 8
%tuple.i.i.i.i = alloca { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, align 8
%1 = alloca { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, align 8
%2 = alloca %"2.core::fmt::Arguments", align 8
%3 = alloca [2 x %"2.core::fmt::ArgumentV1"], align 8
%arg.i.i.i.i = alloca { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, align 8
%start.i.i = alloca %"1.std::sys::time::inner::SteadyTime", align 8
%addr_of.i.i = alloca %"1.std::sys::time::inner::SteadyTime", align 8
%4 = alloca %"1.std::time::duration::Duration", align 8
%5 = bitcast %"1.std::time::duration::Duration"* %4 to i8*
call void @llvm.lifetime.start(i64 16, i8* %5), !noalias !73
%6 = bitcast %"1.std::sys::time::inner::SteadyTime"* %start.i.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %6), !noalias !76
%7 = tail call i64 @"_ZN3sys4time5inner13_$LT$impl$GT$3now20h5f02674f74649da6iOwE"(), !noalias !76
%8 = getelementptr inbounds %"1.std::sys::time::inner::SteadyTime", %"1.std::sys::time::inner::SteadyTime"* %start.i.i, i64 0, i32 0
store i64 %7, i64* %8, align 8, !noalias !76
%arg.idx.val.val.idx.i.i = getelementptr %"9.test::Bencher", %"9.test::Bencher"* %0, i64 0, i32 0
%arg.idx.val.val.idx.val.i.i = load i64, i64* %arg.idx.val.val.idx.i.i, align 8, !alias.scope !73, !noalias !80
%9 = icmp eq i64 %arg.idx.val.val.idx.val.i.i, 0
br i1 %9, label %"_ZN13_$LT$impl$GT$4iter4iter21h15582014788276223507E.exit", label %match_case.lr.ph.i.i.i
match_case.lr.ph.i.i.i: ; preds = %entry-block
%10 = bitcast { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i to i8*
%11 = bitcast { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1 to i8*
%12 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, i64 0, i32 0
%13 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, i64 0, i32 1
%14 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, i64 0, i32 5
%15 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, i64 0, i32 9
%16 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, i64 0, i32 2
%17 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, i64 0, i32 4
%18 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, i64 0, i32 6
%19 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, i64 0, i32 8
%20 = bitcast { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %arg.i.i.i.i to i8*
%21 = bitcast { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i to i64*
%22 = bitcast i32* %16 to i64*
%23 = bitcast i32* %17 to i64*
%24 = bitcast i32* %18 to i64*
%25 = bitcast i32* %19 to i64*
%26 = bitcast {}* %dummy.i.i.i.i to i8*
%27 = bitcast i32* %13 to <4 x i32>*
%28 = bitcast i32* %14 to <4 x i32>*
br label %match_case.i.i.i
match_case.i.i.i: ; preds = %"_ZN19bench_uninit_struct16_$LT$closure$GT$12closure.5050E.exit.i.i.i", %match_case.lr.ph.i.i.i
%.sroa.011.0..val.i1722.i.i.i = phi i64 [ 0, %match_case.lr.ph.i.i.i ], [ %29, %"_ZN19bench_uninit_struct16_$LT$closure$GT$12closure.5050E.exit.i.i.i" ]
%29 = add nuw i64 %.sroa.011.0..val.i1722.i.i.i, 1
%30 = call fastcc i32 @_ZN5range20he72cc40c9292b713uaaE(), !noalias !76
%31 = icmp sgt i32 %30, 0
br i1 %31, label %match_case.i.i.i.i.preheader, label %"_ZN19bench_uninit_struct16_$LT$closure$GT$12closure.5050E.exit.i.i.i"
match_case.i.i.i.i.preheader: ; preds = %match_case.i.i.i
br label %match_case.i.i.i.i
match_case.i.i.i.i: ; preds = %match_case.i.i.i.i.preheader, %next-block.i.i.i.i
%match1.sroa.5.0.extract.trunc8.i.i.i.i = phi i32 [ %match.sroa.0.0..val.i57.i.i.i.i, %next-block.i.i.i.i ], [ 0, %match_case.i.i.i.i.preheader ]
%match.sroa.0.0..val.i57.i.i.i.i = phi i32 [ %match.sroa.0.0..val.i5.i.i.i.i, %next-block.i.i.i.i ], [ 1, %match_case.i.i.i.i.preheader ]
call void @llvm.lifetime.start(i64 40, i8* %10), !noalias !76
call fastcc void @_ZN16do_uninit_struct20h2e8049fed9fb4973JhaE({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* noalias nocapture nonnull dereferenceable(40) %tuple.i.i.i.i, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i), !noalias !76
call void @llvm.lifetime.start(i64 40, i8* %11), !noalias !76
store i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32* %12, align 8, !noalias !76
%32 = insertelement <4 x i32> undef, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32 0
%33 = insertelement <4 x i32> %32, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32 1
%34 = insertelement <4 x i32> %33, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32 2
%35 = insertelement <4 x i32> %34, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32 3
%36 = add <4 x i32> %35, <i32 1, i32 2, i32 3, i32 4>
store <4 x i32> %36, <4 x i32>* %27, align 4, !noalias !76
%37 = add <4 x i32> %35, <i32 5, i32 6, i32 7, i32 8>
store <4 x i32> %37, <4 x i32>* %28, align 4, !noalias !76
%38 = add i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, 9
store i32 %38, i32* %15, align 4, !noalias !76
%.val61.i.i.i.i.i = load i64, i64* %21, align 8, !noalias !76
%39 = trunc i64 %.val61.i.i.i.i.i to i32
%40 = icmp eq i32 %39, %match1.sroa.5.0.extract.trunc8.i.i.i.i
br i1 %40, label %join.i.i.i.i.i, label %then-block-825-.i.i.i.i
join.i.i.i.i.i: ; preds = %match_case.i.i.i.i
%41 = lshr i64 %.val61.i.i.i.i.i, 32
%42 = trunc i64 %41 to i32
%43 = extractelement <4 x i32> %36, i32 0
%44 = icmp eq i32 %42, %43
br i1 %44, label %join1.i.i.i.i.i, label %then-block-825-.i.i.i.i
join1.i.i.i.i.i: ; preds = %join.i.i.i.i.i
%.val57.i.i.i.i.i = load i64, i64* %22, align 8, !noalias !76
%45 = trunc i64 %.val57.i.i.i.i.i to i32
%46 = extractelement <4 x i32> %36, i32 1
%47 = icmp eq i32 %45, %46
br i1 %47, label %join3.i.i.i.i.i, label %then-block-825-.i.i.i.i
join3.i.i.i.i.i: ; preds = %join1.i.i.i.i.i
%48 = lshr i64 %.val57.i.i.i.i.i, 32
%49 = trunc i64 %48 to i32
%50 = extractelement <4 x i32> %36, i32 2
%51 = icmp eq i32 %49, %50
br i1 %51, label %join5.i.i.i.i.i, label %then-block-825-.i.i.i.i
join5.i.i.i.i.i: ; preds = %join3.i.i.i.i.i
%.val53.i.i.i.i.i = load i64, i64* %23, align 8, !noalias !76
%52 = trunc i64 %.val53.i.i.i.i.i to i32
%53 = extractelement <4 x i32> %36, i32 3
%54 = icmp eq i32 %52, %53
br i1 %54, label %join7.i.i.i.i.i, label %then-block-825-.i.i.i.i
join7.i.i.i.i.i: ; preds = %join5.i.i.i.i.i
%55 = lshr i64 %.val53.i.i.i.i.i, 32
%56 = trunc i64 %55 to i32
%57 = extractelement <4 x i32> %37, i32 0
%58 = icmp eq i32 %56, %57
br i1 %58, label %join9.i.i.i.i.i, label %then-block-825-.i.i.i.i
join9.i.i.i.i.i: ; preds = %join7.i.i.i.i.i
%.val49.i.i.i.i.i = load i64, i64* %24, align 8, !noalias !76
%59 = trunc i64 %.val49.i.i.i.i.i to i32
%60 = extractelement <4 x i32> %37, i32 1
%61 = icmp eq i32 %59, %60
br i1 %61, label %join11.i.i.i.i.i, label %then-block-825-.i.i.i.i
join11.i.i.i.i.i: ; preds = %join9.i.i.i.i.i
%62 = lshr i64 %.val49.i.i.i.i.i, 32
%63 = trunc i64 %62 to i32
%64 = extractelement <4 x i32> %37, i32 2
%65 = icmp eq i32 %63, %64
br i1 %65, label %join13.i.i.i.i.i, label %then-block-825-.i.i.i.i
join13.i.i.i.i.i: ; preds = %join11.i.i.i.i.i
%.val45.i.i.i.i.i = load i64, i64* %25, align 8, !noalias !76
%66 = trunc i64 %.val45.i.i.i.i.i to i32
%67 = extractelement <4 x i32> %37, i32 3
%68 = icmp eq i32 %66, %67
br i1 %68, label %"_ZN5tuple13_$LT$impl$GT$2eq2eq20h3529837864892923379E.exit.i.i.i.i", label %then-block-825-.i.i.i.i
"_ZN5tuple13_$LT$impl$GT$2eq2eq20h3529837864892923379E.exit.i.i.i.i": ; preds = %join13.i.i.i.i.i
%69 = lshr i64 %.val45.i.i.i.i.i, 32
%70 = trunc i64 %69 to i32
%71 = icmp eq i32 %70, %38
br i1 %71, label %next-block.i.i.i.i, label %then-block-825-.i.i.i.i
then-block-825-.i.i.i.i: ; preds = %"_ZN5tuple13_$LT$impl$GT$2eq2eq20h3529837864892923379E.exit.i.i.i.i", %join13.i.i.i.i.i, %join11.i.i.i.i.i, %join9.i.i.i.i.i, %join7.i.i.i.i.i, %join5.i.i.i.i.i, %join3.i.i.i.i.i, %join1.i.i.i.i.i, %join.i.i.i.i.i, %match_case.i.i.i.i
%72 = bitcast %"2.core::fmt::Arguments"* %2 to i8*
call void @llvm.lifetime.start(i64 48, i8* %72), !noalias !76
%73 = bitcast [2 x %"2.core::fmt::ArgumentV1"]* %3 to i8*
call void @llvm.lifetime.start(i64 32, i8* %73), !noalias !76
%74 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %3, i64 0, i64 0
%75 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %3, i64 0, i64 0, i32 1
store i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* bitcast (i8 ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }*, %"2.core::fmt::Formatter"*)* @"_ZN3fmt13_$LT$impl$GT$3fmt3fmt19h476066522519926309E" to i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)*), i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)** %75, align 8, !alias.scope !81, !noalias !84
%76 = bitcast [2 x %"2.core::fmt::ArgumentV1"]* %3 to { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }**
store { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }** %76, align 8, !alias.scope !81, !noalias !84
%77 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %3, i64 0, i64 1
%78 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %3, i64 0, i64 1, i32 1
store i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* bitcast (i8 ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }*, %"2.core::fmt::Formatter"*)* @"_ZN3fmt13_$LT$impl$GT$3fmt3fmt19h476066522519926309E" to i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)*), i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)** %78, align 8, !alias.scope !86, !noalias !89
%79 = bitcast %"2.core::fmt::ArgumentV1"* %77 to { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }**
store { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }** %79, align 8, !alias.scope !86, !noalias !89
%pieces.sroa.0.0..sroa_idx.i.i.i.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref5046, i64 0, i64 0), %str_slice** %pieces.sroa.0.0..sroa_idx.i.i.i.i.i, align 8, !alias.scope !91, !noalias !94
%pieces.sroa.2.0..sroa_idx2.i.i.i.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 0, i32 1
store i64 3, i64* %pieces.sroa.2.0..sroa_idx2.i.i.i.i.i, align 8, !alias.scope !91, !noalias !94
%80 = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 1
%81 = bitcast %"2.core::option::Option<&'static [core::fmt::rt::v1::Argument]>"* %80 to i8*
call void @llvm.memset.p0i8.i64(i8* %81, i8 0, i64 16, i32 8, i1 false) #1, !alias.scope !91, !noalias !94
%args.sroa.0.0..sroa_idx.i.i.i.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 2, i32 0
store %"2.core::fmt::ArgumentV1"* %74, %"2.core::fmt::ArgumentV1"** %args.sroa.0.0..sroa_idx.i.i.i.i.i, align 8, !alias.scope !91, !noalias !94
%args.sroa.2.0..sroa_idx1.i.i.i.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 2, i32 1
store i64 2, i64* %args.sroa.2.0..sroa_idx1.i.i.i.i.i, align 8, !alias.scope !91, !noalias !94
call void @_ZN10sys_common6unwind16begin_unwind_fmt20h45f40b85e7f7daca6bsE(%"2.core::fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %2, { %str_slice, i32 }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @"_ZN19bench_uninit_struct16_$LT$closure$GT$10_FILE_LINE20hbb8a7ccdee0203e8eoaE" to { %str_slice, i32 }*)), !noalias !76
unreachable
next-block.i.i.i.i: ; preds = %"_ZN5tuple13_$LT$impl$GT$2eq2eq20h3529837864892923379E.exit.i.i.i.i"
call void @llvm.lifetime.end(i64 40, i8* %11), !noalias !76
call void @llvm.lifetime.start(i64 40, i8* %20), !noalias !76
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %20, i8* %10, i64 40, i32 8, i1 false), !noalias !76
call void asm "", "r,~{dirflag},~{fpsr},~{flags}"({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* nonnull %arg.i.i.i.i) #1, !noalias !97, !srcloc !69
call void @llvm.lifetime.end(i64 40, i8* %20) #1, !alias.scope !100, !noalias !97
call void @llvm.lifetime.end(i64 40, i8* %20), !noalias !76
call void @llvm.lifetime.end(i64 40, i8* %10), !noalias !76
%82 = icmp slt i32 %match.sroa.0.0..val.i57.i.i.i.i, %30
%83 = zext i1 %82 to i32
%match.sroa.0.0..val.i5.i.i.i.i = add i32 %83, %match.sroa.0.0..val.i57.i.i.i.i
br i1 %82, label %match_case.i.i.i.i, label %"_ZN19bench_uninit_struct16_$LT$closure$GT$12closure.5050E.exit.i.i.i.loopexit"
"_ZN19bench_uninit_struct16_$LT$closure$GT$12closure.5050E.exit.i.i.i.loopexit": ; preds = %next-block.i.i.i.i
br label %"_ZN19bench_uninit_struct16_$LT$closure$GT$12closure.5050E.exit.i.i.i"
"_ZN19bench_uninit_struct16_$LT$closure$GT$12closure.5050E.exit.i.i.i": ; preds = %"_ZN19bench_uninit_struct16_$LT$closure$GT$12closure.5050E.exit.i.i.i.loopexit", %match_case.i.i.i
call void @llvm.lifetime.start(i64 0, i8* %26), !noalias !76
call void asm "", "r,~{dirflag},~{fpsr},~{flags}"({}* nonnull %dummy.i.i.i.i) #1, !noalias !76, !srcloc !69
call void @llvm.lifetime.end(i64 0, i8* %26), !noalias !76
%84 = icmp ult i64 %29, %arg.idx.val.val.idx.val.i.i
br i1 %84, label %match_case.i.i.i, label %"_ZN13_$LT$impl$GT$4iter4iter21h15582014788276223507E.exit.loopexit"
"_ZN13_$LT$impl$GT$4iter4iter21h15582014788276223507E.exit.loopexit": ; preds = %"_ZN19bench_uninit_struct16_$LT$closure$GT$12closure.5050E.exit.i.i.i"
br label %"_ZN13_$LT$impl$GT$4iter4iter21h15582014788276223507E.exit"
"_ZN13_$LT$impl$GT$4iter4iter21h15582014788276223507E.exit": ; preds = %"_ZN13_$LT$impl$GT$4iter4iter21h15582014788276223507E.exit.loopexit", %entry-block
%85 = call i64 @"_ZN3sys4time5inner13_$LT$impl$GT$3now20h5f02674f74649da6iOwE"(), !noalias !76
%86 = bitcast %"1.std::sys::time::inner::SteadyTime"* %addr_of.i.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %86), !noalias !76
%87 = getelementptr inbounds %"1.std::sys::time::inner::SteadyTime", %"1.std::sys::time::inner::SteadyTime"* %addr_of.i.i, i64 0, i32 0
store i64 %85, i64* %87, align 8, !noalias !76
call void @"_ZN3sys4time5inner13_$LT$impl$GT$3sub20h24527b4d609c46783OwE"(%"1.std::time::duration::Duration"* noalias nocapture nonnull sret dereferenceable(16) %4, %"1.std::sys::time::inner::SteadyTime"* noalias nonnull readonly dereferenceable(8) %addr_of.i.i, %"1.std::sys::time::inner::SteadyTime"* noalias nonnull readonly dereferenceable(8) %start.i.i), !noalias !102
call void @llvm.lifetime.end(i64 8, i8* %86), !noalias !76
call void @llvm.lifetime.end(i64 8, i8* %6), !noalias !76
%88 = getelementptr inbounds %"9.test::Bencher", %"9.test::Bencher"* %0, i64 0, i32 1
%89 = bitcast %"1.std::time::duration::Duration"* %88 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %89, i8* %5, i64 16, i32 8, i1 false)
call void @llvm.lifetime.end(i64 16, i8* %5), !noalias !73
ret void
}
; Function Attrs: noinline nounwind uwtable
define internal fastcc void @_ZN7do_init20h35eb6ebb9ff7d399toaE({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* noalias nocapture dereferenceable(40), i32) unnamed_addr #5 {
entry-block:
br label %loop_body
loop_body: ; preds = %loop_body.backedge, %entry-block
%state.0 = phi i8 [ 0, %entry-block ], [ %state.0.be, %loop_body.backedge ]
%x0.0 = phi i32 [ 0, %entry-block ], [ %x0.0.be, %loop_body.backedge ]
%x1.0 = phi i32 [ 0, %entry-block ], [ %x1.0.be, %loop_body.backedge ]
%x2.0 = phi i32 [ 0, %entry-block ], [ %x2.0.be, %loop_body.backedge ]
%x3.0 = phi i32 [ 0, %entry-block ], [ %x3.0.be, %loop_body.backedge ]
%x4.0 = phi i32 [ 0, %entry-block ], [ %x4.0.be, %loop_body.backedge ]
%x5.0 = phi i32 [ 0, %entry-block ], [ %x5.0.be, %loop_body.backedge ]
%x6.0 = phi i32 [ 0, %entry-block ], [ %x6.0.be, %loop_body.backedge ]
%x7.0 = phi i32 [ 0, %entry-block ], [ %x7.0.be, %loop_body.backedge ]
%x8.0 = phi i32 [ 0, %entry-block ], [ %x8.0.be, %loop_body.backedge ]
%j.0 = phi i32 [ 0, %entry-block ], [ %j.0.be, %loop_body.backedge ]
switch i8 %state.0, label %match_else [
i8 0, label %match_case
i8 1, label %match_case10
i8 2, label %match_case11
i8 3, label %match_case12
i8 4, label %match_case13
i8 5, label %match_case14
i8 6, label %match_case15
i8 7, label %match_case16
i8 8, label %match_case17
i8 9, label %match_case18
]
match_else: ; preds = %loop_body
unreachable
match_case: ; preds = %loop_body
%2 = add i32 %j.0, %1
br label %loop_body.backedge
match_case10: ; preds = %loop_body
%3 = add i32 %j.0, %1
br label %loop_body.backedge
match_case11: ; preds = %loop_body
%4 = add i32 %j.0, %1
br label %loop_body.backedge
match_case12: ; preds = %loop_body
%5 = add i32 %j.0, %1
br label %loop_body.backedge
match_case13: ; preds = %loop_body
%6 = add i32 %j.0, %1
br label %loop_body.backedge
match_case14: ; preds = %loop_body
%7 = add i32 %j.0, %1
br label %loop_body.backedge
match_case15: ; preds = %loop_body
%8 = add i32 %j.0, %1
br label %loop_body.backedge
match_case16: ; preds = %loop_body
%9 = add i32 %j.0, %1
br label %loop_body.backedge
match_case17: ; preds = %loop_body
%10 = add i32 %j.0, %1
br label %loop_body.backedge
loop_body.backedge: ; preds = %match_case17, %match_case16, %match_case15, %match_case14, %match_case13, %match_case12, %match_case11, %match_case10, %match_case
%state.0.be = phi i8 [ 9, %match_case17 ], [ 8, %match_case16 ], [ 7, %match_case15 ], [ 6, %match_case14 ], [ 5, %match_case13 ], [ 4, %match_case12 ], [ 3, %match_case11 ], [ 2, %match_case10 ], [ 1, %match_case ]
%x0.0.be = phi i32 [ %x0.0, %match_case17 ], [ %x0.0, %match_case16 ], [ %x0.0, %match_case15 ], [ %x0.0, %match_case14 ], [ %x0.0, %match_case13 ], [ %x0.0, %match_case12 ], [ %x0.0, %match_case11 ], [ %x0.0, %match_case10 ], [ %2, %match_case ]
%x1.0.be = phi i32 [ %x1.0, %match_case17 ], [ %x1.0, %match_case16 ], [ %x1.0, %match_case15 ], [ %x1.0, %match_case14 ], [ %x1.0, %match_case13 ], [ %x1.0, %match_case12 ], [ %x1.0, %match_case11 ], [ %3, %match_case10 ], [ %x1.0, %match_case ]
%x2.0.be = phi i32 [ %x2.0, %match_case17 ], [ %x2.0, %match_case16 ], [ %x2.0, %match_case15 ], [ %x2.0, %match_case14 ], [ %x2.0, %match_case13 ], [ %x2.0, %match_case12 ], [ %4, %match_case11 ], [ %x2.0, %match_case10 ], [ %x2.0, %match_case ]
%x3.0.be = phi i32 [ %x3.0, %match_case17 ], [ %x3.0, %match_case16 ], [ %x3.0, %match_case15 ], [ %x3.0, %match_case14 ], [ %x3.0, %match_case13 ], [ %5, %match_case12 ], [ %x3.0, %match_case11 ], [ %x3.0, %match_case10 ], [ %x3.0, %match_case ]
%x4.0.be = phi i32 [ %x4.0, %match_case17 ], [ %x4.0, %match_case16 ], [ %x4.0, %match_case15 ], [ %x4.0, %match_case14 ], [ %6, %match_case13 ], [ %x4.0, %match_case12 ], [ %x4.0, %match_case11 ], [ %x4.0, %match_case10 ], [ %x4.0, %match_case ]
%x5.0.be = phi i32 [ %x5.0, %match_case17 ], [ %x5.0, %match_case16 ], [ %x5.0, %match_case15 ], [ %7, %match_case14 ], [ %x5.0, %match_case13 ], [ %x5.0, %match_case12 ], [ %x5.0, %match_case11 ], [ %x5.0, %match_case10 ], [ %x5.0, %match_case ]
%x6.0.be = phi i32 [ %x6.0, %match_case17 ], [ %x6.0, %match_case16 ], [ %8, %match_case15 ], [ %x6.0, %match_case14 ], [ %x6.0, %match_case13 ], [ %x6.0, %match_case12 ], [ %x6.0, %match_case11 ], [ %x6.0, %match_case10 ], [ %x6.0, %match_case ]
%x7.0.be = phi i32 [ %x7.0, %match_case17 ], [ %9, %match_case16 ], [ %x7.0, %match_case15 ], [ %x7.0, %match_case14 ], [ %x7.0, %match_case13 ], [ %x7.0, %match_case12 ], [ %x7.0, %match_case11 ], [ %x7.0, %match_case10 ], [ %x7.0, %match_case ]
%x8.0.be = phi i32 [ %10, %match_case17 ], [ %x8.0, %match_case16 ], [ %x8.0, %match_case15 ], [ %x8.0, %match_case14 ], [ %x8.0, %match_case13 ], [ %x8.0, %match_case12 ], [ %x8.0, %match_case11 ], [ %x8.0, %match_case10 ], [ %x8.0, %match_case ]
%j.0.be = add i32 %j.0, 1
br label %loop_body
match_case18: ; preds = %loop_body
%j.0.lcssa116 = phi i32 [ %j.0, %loop_body ]
%x8.0.lcssa115 = phi i32 [ %x8.0, %loop_body ]
%x7.0.lcssa114 = phi i32 [ %x7.0, %loop_body ]
%x6.0.lcssa113 = phi i32 [ %x6.0, %loop_body ]
%x5.0.lcssa112 = phi i32 [ %x5.0, %loop_body ]
%x4.0.lcssa111 = phi i32 [ %x4.0, %loop_body ]
%x3.0.lcssa110 = phi i32 [ %x3.0, %loop_body ]
%x2.0.lcssa109 = phi i32 [ %x2.0, %loop_body ]
%x1.0.lcssa108 = phi i32 [ %x1.0, %loop_body ]
%x0.0.lcssa107 = phi i32 [ %x0.0, %loop_body ]
%11 = add i32 %j.0.lcssa116, %1
%12 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 0
store i32 %x0.0.lcssa107, i32* %12, align 4
%13 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 1
store i32 %x1.0.lcssa108, i32* %13, align 4
%14 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 2
store i32 %x2.0.lcssa109, i32* %14, align 4
%15 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 3
store i32 %x3.0.lcssa110, i32* %15, align 4
%16 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 4
store i32 %x4.0.lcssa111, i32* %16, align 4
%17 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 5
store i32 %x5.0.lcssa112, i32* %17, align 4
%18 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 6
store i32 %x6.0.lcssa113, i32* %18, align 4
%19 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 7
store i32 %x7.0.lcssa114, i32* %19, align 4
%20 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 8
store i32 %x8.0.lcssa115, i32* %20, align 4
%21 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 9
store i32 %11, i32* %21, align 4
ret void
}
; Function Attrs: uwtable
define internal void @_ZN10bench_init20hb040779420847534psaE(%"9.test::Bencher"* noalias nocapture dereferenceable(32)) unnamed_addr #0 {
entry-block:
%dummy.i.i.i.i = alloca {}, align 8
%tuple.i.i.i.i = alloca { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, align 8
%1 = alloca { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, align 8
%2 = alloca %"2.core::fmt::Arguments", align 8
%3 = alloca [2 x %"2.core::fmt::ArgumentV1"], align 8
%arg.i.i.i.i = alloca { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, align 8
%start.i.i = alloca %"1.std::sys::time::inner::SteadyTime", align 8
%addr_of.i.i = alloca %"1.std::sys::time::inner::SteadyTime", align 8
%4 = alloca %"1.std::time::duration::Duration", align 8
%5 = bitcast %"1.std::time::duration::Duration"* %4 to i8*
call void @llvm.lifetime.start(i64 16, i8* %5), !noalias !103
%6 = bitcast %"1.std::sys::time::inner::SteadyTime"* %start.i.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %6), !noalias !106
%7 = tail call i64 @"_ZN3sys4time5inner13_$LT$impl$GT$3now20h5f02674f74649da6iOwE"(), !noalias !106
%8 = getelementptr inbounds %"1.std::sys::time::inner::SteadyTime", %"1.std::sys::time::inner::SteadyTime"* %start.i.i, i64 0, i32 0
store i64 %7, i64* %8, align 8, !noalias !106
%arg.idx.val.val.idx.i.i = getelementptr %"9.test::Bencher", %"9.test::Bencher"* %0, i64 0, i32 0
%arg.idx.val.val.idx.val.i.i = load i64, i64* %arg.idx.val.val.idx.i.i, align 8, !alias.scope !103, !noalias !110
%9 = icmp eq i64 %arg.idx.val.val.idx.val.i.i, 0
br i1 %9, label %"_ZN13_$LT$impl$GT$4iter4iter21h17249299547374717818E.exit", label %match_case.lr.ph.i.i.i
match_case.lr.ph.i.i.i: ; preds = %entry-block
%10 = bitcast { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i to i8*
%11 = bitcast { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1 to i8*
%12 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, i64 0, i32 0
%13 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, i64 0, i32 1
%14 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, i64 0, i32 5
%15 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, i64 0, i32 9
%16 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, i64 0, i32 2
%17 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, i64 0, i32 4
%18 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, i64 0, i32 6
%19 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, i64 0, i32 8
%20 = bitcast { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %arg.i.i.i.i to i8*
%21 = bitcast { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i to i64*
%22 = bitcast i32* %16 to i64*
%23 = bitcast i32* %17 to i64*
%24 = bitcast i32* %18 to i64*
%25 = bitcast i32* %19 to i64*
%26 = bitcast {}* %dummy.i.i.i.i to i8*
%27 = bitcast i32* %13 to <4 x i32>*
%28 = bitcast i32* %14 to <4 x i32>*
br label %match_case.i.i.i
match_case.i.i.i: ; preds = %"_ZN10bench_init16_$LT$closure$GT$12closure.5055E.exit.i.i.i", %match_case.lr.ph.i.i.i
%.sroa.011.0..val.i1722.i.i.i = phi i64 [ 0, %match_case.lr.ph.i.i.i ], [ %29, %"_ZN10bench_init16_$LT$closure$GT$12closure.5055E.exit.i.i.i" ]
%29 = add nuw i64 %.sroa.011.0..val.i1722.i.i.i, 1
%30 = call fastcc i32 @_ZN5range20he72cc40c9292b713uaaE(), !noalias !106
%31 = icmp sgt i32 %30, 0
br i1 %31, label %match_case.i.i.i.i.preheader, label %"_ZN10bench_init16_$LT$closure$GT$12closure.5055E.exit.i.i.i"
match_case.i.i.i.i.preheader: ; preds = %match_case.i.i.i
br label %match_case.i.i.i.i
match_case.i.i.i.i: ; preds = %match_case.i.i.i.i.preheader, %next-block.i.i.i.i
%match1.sroa.5.0.extract.trunc8.i.i.i.i = phi i32 [ %match.sroa.0.0..val.i57.i.i.i.i, %next-block.i.i.i.i ], [ 0, %match_case.i.i.i.i.preheader ]
%match.sroa.0.0..val.i57.i.i.i.i = phi i32 [ %match.sroa.0.0..val.i5.i.i.i.i, %next-block.i.i.i.i ], [ 1, %match_case.i.i.i.i.preheader ]
call void @llvm.lifetime.start(i64 40, i8* %10), !noalias !106
call fastcc void @_ZN7do_init20h35eb6ebb9ff7d399toaE({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* noalias nocapture nonnull dereferenceable(40) %tuple.i.i.i.i, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i), !noalias !106
call void @llvm.lifetime.start(i64 40, i8* %11), !noalias !106
store i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32* %12, align 8, !noalias !106
%32 = insertelement <4 x i32> undef, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32 0
%33 = insertelement <4 x i32> %32, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32 1
%34 = insertelement <4 x i32> %33, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32 2
%35 = insertelement <4 x i32> %34, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32 3
%36 = add <4 x i32> %35, <i32 1, i32 2, i32 3, i32 4>
store <4 x i32> %36, <4 x i32>* %27, align 4, !noalias !106
%37 = add <4 x i32> %35, <i32 5, i32 6, i32 7, i32 8>
store <4 x i32> %37, <4 x i32>* %28, align 4, !noalias !106
%38 = add i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, 9
store i32 %38, i32* %15, align 4, !noalias !106
%.val61.i.i.i.i.i = load i64, i64* %21, align 8, !noalias !106
%39 = trunc i64 %.val61.i.i.i.i.i to i32
%40 = icmp eq i32 %39, %match1.sroa.5.0.extract.trunc8.i.i.i.i
br i1 %40, label %join.i.i.i.i.i, label %then-block-1211-.i.i.i.i
join.i.i.i.i.i: ; preds = %match_case.i.i.i.i
%41 = lshr i64 %.val61.i.i.i.i.i, 32
%42 = trunc i64 %41 to i32
%43 = extractelement <4 x i32> %36, i32 0
%44 = icmp eq i32 %42, %43
br i1 %44, label %join1.i.i.i.i.i, label %then-block-1211-.i.i.i.i
join1.i.i.i.i.i: ; preds = %join.i.i.i.i.i
%.val57.i.i.i.i.i = load i64, i64* %22, align 8, !noalias !106
%45 = trunc i64 %.val57.i.i.i.i.i to i32
%46 = extractelement <4 x i32> %36, i32 1
%47 = icmp eq i32 %45, %46
br i1 %47, label %join3.i.i.i.i.i, label %then-block-1211-.i.i.i.i
join3.i.i.i.i.i: ; preds = %join1.i.i.i.i.i
%48 = lshr i64 %.val57.i.i.i.i.i, 32
%49 = trunc i64 %48 to i32
%50 = extractelement <4 x i32> %36, i32 2
%51 = icmp eq i32 %49, %50
br i1 %51, label %join5.i.i.i.i.i, label %then-block-1211-.i.i.i.i
join5.i.i.i.i.i: ; preds = %join3.i.i.i.i.i
%.val53.i.i.i.i.i = load i64, i64* %23, align 8, !noalias !106
%52 = trunc i64 %.val53.i.i.i.i.i to i32
%53 = extractelement <4 x i32> %36, i32 3
%54 = icmp eq i32 %52, %53
br i1 %54, label %join7.i.i.i.i.i, label %then-block-1211-.i.i.i.i
join7.i.i.i.i.i: ; preds = %join5.i.i.i.i.i
%55 = lshr i64 %.val53.i.i.i.i.i, 32
%56 = trunc i64 %55 to i32
%57 = extractelement <4 x i32> %37, i32 0
%58 = icmp eq i32 %56, %57
br i1 %58, label %join9.i.i.i.i.i, label %then-block-1211-.i.i.i.i
join9.i.i.i.i.i: ; preds = %join7.i.i.i.i.i
%.val49.i.i.i.i.i = load i64, i64* %24, align 8, !noalias !106
%59 = trunc i64 %.val49.i.i.i.i.i to i32
%60 = extractelement <4 x i32> %37, i32 1
%61 = icmp eq i32 %59, %60
br i1 %61, label %join11.i.i.i.i.i, label %then-block-1211-.i.i.i.i
join11.i.i.i.i.i: ; preds = %join9.i.i.i.i.i
%62 = lshr i64 %.val49.i.i.i.i.i, 32
%63 = trunc i64 %62 to i32
%64 = extractelement <4 x i32> %37, i32 2
%65 = icmp eq i32 %63, %64
br i1 %65, label %join13.i.i.i.i.i, label %then-block-1211-.i.i.i.i
join13.i.i.i.i.i: ; preds = %join11.i.i.i.i.i
%.val45.i.i.i.i.i = load i64, i64* %25, align 8, !noalias !106
%66 = trunc i64 %.val45.i.i.i.i.i to i32
%67 = extractelement <4 x i32> %37, i32 3
%68 = icmp eq i32 %66, %67
br i1 %68, label %"_ZN5tuple13_$LT$impl$GT$2eq2eq20h3529837864892923379E.exit.i.i.i.i", label %then-block-1211-.i.i.i.i
"_ZN5tuple13_$LT$impl$GT$2eq2eq20h3529837864892923379E.exit.i.i.i.i": ; preds = %join13.i.i.i.i.i
%69 = lshr i64 %.val45.i.i.i.i.i, 32
%70 = trunc i64 %69 to i32
%71 = icmp eq i32 %70, %38
br i1 %71, label %next-block.i.i.i.i, label %then-block-1211-.i.i.i.i
then-block-1211-.i.i.i.i: ; preds = %"_ZN5tuple13_$LT$impl$GT$2eq2eq20h3529837864892923379E.exit.i.i.i.i", %join13.i.i.i.i.i, %join11.i.i.i.i.i, %join9.i.i.i.i.i, %join7.i.i.i.i.i, %join5.i.i.i.i.i, %join3.i.i.i.i.i, %join1.i.i.i.i.i, %join.i.i.i.i.i, %match_case.i.i.i.i
%72 = bitcast %"2.core::fmt::Arguments"* %2 to i8*
call void @llvm.lifetime.start(i64 48, i8* %72), !noalias !106
%73 = bitcast [2 x %"2.core::fmt::ArgumentV1"]* %3 to i8*
call void @llvm.lifetime.start(i64 32, i8* %73), !noalias !106
%74 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %3, i64 0, i64 0
%75 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %3, i64 0, i64 0, i32 1
store i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* bitcast (i8 ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }*, %"2.core::fmt::Formatter"*)* @"_ZN3fmt13_$LT$impl$GT$3fmt3fmt19h476066522519926309E" to i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)*), i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)** %75, align 8, !alias.scope !111, !noalias !114
%76 = bitcast [2 x %"2.core::fmt::ArgumentV1"]* %3 to { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }**
store { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }** %76, align 8, !alias.scope !111, !noalias !114
%77 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %3, i64 0, i64 1
%78 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %3, i64 0, i64 1, i32 1
store i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* bitcast (i8 ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }*, %"2.core::fmt::Formatter"*)* @"_ZN3fmt13_$LT$impl$GT$3fmt3fmt19h476066522519926309E" to i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)*), i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)** %78, align 8, !alias.scope !116, !noalias !119
%79 = bitcast %"2.core::fmt::ArgumentV1"* %77 to { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }**
store { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }** %79, align 8, !alias.scope !116, !noalias !119
%pieces.sroa.0.0..sroa_idx.i.i.i.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref5046, i64 0, i64 0), %str_slice** %pieces.sroa.0.0..sroa_idx.i.i.i.i.i, align 8, !alias.scope !121, !noalias !124
%pieces.sroa.2.0..sroa_idx2.i.i.i.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 0, i32 1
store i64 3, i64* %pieces.sroa.2.0..sroa_idx2.i.i.i.i.i, align 8, !alias.scope !121, !noalias !124
%80 = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 1
%81 = bitcast %"2.core::option::Option<&'static [core::fmt::rt::v1::Argument]>"* %80 to i8*
call void @llvm.memset.p0i8.i64(i8* %81, i8 0, i64 16, i32 8, i1 false) #1, !alias.scope !121, !noalias !124
%args.sroa.0.0..sroa_idx.i.i.i.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 2, i32 0
store %"2.core::fmt::ArgumentV1"* %74, %"2.core::fmt::ArgumentV1"** %args.sroa.0.0..sroa_idx.i.i.i.i.i, align 8, !alias.scope !121, !noalias !124
%args.sroa.2.0..sroa_idx1.i.i.i.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 2, i32 1
store i64 2, i64* %args.sroa.2.0..sroa_idx1.i.i.i.i.i, align 8, !alias.scope !121, !noalias !124
call void @_ZN10sys_common6unwind16begin_unwind_fmt20h45f40b85e7f7daca6bsE(%"2.core::fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %2, { %str_slice, i32 }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @"_ZN10bench_init16_$LT$closure$GT$10_FILE_LINE20hbb8a7ccdee0203e8suaE" to { %str_slice, i32 }*)), !noalias !106
unreachable
next-block.i.i.i.i: ; preds = %"_ZN5tuple13_$LT$impl$GT$2eq2eq20h3529837864892923379E.exit.i.i.i.i"
call void @llvm.lifetime.end(i64 40, i8* %11), !noalias !106
call void @llvm.lifetime.start(i64 40, i8* %20), !noalias !106
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %20, i8* %10, i64 40, i32 8, i1 false), !noalias !106
call void asm "", "r,~{dirflag},~{fpsr},~{flags}"({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* nonnull %arg.i.i.i.i) #1, !noalias !127, !srcloc !69
call void @llvm.lifetime.end(i64 40, i8* %20) #1, !alias.scope !130, !noalias !127
call void @llvm.lifetime.end(i64 40, i8* %20), !noalias !106
call void @llvm.lifetime.end(i64 40, i8* %10), !noalias !106
%82 = icmp slt i32 %match.sroa.0.0..val.i57.i.i.i.i, %30
%83 = zext i1 %82 to i32
%match.sroa.0.0..val.i5.i.i.i.i = add i32 %83, %match.sroa.0.0..val.i57.i.i.i.i
br i1 %82, label %match_case.i.i.i.i, label %"_ZN10bench_init16_$LT$closure$GT$12closure.5055E.exit.i.i.i.loopexit"
"_ZN10bench_init16_$LT$closure$GT$12closure.5055E.exit.i.i.i.loopexit": ; preds = %next-block.i.i.i.i
br label %"_ZN10bench_init16_$LT$closure$GT$12closure.5055E.exit.i.i.i"
"_ZN10bench_init16_$LT$closure$GT$12closure.5055E.exit.i.i.i": ; preds = %"_ZN10bench_init16_$LT$closure$GT$12closure.5055E.exit.i.i.i.loopexit", %match_case.i.i.i
call void @llvm.lifetime.start(i64 0, i8* %26), !noalias !106
call void asm "", "r,~{dirflag},~{fpsr},~{flags}"({}* nonnull %dummy.i.i.i.i) #1, !noalias !106, !srcloc !69
call void @llvm.lifetime.end(i64 0, i8* %26), !noalias !106
%84 = icmp ult i64 %29, %arg.idx.val.val.idx.val.i.i
br i1 %84, label %match_case.i.i.i, label %"_ZN13_$LT$impl$GT$4iter4iter21h17249299547374717818E.exit.loopexit"
"_ZN13_$LT$impl$GT$4iter4iter21h17249299547374717818E.exit.loopexit": ; preds = %"_ZN10bench_init16_$LT$closure$GT$12closure.5055E.exit.i.i.i"
br label %"_ZN13_$LT$impl$GT$4iter4iter21h17249299547374717818E.exit"
"_ZN13_$LT$impl$GT$4iter4iter21h17249299547374717818E.exit": ; preds = %"_ZN13_$LT$impl$GT$4iter4iter21h17249299547374717818E.exit.loopexit", %entry-block
%85 = call i64 @"_ZN3sys4time5inner13_$LT$impl$GT$3now20h5f02674f74649da6iOwE"(), !noalias !106
%86 = bitcast %"1.std::sys::time::inner::SteadyTime"* %addr_of.i.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %86), !noalias !106
%87 = getelementptr inbounds %"1.std::sys::time::inner::SteadyTime", %"1.std::sys::time::inner::SteadyTime"* %addr_of.i.i, i64 0, i32 0
store i64 %85, i64* %87, align 8, !noalias !106
call void @"_ZN3sys4time5inner13_$LT$impl$GT$3sub20h24527b4d609c46783OwE"(%"1.std::time::duration::Duration"* noalias nocapture nonnull sret dereferenceable(16) %4, %"1.std::sys::time::inner::SteadyTime"* noalias nonnull readonly dereferenceable(8) %addr_of.i.i, %"1.std::sys::time::inner::SteadyTime"* noalias nonnull readonly dereferenceable(8) %start.i.i), !noalias !132
call void @llvm.lifetime.end(i64 8, i8* %86), !noalias !106
call void @llvm.lifetime.end(i64 8, i8* %6), !noalias !106
%88 = getelementptr inbounds %"9.test::Bencher", %"9.test::Bencher"* %0, i64 0, i32 1
%89 = bitcast %"1.std::time::duration::Duration"* %88 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %89, i8* %5, i64 16, i32 8, i1 false)
call void @llvm.lifetime.end(i64 16, i8* %5), !noalias !103
ret void
}
; Function Attrs: noinline uwtable
define internal fastcc void @_ZN9do_option20h46206f6f73398794HuaE({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* noalias nocapture dereferenceable(40), i32) unnamed_addr #7 {
entry-block:
br label %loop_body
loop_body: ; preds = %loop_body.backedge, %entry-block
%j.0 = phi i32 [ 0, %entry-block ], [ %j.0.be, %loop_body.backedge ]
%x8.sroa.0.0 = phi i64 [ 0, %entry-block ], [ %x8.sroa.0.0.be, %loop_body.backedge ]
%x7.sroa.0.0 = phi i64 [ 0, %entry-block ], [ %x7.sroa.0.0.be, %loop_body.backedge ]
%x6.sroa.0.0 = phi i64 [ 0, %entry-block ], [ %x6.sroa.0.0.be, %loop_body.backedge ]
%x5.sroa.0.0 = phi i64 [ 0, %entry-block ], [ %x5.sroa.0.0.be, %loop_body.backedge ]
%x4.sroa.0.0 = phi i64 [ 0, %entry-block ], [ %x4.sroa.0.0.be, %loop_body.backedge ]
%x3.sroa.0.0 = phi i64 [ 0, %entry-block ], [ %x3.sroa.0.0.be, %loop_body.backedge ]
%x2.sroa.0.0 = phi i64 [ 0, %entry-block ], [ %x2.sroa.0.0.be, %loop_body.backedge ]
%x1.sroa.0.0 = phi i64 [ 0, %entry-block ], [ %x1.sroa.0.0.be, %loop_body.backedge ]
%x0.sroa.0.0 = phi i64 [ 0, %entry-block ], [ %x0.sroa.0.0.be, %loop_body.backedge ]
%state.0 = phi i8 [ 0, %entry-block ], [ %state.0.be, %loop_body.backedge ]
switch i8 %state.0, label %match_else [
i8 0, label %match_case
i8 1, label %match_case10
i8 2, label %match_case11
i8 3, label %match_case12
i8 4, label %match_case13
i8 5, label %match_case14
i8 6, label %match_case15
i8 7, label %match_case16
i8 8, label %match_case17
i8 9, label %match_case18
]
match_else: ; preds = %loop_body
unreachable
match_case: ; preds = %loop_body
%2 = add i32 %j.0, %1
%.sroa.4120.0.insert.ext = zext i32 %2 to i64
%.sroa.4120.0.insert.shift = shl nuw i64 %.sroa.4120.0.insert.ext, 32
%.sroa.0118.0.insert.insert = or i64 %.sroa.4120.0.insert.shift, 1
br label %loop_body.backedge
match_case10: ; preds = %loop_body
%3 = add i32 %j.0, %1
%.sroa.4116.0.insert.ext = zext i32 %3 to i64
%.sroa.4116.0.insert.shift = shl nuw i64 %.sroa.4116.0.insert.ext, 32
%.sroa.0114.0.insert.insert = or i64 %.sroa.4116.0.insert.shift, 1
br label %loop_body.backedge
match_case11: ; preds = %loop_body
%4 = add i32 %j.0, %1
%.sroa.4112.0.insert.ext = zext i32 %4 to i64
%.sroa.4112.0.insert.shift = shl nuw i64 %.sroa.4112.0.insert.ext, 32
%.sroa.0110.0.insert.insert = or i64 %.sroa.4112.0.insert.shift, 1
br label %loop_body.backedge
match_case12: ; preds = %loop_body
%5 = add i32 %j.0, %1
%.sroa.4108.0.insert.ext = zext i32 %5 to i64
%.sroa.4108.0.insert.shift = shl nuw i64 %.sroa.4108.0.insert.ext, 32
%.sroa.0106.0.insert.insert = or i64 %.sroa.4108.0.insert.shift, 1
br label %loop_body.backedge
match_case13: ; preds = %loop_body
%6 = add i32 %j.0, %1
%.sroa.4104.0.insert.ext = zext i32 %6 to i64
%.sroa.4104.0.insert.shift = shl nuw i64 %.sroa.4104.0.insert.ext, 32
%.sroa.0102.0.insert.insert = or i64 %.sroa.4104.0.insert.shift, 1
br label %loop_body.backedge
match_case14: ; preds = %loop_body
%7 = add i32 %j.0, %1
%.sroa.4100.0.insert.ext = zext i32 %7 to i64
%.sroa.4100.0.insert.shift = shl nuw i64 %.sroa.4100.0.insert.ext, 32
%.sroa.098.0.insert.insert = or i64 %.sroa.4100.0.insert.shift, 1
br label %loop_body.backedge
match_case15: ; preds = %loop_body
%8 = add i32 %j.0, %1
%.sroa.496.0.insert.ext = zext i32 %8 to i64
%.sroa.496.0.insert.shift = shl nuw i64 %.sroa.496.0.insert.ext, 32
%.sroa.094.0.insert.insert = or i64 %.sroa.496.0.insert.shift, 1
br label %loop_body.backedge
match_case16: ; preds = %loop_body
%9 = add i32 %j.0, %1
%.sroa.492.0.insert.ext = zext i32 %9 to i64
%.sroa.492.0.insert.shift = shl nuw i64 %.sroa.492.0.insert.ext, 32
%.sroa.090.0.insert.insert = or i64 %.sroa.492.0.insert.shift, 1
br label %loop_body.backedge
match_case17: ; preds = %loop_body
%10 = add i32 %j.0, %1
%.sroa.4.0.insert.ext = zext i32 %10 to i64
%.sroa.4.0.insert.shift = shl nuw i64 %.sroa.4.0.insert.ext, 32
%.sroa.0.0.insert.insert = or i64 %.sroa.4.0.insert.shift, 1
br label %loop_body.backedge
loop_body.backedge: ; preds = %match_case17, %match_case16, %match_case15, %match_case14, %match_case13, %match_case12, %match_case11, %match_case10, %match_case
%x8.sroa.0.0.be = phi i64 [ %.sroa.0.0.insert.insert, %match_case17 ], [ %x8.sroa.0.0, %match_case16 ], [ %x8.sroa.0.0, %match_case15 ], [ %x8.sroa.0.0, %match_case14 ], [ %x8.sroa.0.0, %match_case13 ], [ %x8.sroa.0.0, %match_case12 ], [ %x8.sroa.0.0, %match_case11 ], [ %x8.sroa.0.0, %match_case10 ], [ %x8.sroa.0.0, %match_case ]
%x7.sroa.0.0.be = phi i64 [ %x7.sroa.0.0, %match_case17 ], [ %.sroa.090.0.insert.insert, %match_case16 ], [ %x7.sroa.0.0, %match_case15 ], [ %x7.sroa.0.0, %match_case14 ], [ %x7.sroa.0.0, %match_case13 ], [ %x7.sroa.0.0, %match_case12 ], [ %x7.sroa.0.0, %match_case11 ], [ %x7.sroa.0.0, %match_case10 ], [ %x7.sroa.0.0, %match_case ]
%x6.sroa.0.0.be = phi i64 [ %x6.sroa.0.0, %match_case17 ], [ %x6.sroa.0.0, %match_case16 ], [ %.sroa.094.0.insert.insert, %match_case15 ], [ %x6.sroa.0.0, %match_case14 ], [ %x6.sroa.0.0, %match_case13 ], [ %x6.sroa.0.0, %match_case12 ], [ %x6.sroa.0.0, %match_case11 ], [ %x6.sroa.0.0, %match_case10 ], [ %x6.sroa.0.0, %match_case ]
%x5.sroa.0.0.be = phi i64 [ %x5.sroa.0.0, %match_case17 ], [ %x5.sroa.0.0, %match_case16 ], [ %x5.sroa.0.0, %match_case15 ], [ %.sroa.098.0.insert.insert, %match_case14 ], [ %x5.sroa.0.0, %match_case13 ], [ %x5.sroa.0.0, %match_case12 ], [ %x5.sroa.0.0, %match_case11 ], [ %x5.sroa.0.0, %match_case10 ], [ %x5.sroa.0.0, %match_case ]
%x4.sroa.0.0.be = phi i64 [ %x4.sroa.0.0, %match_case17 ], [ %x4.sroa.0.0, %match_case16 ], [ %x4.sroa.0.0, %match_case15 ], [ %x4.sroa.0.0, %match_case14 ], [ %.sroa.0102.0.insert.insert, %match_case13 ], [ %x4.sroa.0.0, %match_case12 ], [ %x4.sroa.0.0, %match_case11 ], [ %x4.sroa.0.0, %match_case10 ], [ %x4.sroa.0.0, %match_case ]
%x3.sroa.0.0.be = phi i64 [ %x3.sroa.0.0, %match_case17 ], [ %x3.sroa.0.0, %match_case16 ], [ %x3.sroa.0.0, %match_case15 ], [ %x3.sroa.0.0, %match_case14 ], [ %x3.sroa.0.0, %match_case13 ], [ %.sroa.0106.0.insert.insert, %match_case12 ], [ %x3.sroa.0.0, %match_case11 ], [ %x3.sroa.0.0, %match_case10 ], [ %x3.sroa.0.0, %match_case ]
%x2.sroa.0.0.be = phi i64 [ %x2.sroa.0.0, %match_case17 ], [ %x2.sroa.0.0, %match_case16 ], [ %x2.sroa.0.0, %match_case15 ], [ %x2.sroa.0.0, %match_case14 ], [ %x2.sroa.0.0, %match_case13 ], [ %x2.sroa.0.0, %match_case12 ], [ %.sroa.0110.0.insert.insert, %match_case11 ], [ %x2.sroa.0.0, %match_case10 ], [ %x2.sroa.0.0, %match_case ]
%x1.sroa.0.0.be = phi i64 [ %x1.sroa.0.0, %match_case17 ], [ %x1.sroa.0.0, %match_case16 ], [ %x1.sroa.0.0, %match_case15 ], [ %x1.sroa.0.0, %match_case14 ], [ %x1.sroa.0.0, %match_case13 ], [ %x1.sroa.0.0, %match_case12 ], [ %x1.sroa.0.0, %match_case11 ], [ %.sroa.0114.0.insert.insert, %match_case10 ], [ %x1.sroa.0.0, %match_case ]
%x0.sroa.0.0.be = phi i64 [ %x0.sroa.0.0, %match_case17 ], [ %x0.sroa.0.0, %match_case16 ], [ %x0.sroa.0.0, %match_case15 ], [ %x0.sroa.0.0, %match_case14 ], [ %x0.sroa.0.0, %match_case13 ], [ %x0.sroa.0.0, %match_case12 ], [ %x0.sroa.0.0, %match_case11 ], [ %x0.sroa.0.0, %match_case10 ], [ %.sroa.0118.0.insert.insert, %match_case ]
%state.0.be = phi i8 [ 9, %match_case17 ], [ 8, %match_case16 ], [ 7, %match_case15 ], [ 6, %match_case14 ], [ 5, %match_case13 ], [ 4, %match_case12 ], [ 3, %match_case11 ], [ 2, %match_case10 ], [ 1, %match_case ]
%j.0.be = add i32 %j.0, 1
br label %loop_body
match_case18: ; preds = %loop_body
%x0.sroa.0.0.lcssa273 = phi i64 [ %x0.sroa.0.0, %loop_body ]
%x1.sroa.0.0.lcssa272 = phi i64 [ %x1.sroa.0.0, %loop_body ]
%x2.sroa.0.0.lcssa271 = phi i64 [ %x2.sroa.0.0, %loop_body ]
%x3.sroa.0.0.lcssa270 = phi i64 [ %x3.sroa.0.0, %loop_body ]
%x4.sroa.0.0.lcssa269 = phi i64 [ %x4.sroa.0.0, %loop_body ]
%x5.sroa.0.0.lcssa268 = phi i64 [ %x5.sroa.0.0, %loop_body ]
%x6.sroa.0.0.lcssa267 = phi i64 [ %x6.sroa.0.0, %loop_body ]
%x7.sroa.0.0.lcssa266 = phi i64 [ %x7.sroa.0.0, %loop_body ]
%x8.sroa.0.0.lcssa265 = phi i64 [ %x8.sroa.0.0, %loop_body ]
%j.0.lcssa264 = phi i32 [ %j.0, %loop_body ]
%.sroa.0.sroa.0.0.extract.trunc = trunc i64 %x0.sroa.0.0.lcssa273 to i32
%.sroa.5.sroa.0.0.extract.trunc = trunc i64 %x1.sroa.0.0.lcssa272 to i32
%.sroa.8.sroa.0.0.extract.trunc = trunc i64 %x2.sroa.0.0.lcssa271 to i32
%.sroa.11.sroa.0.0.extract.trunc = trunc i64 %x3.sroa.0.0.lcssa270 to i32
%.sroa.14.sroa.0.0.extract.trunc = trunc i64 %x4.sroa.0.0.lcssa269 to i32
%.sroa.17.sroa.0.0.extract.trunc = trunc i64 %x5.sroa.0.0.lcssa268 to i32
%.sroa.20.sroa.0.0.extract.trunc = trunc i64 %x6.sroa.0.0.lcssa267 to i32
%.sroa.26.sroa.0.0.extract.trunc = trunc i64 %x8.sroa.0.0.lcssa265 to i32
%cond = icmp eq i32 %.sroa.26.sroa.0.0.extract.trunc, 1
%.sroa.23.sroa.0.0.extract.trunc = trunc i64 %x7.sroa.0.0.lcssa266 to i32
%cond59 = icmp eq i32 %.sroa.23.sroa.0.0.extract.trunc, 1
%or.cond = and i1 %cond, %cond59
%cond60 = icmp eq i32 %.sroa.20.sroa.0.0.extract.trunc, 1
%or.cond207 = and i1 %or.cond, %cond60
%cond61 = icmp eq i32 %.sroa.17.sroa.0.0.extract.trunc, 1
%or.cond208 = and i1 %or.cond207, %cond61
%cond62 = icmp eq i32 %.sroa.14.sroa.0.0.extract.trunc, 1
%or.cond209 = and i1 %or.cond208, %cond62
%cond63 = icmp eq i32 %.sroa.11.sroa.0.0.extract.trunc, 1
%or.cond210 = and i1 %or.cond209, %cond63
%cond64 = icmp eq i32 %.sroa.8.sroa.0.0.extract.trunc, 1
%or.cond211 = and i1 %or.cond210, %cond64
%cond65 = icmp eq i32 %.sroa.5.sroa.0.0.extract.trunc, 1
%or.cond212 = and i1 %or.cond211, %cond65
%cond66 = icmp eq i32 %.sroa.0.sroa.0.0.extract.trunc, 1
%or.cond213 = and i1 %or.cond212, %cond66
br i1 %or.cond213, label %match_case57, label %case_body39
case_body39: ; preds = %match_case18
tail call fastcc void @_ZN10sys_common6unwind12begin_unwind12begin_unwind21h16626664418826024823E()
unreachable
match_case57: ; preds = %match_case18
%.sroa.26.sroa.4.0.extract.shift = lshr i64 %x8.sroa.0.0.lcssa265, 32
%.sroa.26.sroa.4.0.extract.trunc = trunc i64 %.sroa.26.sroa.4.0.extract.shift to i32
%.sroa.23.sroa.4.0.extract.shift = lshr i64 %x7.sroa.0.0.lcssa266, 32
%.sroa.23.sroa.4.0.extract.trunc = trunc i64 %.sroa.23.sroa.4.0.extract.shift to i32
%.sroa.20.sroa.4.0.extract.shift = lshr i64 %x6.sroa.0.0.lcssa267, 32
%.sroa.20.sroa.4.0.extract.trunc = trunc i64 %.sroa.20.sroa.4.0.extract.shift to i32
%.sroa.17.sroa.4.0.extract.shift = lshr i64 %x5.sroa.0.0.lcssa268, 32
%.sroa.17.sroa.4.0.extract.trunc = trunc i64 %.sroa.17.sroa.4.0.extract.shift to i32
%.sroa.14.sroa.4.0.extract.shift = lshr i64 %x4.sroa.0.0.lcssa269, 32
%.sroa.14.sroa.4.0.extract.trunc = trunc i64 %.sroa.14.sroa.4.0.extract.shift to i32
%.sroa.11.sroa.4.0.extract.shift = lshr i64 %x3.sroa.0.0.lcssa270, 32
%.sroa.11.sroa.4.0.extract.trunc = trunc i64 %.sroa.11.sroa.4.0.extract.shift to i32
%.sroa.8.sroa.4.0.extract.shift = lshr i64 %x2.sroa.0.0.lcssa271, 32
%.sroa.8.sroa.4.0.extract.trunc = trunc i64 %.sroa.8.sroa.4.0.extract.shift to i32
%.sroa.5.sroa.4.0.extract.shift = lshr i64 %x1.sroa.0.0.lcssa272, 32
%.sroa.5.sroa.4.0.extract.trunc = trunc i64 %.sroa.5.sroa.4.0.extract.shift to i32
%.sroa.0.sroa.4.0.extract.shift = lshr i64 %x0.sroa.0.0.lcssa273, 32
%.sroa.0.sroa.4.0.extract.trunc = trunc i64 %.sroa.0.sroa.4.0.extract.shift to i32
%11 = add i32 %j.0.lcssa264, %1
%12 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 0
store i32 %.sroa.0.sroa.4.0.extract.trunc, i32* %12, align 4
%13 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 1
store i32 %.sroa.5.sroa.4.0.extract.trunc, i32* %13, align 4
%14 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 2
store i32 %.sroa.8.sroa.4.0.extract.trunc, i32* %14, align 4
%15 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 3
store i32 %.sroa.11.sroa.4.0.extract.trunc, i32* %15, align 4
%16 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 4
store i32 %.sroa.14.sroa.4.0.extract.trunc, i32* %16, align 4
%17 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 5
store i32 %.sroa.17.sroa.4.0.extract.trunc, i32* %17, align 4
%18 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 6
store i32 %.sroa.20.sroa.4.0.extract.trunc, i32* %18, align 4
%19 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 7
store i32 %.sroa.23.sroa.4.0.extract.trunc, i32* %19, align 4
%20 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 8
store i32 %.sroa.26.sroa.4.0.extract.trunc, i32* %20, align 4
%21 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 9
store i32 %11, i32* %21, align 4
ret void
}
; Function Attrs: cold noinline noreturn uwtable
define internal fastcc void @_ZN10sys_common6unwind12begin_unwind12begin_unwind21h16626664418826024823E() unnamed_addr #8 {
entry-block:
%0 = tail call i8* @__rust_allocate(i64 16, i64 8) #1
%1 = icmp eq i8* %0, null
br i1 %1, label %then-block-11664-.i.i, label %"_ZN5boxed13_$LT$impl$GT$3new3new21h11763640941760919439E.exit"
then-block-11664-.i.i: ; preds = %entry-block
tail call void @_ZN3oom20hc14cacb105af3859iubE()
unreachable
"_ZN5boxed13_$LT$impl$GT$3new3new21h11763640941760919439E.exit": ; preds = %entry-block
%x.sroa.0.0..sroa_idx.i = bitcast i8* %0 to i8**
store i8* getelementptr inbounds ([14 x i8], [14 x i8]* @str5103, i64 0, i64 0), i8** %x.sroa.0.0..sroa_idx.i, align 8
%x.sroa.2.0..sroa_idx1.i = getelementptr inbounds i8, i8* %0, i64 8
%2 = bitcast i8* %x.sroa.2.0..sroa_idx1.i to i64*
store i64 14, i64* %2, align 8
tail call void @_ZN10sys_common6unwind18begin_unwind_inner20hd366d4debb7bb5940csE(i8* noalias nonnull %0, void (i8*)** nonnull getelementptr inbounds ({ void (i8*)*, i64, i64, i64 (%str_slice*)* }, { void (i8*)*, i64, i64, i64 (%str_slice*)* }* @vtable5102, i64 0, i32 0), { %str_slice, i32 }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @_ZN9do_option10_FILE_LINE20hbb8a7ccdee0203e8CzaE to { %str_slice, i32 }*))
unreachable
}
; Function Attrs: cold noinline noreturn
declare void @_ZN10sys_common6unwind18begin_unwind_inner20hd366d4debb7bb5940csE(i8* noalias nonnull, void (i8*)** nonnull, { %str_slice, i32 }* noalias readonly dereferenceable(24)) unnamed_addr #2
; Function Attrs: nounwind
declare noalias i8* @__rust_allocate(i64, i64) unnamed_addr #4
; Function Attrs: cold noinline noreturn
declare void @_ZN3oom20hc14cacb105af3859iubE() unnamed_addr #2
; Function Attrs: nounwind readnone uwtable
define internal i64 @"_ZN3any13_$LT$impl$GT$11get_type_id11get_type_id21h13600774729998767096E"(%str_slice* noalias nocapture readonly dereferenceable(16)) unnamed_addr #9 {
entry-block:
ret i64 8802261786977977801
}
; Function Attrs: uwtable
define internal void @_ZN12bench_option20h3ed7b2917bf9a7b8NzaE(%"9.test::Bencher"* noalias nocapture dereferenceable(32)) unnamed_addr #0 {
entry-block:
%dummy.i.i.i.i = alloca {}, align 8
%tuple.i.i.i.i = alloca { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, align 8
%1 = alloca { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, align 8
%2 = alloca %"2.core::fmt::Arguments", align 8
%3 = alloca [2 x %"2.core::fmt::ArgumentV1"], align 8
%arg.i.i.i.i = alloca { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, align 8
%start.i.i = alloca %"1.std::sys::time::inner::SteadyTime", align 8
%addr_of.i.i = alloca %"1.std::sys::time::inner::SteadyTime", align 8
%4 = alloca %"1.std::time::duration::Duration", align 8
%5 = bitcast %"1.std::time::duration::Duration"* %4 to i8*
call void @llvm.lifetime.start(i64 16, i8* %5), !noalias !133
%6 = bitcast %"1.std::sys::time::inner::SteadyTime"* %start.i.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %6), !noalias !136
%7 = tail call i64 @"_ZN3sys4time5inner13_$LT$impl$GT$3now20h5f02674f74649da6iOwE"(), !noalias !136
%8 = getelementptr inbounds %"1.std::sys::time::inner::SteadyTime", %"1.std::sys::time::inner::SteadyTime"* %start.i.i, i64 0, i32 0
store i64 %7, i64* %8, align 8, !noalias !136
%arg.idx.val.val.idx.i.i = getelementptr %"9.test::Bencher", %"9.test::Bencher"* %0, i64 0, i32 0
%arg.idx.val.val.idx.val.i.i = load i64, i64* %arg.idx.val.val.idx.i.i, align 8, !alias.scope !133, !noalias !140
%9 = icmp eq i64 %arg.idx.val.val.idx.val.i.i, 0
br i1 %9, label %"_ZN13_$LT$impl$GT$4iter4iter21h16126355569708705743E.exit", label %match_case.lr.ph.i.i.i
match_case.lr.ph.i.i.i: ; preds = %entry-block
%10 = bitcast { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i to i8*
%11 = bitcast { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1 to i8*
%12 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, i64 0, i32 0
%13 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, i64 0, i32 1
%14 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, i64 0, i32 5
%15 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, i64 0, i32 9
%16 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, i64 0, i32 2
%17 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, i64 0, i32 4
%18 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, i64 0, i32 6
%19 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, i64 0, i32 8
%20 = bitcast { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %arg.i.i.i.i to i8*
%21 = bitcast { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i to i64*
%22 = bitcast i32* %16 to i64*
%23 = bitcast i32* %17 to i64*
%24 = bitcast i32* %18 to i64*
%25 = bitcast i32* %19 to i64*
%26 = bitcast {}* %dummy.i.i.i.i to i8*
%27 = bitcast i32* %13 to <4 x i32>*
%28 = bitcast i32* %14 to <4 x i32>*
br label %match_case.i.i.i
match_case.i.i.i: ; preds = %"_ZN12bench_option16_$LT$closure$GT$12closure.5107E.exit.i.i.i", %match_case.lr.ph.i.i.i
%.sroa.011.0..val.i1722.i.i.i = phi i64 [ 0, %match_case.lr.ph.i.i.i ], [ %29, %"_ZN12bench_option16_$LT$closure$GT$12closure.5107E.exit.i.i.i" ]
%29 = add nuw i64 %.sroa.011.0..val.i1722.i.i.i, 1
%30 = call fastcc i32 @_ZN5range20he72cc40c9292b713uaaE(), !noalias !136
%31 = icmp sgt i32 %30, 0
br i1 %31, label %match_case.i.i.i.i.preheader, label %"_ZN12bench_option16_$LT$closure$GT$12closure.5107E.exit.i.i.i"
match_case.i.i.i.i.preheader: ; preds = %match_case.i.i.i
br label %match_case.i.i.i.i
match_case.i.i.i.i: ; preds = %match_case.i.i.i.i.preheader, %next-block.i.i.i.i
%match1.sroa.5.0.extract.trunc8.i.i.i.i = phi i32 [ %match.sroa.0.0..val.i57.i.i.i.i, %next-block.i.i.i.i ], [ 0, %match_case.i.i.i.i.preheader ]
%match.sroa.0.0..val.i57.i.i.i.i = phi i32 [ %match.sroa.0.0..val.i5.i.i.i.i, %next-block.i.i.i.i ], [ 1, %match_case.i.i.i.i.preheader ]
call void @llvm.lifetime.start(i64 40, i8* %10), !noalias !136
call fastcc void @_ZN9do_option20h46206f6f73398794HuaE({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* noalias nocapture nonnull dereferenceable(40) %tuple.i.i.i.i, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i), !noalias !136
call void @llvm.lifetime.start(i64 40, i8* %11), !noalias !136
store i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32* %12, align 8, !noalias !136
%32 = insertelement <4 x i32> undef, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32 0
%33 = insertelement <4 x i32> %32, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32 1
%34 = insertelement <4 x i32> %33, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32 2
%35 = insertelement <4 x i32> %34, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32 3
%36 = add <4 x i32> %35, <i32 1, i32 2, i32 3, i32 4>
store <4 x i32> %36, <4 x i32>* %27, align 4, !noalias !136
%37 = add <4 x i32> %35, <i32 5, i32 6, i32 7, i32 8>
store <4 x i32> %37, <4 x i32>* %28, align 4, !noalias !136
%38 = add i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, 9
store i32 %38, i32* %15, align 4, !noalias !136
%.val61.i.i.i.i.i = load i64, i64* %21, align 8, !noalias !136
%39 = trunc i64 %.val61.i.i.i.i.i to i32
%40 = icmp eq i32 %39, %match1.sroa.5.0.extract.trunc8.i.i.i.i
br i1 %40, label %join.i.i.i.i.i, label %then-block-1669-.i.i.i.i
join.i.i.i.i.i: ; preds = %match_case.i.i.i.i
%41 = lshr i64 %.val61.i.i.i.i.i, 32
%42 = trunc i64 %41 to i32
%43 = extractelement <4 x i32> %36, i32 0
%44 = icmp eq i32 %42, %43
br i1 %44, label %join1.i.i.i.i.i, label %then-block-1669-.i.i.i.i
join1.i.i.i.i.i: ; preds = %join.i.i.i.i.i
%.val57.i.i.i.i.i = load i64, i64* %22, align 8, !noalias !136
%45 = trunc i64 %.val57.i.i.i.i.i to i32
%46 = extractelement <4 x i32> %36, i32 1
%47 = icmp eq i32 %45, %46
br i1 %47, label %join3.i.i.i.i.i, label %then-block-1669-.i.i.i.i
join3.i.i.i.i.i: ; preds = %join1.i.i.i.i.i
%48 = lshr i64 %.val57.i.i.i.i.i, 32
%49 = trunc i64 %48 to i32
%50 = extractelement <4 x i32> %36, i32 2
%51 = icmp eq i32 %49, %50
br i1 %51, label %join5.i.i.i.i.i, label %then-block-1669-.i.i.i.i
join5.i.i.i.i.i: ; preds = %join3.i.i.i.i.i
%.val53.i.i.i.i.i = load i64, i64* %23, align 8, !noalias !136
%52 = trunc i64 %.val53.i.i.i.i.i to i32
%53 = extractelement <4 x i32> %36, i32 3
%54 = icmp eq i32 %52, %53
br i1 %54, label %join7.i.i.i.i.i, label %then-block-1669-.i.i.i.i
join7.i.i.i.i.i: ; preds = %join5.i.i.i.i.i
%55 = lshr i64 %.val53.i.i.i.i.i, 32
%56 = trunc i64 %55 to i32
%57 = extractelement <4 x i32> %37, i32 0
%58 = icmp eq i32 %56, %57
br i1 %58, label %join9.i.i.i.i.i, label %then-block-1669-.i.i.i.i
join9.i.i.i.i.i: ; preds = %join7.i.i.i.i.i
%.val49.i.i.i.i.i = load i64, i64* %24, align 8, !noalias !136
%59 = trunc i64 %.val49.i.i.i.i.i to i32
%60 = extractelement <4 x i32> %37, i32 1
%61 = icmp eq i32 %59, %60
br i1 %61, label %join11.i.i.i.i.i, label %then-block-1669-.i.i.i.i
join11.i.i.i.i.i: ; preds = %join9.i.i.i.i.i
%62 = lshr i64 %.val49.i.i.i.i.i, 32
%63 = trunc i64 %62 to i32
%64 = extractelement <4 x i32> %37, i32 2
%65 = icmp eq i32 %63, %64
br i1 %65, label %join13.i.i.i.i.i, label %then-block-1669-.i.i.i.i
join13.i.i.i.i.i: ; preds = %join11.i.i.i.i.i
%.val45.i.i.i.i.i = load i64, i64* %25, align 8, !noalias !136
%66 = trunc i64 %.val45.i.i.i.i.i to i32
%67 = extractelement <4 x i32> %37, i32 3
%68 = icmp eq i32 %66, %67
br i1 %68, label %"_ZN5tuple13_$LT$impl$GT$2eq2eq20h3529837864892923379E.exit.i.i.i.i", label %then-block-1669-.i.i.i.i
"_ZN5tuple13_$LT$impl$GT$2eq2eq20h3529837864892923379E.exit.i.i.i.i": ; preds = %join13.i.i.i.i.i
%69 = lshr i64 %.val45.i.i.i.i.i, 32
%70 = trunc i64 %69 to i32
%71 = icmp eq i32 %70, %38
br i1 %71, label %next-block.i.i.i.i, label %then-block-1669-.i.i.i.i
then-block-1669-.i.i.i.i: ; preds = %"_ZN5tuple13_$LT$impl$GT$2eq2eq20h3529837864892923379E.exit.i.i.i.i", %join13.i.i.i.i.i, %join11.i.i.i.i.i, %join9.i.i.i.i.i, %join7.i.i.i.i.i, %join5.i.i.i.i.i, %join3.i.i.i.i.i, %join1.i.i.i.i.i, %join.i.i.i.i.i, %match_case.i.i.i.i
%72 = bitcast %"2.core::fmt::Arguments"* %2 to i8*
call void @llvm.lifetime.start(i64 48, i8* %72), !noalias !136
%73 = bitcast [2 x %"2.core::fmt::ArgumentV1"]* %3 to i8*
call void @llvm.lifetime.start(i64 32, i8* %73), !noalias !136
%74 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %3, i64 0, i64 0
%75 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %3, i64 0, i64 0, i32 1
store i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* bitcast (i8 ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }*, %"2.core::fmt::Formatter"*)* @"_ZN3fmt13_$LT$impl$GT$3fmt3fmt19h476066522519926309E" to i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)*), i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)** %75, align 8, !alias.scope !141, !noalias !144
%76 = bitcast [2 x %"2.core::fmt::ArgumentV1"]* %3 to { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }**
store { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }** %76, align 8, !alias.scope !141, !noalias !144
%77 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %3, i64 0, i64 1
%78 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %3, i64 0, i64 1, i32 1
store i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* bitcast (i8 ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }*, %"2.core::fmt::Formatter"*)* @"_ZN3fmt13_$LT$impl$GT$3fmt3fmt19h476066522519926309E" to i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)*), i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)** %78, align 8, !alias.scope !146, !noalias !149
%79 = bitcast %"2.core::fmt::ArgumentV1"* %77 to { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }**
store { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }** %79, align 8, !alias.scope !146, !noalias !149
%pieces.sroa.0.0..sroa_idx.i.i.i.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref5046, i64 0, i64 0), %str_slice** %pieces.sroa.0.0..sroa_idx.i.i.i.i.i, align 8, !alias.scope !151, !noalias !154
%pieces.sroa.2.0..sroa_idx2.i.i.i.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 0, i32 1
store i64 3, i64* %pieces.sroa.2.0..sroa_idx2.i.i.i.i.i, align 8, !alias.scope !151, !noalias !154
%80 = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 1
%81 = bitcast %"2.core::option::Option<&'static [core::fmt::rt::v1::Argument]>"* %80 to i8*
call void @llvm.memset.p0i8.i64(i8* %81, i8 0, i64 16, i32 8, i1 false) #1, !alias.scope !151, !noalias !154
%args.sroa.0.0..sroa_idx.i.i.i.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 2, i32 0
store %"2.core::fmt::ArgumentV1"* %74, %"2.core::fmt::ArgumentV1"** %args.sroa.0.0..sroa_idx.i.i.i.i.i, align 8, !alias.scope !151, !noalias !154
%args.sroa.2.0..sroa_idx1.i.i.i.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 2, i32 1
store i64 2, i64* %args.sroa.2.0..sroa_idx1.i.i.i.i.i, align 8, !alias.scope !151, !noalias !154
call void @_ZN10sys_common6unwind16begin_unwind_fmt20h45f40b85e7f7daca6bsE(%"2.core::fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %2, { %str_slice, i32 }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @"_ZN12bench_option16_$LT$closure$GT$10_FILE_LINE20hbb8a7ccdee0203e8QBaE" to { %str_slice, i32 }*)), !noalias !136
unreachable
next-block.i.i.i.i: ; preds = %"_ZN5tuple13_$LT$impl$GT$2eq2eq20h3529837864892923379E.exit.i.i.i.i"
call void @llvm.lifetime.end(i64 40, i8* %11), !noalias !136
call void @llvm.lifetime.start(i64 40, i8* %20), !noalias !136
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %20, i8* %10, i64 40, i32 8, i1 false), !noalias !136
call void asm "", "r,~{dirflag},~{fpsr},~{flags}"({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* nonnull %arg.i.i.i.i) #1, !noalias !157, !srcloc !69
call void @llvm.lifetime.end(i64 40, i8* %20) #1, !alias.scope !160, !noalias !157
call void @llvm.lifetime.end(i64 40, i8* %20), !noalias !136
call void @llvm.lifetime.end(i64 40, i8* %10), !noalias !136
%82 = icmp slt i32 %match.sroa.0.0..val.i57.i.i.i.i, %30
%83 = zext i1 %82 to i32
%match.sroa.0.0..val.i5.i.i.i.i = add i32 %83, %match.sroa.0.0..val.i57.i.i.i.i
br i1 %82, label %match_case.i.i.i.i, label %"_ZN12bench_option16_$LT$closure$GT$12closure.5107E.exit.i.i.i.loopexit"
"_ZN12bench_option16_$LT$closure$GT$12closure.5107E.exit.i.i.i.loopexit": ; preds = %next-block.i.i.i.i
br label %"_ZN12bench_option16_$LT$closure$GT$12closure.5107E.exit.i.i.i"
"_ZN12bench_option16_$LT$closure$GT$12closure.5107E.exit.i.i.i": ; preds = %"_ZN12bench_option16_$LT$closure$GT$12closure.5107E.exit.i.i.i.loopexit", %match_case.i.i.i
call void @llvm.lifetime.start(i64 0, i8* %26), !noalias !136
call void asm "", "r,~{dirflag},~{fpsr},~{flags}"({}* nonnull %dummy.i.i.i.i) #1, !noalias !136, !srcloc !69
call void @llvm.lifetime.end(i64 0, i8* %26), !noalias !136
%84 = icmp ult i64 %29, %arg.idx.val.val.idx.val.i.i
br i1 %84, label %match_case.i.i.i, label %"_ZN13_$LT$impl$GT$4iter4iter21h16126355569708705743E.exit.loopexit"
"_ZN13_$LT$impl$GT$4iter4iter21h16126355569708705743E.exit.loopexit": ; preds = %"_ZN12bench_option16_$LT$closure$GT$12closure.5107E.exit.i.i.i"
br label %"_ZN13_$LT$impl$GT$4iter4iter21h16126355569708705743E.exit"
"_ZN13_$LT$impl$GT$4iter4iter21h16126355569708705743E.exit": ; preds = %"_ZN13_$LT$impl$GT$4iter4iter21h16126355569708705743E.exit.loopexit", %entry-block
%85 = call i64 @"_ZN3sys4time5inner13_$LT$impl$GT$3now20h5f02674f74649da6iOwE"(), !noalias !136
%86 = bitcast %"1.std::sys::time::inner::SteadyTime"* %addr_of.i.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %86), !noalias !136
%87 = getelementptr inbounds %"1.std::sys::time::inner::SteadyTime", %"1.std::sys::time::inner::SteadyTime"* %addr_of.i.i, i64 0, i32 0
store i64 %85, i64* %87, align 8, !noalias !136
call void @"_ZN3sys4time5inner13_$LT$impl$GT$3sub20h24527b4d609c46783OwE"(%"1.std::time::duration::Duration"* noalias nocapture nonnull sret dereferenceable(16) %4, %"1.std::sys::time::inner::SteadyTime"* noalias nonnull readonly dereferenceable(8) %addr_of.i.i, %"1.std::sys::time::inner::SteadyTime"* noalias nonnull readonly dereferenceable(8) %start.i.i), !noalias !162
call void @llvm.lifetime.end(i64 8, i8* %86), !noalias !136
call void @llvm.lifetime.end(i64 8, i8* %6), !noalias !136
%88 = getelementptr inbounds %"9.test::Bencher", %"9.test::Bencher"* %0, i64 0, i32 1
%89 = bitcast %"1.std::time::duration::Duration"* %88 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %89, i8* %5, i64 16, i32 8, i1 false)
call void @llvm.lifetime.end(i64 16, i8* %5), !noalias !133
ret void
}
; Function Attrs: noinline nounwind uwtable
define internal fastcc void @_ZN7do_enum20h80c0c02aa5116d3cJDaE({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* noalias nocapture dereferenceable(40), i32) unnamed_addr #5 {
entry-block:
br label %loop_body
loop_body: ; preds = %loop_body.backedge, %entry-block
%x.sroa.103.0 = phi i64 [ 0, %entry-block ], [ %x.sroa.103.0.be, %loop_body.backedge ]
%x.sroa.96.0 = phi i32 [ 0, %entry-block ], [ %x.sroa.96.0.be, %loop_body.backedge ]
%x.sroa.87.0 = phi i32 [ 0, %entry-block ], [ %x.sroa.87.0.be, %loop_body.backedge ]
%x.sroa.76.0 = phi i32 [ 0, %entry-block ], [ %x.sroa.76.0.be, %loop_body.backedge ]
%x.sroa.63.0 = phi i32 [ 0, %entry-block ], [ %x.sroa.63.0.be, %loop_body.backedge ]
%x.sroa.48.0 = phi i32 [ 0, %entry-block ], [ %x.sroa.48.0.be, %loop_body.backedge ]
%x.sroa.31.0 = phi i32 [ 0, %entry-block ], [ %x.sroa.31.0.be, %loop_body.backedge ]
%x.sroa.13.0 = phi i32 [ 0, %entry-block ], [ %x.sroa.13.0.be, %loop_body.backedge ]
%x.sroa.0.0 = phi i32 [ 0, %entry-block ], [ %x.sroa.0.0.be, %loop_body.backedge ]
%j.0 = phi i32 [ 0, %entry-block ], [ %j.0.be, %loop_body.backedge ]
switch i32 %x.sroa.0.0, label %match_else [
i32 0, label %match_case
i32 1, label %match_case90
i32 2, label %match_case91
i32 3, label %match_case92
i32 4, label %match_case93
i32 5, label %match_case94
i32 6, label %match_case95
i32 7, label %match_case96
i32 8, label %match_case97
i32 9, label %match_case98
]
match_else: ; preds = %loop_body
unreachable
match_case: ; preds = %loop_body
%2 = add i32 %j.0, %1
br label %loop_body.backedge
match_case90: ; preds = %loop_body
%3 = add i32 %j.0, %1
br label %loop_body.backedge
match_case91: ; preds = %loop_body
%4 = add i32 %j.0, %1
br label %loop_body.backedge
match_case92: ; preds = %loop_body
%5 = add i32 %j.0, %1
br label %loop_body.backedge
match_case93: ; preds = %loop_body
%6 = add i32 %j.0, %1
br label %loop_body.backedge
match_case94: ; preds = %loop_body
%7 = add i32 %j.0, %1
br label %loop_body.backedge
match_case95: ; preds = %loop_body
%8 = add i32 %j.0, %1
br label %loop_body.backedge
match_case96: ; preds = %loop_body
%9 = add i32 %j.0, %1
%x.sroa.103.32.insert.ext = zext i32 %9 to i64
br label %loop_body.backedge
match_case97: ; preds = %loop_body
%10 = add i32 %j.0, %1
%x.sroa.103.36.insert.ext = zext i32 %10 to i64
%x.sroa.103.36.insert.shift = shl nuw i64 %x.sroa.103.36.insert.ext, 32
%x.sroa.103.36.insert.mask494 = and i64 %x.sroa.103.0, 4294967295
%x.sroa.103.36.insert.insert = or i64 %x.sroa.103.36.insert.shift, %x.sroa.103.36.insert.mask494
br label %loop_body.backedge
loop_body.backedge: ; preds = %match_case97, %match_case96, %match_case95, %match_case94, %match_case93, %match_case92, %match_case91, %match_case90, %match_case
%x.sroa.103.0.be = phi i64 [ %x.sroa.103.36.insert.insert, %match_case97 ], [ %x.sroa.103.32.insert.ext, %match_case96 ], [ undef, %match_case95 ], [ undef, %match_case94 ], [ undef, %match_case93 ], [ undef, %match_case92 ], [ undef, %match_case91 ], [ undef, %match_case90 ], [ undef, %match_case ]
%x.sroa.96.0.be = phi i32 [ %x.sroa.96.0, %match_case97 ], [ %x.sroa.96.0, %match_case96 ], [ %8, %match_case95 ], [ undef, %match_case94 ], [ undef, %match_case93 ], [ undef, %match_case92 ], [ undef, %match_case91 ], [ undef, %match_case90 ], [ undef, %match_case ]
%x.sroa.87.0.be = phi i32 [ %x.sroa.87.0, %match_case97 ], [ %x.sroa.87.0, %match_case96 ], [ %x.sroa.87.0, %match_case95 ], [ %7, %match_case94 ], [ undef, %match_case93 ], [ undef, %match_case92 ], [ undef, %match_case91 ], [ undef, %match_case90 ], [ undef, %match_case ]
%x.sroa.76.0.be = phi i32 [ %x.sroa.76.0, %match_case97 ], [ %x.sroa.76.0, %match_case96 ], [ %x.sroa.76.0, %match_case95 ], [ %x.sroa.76.0, %match_case94 ], [ %6, %match_case93 ], [ undef, %match_case92 ], [ undef, %match_case91 ], [ undef, %match_case90 ], [ undef, %match_case ]
%x.sroa.63.0.be = phi i32 [ %x.sroa.63.0, %match_case97 ], [ %x.sroa.63.0, %match_case96 ], [ %x.sroa.63.0, %match_case95 ], [ %x.sroa.63.0, %match_case94 ], [ %x.sroa.63.0, %match_case93 ], [ %5, %match_case92 ], [ undef, %match_case91 ], [ undef, %match_case90 ], [ undef, %match_case ]
%x.sroa.48.0.be = phi i32 [ %x.sroa.48.0, %match_case97 ], [ %x.sroa.48.0, %match_case96 ], [ %x.sroa.48.0, %match_case95 ], [ %x.sroa.48.0, %match_case94 ], [ %x.sroa.48.0, %match_case93 ], [ %x.sroa.48.0, %match_case92 ], [ %4, %match_case91 ], [ undef, %match_case90 ], [ undef, %match_case ]
%x.sroa.31.0.be = phi i32 [ %x.sroa.31.0, %match_case97 ], [ %x.sroa.31.0, %match_case96 ], [ %x.sroa.31.0, %match_case95 ], [ %x.sroa.31.0, %match_case94 ], [ %x.sroa.31.0, %match_case93 ], [ %x.sroa.31.0, %match_case92 ], [ %x.sroa.31.0, %match_case91 ], [ %3, %match_case90 ], [ undef, %match_case ]
%x.sroa.13.0.be = phi i32 [ %x.sroa.13.0, %match_case97 ], [ %x.sroa.13.0, %match_case96 ], [ %x.sroa.13.0, %match_case95 ], [ %x.sroa.13.0, %match_case94 ], [ %x.sroa.13.0, %match_case93 ], [ %x.sroa.13.0, %match_case92 ], [ %x.sroa.13.0, %match_case91 ], [ %x.sroa.13.0, %match_case90 ], [ %2, %match_case ]
%x.sroa.0.0.be = phi i32 [ 9, %match_case97 ], [ 8, %match_case96 ], [ 7, %match_case95 ], [ 6, %match_case94 ], [ 5, %match_case93 ], [ 4, %match_case92 ], [ 3, %match_case91 ], [ 2, %match_case90 ], [ 1, %match_case ]
%j.0.be = add i32 %j.0, 1
br label %loop_body
match_case98: ; preds = %loop_body
%j.0.lcssa575 = phi i32 [ %j.0, %loop_body ]
%x.sroa.13.0.lcssa574 = phi i32 [ %x.sroa.13.0, %loop_body ]
%x.sroa.31.0.lcssa573 = phi i32 [ %x.sroa.31.0, %loop_body ]
%x.sroa.48.0.lcssa572 = phi i32 [ %x.sroa.48.0, %loop_body ]
%x.sroa.63.0.lcssa571 = phi i32 [ %x.sroa.63.0, %loop_body ]
%x.sroa.76.0.lcssa570 = phi i32 [ %x.sroa.76.0, %loop_body ]
%x.sroa.87.0.lcssa569 = phi i32 [ %x.sroa.87.0, %loop_body ]
%x.sroa.96.0.lcssa568 = phi i32 [ %x.sroa.96.0, %loop_body ]
%x.sroa.103.0.lcssa567 = phi i64 [ %x.sroa.103.0, %loop_body ]
%x.sroa.103.32.extract.trunc488 = trunc i64 %x.sroa.103.0.lcssa567 to i32
%x.sroa.103.36.extract.shift = lshr i64 %x.sroa.103.0.lcssa567, 32
%x.sroa.103.36.extract.trunc = trunc i64 %x.sroa.103.36.extract.shift to i32
%11 = add i32 %j.0.lcssa575, %1
%12 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 0
store i32 %x.sroa.13.0.lcssa574, i32* %12, align 4
%13 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 1
store i32 %x.sroa.31.0.lcssa573, i32* %13, align 4
%14 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 2
store i32 %x.sroa.48.0.lcssa572, i32* %14, align 4
%15 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 3
store i32 %x.sroa.63.0.lcssa571, i32* %15, align 4
%16 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 4
store i32 %x.sroa.76.0.lcssa570, i32* %16, align 4
%17 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 5
store i32 %x.sroa.87.0.lcssa569, i32* %17, align 4
%18 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 6
store i32 %x.sroa.96.0.lcssa568, i32* %18, align 4
%19 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 7
store i32 %x.sroa.103.32.extract.trunc488, i32* %19, align 4
%20 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 8
store i32 %x.sroa.103.36.extract.trunc, i32* %20, align 4
%21 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %0, i64 0, i32 9
store i32 %11, i32* %21, align 4
ret void
}
; Function Attrs: uwtable
define internal void @_ZN10bench_enum20hb8f0f8ea8ff91c3bCIaE(%"9.test::Bencher"* noalias nocapture dereferenceable(32)) unnamed_addr #0 {
entry-block:
%dummy.i.i.i.i = alloca {}, align 8
%tuple.i.i.i.i = alloca { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, align 8
%1 = alloca { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, align 8
%2 = alloca %"2.core::fmt::Arguments", align 8
%3 = alloca [2 x %"2.core::fmt::ArgumentV1"], align 8
%arg.i.i.i.i = alloca { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, align 8
%start.i.i = alloca %"1.std::sys::time::inner::SteadyTime", align 8
%addr_of.i.i = alloca %"1.std::sys::time::inner::SteadyTime", align 8
%4 = alloca %"1.std::time::duration::Duration", align 8
%5 = bitcast %"1.std::time::duration::Duration"* %4 to i8*
call void @llvm.lifetime.start(i64 16, i8* %5), !noalias !163
%6 = bitcast %"1.std::sys::time::inner::SteadyTime"* %start.i.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %6), !noalias !166
%7 = tail call i64 @"_ZN3sys4time5inner13_$LT$impl$GT$3now20h5f02674f74649da6iOwE"(), !noalias !166
%8 = getelementptr inbounds %"1.std::sys::time::inner::SteadyTime", %"1.std::sys::time::inner::SteadyTime"* %start.i.i, i64 0, i32 0
store i64 %7, i64* %8, align 8, !noalias !166
%arg.idx.val.val.idx.i.i = getelementptr %"9.test::Bencher", %"9.test::Bencher"* %0, i64 0, i32 0
%arg.idx.val.val.idx.val.i.i = load i64, i64* %arg.idx.val.val.idx.i.i, align 8, !alias.scope !163, !noalias !170
%9 = icmp eq i64 %arg.idx.val.val.idx.val.i.i, 0
br i1 %9, label %"_ZN13_$LT$impl$GT$4iter4iter21h16623640101860139313E.exit", label %match_case.lr.ph.i.i.i
match_case.lr.ph.i.i.i: ; preds = %entry-block
%10 = bitcast { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i to i8*
%11 = bitcast { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1 to i8*
%12 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, i64 0, i32 0
%13 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, i64 0, i32 1
%14 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, i64 0, i32 5
%15 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, i64 0, i32 9
%16 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, i64 0, i32 2
%17 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, i64 0, i32 4
%18 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, i64 0, i32 6
%19 = getelementptr inbounds { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, i64 0, i32 8
%20 = bitcast { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %arg.i.i.i.i to i8*
%21 = bitcast { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i to i64*
%22 = bitcast i32* %16 to i64*
%23 = bitcast i32* %17 to i64*
%24 = bitcast i32* %18 to i64*
%25 = bitcast i32* %19 to i64*
%26 = bitcast {}* %dummy.i.i.i.i to i8*
%27 = bitcast i32* %13 to <4 x i32>*
%28 = bitcast i32* %14 to <4 x i32>*
br label %match_case.i.i.i
match_case.i.i.i: ; preds = %"_ZN10bench_enum16_$LT$closure$GT$12closure.5113E.exit.i.i.i", %match_case.lr.ph.i.i.i
%.sroa.011.0..val.i1722.i.i.i = phi i64 [ 0, %match_case.lr.ph.i.i.i ], [ %29, %"_ZN10bench_enum16_$LT$closure$GT$12closure.5113E.exit.i.i.i" ]
%29 = add nuw i64 %.sroa.011.0..val.i1722.i.i.i, 1
%30 = call fastcc i32 @_ZN5range20he72cc40c9292b713uaaE(), !noalias !166
%31 = icmp sgt i32 %30, 0
br i1 %31, label %match_case.i.i.i.i.preheader, label %"_ZN10bench_enum16_$LT$closure$GT$12closure.5113E.exit.i.i.i"
match_case.i.i.i.i.preheader: ; preds = %match_case.i.i.i
br label %match_case.i.i.i.i
match_case.i.i.i.i: ; preds = %match_case.i.i.i.i.preheader, %next-block.i.i.i.i
%match1.sroa.5.0.extract.trunc8.i.i.i.i = phi i32 [ %match.sroa.0.0..val.i57.i.i.i.i, %next-block.i.i.i.i ], [ 0, %match_case.i.i.i.i.preheader ]
%match.sroa.0.0..val.i57.i.i.i.i = phi i32 [ %match.sroa.0.0..val.i5.i.i.i.i, %next-block.i.i.i.i ], [ 1, %match_case.i.i.i.i.preheader ]
call void @llvm.lifetime.start(i64 40, i8* %10), !noalias !166
call fastcc void @_ZN7do_enum20h80c0c02aa5116d3cJDaE({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* noalias nocapture nonnull dereferenceable(40) %tuple.i.i.i.i, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i), !noalias !166
call void @llvm.lifetime.start(i64 40, i8* %11), !noalias !166
store i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32* %12, align 8, !noalias !166
%32 = insertelement <4 x i32> undef, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32 0
%33 = insertelement <4 x i32> %32, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32 1
%34 = insertelement <4 x i32> %33, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32 2
%35 = insertelement <4 x i32> %34, i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, i32 3
%36 = add <4 x i32> %35, <i32 1, i32 2, i32 3, i32 4>
store <4 x i32> %36, <4 x i32>* %27, align 4, !noalias !166
%37 = add <4 x i32> %35, <i32 5, i32 6, i32 7, i32 8>
store <4 x i32> %37, <4 x i32>* %28, align 4, !noalias !166
%38 = add i32 %match1.sroa.5.0.extract.trunc8.i.i.i.i, 9
store i32 %38, i32* %15, align 4, !noalias !166
%.val61.i.i.i.i.i = load i64, i64* %21, align 8, !noalias !166
%39 = trunc i64 %.val61.i.i.i.i.i to i32
%40 = icmp eq i32 %39, %match1.sroa.5.0.extract.trunc8.i.i.i.i
br i1 %40, label %join.i.i.i.i.i, label %then-block-2216-.i.i.i.i
join.i.i.i.i.i: ; preds = %match_case.i.i.i.i
%41 = lshr i64 %.val61.i.i.i.i.i, 32
%42 = trunc i64 %41 to i32
%43 = extractelement <4 x i32> %36, i32 0
%44 = icmp eq i32 %42, %43
br i1 %44, label %join1.i.i.i.i.i, label %then-block-2216-.i.i.i.i
join1.i.i.i.i.i: ; preds = %join.i.i.i.i.i
%.val57.i.i.i.i.i = load i64, i64* %22, align 8, !noalias !166
%45 = trunc i64 %.val57.i.i.i.i.i to i32
%46 = extractelement <4 x i32> %36, i32 1
%47 = icmp eq i32 %45, %46
br i1 %47, label %join3.i.i.i.i.i, label %then-block-2216-.i.i.i.i
join3.i.i.i.i.i: ; preds = %join1.i.i.i.i.i
%48 = lshr i64 %.val57.i.i.i.i.i, 32
%49 = trunc i64 %48 to i32
%50 = extractelement <4 x i32> %36, i32 2
%51 = icmp eq i32 %49, %50
br i1 %51, label %join5.i.i.i.i.i, label %then-block-2216-.i.i.i.i
join5.i.i.i.i.i: ; preds = %join3.i.i.i.i.i
%.val53.i.i.i.i.i = load i64, i64* %23, align 8, !noalias !166
%52 = trunc i64 %.val53.i.i.i.i.i to i32
%53 = extractelement <4 x i32> %36, i32 3
%54 = icmp eq i32 %52, %53
br i1 %54, label %join7.i.i.i.i.i, label %then-block-2216-.i.i.i.i
join7.i.i.i.i.i: ; preds = %join5.i.i.i.i.i
%55 = lshr i64 %.val53.i.i.i.i.i, 32
%56 = trunc i64 %55 to i32
%57 = extractelement <4 x i32> %37, i32 0
%58 = icmp eq i32 %56, %57
br i1 %58, label %join9.i.i.i.i.i, label %then-block-2216-.i.i.i.i
join9.i.i.i.i.i: ; preds = %join7.i.i.i.i.i
%.val49.i.i.i.i.i = load i64, i64* %24, align 8, !noalias !166
%59 = trunc i64 %.val49.i.i.i.i.i to i32
%60 = extractelement <4 x i32> %37, i32 1
%61 = icmp eq i32 %59, %60
br i1 %61, label %join11.i.i.i.i.i, label %then-block-2216-.i.i.i.i
join11.i.i.i.i.i: ; preds = %join9.i.i.i.i.i
%62 = lshr i64 %.val49.i.i.i.i.i, 32
%63 = trunc i64 %62 to i32
%64 = extractelement <4 x i32> %37, i32 2
%65 = icmp eq i32 %63, %64
br i1 %65, label %join13.i.i.i.i.i, label %then-block-2216-.i.i.i.i
join13.i.i.i.i.i: ; preds = %join11.i.i.i.i.i
%.val45.i.i.i.i.i = load i64, i64* %25, align 8, !noalias !166
%66 = trunc i64 %.val45.i.i.i.i.i to i32
%67 = extractelement <4 x i32> %37, i32 3
%68 = icmp eq i32 %66, %67
br i1 %68, label %"_ZN5tuple13_$LT$impl$GT$2eq2eq20h3529837864892923379E.exit.i.i.i.i", label %then-block-2216-.i.i.i.i
"_ZN5tuple13_$LT$impl$GT$2eq2eq20h3529837864892923379E.exit.i.i.i.i": ; preds = %join13.i.i.i.i.i
%69 = lshr i64 %.val45.i.i.i.i.i, 32
%70 = trunc i64 %69 to i32
%71 = icmp eq i32 %70, %38
br i1 %71, label %next-block.i.i.i.i, label %then-block-2216-.i.i.i.i
then-block-2216-.i.i.i.i: ; preds = %"_ZN5tuple13_$LT$impl$GT$2eq2eq20h3529837864892923379E.exit.i.i.i.i", %join13.i.i.i.i.i, %join11.i.i.i.i.i, %join9.i.i.i.i.i, %join7.i.i.i.i.i, %join5.i.i.i.i.i, %join3.i.i.i.i.i, %join1.i.i.i.i.i, %join.i.i.i.i.i, %match_case.i.i.i.i
%72 = bitcast %"2.core::fmt::Arguments"* %2 to i8*
call void @llvm.lifetime.start(i64 48, i8* %72), !noalias !166
%73 = bitcast [2 x %"2.core::fmt::ArgumentV1"]* %3 to i8*
call void @llvm.lifetime.start(i64 32, i8* %73), !noalias !166
%74 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %3, i64 0, i64 0
%75 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %3, i64 0, i64 0, i32 1
store i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* bitcast (i8 ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }*, %"2.core::fmt::Formatter"*)* @"_ZN3fmt13_$LT$impl$GT$3fmt3fmt19h476066522519926309E" to i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)*), i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)** %75, align 8, !alias.scope !171, !noalias !174
%76 = bitcast [2 x %"2.core::fmt::ArgumentV1"]* %3 to { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }**
store { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %tuple.i.i.i.i, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }** %76, align 8, !alias.scope !171, !noalias !174
%77 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %3, i64 0, i64 1
%78 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %3, i64 0, i64 1, i32 1
store i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* bitcast (i8 ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }*, %"2.core::fmt::Formatter"*)* @"_ZN3fmt13_$LT$impl$GT$3fmt3fmt19h476066522519926309E" to i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)*), i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)** %78, align 8, !alias.scope !176, !noalias !179
%79 = bitcast %"2.core::fmt::ArgumentV1"* %77 to { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }**
store { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* %1, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }** %79, align 8, !alias.scope !176, !noalias !179
%pieces.sroa.0.0..sroa_idx.i.i.i.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 0, i32 0
store %str_slice* getelementptr inbounds ([3 x %str_slice], [3 x %str_slice]* @ref5046, i64 0, i64 0), %str_slice** %pieces.sroa.0.0..sroa_idx.i.i.i.i.i, align 8, !alias.scope !181, !noalias !184
%pieces.sroa.2.0..sroa_idx2.i.i.i.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 0, i32 1
store i64 3, i64* %pieces.sroa.2.0..sroa_idx2.i.i.i.i.i, align 8, !alias.scope !181, !noalias !184
%80 = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 1
%81 = bitcast %"2.core::option::Option<&'static [core::fmt::rt::v1::Argument]>"* %80 to i8*
call void @llvm.memset.p0i8.i64(i8* %81, i8 0, i64 16, i32 8, i1 false) #1, !alias.scope !181, !noalias !184
%args.sroa.0.0..sroa_idx.i.i.i.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 2, i32 0
store %"2.core::fmt::ArgumentV1"* %74, %"2.core::fmt::ArgumentV1"** %args.sroa.0.0..sroa_idx.i.i.i.i.i, align 8, !alias.scope !181, !noalias !184
%args.sroa.2.0..sroa_idx1.i.i.i.i.i = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %2, i64 0, i32 2, i32 1
store i64 2, i64* %args.sroa.2.0..sroa_idx1.i.i.i.i.i, align 8, !alias.scope !181, !noalias !184
call void @_ZN10sys_common6unwind16begin_unwind_fmt20h45f40b85e7f7daca6bsE(%"2.core::fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %2, { %str_slice, i32 }* noalias readonly dereferenceable(24) bitcast ({ %str_slice, i32, [4 x i8] }* @"_ZN10bench_enum16_$LT$closure$GT$10_FILE_LINE20hbb8a7ccdee0203e8FKaE" to { %str_slice, i32 }*)), !noalias !166
unreachable
next-block.i.i.i.i: ; preds = %"_ZN5tuple13_$LT$impl$GT$2eq2eq20h3529837864892923379E.exit.i.i.i.i"
call void @llvm.lifetime.end(i64 40, i8* %11), !noalias !166
call void @llvm.lifetime.start(i64 40, i8* %20), !noalias !166
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %20, i8* %10, i64 40, i32 8, i1 false), !noalias !166
call void asm "", "r,~{dirflag},~{fpsr},~{flags}"({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* nonnull %arg.i.i.i.i) #1, !noalias !187, !srcloc !69
call void @llvm.lifetime.end(i64 40, i8* %20) #1, !alias.scope !190, !noalias !187
call void @llvm.lifetime.end(i64 40, i8* %20), !noalias !166
call void @llvm.lifetime.end(i64 40, i8* %10), !noalias !166
%82 = icmp slt i32 %match.sroa.0.0..val.i57.i.i.i.i, %30
%83 = zext i1 %82 to i32
%match.sroa.0.0..val.i5.i.i.i.i = add i32 %83, %match.sroa.0.0..val.i57.i.i.i.i
br i1 %82, label %match_case.i.i.i.i, label %"_ZN10bench_enum16_$LT$closure$GT$12closure.5113E.exit.i.i.i.loopexit"
"_ZN10bench_enum16_$LT$closure$GT$12closure.5113E.exit.i.i.i.loopexit": ; preds = %next-block.i.i.i.i
br label %"_ZN10bench_enum16_$LT$closure$GT$12closure.5113E.exit.i.i.i"
"_ZN10bench_enum16_$LT$closure$GT$12closure.5113E.exit.i.i.i": ; preds = %"_ZN10bench_enum16_$LT$closure$GT$12closure.5113E.exit.i.i.i.loopexit", %match_case.i.i.i
call void @llvm.lifetime.start(i64 0, i8* %26), !noalias !166
call void asm "", "r,~{dirflag},~{fpsr},~{flags}"({}* nonnull %dummy.i.i.i.i) #1, !noalias !166, !srcloc !69
call void @llvm.lifetime.end(i64 0, i8* %26), !noalias !166
%84 = icmp ult i64 %29, %arg.idx.val.val.idx.val.i.i
br i1 %84, label %match_case.i.i.i, label %"_ZN13_$LT$impl$GT$4iter4iter21h16623640101860139313E.exit.loopexit"
"_ZN13_$LT$impl$GT$4iter4iter21h16623640101860139313E.exit.loopexit": ; preds = %"_ZN10bench_enum16_$LT$closure$GT$12closure.5113E.exit.i.i.i"
br label %"_ZN13_$LT$impl$GT$4iter4iter21h16623640101860139313E.exit"
"_ZN13_$LT$impl$GT$4iter4iter21h16623640101860139313E.exit": ; preds = %"_ZN13_$LT$impl$GT$4iter4iter21h16623640101860139313E.exit.loopexit", %entry-block
%85 = call i64 @"_ZN3sys4time5inner13_$LT$impl$GT$3now20h5f02674f74649da6iOwE"(), !noalias !166
%86 = bitcast %"1.std::sys::time::inner::SteadyTime"* %addr_of.i.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %86), !noalias !166
%87 = getelementptr inbounds %"1.std::sys::time::inner::SteadyTime", %"1.std::sys::time::inner::SteadyTime"* %addr_of.i.i, i64 0, i32 0
store i64 %85, i64* %87, align 8, !noalias !166
call void @"_ZN3sys4time5inner13_$LT$impl$GT$3sub20h24527b4d609c46783OwE"(%"1.std::time::duration::Duration"* noalias nocapture nonnull sret dereferenceable(16) %4, %"1.std::sys::time::inner::SteadyTime"* noalias nonnull readonly dereferenceable(8) %addr_of.i.i, %"1.std::sys::time::inner::SteadyTime"* noalias nonnull readonly dereferenceable(8) %start.i.i), !noalias !192
call void @llvm.lifetime.end(i64 8, i8* %86), !noalias !166
call void @llvm.lifetime.end(i64 8, i8* %6), !noalias !166
%88 = getelementptr inbounds %"9.test::Bencher", %"9.test::Bencher"* %0, i64 0, i32 1
%89 = bitcast %"1.std::time::duration::Duration"* %88 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %89, i8* %5, i64 16, i32 8, i1 false)
call void @llvm.lifetime.end(i64 16, i8* %5), !noalias !163
ret void
}
; Function Attrs: uwtable
define internal void @_ZN6__test4main20h11ad3431520b65994KaE() unnamed_addr #0 {
entry-block:
tail call void @_ZN16test_main_static20h611bf7ae8ed46b8ff3aE(%"9.test::TestDescAndFn"* noalias nonnull readonly bitcast ({ { { { i64, %str_slice, [8 x i8] }, i1, { i64, [16 x i8] } }, { i64, void (%"9.test::Bencher"*)*, [8 x i8] } }, { { { i64, %str_slice, [8 x i8] }, i1, { i64, [16 x i8] } }, { i64, void (%"9.test::Bencher"*)*, [8 x i8] } }, { { { i64, %str_slice, [8 x i8] }, i1, { i64, [16 x i8] } }, { i64, void (%"9.test::Bencher"*)*, [8 x i8] } }, { { { i64, %str_slice, [8 x i8] }, i1, { i64, [16 x i8] } }, { i64, void (%"9.test::Bencher"*)*, [8 x i8] } }, { { { i64, %str_slice, [8 x i8] }, i1, { i64, [16 x i8] } }, { i64, void (%"9.test::Bencher"*)*, [8 x i8] } } }* @ref5121 to %"9.test::TestDescAndFn"*), i64 5)
ret void
}
declare void @_ZN16test_main_static20h611bf7ae8ed46b8ff3aE(%"9.test::TestDescAndFn"* noalias nonnull readonly, i64) unnamed_addr #3
define i64 @main(i64, i8**) unnamed_addr {
top:
%2 = tail call i64 @_ZN2rt10lang_start20hf67f1d63b0d49fd1FVwE(i8* bitcast (void ()* @_ZN6__test4main20h11ad3431520b65994KaE to i8*), i64 %0, i8** %1)
ret i64 %2
}
declare i64 @_ZN2rt10lang_start20hf67f1d63b0d49fd1FVwE(i8*, i64, i8**) unnamed_addr #3
attributes #0 = { uwtable "no-frame-pointer-elim"="true" }
attributes #1 = { nounwind }
attributes #2 = { cold noinline noreturn "no-frame-pointer-elim"="true" }
attributes #3 = { "no-frame-pointer-elim"="true" }
attributes #4 = { nounwind "no-frame-pointer-elim"="true" }
attributes #5 = { noinline nounwind uwtable "no-frame-pointer-elim"="true" }
attributes #6 = { nounwind readnone }
attributes #7 = { noinline uwtable "no-frame-pointer-elim"="true" }
attributes #8 = { cold noinline noreturn uwtable "no-frame-pointer-elim"="true" }
attributes #9 = { nounwind readnone uwtable "no-frame-pointer-elim"="true" }
!0 = !{!1}
!1 = distinct !{!1, !2, !"_ZN3env3var3var21h12475392657008864545E: argument 0"}
!2 = distinct !{!2, !"_ZN3env3var3var21h12475392657008864545E"}
!3 = !{i64 0, i64 2}
!4 = !{!5}
!5 = distinct !{!5, !6, !"_ZN6result13_$LT$impl$GT$6unwrap6unwrap20h3436972629666514673E: %self"}
!6 = distinct !{!6, !"_ZN6result13_$LT$impl$GT$6unwrap6unwrap20h3436972629666514673E"}
!7 = !{!8}
!8 = distinct !{!8, !6, !"_ZN6result13_$LT$impl$GT$6unwrap6unwrap20h3436972629666514673E: argument 0"}
!9 = !{!10, !5}
!10 = distinct !{!10, !11, !"_ZN7raw_vec13_$LT$impl$GT$4drop4drop21h15024659382034509247E: argument 0"}
!11 = distinct !{!11, !"_ZN7raw_vec13_$LT$impl$GT$4drop4drop21h15024659382034509247E"}
!12 = !{!10, !8}
!13 = !{!8, !5}
!14 = !{!15}
!15 = distinct !{!15, !16, !"_ZN3fmt13_$LT$impl$GT$3new3new20h3711695521885589968E: argument 0"}
!16 = distinct !{!16, !"_ZN3fmt13_$LT$impl$GT$3new3new20h3711695521885589968E"}
!17 = !{!18, !8, !5}
!18 = distinct !{!18, !16, !"_ZN3fmt13_$LT$impl$GT$3new3new20h3711695521885589968E: argument 1"}
!19 = !{!20}
!20 = distinct !{!20, !21, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE: argument 0"}
!21 = distinct !{!21, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE"}
!22 = !{!23, !24, !8, !5}
!23 = distinct !{!23, !21, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE: argument 1"}
!24 = distinct !{!24, !21, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE: argument 2"}
!25 = !{!26}
!26 = distinct !{!26, !27, !"_ZN7raw_vec13_$LT$impl$GT$4drop4drop21h15024659382034509247E: argument 0"}
!27 = distinct !{!27, !"_ZN7raw_vec13_$LT$impl$GT$4drop4drop21h15024659382034509247E"}
!28 = !{!29}
!29 = distinct !{!29, !30, !"_ZN3fmt13_$LT$impl$GT$3new3new20h7149552453339280608E: argument 0"}
!30 = distinct !{!30, !"_ZN3fmt13_$LT$impl$GT$3new3new20h7149552453339280608E"}
!31 = !{!32}
!32 = distinct !{!32, !30, !"_ZN3fmt13_$LT$impl$GT$3new3new20h7149552453339280608E: argument 1"}
!33 = !{!34}
!34 = distinct !{!34, !35, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE: argument 0"}
!35 = distinct !{!35, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE"}
!36 = !{!37, !38}
!37 = distinct !{!37, !35, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE: argument 1"}
!38 = distinct !{!38, !35, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE: argument 2"}
!39 = !{!40}
!40 = distinct !{!40, !41, !"_ZN7raw_vec13_$LT$impl$GT$4drop4drop21h15024659382034509247E: argument 0"}
!41 = distinct !{!41, !"_ZN7raw_vec13_$LT$impl$GT$4drop4drop21h15024659382034509247E"}
!42 = !{!43}
!43 = distinct !{!43, !44, !"_ZN13_$LT$impl$GT$4iter4iter20h4318514408530987351E: argument 0"}
!44 = distinct !{!44, !"_ZN13_$LT$impl$GT$4iter4iter20h4318514408530987351E"}
!45 = !{!46, !48, !43}
!46 = distinct !{!46, !47, !"_ZN4time8duration13_$LT$impl$GT$4span4span20h8858414462818414197E: argument 0"}
!47 = distinct !{!47, !"_ZN4time8duration13_$LT$impl$GT$4span4span20h8858414462818414197E"}
!48 = distinct !{!48, !47, !"_ZN4time8duration13_$LT$impl$GT$4span4span20h8858414462818414197E: %f"}
!49 = !{!46, !48}
!50 = !{!51}
!51 = distinct !{!51, !52, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E: argument 0"}
!52 = distinct !{!52, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E"}
!53 = !{!54, !46, !48, !43}
!54 = distinct !{!54, !52, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E: argument 1"}
!55 = !{!56}
!56 = distinct !{!56, !57, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E: argument 0"}
!57 = distinct !{!57, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E"}
!58 = !{!59, !46, !48, !43}
!59 = distinct !{!59, !57, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E: argument 1"}
!60 = !{!61}
!61 = distinct !{!61, !62, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE: argument 0"}
!62 = distinct !{!62, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE"}
!63 = !{!64, !65, !46, !48, !43}
!64 = distinct !{!64, !62, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE: argument 1"}
!65 = distinct !{!65, !62, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE: argument 2"}
!66 = !{!67, !46, !48, !43}
!67 = distinct !{!67, !68, !"_ZN9black_box9black_box21h12337314741629787439E: argument 0"}
!68 = distinct !{!68, !"_ZN9black_box9black_box21h12337314741629787439E"}
!69 = !{i32 343}
!70 = !{!71}
!71 = distinct !{!71, !68, !"_ZN9black_box9black_box21h12337314741629787439E: %dummy"}
!72 = !{!48, !43}
!73 = !{!74}
!74 = distinct !{!74, !75, !"_ZN13_$LT$impl$GT$4iter4iter21h15582014788276223507E: argument 0"}
!75 = distinct !{!75, !"_ZN13_$LT$impl$GT$4iter4iter21h15582014788276223507E"}
!76 = !{!77, !79, !74}
!77 = distinct !{!77, !78, !"_ZN4time8duration13_$LT$impl$GT$4span4span20h7701809105610028048E: argument 0"}
!78 = distinct !{!78, !"_ZN4time8duration13_$LT$impl$GT$4span4span20h7701809105610028048E"}
!79 = distinct !{!79, !78, !"_ZN4time8duration13_$LT$impl$GT$4span4span20h7701809105610028048E: %f"}
!80 = !{!77, !79}
!81 = !{!82}
!82 = distinct !{!82, !83, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E: argument 0"}
!83 = distinct !{!83, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E"}
!84 = !{!85, !77, !79, !74}
!85 = distinct !{!85, !83, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E: argument 1"}
!86 = !{!87}
!87 = distinct !{!87, !88, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E: argument 0"}
!88 = distinct !{!88, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E"}
!89 = !{!90, !77, !79, !74}
!90 = distinct !{!90, !88, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E: argument 1"}
!91 = !{!92}
!92 = distinct !{!92, !93, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE: argument 0"}
!93 = distinct !{!93, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE"}
!94 = !{!95, !96, !77, !79, !74}
!95 = distinct !{!95, !93, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE: argument 1"}
!96 = distinct !{!96, !93, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE: argument 2"}
!97 = !{!98, !77, !79, !74}
!98 = distinct !{!98, !99, !"_ZN9black_box9black_box21h12337314741629787439E: argument 0"}
!99 = distinct !{!99, !"_ZN9black_box9black_box21h12337314741629787439E"}
!100 = !{!101}
!101 = distinct !{!101, !99, !"_ZN9black_box9black_box21h12337314741629787439E: %dummy"}
!102 = !{!79, !74}
!103 = !{!104}
!104 = distinct !{!104, !105, !"_ZN13_$LT$impl$GT$4iter4iter21h17249299547374717818E: argument 0"}
!105 = distinct !{!105, !"_ZN13_$LT$impl$GT$4iter4iter21h17249299547374717818E"}
!106 = !{!107, !109, !104}
!107 = distinct !{!107, !108, !"_ZN4time8duration13_$LT$impl$GT$4span4span20h9935029817821848393E: argument 0"}
!108 = distinct !{!108, !"_ZN4time8duration13_$LT$impl$GT$4span4span20h9935029817821848393E"}
!109 = distinct !{!109, !108, !"_ZN4time8duration13_$LT$impl$GT$4span4span20h9935029817821848393E: %f"}
!110 = !{!107, !109}
!111 = !{!112}
!112 = distinct !{!112, !113, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E: argument 0"}
!113 = distinct !{!113, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E"}
!114 = !{!115, !107, !109, !104}
!115 = distinct !{!115, !113, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E: argument 1"}
!116 = !{!117}
!117 = distinct !{!117, !118, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E: argument 0"}
!118 = distinct !{!118, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E"}
!119 = !{!120, !107, !109, !104}
!120 = distinct !{!120, !118, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E: argument 1"}
!121 = !{!122}
!122 = distinct !{!122, !123, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE: argument 0"}
!123 = distinct !{!123, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE"}
!124 = !{!125, !126, !107, !109, !104}
!125 = distinct !{!125, !123, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE: argument 1"}
!126 = distinct !{!126, !123, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE: argument 2"}
!127 = !{!128, !107, !109, !104}
!128 = distinct !{!128, !129, !"_ZN9black_box9black_box21h12337314741629787439E: argument 0"}
!129 = distinct !{!129, !"_ZN9black_box9black_box21h12337314741629787439E"}
!130 = !{!131}
!131 = distinct !{!131, !129, !"_ZN9black_box9black_box21h12337314741629787439E: %dummy"}
!132 = !{!109, !104}
!133 = !{!134}
!134 = distinct !{!134, !135, !"_ZN13_$LT$impl$GT$4iter4iter21h16126355569708705743E: argument 0"}
!135 = distinct !{!135, !"_ZN13_$LT$impl$GT$4iter4iter21h16126355569708705743E"}
!136 = !{!137, !139, !134}
!137 = distinct !{!137, !138, !"_ZN4time8duration13_$LT$impl$GT$4span4span21h15957614015035305351E: argument 0"}
!138 = distinct !{!138, !"_ZN4time8duration13_$LT$impl$GT$4span4span21h15957614015035305351E"}
!139 = distinct !{!139, !138, !"_ZN4time8duration13_$LT$impl$GT$4span4span21h15957614015035305351E: %f"}
!140 = !{!137, !139}
!141 = !{!142}
!142 = distinct !{!142, !143, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E: argument 0"}
!143 = distinct !{!143, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E"}
!144 = !{!145, !137, !139, !134}
!145 = distinct !{!145, !143, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E: argument 1"}
!146 = !{!147}
!147 = distinct !{!147, !148, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E: argument 0"}
!148 = distinct !{!148, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E"}
!149 = !{!150, !137, !139, !134}
!150 = distinct !{!150, !148, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E: argument 1"}
!151 = !{!152}
!152 = distinct !{!152, !153, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE: argument 0"}
!153 = distinct !{!153, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE"}
!154 = !{!155, !156, !137, !139, !134}
!155 = distinct !{!155, !153, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE: argument 1"}
!156 = distinct !{!156, !153, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE: argument 2"}
!157 = !{!158, !137, !139, !134}
!158 = distinct !{!158, !159, !"_ZN9black_box9black_box21h12337314741629787439E: argument 0"}
!159 = distinct !{!159, !"_ZN9black_box9black_box21h12337314741629787439E"}
!160 = !{!161}
!161 = distinct !{!161, !159, !"_ZN9black_box9black_box21h12337314741629787439E: %dummy"}
!162 = !{!139, !134}
!163 = !{!164}
!164 = distinct !{!164, !165, !"_ZN13_$LT$impl$GT$4iter4iter21h16623640101860139313E: argument 0"}
!165 = distinct !{!165, !"_ZN13_$LT$impl$GT$4iter4iter21h16623640101860139313E"}
!166 = !{!167, !169, !164}
!167 = distinct !{!167, !168, !"_ZN4time8duration13_$LT$impl$GT$4span4span20h9806870429211022885E: argument 0"}
!168 = distinct !{!168, !"_ZN4time8duration13_$LT$impl$GT$4span4span20h9806870429211022885E"}
!169 = distinct !{!169, !168, !"_ZN4time8duration13_$LT$impl$GT$4span4span20h9806870429211022885E: %f"}
!170 = !{!167, !169}
!171 = !{!172}
!172 = distinct !{!172, !173, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E: argument 0"}
!173 = distinct !{!173, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E"}
!174 = !{!175, !167, !169, !164}
!175 = distinct !{!175, !173, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E: argument 1"}
!176 = !{!177}
!177 = distinct !{!177, !178, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E: argument 0"}
!178 = distinct !{!178, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E"}
!179 = !{!180, !167, !169, !164}
!180 = distinct !{!180, !178, !"_ZN3fmt13_$LT$impl$GT$3new3new21h17142287544130871831E: argument 1"}
!181 = !{!182}
!182 = distinct !{!182, !183, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE: argument 0"}
!183 = distinct !{!183, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE"}
!184 = !{!185, !186, !167, !169, !164}
!185 = distinct !{!185, !183, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE: argument 1"}
!186 = distinct !{!186, !183, !"_ZN3fmt13_$LT$impl$GT$6new_v120ha485a46c60859989XuWE: argument 2"}
!187 = !{!188, !167, !169, !164}
!188 = distinct !{!188, !189, !"_ZN9black_box9black_box21h12337314741629787439E: argument 0"}
!189 = distinct !{!189, !"_ZN9black_box9black_box21h12337314741629787439E"}
!190 = !{!191}
!191 = distinct !{!191, !189, !"_ZN9black_box9black_box21h12337314741629787439E: %dummy"}
!192 = !{!169, !164}