Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; ModuleID = 'bad-position-simple.bad_position_simple3.rcgu.no-opt.bc'
- source_filename = "bad_position_simple3-317d481089b8c8fe83113de504472633.rs"
- target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
- target triple = "x86_64-unknown-linux-gnu"
- %"core::option::Option<usize>" = type { [0 x i64], i64, [1 x i64] }
- %"core::option::Option<usize>::Some" = type { [1 x i64], i64, [0 x i64] }
- %"core::result::Result<usize, usize>" = type { [0 x i64], i64, [1 x i64] }
- %"core::result::Result<usize, usize>::Err" = type { [1 x i64], i64, [0 x i64] }
- %"core::fmt::Arguments" = type { [0 x i64], { [0 x { [0 x i8]*, i64 }]*, i64 }, [0 x i64], %"core::option::Option<&[core::fmt::rt::v1::Argument]>", [0 x i64], { [0 x { i8*, i8* }]*, i64 }, [0 x i64] }
- %"core::option::Option<&[core::fmt::rt::v1::Argument]>" = type { [0 x i64], {}*, [1 x i64] }
- %"core::fmt::rt::v1::Argument" = type { [0 x i64], %"core::fmt::rt::v1::Position", [0 x i64], %"core::fmt::rt::v1::FormatSpec", [0 x i64] }
- %"core::fmt::rt::v1::Position" = type { [0 x i64], i64, [1 x i64] }
- %"core::fmt::rt::v1::FormatSpec" = type { [0 x i64], %"core::fmt::rt::v1::Count", [0 x i64], %"core::fmt::rt::v1::Count", [0 x i32], i32, [0 x i32], i32, [0 x i8], i8, [7 x i8] }
- %"core::fmt::rt::v1::Count" = type { [0 x i64], i64, [1 x i64] }
- %"core::option::Option<isize>" = type { [0 x i64], i64, [1 x i64] }
- %"core::option::Option<isize>::Some" = type { [1 x i64], i64, [0 x i64] }
- %"core::marker::PhantomData<&u32>" = type {}
- %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>" = type { [0 x i8], %"import_path_to_string::{{closure}}", [0 x i8] }
- %"import_path_to_string::{{closure}}" = type {}
- %"core::result::Result<usize, usize>::Ok" = type { [1 x i64], i64, [0 x i64] }
- %"unwind::libunwind::_Unwind_Exception" = type { [0 x i64], i64, [0 x i64], void (i32, %"unwind::libunwind::_Unwind_Exception"*)*, [0 x i64], [6 x i64], [0 x i64] }
- %"unwind::libunwind::_Unwind_Context" = type { [0 x i8] }
- %"core::fmt::Formatter" = type { [0 x i64], %"core::option::Option<usize>", [0 x i64], %"core::option::Option<usize>", [0 x i64], { {}*, {}* }, [0 x i64], { i64*, i64* }, [0 x i64], { [0 x { i8*, i8* }]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i8], i8, [7 x i8] }
- @str.0 = internal constant [40 x i8] c"/home/alex/code/rust4/src/libcore/ptr.rs"
- @str.1 = internal constant [25 x i8] c"attempt to divide by zero"
- @panic_loc.2 = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([25 x i8]* @str.1 to [0 x i8]*), i64 25 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([40 x i8]* @str.0 to [0 x i8]*), i64 40 }, i32 699, i32 18 }, align 8
- @str.3 = internal constant [31 x i8] c"attempt to divide with overflow"
- @panic_loc.4 = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([31 x i8]* @str.3 to [0 x i8]*), i64 31 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([40 x i8]* @str.0 to [0 x i8]*), i64 40 }, i32 699, i32 18 }, align 8
- @str.5 = internal constant [46 x i8] c"/home/alex/code/rust4/src/libcore/slice/mod.rs"
- @panic_loc.6 = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([25 x i8]* @str.1 to [0 x i8]*), i64 25 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([46 x i8]* @str.5 to [0 x i8]*), i64 46 }, i32 1343, i32 23 }, align 8
- @str.7 = internal constant [28 x i8] c"attempt to add with overflow"
- @panic_loc.8 = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([28 x i8]* @str.7 to [0 x i8]*), i64 28 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([46 x i8]* @str.5 to [0 x i8]*), i64 46 }, i32 1252, i32 31 }, align 8
- @str.9 = internal constant [33 x i8] c"attempt to subtract with overflow"
- @panic_loc.a = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([33 x i8]* @str.9 to [0 x i8]*), i64 33 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([46 x i8]* @str.5 to [0 x i8]*), i64 46 }, i32 903, i32 68 }, align 8
- @ref.b = private unnamed_addr constant [1 x i32] [i32 1], align 4
- @ref.c = private unnamed_addr constant [0 x i32] zeroinitializer, align 4
- @str.d = internal constant [22 x i8] c"bad-position-simple.rs"
- @panic_bounds_check_loc.e = private unnamed_addr constant { { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([22 x i8]* @str.d to [0 x i8]*), i64 22 }, i32 8, i32 39 }, align 8
- @str.f = internal constant [0 x i8] zeroinitializer
- @ref.g = private unnamed_addr constant [1 x { [0 x i8]*, i64 }] [{ [0 x i8]*, i64 } { [0 x i8]* @str.f, i64 0 }], align 8
- @ref.h = private unnamed_addr constant { { [0 x i8], { i64, [0 x i8], i64, [0 x i8] }, [0 x i8], { [0 x i8], <{ i64, [8 x i8] }>, [0 x i8], <{ i64, [8 x i8] }>, [0 x i8], i32, [0 x i8], i32, [0 x i8], i8, [7 x i8] }, [0 x i8] } } { { [0 x i8], { i64, [0 x i8], i64, [0 x i8] }, [0 x i8], { [0 x i8], <{ i64, [8 x i8] }>, [0 x i8], <{ i64, [8 x i8] }>, [0 x i8], i32, [0 x i8], i32, [0 x i8], i8, [7 x i8] }, [0 x i8] } { [0 x i8] undef, { i64, [0 x i8], i64, [0 x i8] } { i64 1, [0 x i8] undef, i64 0, [0 x i8] undef }, [0 x i8] undef, { [0 x i8], <{ i64, [8 x i8] }>, [0 x i8], <{ i64, [8 x i8] }>, [0 x i8], i32, [0 x i8], i32, [0 x i8], i8, [7 x i8] } { [0 x i8] undef, <{ i64, [8 x i8] }> <{ i64 3, [8 x i8] undef }>, [0 x i8] undef, <{ i64, [8 x i8] }> <{ i64 3, [8 x i8] undef }>, [0 x i8] undef, i32 32, [0 x i8] undef, i32 0, [0 x i8] undef, i8 3, [7 x i8] undef }, [0 x i8] undef } }, align 8
- @const.i = private unnamed_addr constant { { [0 x i8], { i64, [0 x i8], i64, [0 x i8] }, [0 x i8], { [0 x i8], <{ i64, [8 x i8] }>, [0 x i8], <{ i64, [8 x i8] }>, [0 x i8], i32, [0 x i8], i32, [0 x i8], i8, [7 x i8] }, [0 x i8] } }* @ref.h, align 8
- @ref.j = private unnamed_addr constant { [0 x i8], { [0 x i8]*, i64 }, [0 x i8], i32, [0 x i8], i32, [0 x i8] } { [0 x i8] undef, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([22 x i8]* @str.d to [0 x i8]*), i64 22 }, [0 x i8] undef, i32 14, [0 x i8] undef, i32 13, [0 x i8] undef }, align 8
- @const.k = private unnamed_addr constant { [0 x i8], { [0 x i8]*, i64 }, [0 x i8], i32, [0 x i8], i32, [0 x i8] }* @ref.j, align 8
- @panic_loc.l = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([28 x i8]* @str.7 to [0 x i8]*), i64 28 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([22 x i8]* @str.d to [0 x i8]*), i64 22 }, i32 10, i32 43 }, align 8
- @panic_loc.m = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([28 x i8]* @str.7 to [0 x i8]*), i64 28 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([22 x i8]* @str.d to [0 x i8]*), i64 22 }, i32 10, i32 70 }, align 8
- ; Function Attrs: inlinehint uwtable
- define internal { [0 x i32]*, i64 } @"_ZN101_$LT$core..ops..range..RangeTo$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h078f68a8309cb374E"(i64, [0 x i32]* noalias nonnull readonly, i64) unnamed_addr #0 {
- %4 = alloca { i64, i64 }, align 8
- %5 = bitcast { i64, i64 }* %4 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %5)
- %6 = bitcast { i64, i64 }* %4 to i64*
- store i64 0, i64* %6, align 8
- %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %4, i32 0, i32 1
- store i64 %0, i64* %7, align 8
- %8 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %4, i32 0, i32 0
- %9 = load i64, i64* %8, align 8
- %10 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %4, i32 0, i32 1
- %11 = load i64, i64* %10, align 8
- %12 = call { [0 x i32]*, i64 } @"_ZN99_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h5697259416355b17E"(i64 %9, i64 %11, [0 x i32]* noalias nonnull readonly %1, i64 %2)
- %13 = extractvalue { [0 x i32]*, i64 } %12, 0
- %14 = extractvalue { [0 x i32]*, i64 } %12, 1
- br label %15
- ; <label>:15: ; preds = %3
- %16 = bitcast { i64, i64 }* %4 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %16)
- %17 = insertvalue { [0 x i32]*, i64 } undef, [0 x i32]* %13, 0
- %18 = insertvalue { [0 x i32]*, i64 } %17, i64 %14, 1
- ret { [0 x i32]*, i64 } %18
- }
- ; Function Attrs: inlinehint uwtable
- define internal { [0 x i32]*, i64 } @"_ZN103_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h10a46beecb6fa85fE"(i64, [0 x i32]* noalias nonnull readonly, i64) unnamed_addr #0 {
- %4 = alloca { i64, i64 }, align 8
- %5 = bitcast { i64, i64 }* %4 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %5)
- %6 = call i64 @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$3len17he70cfd9d37ed05efE"([0 x i32]* noalias nonnull readonly %1, i64 %2)
- br label %7
- ; <label>:7: ; preds = %3
- %8 = bitcast { i64, i64 }* %4 to i64*
- store i64 %0, i64* %8, align 8
- %9 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %4, i32 0, i32 1
- store i64 %6, i64* %9, align 8
- %10 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %4, i32 0, i32 0
- %11 = load i64, i64* %10, align 8
- %12 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %4, i32 0, i32 1
- %13 = load i64, i64* %12, align 8
- %14 = call { [0 x i32]*, i64 } @"_ZN99_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h5697259416355b17E"(i64 %11, i64 %13, [0 x i32]* noalias nonnull readonly %1, i64 %2)
- %15 = extractvalue { [0 x i32]*, i64 } %14, 0
- %16 = extractvalue { [0 x i32]*, i64 } %14, 1
- br label %17
- ; <label>:17: ; preds = %7
- %18 = bitcast { i64, i64 }* %4 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %18)
- %19 = insertvalue { [0 x i32]*, i64 } undef, [0 x i32]* %15, 0
- %20 = insertvalue { [0 x i32]*, i64 } %19, i64 %16, 1
- ret { [0 x i32]*, i64 } %20
- }
- ; Function Attrs: inlinehint uwtable
- define internal void @"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$3map17hac95c6f09e5eb2e1E"(%"core::option::Option<usize>"* noalias nocapture sret dereferenceable(16), %"core::option::Option<usize>"* noalias nocapture dereferenceable(16), i64* noalias readonly dereferenceable(8)) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
- %4 = alloca { i8*, i32 }, align 8
- %5 = alloca i8, align 1
- %6 = alloca i8, align 1
- %7 = alloca i64, align 8
- store i8 0, i8* %6, align 1
- store i8 0, i8* %5, align 1
- store i8 1, i8* %6, align 1
- store i8 1, i8* %5, align 1
- %8 = bitcast %"core::option::Option<usize>"* %1 to i64*
- %9 = load i64, i64* %8, align 8, !range !1
- %10 = bitcast %"core::option::Option<usize>"* %1 to i64*
- %11 = load i64, i64* %10, align 8, !range !1
- switch i64 %11, label %22 [
- i64 0, label %20
- i64 1, label %23
- ]
- ; <label>:12: ; preds = %45, %44, %41
- %13 = bitcast { i8*, i32 }* %4 to i8**
- %14 = load i8*, i8** %13, align 8
- %15 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
- %16 = load i32, i32* %15, align 4
- %17 = bitcast { i8*, i32 }* %4 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %17)
- %18 = insertvalue { i8*, i32 } undef, i8* %14, 0
- %19 = insertvalue { i8*, i32 } %18, i32 %16, 1
- resume { i8*, i32 } %19
- ; <label>:20: ; preds = %3
- %21 = bitcast %"core::option::Option<usize>"* %0 to i64*
- store i64 0, i64* %21, align 8
- br label %35
- ; <label>:22: ; preds = %3
- unreachable
- ; <label>:23: ; preds = %3
- store i8 0, i8* %6, align 1
- %24 = bitcast %"core::option::Option<usize>"* %1 to %"core::option::Option<usize>::Some"*
- %25 = getelementptr inbounds %"core::option::Option<usize>::Some", %"core::option::Option<usize>::Some"* %24, i32 0, i32 1
- %26 = load i64, i64* %25, align 8
- store i8 0, i8* %5, align 1
- %27 = bitcast i64* %7 to i8*
- call void @llvm.lifetime.start.p0i8(i64 8, i8* %27)
- store i64 %26, i64* %7, align 8
- %28 = load i64, i64* %7, align 8
- %29 = invoke i64 @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17hab0db5dfbde4de17E"(i64* noalias readonly dereferenceable(8) %2, i64 %28)
- to label %30 unwind label %56
- ; <label>:30: ; preds = %23
- %31 = bitcast i64* %7 to i8*
- call void @llvm.lifetime.end.p0i8(i64 8, i8* %31)
- %32 = bitcast %"core::option::Option<usize>"* %0 to %"core::option::Option<usize>::Some"*
- %33 = getelementptr inbounds %"core::option::Option<usize>::Some", %"core::option::Option<usize>::Some"* %32, i32 0, i32 1
- store i64 %29, i64* %33, align 8
- %34 = bitcast %"core::option::Option<usize>"* %0 to i64*
- store i64 1, i64* %34, align 8
- br label %35
- ; <label>:35: ; preds = %30, %20
- %36 = load i8, i8* %5, align 1, !range !2
- %37 = trunc i8 %36 to i1
- br i1 %37, label %49, label %38
- ; <label>:38: ; preds = %49, %35
- %39 = bitcast %"core::option::Option<usize>"* %1 to i64*
- %40 = load i64, i64* %39, align 8, !range !1
- switch i64 %40, label %55 [
- i64 1, label %51
- ]
- ; <label>:41: ; preds = %46
- %42 = load i8, i8* %6, align 1, !range !2
- %43 = trunc i8 %42 to i1
- br i1 %43, label %44, label %12
- ; <label>:44: ; preds = %41
- store i8 0, i8* %6, align 1
- br label %12
- ; <label>:45: ; preds = %46
- br label %12
- ; <label>:46: ; preds = %56
- %47 = bitcast %"core::option::Option<usize>"* %1 to i64*
- %48 = load i64, i64* %47, align 8, !range !1
- switch i64 %48, label %45 [
- i64 1, label %41
- ]
- ; <label>:49: ; preds = %35
- store i8 0, i8* %5, align 1
- br label %38
- ; <label>:50: ; preds = %55, %54, %51
- ret void
- ; <label>:51: ; preds = %38
- %52 = load i8, i8* %6, align 1, !range !2
- %53 = trunc i8 %52 to i1
- br i1 %53, label %54, label %50
- ; <label>:54: ; preds = %51
- store i8 0, i8* %6, align 1
- br label %50
- ; <label>:55: ; preds = %38
- br label %50
- ; <label>:56: ; preds = %23
- %57 = landingpad { i8*, i32 }
- cleanup
- %58 = bitcast { i8*, i32 }* %4 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %58)
- %59 = extractvalue { i8*, i32 } %57, 0
- %60 = extractvalue { i8*, i32 } %57, 1
- %61 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
- store i8* %59, i8** %61, align 8
- %62 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
- store i32 %60, i32* %62, align 8
- br label %46
- }
- ; Function Attrs: inlinehint uwtable
- define internal void @"_ZN47_$LT$core..result..Result$LT$T$C$$u20$E$GT$$GT$3err17h7575ad3e8a4fc754E"(%"core::option::Option<usize>"* noalias nocapture sret dereferenceable(16), %"core::result::Result<usize, usize>"* noalias nocapture dereferenceable(16)) unnamed_addr #0 {
- %3 = alloca i8, align 1
- store i8 0, i8* %3, align 1
- store i8 1, i8* %3, align 1
- %4 = bitcast %"core::result::Result<usize, usize>"* %1 to i64*
- %5 = load i64, i64* %4, align 8, !range !1
- %6 = bitcast %"core::result::Result<usize, usize>"* %1 to i64*
- %7 = load i64, i64* %6, align 8, !range !1
- switch i64 %7, label %10 [
- i64 0, label %8
- i64 1, label %11
- ]
- ; <label>:8: ; preds = %2
- %9 = bitcast %"core::option::Option<usize>"* %0 to i64*
- store i64 0, i64* %9, align 8
- br label %18
- ; <label>:10: ; preds = %2
- unreachable
- ; <label>:11: ; preds = %2
- store i8 0, i8* %3, align 1
- %12 = bitcast %"core::result::Result<usize, usize>"* %1 to %"core::result::Result<usize, usize>::Err"*
- %13 = getelementptr inbounds %"core::result::Result<usize, usize>::Err", %"core::result::Result<usize, usize>::Err"* %12, i32 0, i32 1
- %14 = load i64, i64* %13, align 8
- %15 = bitcast %"core::option::Option<usize>"* %0 to %"core::option::Option<usize>::Some"*
- %16 = getelementptr inbounds %"core::option::Option<usize>::Some", %"core::option::Option<usize>::Some"* %15, i32 0, i32 1
- store i64 %14, i64* %16, align 8
- %17 = bitcast %"core::option::Option<usize>"* %0 to i64*
- store i64 1, i64* %17, align 8
- br label %18
- ; <label>:18: ; preds = %11, %8
- %19 = bitcast %"core::result::Result<usize, usize>"* %1 to i64*
- %20 = load i64, i64* %19, align 8, !range !1
- switch i64 %20, label %26 [
- i64 1, label %22
- ]
- ; <label>:21: ; preds = %26, %25, %22
- ret void
- ; <label>:22: ; preds = %18
- %23 = load i8, i8* %3, align 1, !range !2
- %24 = trunc i8 %23 to i1
- br i1 %24, label %25, label %21
- ; <label>:25: ; preds = %22
- store i8 0, i8* %3, align 1
- br label %21
- ; <label>:26: ; preds = %18
- br label %21
- }
- ; Function Attrs: inlinehint uwtable
- define internal void @_ZN4core3fmt9Arguments16new_v1_formatted17hea2ae333548f7201E(%"core::fmt::Arguments"* noalias nocapture sret dereferenceable(48), [0 x { [0 x i8]*, i64 }]* noalias nonnull readonly, i64, [0 x { i8*, i8* }]* noalias nonnull readonly, i64, [0 x %"core::fmt::rt::v1::Argument"]* noalias nonnull readonly, i64) unnamed_addr #0 {
- %8 = alloca %"core::option::Option<&[core::fmt::rt::v1::Argument]>", align 8
- %9 = bitcast %"core::option::Option<&[core::fmt::rt::v1::Argument]>"* %8 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %9)
- %10 = bitcast %"core::option::Option<&[core::fmt::rt::v1::Argument]>"* %8 to { i64*, i64 }*
- %11 = bitcast { i64*, i64 }* %10 to { [0 x %"core::fmt::rt::v1::Argument"]*, i64 }*
- %12 = getelementptr inbounds { [0 x %"core::fmt::rt::v1::Argument"]*, i64 }, { [0 x %"core::fmt::rt::v1::Argument"]*, i64 }* %11, i32 0, i32 0
- store [0 x %"core::fmt::rt::v1::Argument"]* %5, [0 x %"core::fmt::rt::v1::Argument"]** %12, align 8
- %13 = getelementptr inbounds { [0 x %"core::fmt::rt::v1::Argument"]*, i64 }, { [0 x %"core::fmt::rt::v1::Argument"]*, i64 }* %11, i32 0, i32 1
- store i64 %6, i64* %13, align 8
- %14 = bitcast %"core::fmt::Arguments"* %0 to { [0 x { [0 x i8]*, i64 }]*, i64 }*
- %15 = getelementptr inbounds { [0 x { [0 x i8]*, i64 }]*, i64 }, { [0 x { [0 x i8]*, i64 }]*, i64 }* %14, i32 0, i32 0
- store [0 x { [0 x i8]*, i64 }]* %1, [0 x { [0 x i8]*, i64 }]** %15, align 8
- %16 = getelementptr inbounds { [0 x { [0 x i8]*, i64 }]*, i64 }, { [0 x { [0 x i8]*, i64 }]*, i64 }* %14, i32 0, i32 1
- store i64 %2, i64* %16, align 8
- %17 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %0, i32 0, i32 3
- %18 = bitcast %"core::option::Option<&[core::fmt::rt::v1::Argument]>"* %8 to i8*
- %19 = bitcast %"core::option::Option<&[core::fmt::rt::v1::Argument]>"* %17 to i8*
- call void @llvm.memcpy.p0i8.p0i8.i64(i8* %19, i8* %18, i64 16, i32 8, i1 false)
- %20 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %0, i32 0, i32 5
- %21 = getelementptr inbounds { [0 x { i8*, i8* }]*, i64 }, { [0 x { i8*, i8* }]*, i64 }* %20, i32 0, i32 0
- store [0 x { i8*, i8* }]* %3, [0 x { i8*, i8* }]** %21, align 8
- %22 = getelementptr inbounds { [0 x { i8*, i8* }]*, i64 }, { [0 x { i8*, i8* }]*, i64 }* %20, i32 0, i32 1
- store i64 %4, i64* %22, align 8
- %23 = bitcast %"core::option::Option<&[core::fmt::rt::v1::Argument]>"* %8 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %23)
- ret void
- }
- ; Function Attrs: inlinehint uwtable
- define internal i64 @_ZN4core3mem7size_of17h1d6b4cc7f7420375E() unnamed_addr #0 {
- %1 = alloca i64, align 8
- %2 = bitcast i64* %1 to i8*
- call void @llvm.lifetime.start.p0i8(i64 8, i8* %2)
- store i64 4, i64* %1, align 8
- %3 = load i64, i64* %1, align 8
- %4 = bitcast i64* %1 to i8*
- call void @llvm.lifetime.end.p0i8(i64 8, i8* %4)
- br label %5
- ; <label>:5: ; preds = %0
- ret i64 %3
- }
- ; Function Attrs: inlinehint uwtable
- define internal i64 @"_ZN4core3num23_$LT$impl$u20$isize$GT$12wrapping_sub17h0d8b1ee1946e0e7eE"(i64, i64) unnamed_addr #0 {
- %3 = alloca i64, align 8
- %4 = bitcast i64* %3 to i8*
- call void @llvm.lifetime.start.p0i8(i64 8, i8* %4)
- %5 = sub i64 %0, %1
- store i64 %5, i64* %3, align 8
- %6 = load i64, i64* %3, align 8
- %7 = bitcast i64* %3 to i8*
- call void @llvm.lifetime.end.p0i8(i64 8, i8* %7)
- br label %8
- ; <label>:8: ; preds = %2
- ret i64 %6
- }
- ; Function Attrs: inlinehint uwtable
- define internal i64 @"_ZN4core3num23_$LT$impl$u20$usize$GT$12wrapping_sub17h25b775332ef31d00E"(i64, i64) unnamed_addr #0 {
- %3 = alloca i64, align 8
- %4 = bitcast i64* %3 to i8*
- call void @llvm.lifetime.start.p0i8(i64 8, i8* %4)
- %5 = sub i64 %0, %1
- store i64 %5, i64* %3, align 8
- %6 = load i64, i64* %3, align 8
- %7 = bitcast i64* %3 to i8*
- call void @llvm.lifetime.end.p0i8(i64 8, i8* %7)
- br label %8
- ; <label>:8: ; preds = %2
- ret i64 %6
- }
- ; Function Attrs: inlinehint uwtable
- define internal i8* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$15wrapping_offset17ha2ba679b8b637d52E"(i8*, i64) unnamed_addr #0 {
- %3 = alloca i8*, align 8
- %4 = bitcast i8** %3 to i8*
- call void @llvm.lifetime.start.p0i8(i64 8, i8* %4)
- %5 = getelementptr i8, i8* %0, i64 %1
- store i8* %5, i8** %3, align 8
- %6 = load i8*, i8** %3, align 8
- %7 = bitcast i8** %3 to i8*
- call void @llvm.lifetime.end.p0i8(i64 8, i8* %7)
- br label %8
- ; <label>:8: ; preds = %2
- ret i8* %6
- }
- ; Function Attrs: inlinehint uwtable
- define internal i32* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$6offset17h2db78cc51ca12da6E"(i32*, i64) unnamed_addr #0 {
- %3 = alloca i32*, align 8
- %4 = bitcast i32** %3 to i8*
- call void @llvm.lifetime.start.p0i8(i64 8, i8* %4)
- %5 = getelementptr inbounds i32, i32* %0, i64 %1
- store i32* %5, i32** %3, align 8
- %6 = load i32*, i32** %3, align 8
- %7 = bitcast i32** %3 to i8*
- call void @llvm.lifetime.end.p0i8(i64 8, i8* %7)
- br label %8
- ; <label>:8: ; preds = %2
- ret i32* %6
- }
- ; Function Attrs: inlinehint uwtable
- define internal zeroext i1 @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$7is_null17h364a758ace70a8a3E"(i32*) unnamed_addr #0 {
- %2 = bitcast i32* %0 to i8*
- %3 = call i8* @_ZN4core3ptr4null17h78c18f9f5259760aE()
- br label %4
- ; <label>:4: ; preds = %1
- %5 = icmp eq i8* %2, %3
- ret i1 %5
- }
- ; Function Attrs: inlinehint uwtable
- define internal void @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$9offset_to17h84ef24894944509aE"(%"core::option::Option<isize>"* noalias nocapture sret dereferenceable(16), i32*, i32*) unnamed_addr #0 {
- %4 = call i64 @_ZN4core3mem7size_of17h1d6b4cc7f7420375E()
- br label %5
- ; <label>:5: ; preds = %3
- %6 = icmp eq i64 %4, 0
- br i1 %6, label %7, label %9
- ; <label>:7: ; preds = %5
- %8 = bitcast %"core::option::Option<isize>"* %0 to i64*
- store i64 0, i64* %8, align 8
- br label %27
- ; <label>:9: ; preds = %5
- %10 = ptrtoint i32* %2 to i64
- %11 = ptrtoint i32* %1 to i64
- %12 = call i64 @"_ZN4core3num23_$LT$impl$u20$isize$GT$12wrapping_sub17h0d8b1ee1946e0e7eE"(i64 %10, i64 %11)
- br label %13
- ; <label>:13: ; preds = %9
- %14 = icmp ule i64 %4, -1
- call void @llvm.assume(i1 %14)
- %15 = icmp eq i64 %4, 0
- %16 = call i1 @llvm.expect.i1(i1 %15, i1 false)
- br i1 %16, label %28, label %17
- ; <label>:17: ; preds = %13
- %18 = icmp eq i64 %4, -1
- %19 = icmp eq i64 %12, -9223372036854775808
- %20 = and i1 %18, %19
- %21 = call i1 @llvm.expect.i1(i1 %20, i1 false)
- br i1 %21, label %29, label %22
- ; <label>:22: ; preds = %17
- %23 = sdiv i64 %12, %4
- %24 = bitcast %"core::option::Option<isize>"* %0 to %"core::option::Option<isize>::Some"*
- %25 = getelementptr inbounds %"core::option::Option<isize>::Some", %"core::option::Option<isize>::Some"* %24, i32 0, i32 1
- store i64 %23, i64* %25, align 8
- %26 = bitcast %"core::option::Option<isize>"* %0 to i64*
- store i64 1, i64* %26, align 8
- br label %27
- ; <label>:27: ; preds = %22, %7
- ret void
- ; <label>:28: ; preds = %13
- call void @_ZN4core9panicking5panic17hfefa0158f97fa77bE({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* @panic_loc.2 to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*))
- unreachable
- ; <label>:29: ; preds = %17
- call void @_ZN4core9panicking5panic17hfefa0158f97fa77bE({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* @panic_loc.4 to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*))
- unreachable
- }
- ; Function Attrs: inlinehint uwtable
- define internal i8* @_ZN4core3ptr4null17h78c18f9f5259760aE() unnamed_addr #0 {
- call void @llvm.assume(i1 true)
- ret i8* null
- }
- ; Function Attrs: alwaysinline uwtable
- define internal i32* @_ZN4core5slice10PointerExt8post_inc17hc9f8b6822179ed09E(i32** dereferenceable(8)) unnamed_addr #1 {
- %2 = load i32*, i32** %0, align 8
- %3 = load i32*, i32** %0, align 8
- %4 = call i32* @"_ZN59_$LT$$BP$const$u20$T$u20$as$u20$core..slice..PointerExt$GT$12slice_offset17h7aa1452c7557c220E"(i32* %3, i64 1)
- br label %5
- ; <label>:5: ; preds = %1
- store i32* %4, i32** %0, align 8
- ret i32* %2
- }
- ; Function Attrs: alwaysinline uwtable
- define internal i64 @_ZN4core5slice11ptrdistance17h036ab170e59738e1E(i32*, i32*) unnamed_addr #1 {
- %3 = alloca %"core::option::Option<isize>", align 8
- %4 = alloca i64, align 8
- %5 = bitcast %"core::option::Option<isize>"* %3 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %5)
- call void @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$9offset_to17h84ef24894944509aE"(%"core::option::Option<isize>"* noalias nocapture sret dereferenceable(16) %3, i32* %0, i32* %1)
- br label %6
- ; <label>:6: ; preds = %2
- %7 = bitcast %"core::option::Option<isize>"* %3 to i64*
- %8 = load i64, i64* %7, align 8, !range !1
- %9 = bitcast %"core::option::Option<isize>"* %3 to i64*
- %10 = load i64, i64* %9, align 8, !range !1
- switch i64 %10, label %15 [
- i64 0, label %11
- i64 1, label %16
- ]
- ; <label>:11: ; preds = %6
- %12 = ptrtoint i32* %1 to i64
- %13 = ptrtoint i32* %0 to i64
- %14 = call i64 @"_ZN4core3num23_$LT$impl$u20$usize$GT$12wrapping_sub17h25b775332ef31d00E"(i64 %12, i64 %13)
- store i64 %14, i64* %4, align 8
- br label %24
- ; <label>:15: ; preds = %6
- unreachable
- ; <label>:16: ; preds = %6
- %17 = bitcast %"core::option::Option<isize>"* %3 to %"core::option::Option<isize>::Some"*
- %18 = getelementptr inbounds %"core::option::Option<isize>::Some", %"core::option::Option<isize>::Some"* %17, i32 0, i32 1
- %19 = load i64, i64* %18, align 8
- %20 = icmp ule i64 %19, -1
- call void @llvm.assume(i1 %20)
- store i64 %19, i64* %4, align 8
- br label %21
- ; <label>:21: ; preds = %24, %16
- %22 = bitcast %"core::option::Option<isize>"* %3 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %22)
- %23 = load i64, i64* %4, align 8
- ret i64 %23
- ; <label>:24: ; preds = %11
- br label %21
- }
- ; Function Attrs: inlinehint uwtable
- define internal i64 @_ZN4core5slice13size_from_ptr17h73637563565851c6E(i32*) unnamed_addr #0 {
- %2 = call i64 @_ZN4core3mem7size_of17h1d6b4cc7f7420375E()
- br label %3
- ; <label>:3: ; preds = %1
- ret i64 %2
- }
- ; Function Attrs: inlinehint uwtable
- define internal { [0 x i32]*, i64 } @_ZN4core5slice14from_raw_parts17hacb157bb9f25ba37E(i32*, i64) unnamed_addr #0 {
- %3 = alloca { [0 x i32]*, i64 }, align 8
- %4 = alloca { i32*, i64 }, align 8
- %5 = bitcast { i32*, i64 }* %4 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %5)
- %6 = bitcast { i32*, i64 }* %4 to i32**
- store i32* %0, i32** %6, align 8
- %7 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %4, i32 0, i32 1
- store i64 %1, i64* %7, align 8
- %8 = bitcast { [0 x i32]*, i64 }* %3 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %8)
- %9 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %4, i32 0, i32 0
- %10 = load i32*, i32** %9, align 8
- %11 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %4, i32 0, i32 1
- %12 = load i64, i64* %11, align 8
- %13 = bitcast { [0 x i32]*, i64 }* %3 to { i32*, i64 }*
- %14 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %13, i32 0, i32 0
- store i32* %10, i32** %14, align 8
- %15 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %13, i32 0, i32 1
- store i64 %12, i64* %15, align 8
- %16 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %3, i32 0, i32 0
- %17 = load [0 x i32]*, [0 x i32]** %16, align 8, !nonnull !3
- %18 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %3, i32 0, i32 1
- %19 = load i64, i64* %18, align 8
- %20 = bitcast { [0 x i32]*, i64 }* %3 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %20)
- br label %21
- ; <label>:21: ; preds = %2
- %22 = bitcast { i32*, i64 }* %4 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %22)
- %23 = insertvalue { [0 x i32]*, i64 } undef, [0 x i32]* %17, 0
- %24 = insertvalue { [0 x i32]*, i64 } %23, i64 %19, 1
- ret { [0 x i32]*, i64 } %24
- }
- ; Function Attrs: inlinehint uwtable
- define internal { [0 x i32]*, i64 } @"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h0fe7e803fce1e20aE"([0 x i32]* noalias nonnull readonly, i64, i64, i64) unnamed_addr #0 {
- %5 = call { [0 x i32]*, i64 } @"_ZN99_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h5697259416355b17E"(i64 %2, i64 %3, [0 x i32]* noalias nonnull readonly %0, i64 %1)
- %6 = extractvalue { [0 x i32]*, i64 } %5, 0
- %7 = extractvalue { [0 x i32]*, i64 } %5, 1
- br label %8
- ; <label>:8: ; preds = %4
- %9 = insertvalue { [0 x i32]*, i64 } undef, [0 x i32]* %6, 0
- %10 = insertvalue { [0 x i32]*, i64 } %9, i64 %7, 1
- ret { [0 x i32]*, i64 } %10
- }
- ; Function Attrs: inlinehint uwtable
- define internal { [0 x i32]*, i64 } @"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h41f64f54e8d1b7d6E"([0 x i32]* noalias nonnull readonly, i64, i64) unnamed_addr #0 {
- %4 = call { [0 x i32]*, i64 } @"_ZN101_$LT$core..ops..range..RangeTo$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h078f68a8309cb374E"(i64 %2, [0 x i32]* noalias nonnull readonly %0, i64 %1)
- %5 = extractvalue { [0 x i32]*, i64 } %4, 0
- %6 = extractvalue { [0 x i32]*, i64 } %4, 1
- br label %7
- ; <label>:7: ; preds = %3
- %8 = insertvalue { [0 x i32]*, i64 } undef, [0 x i32]* %5, 0
- %9 = insertvalue { [0 x i32]*, i64 } %8, i64 %6, 1
- ret { [0 x i32]*, i64 } %9
- }
- ; Function Attrs: inlinehint uwtable
- define internal { [0 x i32]*, i64 } @"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hd2e2694457d96551E"([0 x i32]* noalias nonnull readonly, i64, i64) unnamed_addr #0 {
- %4 = call { [0 x i32]*, i64 } @"_ZN103_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h10a46beecb6fa85fE"(i64 %2, [0 x i32]* noalias nonnull readonly %0, i64 %1)
- %5 = extractvalue { [0 x i32]*, i64 } %4, 0
- %6 = extractvalue { [0 x i32]*, i64 } %4, 1
- br label %7
- ; <label>:7: ; preds = %3
- %8 = insertvalue { [0 x i32]*, i64 } undef, [0 x i32]* %5, 0
- %9 = insertvalue { [0 x i32]*, i64 } %8, i64 %6, 1
- ret { [0 x i32]*, i64 } %9
- }
- ; Function Attrs: inlinehint uwtable
- define internal i64 @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$3len17he70cfd9d37ed05efE"([0 x i32]* noalias nonnull readonly, i64) unnamed_addr #0 {
- %3 = alloca { i32*, i64 }, align 8
- %4 = bitcast { i32*, i64 }* %3 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %4)
- %5 = bitcast { i32*, i64 }* %3 to { [0 x i32]*, i64 }*
- %6 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %5, i32 0, i32 0
- store [0 x i32]* %0, [0 x i32]** %6, align 8
- %7 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %5, i32 0, i32 1
- store i64 %1, i64* %7, align 8
- %8 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %3, i32 0, i32 0
- %9 = load i32*, i32** %8, align 8
- %10 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %3, i32 0, i32 1
- %11 = load i64, i64* %10, align 8
- %12 = bitcast { i32*, i64 }* %3 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %12)
- br label %13
- ; <label>:13: ; preds = %2
- ret i64 %11
- }
- ; Function Attrs: inlinehint uwtable
- define internal { i32*, i32* } @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$4iter17h7c6ea9d74db5e50cE"([0 x i32]* noalias nonnull readonly, i64) unnamed_addr #0 {
- %3 = alloca i32*, align 8
- %4 = alloca i32*, align 8
- %5 = alloca { i32*, i32* }, align 8
- %6 = bitcast i32** %4 to i8*
- call void @llvm.lifetime.start.p0i8(i64 8, i8* %6)
- %7 = call i64 @_ZN4core3mem7size_of17h1d6b4cc7f7420375E()
- br label %8
- ; <label>:8: ; preds = %2
- %9 = icmp eq i64 %7, 0
- br i1 %9, label %10, label %11
- ; <label>:10: ; preds = %8
- call void @llvm.assume(i1 true)
- store i32* inttoptr (i64 1 to i32*), i32** %4, align 8
- br label %18
- ; <label>:11: ; preds = %8
- %12 = call i32* @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$6as_ptr17h32215ff12a098383E"([0 x i32]* noalias nonnull readonly %0, i64 %1)
- br label %13
- ; <label>:13: ; preds = %11
- %14 = call zeroext i1 @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$7is_null17h364a758ace70a8a3E"(i32* %12)
- br label %15
- ; <label>:15: ; preds = %13
- %16 = xor i1 %14, true
- call void @llvm.assume(i1 %16)
- br label %17
- ; <label>:17: ; preds = %15
- store i32* %12, i32** %4, align 8
- br label %18
- ; <label>:18: ; preds = %17, %10
- %19 = load i32*, i32** %4, align 8
- %20 = bitcast i32** %3 to i8*
- call void @llvm.lifetime.start.p0i8(i64 8, i8* %20)
- %21 = load i32*, i32** %4, align 8
- %22 = call i64 @_ZN4core5slice13size_from_ptr17h73637563565851c6E(i32* %21)
- br label %23
- ; <label>:23: ; preds = %18
- %24 = icmp eq i64 %22, 0
- br i1 %24, label %25, label %28
- ; <label>:25: ; preds = %23
- %26 = bitcast i32* %21 to i8*
- %27 = call i64 @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$3len17he70cfd9d37ed05efE"([0 x i32]* noalias nonnull readonly %0, i64 %1)
- br label %30
- ; <label>:28: ; preds = %23
- %29 = call i64 @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$3len17he70cfd9d37ed05efE"([0 x i32]* noalias nonnull readonly %0, i64 %1)
- br label %35
- ; <label>:30: ; preds = %25
- %31 = icmp ule i64 %27, -1
- call void @llvm.assume(i1 %31)
- %32 = call i8* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$15wrapping_offset17ha2ba679b8b637d52E"(i8* %26, i64 %27)
- br label %33
- ; <label>:33: ; preds = %30
- %34 = bitcast i8* %32 to i32*
- store i32* %34, i32** %3, align 8
- br label %39
- ; <label>:35: ; preds = %28
- %36 = icmp ule i64 %29, -1
- call void @llvm.assume(i1 %36)
- %37 = call i32* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$6offset17h2db78cc51ca12da6E"(i32* %21, i64 %29)
- store i32* %37, i32** %3, align 8
- br label %38
- ; <label>:38: ; preds = %35
- br label %39
- ; <label>:39: ; preds = %38, %33
- %40 = bitcast { i32*, i32* }* %5 to i32**
- store i32* %19, i32** %40, align 8
- %41 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %5, i32 0, i32 1
- %42 = load i32*, i32** %3, align 8
- store i32* %42, i32** %41, align 8
- %43 = bitcast { i32*, i32* }* %5 to %"core::marker::PhantomData<&u32>"*
- %44 = bitcast i32** %3 to i8*
- call void @llvm.lifetime.end.p0i8(i64 8, i8* %44)
- %45 = bitcast i32** %4 to i8*
- call void @llvm.lifetime.end.p0i8(i64 8, i8* %45)
- %46 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %5, i32 0, i32 0
- %47 = load i32*, i32** %46, align 8
- %48 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %5, i32 0, i32 1
- %49 = load i32*, i32** %48, align 8
- %50 = insertvalue { i32*, i32* } undef, i32* %47, 0
- %51 = insertvalue { i32*, i32* } %50, i32* %49, 1
- ret { i32*, i32* } %51
- }
- ; Function Attrs: inlinehint uwtable
- define internal i32* @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$6as_ptr17h32215ff12a098383E"([0 x i32]* noalias nonnull readonly, i64) unnamed_addr #0 {
- %3 = bitcast [0 x i32]* %0 to i32*
- ret i32* %3
- }
- ; Function Attrs: alwaysinline uwtable
- define internal i32* @"_ZN59_$LT$$BP$const$u20$T$u20$as$u20$core..slice..PointerExt$GT$12slice_offset17h7aa1452c7557c220E"(i32*, i64) unnamed_addr #1 {
- %3 = alloca i32*, align 8
- %4 = call i64 @_ZN4core5slice13size_from_ptr17h73637563565851c6E(i32* %0)
- br label %5
- ; <label>:5: ; preds = %2
- %6 = icmp eq i64 %4, 0
- br i1 %6, label %7, label %10
- ; <label>:7: ; preds = %5
- %8 = bitcast i32* %0 to i8*
- %9 = call i8* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$15wrapping_offset17ha2ba679b8b637d52E"(i8* %8, i64 %1)
- br label %12
- ; <label>:10: ; preds = %5
- %11 = call i32* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$6offset17h2db78cc51ca12da6E"(i32* %0, i64 %1)
- store i32* %11, i32** %3, align 8
- br label %14
- ; <label>:12: ; preds = %7
- %13 = bitcast i8* %9 to i32*
- store i32* %13, i32** %3, align 8
- br label %15
- ; <label>:14: ; preds = %10
- br label %15
- ; <label>:15: ; preds = %14, %12
- %16 = load i32*, i32** %3, align 8
- ret i32* %16
- }
- ; Function Attrs: inlinehint uwtable
- define internal i64 @"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$3len17hab82a3a5ee843773E"([0 x i32]* noalias nonnull readonly, i64) unnamed_addr #0 {
- %3 = call i64 @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$3len17he70cfd9d37ed05efE"([0 x i32]* noalias nonnull readonly %0, i64 %1)
- br label %4
- ; <label>:4: ; preds = %2
- ret i64 %3
- }
- ; Function Attrs: inlinehint uwtable
- define internal { i32*, i32* } @"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$4iter17h08ec6eec9d3c8166E"([0 x i32]* noalias nonnull readonly, i64) unnamed_addr #0 {
- %3 = call { i32*, i32* } @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$4iter17h7c6ea9d74db5e50cE"([0 x i32]* noalias nonnull readonly %0, i64 %1)
- %4 = extractvalue { i32*, i32* } %3, 0
- %5 = extractvalue { i32*, i32* } %3, 1
- br label %6
- ; <label>:6: ; preds = %2
- %7 = insertvalue { i32*, i32* } undef, i32* %4, 0
- %8 = insertvalue { i32*, i32* } %7, i32* %5, 1
- ret { i32*, i32* } %8
- }
- ; Function Attrs: inlinehint uwtable
- define internal zeroext i1 @"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$8is_empty17h7069f18437424c5eE"([0 x i32]* noalias nonnull readonly, i64) unnamed_addr #0 {
- %3 = call zeroext i1 @_ZN4core5slice8SliceExt8is_empty17h5df57ca3a59651deE([0 x i32]* noalias nonnull readonly %0, i64 %1)
- br label %4
- ; <label>:4: ; preds = %2
- ret i1 %3
- }
- ; Function Attrs: inlinehint uwtable
- define internal void @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position17hf1a29b42059163daE"(%"core::option::Option<usize>"* noalias nocapture sret dereferenceable(16), { i32*, i32* }* dereferenceable(16)) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
- %3 = alloca { i8*, i32 }, align 8
- %4 = alloca i8, align 1
- %5 = alloca i64*, align 8
- %6 = alloca %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>", align 1
- %7 = alloca %"core::result::Result<usize, usize>", align 8
- %8 = alloca %"core::option::Option<usize>", align 8
- %9 = alloca { [0 x i32]*, i64 }, align 8
- %10 = alloca i64, align 8
- store i8 0, i8* %4, align 1
- store i8 1, i8* %4, align 1
- %11 = bitcast i64* %10 to i8*
- call void @llvm.lifetime.start.p0i8(i64 8, i8* %11)
- %12 = bitcast { [0 x i32]*, i64 }* %9 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %12)
- %13 = bitcast { i32*, i32* }* %1 to i32**
- %14 = load i32*, i32** %13, align 8
- %15 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %1, i32 0, i32 1
- %16 = load i32*, i32** %15, align 8
- %17 = ptrtoint i32* %16 to i64
- %18 = ptrtoint i32* %14 to i64
- %19 = invoke i64 @"_ZN4core3num23_$LT$impl$u20$usize$GT$12wrapping_sub17h25b775332ef31d00E"(i64 %17, i64 %18)
- to label %28 unwind label %72
- ; <label>:20: ; preds = %69, %68
- %21 = bitcast { i8*, i32 }* %3 to i8**
- %22 = load i8*, i8** %21, align 8
- %23 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %3, i32 0, i32 1
- %24 = load i32, i32* %23, align 4
- %25 = bitcast { i8*, i32 }* %3 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %25)
- %26 = insertvalue { i8*, i32 } undef, i8* %22, 0
- %27 = insertvalue { i8*, i32 } %26, i32 %24, 1
- resume { i8*, i32 } %27
- ; <label>:28: ; preds = %2
- %29 = invoke i64 @_ZN4core5slice13size_from_ptr17h73637563565851c6E(i32* %14)
- to label %30 unwind label %72
- ; <label>:30: ; preds = %28
- %31 = icmp eq i64 %29, 0
- br i1 %31, label %32, label %34
- ; <label>:32: ; preds = %30
- call void @llvm.assume(i1 true)
- %33 = invoke { [0 x i32]*, i64 } @_ZN4core5slice14from_raw_parts17hacb157bb9f25ba37E(i32* inttoptr (i64 1 to i32*), i64 %19)
- to label %36 unwind label %72
- ; <label>:34: ; preds = %30
- %35 = invoke i64 @_ZN4core5slice13size_from_ptr17h73637563565851c6E(i32* %14)
- to label %37 unwind label %72
- ; <label>:36: ; preds = %32
- store { [0 x i32]*, i64 } %33, { [0 x i32]*, i64 }* %9, align 8
- br label %48
- ; <label>:37: ; preds = %34
- %38 = icmp eq i64 %35, 0
- %39 = call i1 @llvm.expect.i1(i1 %38, i1 false)
- br i1 %39, label %79, label %40
- ; <label>:40: ; preds = %37
- %41 = udiv i64 %19, %35
- %42 = invoke { [0 x i32]*, i64 } @_ZN4core5slice14from_raw_parts17hacb157bb9f25ba37E(i32* %14, i64 %41)
- to label %43 unwind label %72
- ; <label>:43: ; preds = %40
- %44 = extractvalue { [0 x i32]*, i64 } %42, 0
- %45 = extractvalue { [0 x i32]*, i64 } %42, 1
- %46 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %9, i32 0, i32 0
- store [0 x i32]* %44, [0 x i32]** %46, align 8
- %47 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %9, i32 0, i32 1
- store i64 %45, i64* %47, align 8
- br label %48
- ; <label>:48: ; preds = %43, %36
- %49 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %9, i32 0, i32 0
- %50 = load [0 x i32]*, [0 x i32]** %49, align 8, !nonnull !3
- %51 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %9, i32 0, i32 1
- %52 = load i64, i64* %51, align 8
- %53 = invoke i64 @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$3len17he70cfd9d37ed05efE"([0 x i32]* noalias nonnull readonly %50, i64 %52)
- to label %54 unwind label %72
- ; <label>:54: ; preds = %48
- store i64 %53, i64* %10, align 8
- %55 = bitcast { [0 x i32]*, i64 }* %9 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %55)
- %56 = bitcast %"core::option::Option<usize>"* %8 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %56)
- %57 = bitcast %"core::result::Result<usize, usize>"* %7 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %57)
- store i8 0, i8* %4, align 1
- %58 = bitcast %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>"* %6 to %"import_path_to_string::{{closure}}"*
- invoke void @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8try_fold17h67c1a77f983d137aE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %7, { i32*, i32* }* dereferenceable(16) %1, i64 0)
- to label %59 unwind label %72
- ; <label>:59: ; preds = %54
- invoke void @"_ZN47_$LT$core..result..Result$LT$T$C$$u20$E$GT$$GT$3err17h7575ad3e8a4fc754E"(%"core::option::Option<usize>"* noalias nocapture sret dereferenceable(16) %8, %"core::result::Result<usize, usize>"* noalias nocapture dereferenceable(16) %7)
- to label %60 unwind label %72
- ; <label>:60: ; preds = %59
- %61 = bitcast %"core::result::Result<usize, usize>"* %7 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %61)
- %62 = bitcast i64** %5 to i8*
- call void @llvm.lifetime.start.p0i8(i64 8, i8* %62)
- store i64* %10, i64** %5, align 8
- %63 = load i64*, i64** %5, align 8, !nonnull !3
- invoke void @"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$3map17hac95c6f09e5eb2e1E"(%"core::option::Option<usize>"* noalias nocapture sret dereferenceable(16) %0, %"core::option::Option<usize>"* noalias nocapture dereferenceable(16) %8, i64* noalias readonly dereferenceable(8) %63)
- to label %64 unwind label %72
- ; <label>:64: ; preds = %60
- %65 = bitcast i64** %5 to i8*
- call void @llvm.lifetime.end.p0i8(i64 8, i8* %65)
- %66 = bitcast %"core::option::Option<usize>"* %8 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %66)
- %67 = bitcast i64* %10 to i8*
- call void @llvm.lifetime.end.p0i8(i64 8, i8* %67)
- ret void
- ; <label>:68: ; preds = %69
- store i8 0, i8* %4, align 1
- br label %20
- ; <label>:69: ; preds = %72
- %70 = load i8, i8* %4, align 1, !range !2
- %71 = trunc i8 %70 to i1
- br i1 %71, label %68, label %20
- ; <label>:72: ; preds = %79, %60, %59, %54, %48, %40, %34, %32, %28, %2
- %73 = landingpad { i8*, i32 }
- cleanup
- %74 = bitcast { i8*, i32 }* %3 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %74)
- %75 = extractvalue { i8*, i32 } %73, 0
- %76 = extractvalue { i8*, i32 } %73, 1
- %77 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %3, i32 0, i32 0
- store i8* %75, i8** %77, align 8
- %78 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %3, i32 0, i32 1
- store i32 %76, i32* %78, align 8
- br label %69
- ; <label>:79: ; preds = %37
- invoke void @_ZN4core9panicking5panic17hfefa0158f97fa77bE({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* @panic_loc.6 to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*))
- to label %80 unwind label %72
- ; <label>:80: ; preds = %79
- unreachable
- }
- ; Function Attrs: uwtable
- define internal i64 @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17hab0db5dfbde4de17E"(i64* noalias readonly dereferenceable(8), i64) unnamed_addr #2 {
- %3 = load i64, i64* %0, align 8
- %4 = icmp ult i64 %1, %3
- call void @llvm.assume(i1 %4)
- br label %5
- ; <label>:5: ; preds = %2
- ret i64 %1
- }
- ; Function Attrs: uwtable
- define internal void @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17hbb59cc67849b96ddE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16), %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>"* nonnull, i64, i32* noalias readonly dereferenceable(4)) unnamed_addr #2 {
- %5 = alloca i32*, align 8
- %6 = bitcast %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>"* %1 to %"import_path_to_string::{{closure}}"*
- %7 = bitcast i32** %5 to i8*
- call void @llvm.lifetime.start.p0i8(i64 8, i8* %7)
- store i32* %3, i32** %5, align 8
- %8 = load i32*, i32** %5, align 8, !nonnull !3
- %9 = call zeroext i1 @"_ZN19bad_position_simple21import_path_to_string28_$u7b$$u7b$closure$u7d$$u7d$17h6e8857c45441a25dE"(%"import_path_to_string::{{closure}}"* nonnull %6, i32* noalias readonly dereferenceable(4) %8)
- br label %10
- ; <label>:10: ; preds = %4
- %11 = bitcast i32** %5 to i8*
- call void @llvm.lifetime.end.p0i8(i64 8, i8* %11)
- br i1 %9, label %12, label %16
- ; <label>:12: ; preds = %10
- %13 = bitcast %"core::result::Result<usize, usize>"* %0 to %"core::result::Result<usize, usize>::Err"*
- %14 = getelementptr inbounds %"core::result::Result<usize, usize>::Err", %"core::result::Result<usize, usize>::Err"* %13, i32 0, i32 1
- store i64 %2, i64* %14, align 8
- %15 = bitcast %"core::result::Result<usize, usize>"* %0 to i64*
- store i64 1, i64* %15, align 8
- br label %25
- ; <label>:16: ; preds = %10
- %17 = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %2, i64 1)
- %18 = extractvalue { i64, i1 } %17, 0
- %19 = extractvalue { i64, i1 } %17, 1
- %20 = call i1 @llvm.expect.i1(i1 %19, i1 false)
- br i1 %20, label %26, label %21
- ; <label>:21: ; preds = %16
- %22 = bitcast %"core::result::Result<usize, usize>"* %0 to %"core::result::Result<usize, usize>::Ok"*
- %23 = getelementptr inbounds %"core::result::Result<usize, usize>::Ok", %"core::result::Result<usize, usize>::Ok"* %22, i32 0, i32 1
- store i64 %18, i64* %23, align 8
- %24 = bitcast %"core::result::Result<usize, usize>"* %0 to i64*
- store i64 0, i64* %24, align 8
- br label %25
- ; <label>:25: ; preds = %21, %12
- ret void
- ; <label>:26: ; preds = %16
- call void @_ZN4core9panicking5panic17hfefa0158f97fa77bE({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* @panic_loc.8 to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*))
- unreachable
- }
- ; Function Attrs: inlinehint uwtable
- define internal void @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8try_fold17h67c1a77f983d137aE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16), { i32*, i32* }* dereferenceable(16), i64) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
- %4 = alloca { i8*, i32 }, align 8
- %5 = alloca i8, align 1
- %6 = alloca i8, align 1
- %7 = alloca i8, align 1
- %8 = alloca i8, align 1
- %9 = alloca i8, align 1
- %10 = alloca i8, align 1
- %11 = alloca i32*, align 8
- %12 = alloca { i64, i32* }, align 8
- %13 = alloca %"core::result::Result<usize, usize>", align 8
- %14 = alloca %"core::result::Result<usize, usize>", align 8
- %15 = alloca i32*, align 8
- %16 = alloca { i64, i32* }, align 8
- %17 = alloca %"core::result::Result<usize, usize>", align 8
- %18 = alloca %"core::result::Result<usize, usize>", align 8
- %19 = alloca i32*, align 8
- %20 = alloca { i64, i32* }, align 8
- %21 = alloca %"core::result::Result<usize, usize>", align 8
- %22 = alloca %"core::result::Result<usize, usize>", align 8
- %23 = alloca i32*, align 8
- %24 = alloca { i64, i32* }, align 8
- %25 = alloca %"core::result::Result<usize, usize>", align 8
- %26 = alloca %"core::result::Result<usize, usize>", align 8
- %27 = alloca i32*, align 8
- %28 = alloca { i64, i32* }, align 8
- %29 = alloca %"core::result::Result<usize, usize>", align 8
- %30 = alloca %"core::result::Result<usize, usize>", align 8
- %31 = alloca i64, align 8
- %32 = alloca %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>", align 1
- store i8 0, i8* %10, align 1
- store i8 0, i8* %9, align 1
- store i8 0, i8* %8, align 1
- store i8 0, i8* %7, align 1
- store i8 0, i8* %6, align 1
- store i8 0, i8* %5, align 1
- %33 = bitcast i64* %31 to i8*
- call void @llvm.lifetime.start.p0i8(i64 8, i8* %33)
- store i8 1, i8* %10, align 1
- store i64 %2, i64* %31, align 8
- br label %43
- ; <label>:34: ; preds = %42
- %35 = bitcast { i8*, i32 }* %4 to i8**
- %36 = load i8*, i8** %35, align 8
- %37 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
- %38 = load i32, i32* %37, align 4
- %39 = bitcast { i8*, i32 }* %4 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %39)
- %40 = insertvalue { i8*, i32 } undef, i8* %36, 0
- %41 = insertvalue { i8*, i32 } %40, i32 %38, 1
- resume { i8*, i32 } %41
- ; <label>:42: ; preds = %289, %288
- br label %34
- ; <label>:43: ; preds = %354, %3
- %44 = bitcast { i32*, i32* }* %1 to i32**
- %45 = load i32*, i32** %44, align 8
- %46 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %1, i32 0, i32 1
- %47 = load i32*, i32** %46, align 8
- %48 = invoke i64 @_ZN4core5slice11ptrdistance17h036ab170e59738e1E(i32* %45, i32* %47)
- to label %50 unwind label %368
- ; <label>:49: ; preds = %50
- br label %229
- ; <label>:50: ; preds = %43
- %51 = icmp uge i64 %48, 4
- br i1 %51, label %52, label %49
- ; <label>:52: ; preds = %50
- %53 = bitcast %"core::result::Result<usize, usize>"* %30 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %53)
- %54 = bitcast %"core::result::Result<usize, usize>"* %29 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %54)
- %55 = bitcast { i64, i32* }* %28 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %55)
- store i8 0, i8* %10, align 1
- store i8 1, i8* %9, align 1
- %56 = load i64, i64* %31, align 8
- %57 = bitcast i32** %27 to i8*
- call void @llvm.lifetime.start.p0i8(i64 8, i8* %57)
- %58 = bitcast { i32*, i32* }* %1 to i32**
- %59 = invoke i32* @_ZN4core5slice10PointerExt8post_inc17hc9f8b6822179ed09E(i32** dereferenceable(8) %58)
- to label %60 unwind label %375
- ; <label>:60: ; preds = %52
- %61 = invoke i64 @_ZN4core5slice13size_from_ptr17h73637563565851c6E(i32* %59)
- to label %62 unwind label %375
- ; <label>:62: ; preds = %60
- %63 = icmp eq i64 %61, 0
- br i1 %63, label %64, label %65
- ; <label>:64: ; preds = %62
- call void @llvm.assume(i1 true)
- store i32* inttoptr (i64 1 to i32*), i32** %27, align 8
- br label %66
- ; <label>:65: ; preds = %62
- store i32* %59, i32** %27, align 8
- br label %66
- ; <label>:66: ; preds = %65, %64
- store i8 0, i8* %9, align 1
- %67 = bitcast { i64, i32* }* %28 to i64*
- store i64 %56, i64* %67, align 8
- %68 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %28, i32 0, i32 1
- %69 = load i32*, i32** %27, align 8, !nonnull !3
- store i32* %69, i32** %68, align 8
- %70 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %28, i32 0, i32 0
- %71 = load i64, i64* %70, align 8
- %72 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %28, i32 0, i32 1
- %73 = load i32*, i32** %72, align 8, !nonnull !3
- invoke void @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17hbb59cc67849b96ddE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %29, %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>"* nonnull %32, i64 %71, i32* noalias readonly dereferenceable(4) %73)
- to label %74 unwind label %375
- ; <label>:74: ; preds = %66
- %75 = bitcast { i64, i32* }* %28 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %75)
- %76 = bitcast i32** %27 to i8*
- call void @llvm.lifetime.end.p0i8(i64 8, i8* %76)
- store i8 0, i8* %9, align 1
- invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$11into_result17h20c389a4d040cb5eE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %30, %"core::result::Result<usize, usize>"* noalias nocapture dereferenceable(16) %29)
- to label %77 unwind label %368
- ; <label>:77: ; preds = %74
- %78 = bitcast %"core::result::Result<usize, usize>"* %29 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %78)
- %79 = bitcast %"core::result::Result<usize, usize>"* %30 to i64*
- %80 = load i64, i64* %79, align 8, !range !1
- %81 = bitcast %"core::result::Result<usize, usize>"* %30 to i64*
- %82 = load i64, i64* %81, align 8, !range !1
- switch i64 %82, label %86 [
- i64 0, label %87
- i64 1, label %93
- ]
- ; <label>:83: ; preds = %382
- %84 = bitcast %"core::result::Result<usize, usize>"* %30 to i64*
- %85 = load i64, i64* %84, align 8, !range !1
- switch i64 %85, label %289 [
- i64 0, label %296
- ]
- ; <label>:86: ; preds = %262, %205, %164, %123, %77
- unreachable
- ; <label>:87: ; preds = %77
- %88 = bitcast %"core::result::Result<usize, usize>"* %30 to %"core::result::Result<usize, usize>::Ok"*
- %89 = getelementptr inbounds %"core::result::Result<usize, usize>::Ok", %"core::result::Result<usize, usize>::Ok"* %88, i32 0, i32 1
- %90 = load i64, i64* %89, align 8
- store i8 1, i8* %10, align 1
- store i64 %90, i64* %31, align 8
- %91 = bitcast %"core::result::Result<usize, usize>"* %30 to i64*
- %92 = load i64, i64* %91, align 8, !range !1
- switch i64 %92, label %309 [
- i64 0, label %300
- ]
- ; <label>:93: ; preds = %77
- %94 = bitcast %"core::result::Result<usize, usize>"* %30 to %"core::result::Result<usize, usize>::Err"*
- %95 = getelementptr inbounds %"core::result::Result<usize, usize>::Err", %"core::result::Result<usize, usize>::Err"* %94, i32 0, i32 1
- %96 = load i64, i64* %95, align 8
- %97 = invoke i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h514ffbaf3bb75a3eE"(i64 %96)
- to label %98 unwind label %382
- ; <label>:98: ; preds = %93
- invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17h222e7515b9cde0afE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %0, i64 %97)
- to label %99 unwind label %382
- ; <label>:99: ; preds = %98
- %100 = bitcast %"core::result::Result<usize, usize>"* %30 to i64*
- %101 = load i64, i64* %100, align 8, !range !1
- switch i64 %101, label %297 [
- i64 0, label %299
- ]
- ; <label>:102: ; preds = %286, %104
- ret void
- ; <label>:103: ; preds = %351, %333, %315, %297
- br label %104
- ; <label>:104: ; preds = %362, %103
- store i8 0, i8* %10, align 1
- %105 = bitcast i64* %31 to i8*
- call void @llvm.lifetime.end.p0i8(i64 8, i8* %105)
- br label %102
- ; <label>:106: ; preds = %300
- %107 = invoke i64 @_ZN4core5slice13size_from_ptr17h73637563565851c6E(i32* %308)
- to label %108 unwind label %389
- ; <label>:108: ; preds = %106
- %109 = icmp eq i64 %107, 0
- br i1 %109, label %110, label %111
- ; <label>:110: ; preds = %108
- call void @llvm.assume(i1 true)
- store i32* inttoptr (i64 1 to i32*), i32** %23, align 8
- br label %112
- ; <label>:111: ; preds = %108
- store i32* %308, i32** %23, align 8
- br label %112
- ; <label>:112: ; preds = %111, %110
- store i8 0, i8* %8, align 1
- %113 = bitcast { i64, i32* }* %24 to i64*
- store i64 %305, i64* %113, align 8
- %114 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %24, i32 0, i32 1
- %115 = load i32*, i32** %23, align 8, !nonnull !3
- store i32* %115, i32** %114, align 8
- %116 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %24, i32 0, i32 0
- %117 = load i64, i64* %116, align 8
- %118 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %24, i32 0, i32 1
- %119 = load i32*, i32** %118, align 8, !nonnull !3
- invoke void @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17hbb59cc67849b96ddE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %25, %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>"* nonnull %32, i64 %117, i32* noalias readonly dereferenceable(4) %119)
- to label %120 unwind label %389
- ; <label>:120: ; preds = %112
- %121 = bitcast { i64, i32* }* %24 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %121)
- %122 = bitcast i32** %23 to i8*
- call void @llvm.lifetime.end.p0i8(i64 8, i8* %122)
- store i8 0, i8* %8, align 1
- invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$11into_result17h20c389a4d040cb5eE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %26, %"core::result::Result<usize, usize>"* noalias nocapture dereferenceable(16) %25)
- to label %123 unwind label %368
- ; <label>:123: ; preds = %120
- %124 = bitcast %"core::result::Result<usize, usize>"* %25 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %124)
- %125 = bitcast %"core::result::Result<usize, usize>"* %26 to i64*
- %126 = load i64, i64* %125, align 8, !range !1
- %127 = bitcast %"core::result::Result<usize, usize>"* %26 to i64*
- %128 = load i64, i64* %127, align 8, !range !1
- switch i64 %128, label %86 [
- i64 0, label %132
- i64 1, label %138
- ]
- ; <label>:129: ; preds = %396
- %130 = bitcast %"core::result::Result<usize, usize>"* %26 to i64*
- %131 = load i64, i64* %130, align 8, !range !1
- switch i64 %131, label %289 [
- i64 0, label %314
- ]
- ; <label>:132: ; preds = %123
- %133 = bitcast %"core::result::Result<usize, usize>"* %26 to %"core::result::Result<usize, usize>::Ok"*
- %134 = getelementptr inbounds %"core::result::Result<usize, usize>::Ok", %"core::result::Result<usize, usize>::Ok"* %133, i32 0, i32 1
- %135 = load i64, i64* %134, align 8
- store i8 1, i8* %10, align 1
- store i64 %135, i64* %31, align 8
- %136 = bitcast %"core::result::Result<usize, usize>"* %26 to i64*
- %137 = load i64, i64* %136, align 8, !range !1
- switch i64 %137, label %327 [
- i64 0, label %318
- ]
- ; <label>:138: ; preds = %123
- %139 = bitcast %"core::result::Result<usize, usize>"* %26 to %"core::result::Result<usize, usize>::Err"*
- %140 = getelementptr inbounds %"core::result::Result<usize, usize>::Err", %"core::result::Result<usize, usize>::Err"* %139, i32 0, i32 1
- %141 = load i64, i64* %140, align 8
- %142 = invoke i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h514ffbaf3bb75a3eE"(i64 %141)
- to label %143 unwind label %396
- ; <label>:143: ; preds = %138
- invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17h222e7515b9cde0afE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %0, i64 %142)
- to label %144 unwind label %396
- ; <label>:144: ; preds = %143
- %145 = bitcast %"core::result::Result<usize, usize>"* %26 to i64*
- %146 = load i64, i64* %145, align 8, !range !1
- switch i64 %146, label %315 [
- i64 0, label %317
- ]
- ; <label>:147: ; preds = %318
- %148 = invoke i64 @_ZN4core5slice13size_from_ptr17h73637563565851c6E(i32* %326)
- to label %149 unwind label %403
- ; <label>:149: ; preds = %147
- %150 = icmp eq i64 %148, 0
- br i1 %150, label %151, label %152
- ; <label>:151: ; preds = %149
- call void @llvm.assume(i1 true)
- store i32* inttoptr (i64 1 to i32*), i32** %19, align 8
- br label %153
- ; <label>:152: ; preds = %149
- store i32* %326, i32** %19, align 8
- br label %153
- ; <label>:153: ; preds = %152, %151
- store i8 0, i8* %7, align 1
- %154 = bitcast { i64, i32* }* %20 to i64*
- store i64 %323, i64* %154, align 8
- %155 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %20, i32 0, i32 1
- %156 = load i32*, i32** %19, align 8, !nonnull !3
- store i32* %156, i32** %155, align 8
- %157 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %20, i32 0, i32 0
- %158 = load i64, i64* %157, align 8
- %159 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %20, i32 0, i32 1
- %160 = load i32*, i32** %159, align 8, !nonnull !3
- invoke void @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17hbb59cc67849b96ddE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %21, %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>"* nonnull %32, i64 %158, i32* noalias readonly dereferenceable(4) %160)
- to label %161 unwind label %403
- ; <label>:161: ; preds = %153
- %162 = bitcast { i64, i32* }* %20 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %162)
- %163 = bitcast i32** %19 to i8*
- call void @llvm.lifetime.end.p0i8(i64 8, i8* %163)
- store i8 0, i8* %7, align 1
- invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$11into_result17h20c389a4d040cb5eE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %22, %"core::result::Result<usize, usize>"* noalias nocapture dereferenceable(16) %21)
- to label %164 unwind label %368
- ; <label>:164: ; preds = %161
- %165 = bitcast %"core::result::Result<usize, usize>"* %21 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %165)
- %166 = bitcast %"core::result::Result<usize, usize>"* %22 to i64*
- %167 = load i64, i64* %166, align 8, !range !1
- %168 = bitcast %"core::result::Result<usize, usize>"* %22 to i64*
- %169 = load i64, i64* %168, align 8, !range !1
- switch i64 %169, label %86 [
- i64 0, label %173
- i64 1, label %179
- ]
- ; <label>:170: ; preds = %410
- %171 = bitcast %"core::result::Result<usize, usize>"* %22 to i64*
- %172 = load i64, i64* %171, align 8, !range !1
- switch i64 %172, label %289 [
- i64 0, label %332
- ]
- ; <label>:173: ; preds = %164
- %174 = bitcast %"core::result::Result<usize, usize>"* %22 to %"core::result::Result<usize, usize>::Ok"*
- %175 = getelementptr inbounds %"core::result::Result<usize, usize>::Ok", %"core::result::Result<usize, usize>::Ok"* %174, i32 0, i32 1
- %176 = load i64, i64* %175, align 8
- store i8 1, i8* %10, align 1
- store i64 %176, i64* %31, align 8
- %177 = bitcast %"core::result::Result<usize, usize>"* %22 to i64*
- %178 = load i64, i64* %177, align 8, !range !1
- switch i64 %178, label %345 [
- i64 0, label %336
- ]
- ; <label>:179: ; preds = %164
- %180 = bitcast %"core::result::Result<usize, usize>"* %22 to %"core::result::Result<usize, usize>::Err"*
- %181 = getelementptr inbounds %"core::result::Result<usize, usize>::Err", %"core::result::Result<usize, usize>::Err"* %180, i32 0, i32 1
- %182 = load i64, i64* %181, align 8
- %183 = invoke i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h514ffbaf3bb75a3eE"(i64 %182)
- to label %184 unwind label %410
- ; <label>:184: ; preds = %179
- invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17h222e7515b9cde0afE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %0, i64 %183)
- to label %185 unwind label %410
- ; <label>:185: ; preds = %184
- %186 = bitcast %"core::result::Result<usize, usize>"* %22 to i64*
- %187 = load i64, i64* %186, align 8, !range !1
- switch i64 %187, label %333 [
- i64 0, label %335
- ]
- ; <label>:188: ; preds = %336
- %189 = invoke i64 @_ZN4core5slice13size_from_ptr17h73637563565851c6E(i32* %344)
- to label %190 unwind label %417
- ; <label>:190: ; preds = %188
- %191 = icmp eq i64 %189, 0
- br i1 %191, label %192, label %193
- ; <label>:192: ; preds = %190
- call void @llvm.assume(i1 true)
- store i32* inttoptr (i64 1 to i32*), i32** %15, align 8
- br label %194
- ; <label>:193: ; preds = %190
- store i32* %344, i32** %15, align 8
- br label %194
- ; <label>:194: ; preds = %193, %192
- store i8 0, i8* %6, align 1
- %195 = bitcast { i64, i32* }* %16 to i64*
- store i64 %341, i64* %195, align 8
- %196 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %16, i32 0, i32 1
- %197 = load i32*, i32** %15, align 8, !nonnull !3
- store i32* %197, i32** %196, align 8
- %198 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %16, i32 0, i32 0
- %199 = load i64, i64* %198, align 8
- %200 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %16, i32 0, i32 1
- %201 = load i32*, i32** %200, align 8, !nonnull !3
- invoke void @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17hbb59cc67849b96ddE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %17, %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>"* nonnull %32, i64 %199, i32* noalias readonly dereferenceable(4) %201)
- to label %202 unwind label %417
- ; <label>:202: ; preds = %194
- %203 = bitcast { i64, i32* }* %16 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %203)
- %204 = bitcast i32** %15 to i8*
- call void @llvm.lifetime.end.p0i8(i64 8, i8* %204)
- store i8 0, i8* %6, align 1
- invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$11into_result17h20c389a4d040cb5eE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %18, %"core::result::Result<usize, usize>"* noalias nocapture dereferenceable(16) %17)
- to label %205 unwind label %368
- ; <label>:205: ; preds = %202
- %206 = bitcast %"core::result::Result<usize, usize>"* %17 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %206)
- %207 = bitcast %"core::result::Result<usize, usize>"* %18 to i64*
- %208 = load i64, i64* %207, align 8, !range !1
- %209 = bitcast %"core::result::Result<usize, usize>"* %18 to i64*
- %210 = load i64, i64* %209, align 8, !range !1
- switch i64 %210, label %86 [
- i64 0, label %214
- i64 1, label %220
- ]
- ; <label>:211: ; preds = %424
- %212 = bitcast %"core::result::Result<usize, usize>"* %18 to i64*
- %213 = load i64, i64* %212, align 8, !range !1
- switch i64 %213, label %289 [
- i64 0, label %350
- ]
- ; <label>:214: ; preds = %205
- %215 = bitcast %"core::result::Result<usize, usize>"* %18 to %"core::result::Result<usize, usize>::Ok"*
- %216 = getelementptr inbounds %"core::result::Result<usize, usize>::Ok", %"core::result::Result<usize, usize>::Ok"* %215, i32 0, i32 1
- %217 = load i64, i64* %216, align 8
- store i8 1, i8* %10, align 1
- store i64 %217, i64* %31, align 8
- %218 = bitcast %"core::result::Result<usize, usize>"* %18 to i64*
- %219 = load i64, i64* %218, align 8, !range !1
- switch i64 %219, label %356 [
- i64 0, label %354
- ]
- ; <label>:220: ; preds = %205
- %221 = bitcast %"core::result::Result<usize, usize>"* %18 to %"core::result::Result<usize, usize>::Err"*
- %222 = getelementptr inbounds %"core::result::Result<usize, usize>::Err", %"core::result::Result<usize, usize>::Err"* %221, i32 0, i32 1
- %223 = load i64, i64* %222, align 8
- %224 = invoke i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h514ffbaf3bb75a3eE"(i64 %223)
- to label %225 unwind label %424
- ; <label>:225: ; preds = %220
- invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17h222e7515b9cde0afE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %0, i64 %224)
- to label %226 unwind label %424
- ; <label>:226: ; preds = %225
- %227 = bitcast %"core::result::Result<usize, usize>"* %18 to i64*
- %228 = load i64, i64* %227, align 8, !range !1
- switch i64 %228, label %351 [
- i64 0, label %353
- ]
- ; <label>:229: ; preds = %365, %49
- %230 = bitcast { i32*, i32* }* %1 to i32**
- %231 = load i32*, i32** %230, align 8
- %232 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %1, i32 0, i32 1
- %233 = load i32*, i32** %232, align 8
- %234 = icmp ne i32* %231, %233
- br i1 %234, label %237, label %235
- ; <label>:235: ; preds = %229
- store i8 0, i8* %10, align 1
- %236 = load i64, i64* %31, align 8
- invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$7from_ok17hed12cd599a454669E"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %0, i64 %236)
- to label %286 unwind label %368
- ; <label>:237: ; preds = %229
- %238 = bitcast %"core::result::Result<usize, usize>"* %14 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %238)
- %239 = bitcast %"core::result::Result<usize, usize>"* %13 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %239)
- %240 = bitcast { i64, i32* }* %12 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %240)
- store i8 0, i8* %10, align 1
- store i8 1, i8* %5, align 1
- %241 = load i64, i64* %31, align 8
- %242 = bitcast i32** %11 to i8*
- call void @llvm.lifetime.start.p0i8(i64 8, i8* %242)
- %243 = bitcast { i32*, i32* }* %1 to i32**
- %244 = invoke i32* @_ZN4core5slice10PointerExt8post_inc17hc9f8b6822179ed09E(i32** dereferenceable(8) %243)
- to label %245 unwind label %431
- ; <label>:245: ; preds = %237
- %246 = invoke i64 @_ZN4core5slice13size_from_ptr17h73637563565851c6E(i32* %244)
- to label %247 unwind label %431
- ; <label>:247: ; preds = %245
- %248 = icmp eq i64 %246, 0
- br i1 %248, label %249, label %250
- ; <label>:249: ; preds = %247
- call void @llvm.assume(i1 true)
- store i32* inttoptr (i64 1 to i32*), i32** %11, align 8
- br label %251
- ; <label>:250: ; preds = %247
- store i32* %244, i32** %11, align 8
- br label %251
- ; <label>:251: ; preds = %250, %249
- store i8 0, i8* %5, align 1
- %252 = bitcast { i64, i32* }* %12 to i64*
- store i64 %241, i64* %252, align 8
- %253 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %12, i32 0, i32 1
- %254 = load i32*, i32** %11, align 8, !nonnull !3
- store i32* %254, i32** %253, align 8
- %255 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %12, i32 0, i32 0
- %256 = load i64, i64* %255, align 8
- %257 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %12, i32 0, i32 1
- %258 = load i32*, i32** %257, align 8, !nonnull !3
- invoke void @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17hbb59cc67849b96ddE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %13, %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>"* nonnull %32, i64 %256, i32* noalias readonly dereferenceable(4) %258)
- to label %259 unwind label %431
- ; <label>:259: ; preds = %251
- %260 = bitcast { i64, i32* }* %12 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %260)
- %261 = bitcast i32** %11 to i8*
- call void @llvm.lifetime.end.p0i8(i64 8, i8* %261)
- store i8 0, i8* %5, align 1
- invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$11into_result17h20c389a4d040cb5eE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %14, %"core::result::Result<usize, usize>"* noalias nocapture dereferenceable(16) %13)
- to label %262 unwind label %368
- ; <label>:262: ; preds = %259
- %263 = bitcast %"core::result::Result<usize, usize>"* %13 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %263)
- %264 = bitcast %"core::result::Result<usize, usize>"* %14 to i64*
- %265 = load i64, i64* %264, align 8, !range !1
- %266 = bitcast %"core::result::Result<usize, usize>"* %14 to i64*
- %267 = load i64, i64* %266, align 8, !range !1
- switch i64 %267, label %86 [
- i64 0, label %271
- i64 1, label %277
- ]
- ; <label>:268: ; preds = %438
- %269 = bitcast %"core::result::Result<usize, usize>"* %14 to i64*
- %270 = load i64, i64* %269, align 8, !range !1
- switch i64 %270, label %289 [
- i64 0, label %361
- ]
- ; <label>:271: ; preds = %262
- %272 = bitcast %"core::result::Result<usize, usize>"* %14 to %"core::result::Result<usize, usize>::Ok"*
- %273 = getelementptr inbounds %"core::result::Result<usize, usize>::Ok", %"core::result::Result<usize, usize>::Ok"* %272, i32 0, i32 1
- %274 = load i64, i64* %273, align 8
- store i8 1, i8* %10, align 1
- store i64 %274, i64* %31, align 8
- %275 = bitcast %"core::result::Result<usize, usize>"* %14 to i64*
- %276 = load i64, i64* %275, align 8, !range !1
- switch i64 %276, label %367 [
- i64 0, label %365
- ]
- ; <label>:277: ; preds = %262
- %278 = bitcast %"core::result::Result<usize, usize>"* %14 to %"core::result::Result<usize, usize>::Err"*
- %279 = getelementptr inbounds %"core::result::Result<usize, usize>::Err", %"core::result::Result<usize, usize>::Err"* %278, i32 0, i32 1
- %280 = load i64, i64* %279, align 8
- %281 = invoke i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h514ffbaf3bb75a3eE"(i64 %280)
- to label %282 unwind label %438
- ; <label>:282: ; preds = %277
- invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17h222e7515b9cde0afE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %0, i64 %281)
- to label %283 unwind label %438
- ; <label>:283: ; preds = %282
- %284 = bitcast %"core::result::Result<usize, usize>"* %14 to i64*
- %285 = load i64, i64* %284, align 8, !range !1
- switch i64 %285, label %362 [
- i64 0, label %364
- ]
- ; <label>:286: ; preds = %235
- store i8 0, i8* %10, align 1
- %287 = bitcast i64* %31 to i8*
- call void @llvm.lifetime.end.p0i8(i64 8, i8* %287)
- br label %102
- ; <label>:288: ; preds = %289
- store i8 0, i8* %10, align 1
- br label %42
- ; <label>:289: ; preds = %368, %361, %358, %357, %350, %347, %346, %332, %329, %328, %314, %311, %310, %296, %293, %292, %268, %211, %170, %129, %83
- %290 = load i8, i8* %10, align 1, !range !2
- %291 = trunc i8 %290 to i1
- br i1 %291, label %288, label %42
- ; <label>:292: ; preds = %293
- store i8 0, i8* %9, align 1
- br label %289
- ; <label>:293: ; preds = %375
- %294 = load i8, i8* %9, align 1, !range !2
- %295 = trunc i8 %294 to i1
- br i1 %295, label %292, label %289
- ; <label>:296: ; preds = %83
- br label %289
- ; <label>:297: ; preds = %299, %99
- %298 = bitcast %"core::result::Result<usize, usize>"* %30 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %298)
- br label %103
- ; <label>:299: ; preds = %99
- br label %297
- ; <label>:300: ; preds = %309, %87
- %301 = bitcast %"core::result::Result<usize, usize>"* %30 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %301)
- %302 = bitcast %"core::result::Result<usize, usize>"* %26 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %302)
- %303 = bitcast %"core::result::Result<usize, usize>"* %25 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %303)
- %304 = bitcast { i64, i32* }* %24 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %304)
- store i8 0, i8* %10, align 1
- store i8 1, i8* %8, align 1
- %305 = load i64, i64* %31, align 8
- %306 = bitcast i32** %23 to i8*
- call void @llvm.lifetime.start.p0i8(i64 8, i8* %306)
- %307 = bitcast { i32*, i32* }* %1 to i32**
- %308 = invoke i32* @_ZN4core5slice10PointerExt8post_inc17hc9f8b6822179ed09E(i32** dereferenceable(8) %307)
- to label %106 unwind label %389
- ; <label>:309: ; preds = %87
- br label %300
- ; <label>:310: ; preds = %311
- store i8 0, i8* %8, align 1
- br label %289
- ; <label>:311: ; preds = %389
- %312 = load i8, i8* %8, align 1, !range !2
- %313 = trunc i8 %312 to i1
- br i1 %313, label %310, label %289
- ; <label>:314: ; preds = %129
- br label %289
- ; <label>:315: ; preds = %317, %144
- %316 = bitcast %"core::result::Result<usize, usize>"* %26 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %316)
- br label %103
- ; <label>:317: ; preds = %144
- br label %315
- ; <label>:318: ; preds = %327, %132
- %319 = bitcast %"core::result::Result<usize, usize>"* %26 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %319)
- %320 = bitcast %"core::result::Result<usize, usize>"* %22 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %320)
- %321 = bitcast %"core::result::Result<usize, usize>"* %21 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %321)
- %322 = bitcast { i64, i32* }* %20 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %322)
- store i8 0, i8* %10, align 1
- store i8 1, i8* %7, align 1
- %323 = load i64, i64* %31, align 8
- %324 = bitcast i32** %19 to i8*
- call void @llvm.lifetime.start.p0i8(i64 8, i8* %324)
- %325 = bitcast { i32*, i32* }* %1 to i32**
- %326 = invoke i32* @_ZN4core5slice10PointerExt8post_inc17hc9f8b6822179ed09E(i32** dereferenceable(8) %325)
- to label %147 unwind label %403
- ; <label>:327: ; preds = %132
- br label %318
- ; <label>:328: ; preds = %329
- store i8 0, i8* %7, align 1
- br label %289
- ; <label>:329: ; preds = %403
- %330 = load i8, i8* %7, align 1, !range !2
- %331 = trunc i8 %330 to i1
- br i1 %331, label %328, label %289
- ; <label>:332: ; preds = %170
- br label %289
- ; <label>:333: ; preds = %335, %185
- %334 = bitcast %"core::result::Result<usize, usize>"* %22 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %334)
- br label %103
- ; <label>:335: ; preds = %185
- br label %333
- ; <label>:336: ; preds = %345, %173
- %337 = bitcast %"core::result::Result<usize, usize>"* %22 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %337)
- %338 = bitcast %"core::result::Result<usize, usize>"* %18 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %338)
- %339 = bitcast %"core::result::Result<usize, usize>"* %17 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %339)
- %340 = bitcast { i64, i32* }* %16 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %340)
- store i8 0, i8* %10, align 1
- store i8 1, i8* %6, align 1
- %341 = load i64, i64* %31, align 8
- %342 = bitcast i32** %15 to i8*
- call void @llvm.lifetime.start.p0i8(i64 8, i8* %342)
- %343 = bitcast { i32*, i32* }* %1 to i32**
- %344 = invoke i32* @_ZN4core5slice10PointerExt8post_inc17hc9f8b6822179ed09E(i32** dereferenceable(8) %343)
- to label %188 unwind label %417
- ; <label>:345: ; preds = %173
- br label %336
- ; <label>:346: ; preds = %347
- store i8 0, i8* %6, align 1
- br label %289
- ; <label>:347: ; preds = %417
- %348 = load i8, i8* %6, align 1, !range !2
- %349 = trunc i8 %348 to i1
- br i1 %349, label %346, label %289
- ; <label>:350: ; preds = %211
- br label %289
- ; <label>:351: ; preds = %353, %226
- %352 = bitcast %"core::result::Result<usize, usize>"* %18 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %352)
- br label %103
- ; <label>:353: ; preds = %226
- br label %351
- ; <label>:354: ; preds = %356, %214
- %355 = bitcast %"core::result::Result<usize, usize>"* %18 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %355)
- br label %43
- ; <label>:356: ; preds = %214
- br label %354
- ; <label>:357: ; preds = %358
- store i8 0, i8* %5, align 1
- br label %289
- ; <label>:358: ; preds = %431
- %359 = load i8, i8* %5, align 1, !range !2
- %360 = trunc i8 %359 to i1
- br i1 %360, label %357, label %289
- ; <label>:361: ; preds = %268
- br label %289
- ; <label>:362: ; preds = %364, %283
- %363 = bitcast %"core::result::Result<usize, usize>"* %14 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %363)
- br label %104
- ; <label>:364: ; preds = %283
- br label %362
- ; <label>:365: ; preds = %367, %271
- %366 = bitcast %"core::result::Result<usize, usize>"* %14 to i8*
- call void @llvm.lifetime.end.p0i8(i64 16, i8* %366)
- br label %229
- ; <label>:367: ; preds = %271
- br label %365
- ; <label>:368: ; preds = %259, %235, %202, %161, %120, %74, %43
- %369 = landingpad { i8*, i32 }
- cleanup
- %370 = bitcast { i8*, i32 }* %4 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %370)
- %371 = extractvalue { i8*, i32 } %369, 0
- %372 = extractvalue { i8*, i32 } %369, 1
- %373 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
- store i8* %371, i8** %373, align 8
- %374 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
- store i32 %372, i32* %374, align 8
- br label %289
- ; <label>:375: ; preds = %66, %60, %52
- %376 = landingpad { i8*, i32 }
- cleanup
- %377 = bitcast { i8*, i32 }* %4 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %377)
- %378 = extractvalue { i8*, i32 } %376, 0
- %379 = extractvalue { i8*, i32 } %376, 1
- %380 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
- store i8* %378, i8** %380, align 8
- %381 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
- store i32 %379, i32* %381, align 8
- br label %293
- ; <label>:382: ; preds = %98, %93
- %383 = landingpad { i8*, i32 }
- cleanup
- %384 = bitcast { i8*, i32 }* %4 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %384)
- %385 = extractvalue { i8*, i32 } %383, 0
- %386 = extractvalue { i8*, i32 } %383, 1
- %387 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
- store i8* %385, i8** %387, align 8
- %388 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
- store i32 %386, i32* %388, align 8
- br label %83
- ; <label>:389: ; preds = %300, %112, %106
- %390 = landingpad { i8*, i32 }
- cleanup
- %391 = bitcast { i8*, i32 }* %4 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %391)
- %392 = extractvalue { i8*, i32 } %390, 0
- %393 = extractvalue { i8*, i32 } %390, 1
- %394 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
- store i8* %392, i8** %394, align 8
- %395 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
- store i32 %393, i32* %395, align 8
- br label %311
- ; <label>:396: ; preds = %143, %138
- %397 = landingpad { i8*, i32 }
- cleanup
- %398 = bitcast { i8*, i32 }* %4 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %398)
- %399 = extractvalue { i8*, i32 } %397, 0
- %400 = extractvalue { i8*, i32 } %397, 1
- %401 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
- store i8* %399, i8** %401, align 8
- %402 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
- store i32 %400, i32* %402, align 8
- br label %129
- ; <label>:403: ; preds = %318, %153, %147
- %404 = landingpad { i8*, i32 }
- cleanup
- %405 = bitcast { i8*, i32 }* %4 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %405)
- %406 = extractvalue { i8*, i32 } %404, 0
- %407 = extractvalue { i8*, i32 } %404, 1
- %408 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
- store i8* %406, i8** %408, align 8
- %409 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
- store i32 %407, i32* %409, align 8
- br label %329
- ; <label>:410: ; preds = %184, %179
- %411 = landingpad { i8*, i32 }
- cleanup
- %412 = bitcast { i8*, i32 }* %4 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %412)
- %413 = extractvalue { i8*, i32 } %411, 0
- %414 = extractvalue { i8*, i32 } %411, 1
- %415 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
- store i8* %413, i8** %415, align 8
- %416 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
- store i32 %414, i32* %416, align 8
- br label %170
- ; <label>:417: ; preds = %336, %194, %188
- %418 = landingpad { i8*, i32 }
- cleanup
- %419 = bitcast { i8*, i32 }* %4 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %419)
- %420 = extractvalue { i8*, i32 } %418, 0
- %421 = extractvalue { i8*, i32 } %418, 1
- %422 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
- store i8* %420, i8** %422, align 8
- %423 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
- store i32 %421, i32* %423, align 8
- br label %347
- ; <label>:424: ; preds = %225, %220
- %425 = landingpad { i8*, i32 }
- cleanup
- %426 = bitcast { i8*, i32 }* %4 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %426)
- %427 = extractvalue { i8*, i32 } %425, 0
- %428 = extractvalue { i8*, i32 } %425, 1
- %429 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
- store i8* %427, i8** %429, align 8
- %430 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
- store i32 %428, i32* %430, align 8
- br label %211
- ; <label>:431: ; preds = %251, %245, %237
- %432 = landingpad { i8*, i32 }
- cleanup
- %433 = bitcast { i8*, i32 }* %4 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %433)
- %434 = extractvalue { i8*, i32 } %432, 0
- %435 = extractvalue { i8*, i32 } %432, 1
- %436 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
- store i8* %434, i8** %436, align 8
- %437 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
- store i32 %435, i32* %437, align 8
- br label %358
- ; <label>:438: ; preds = %282, %277
- %439 = landingpad { i8*, i32 }
- cleanup
- %440 = bitcast { i8*, i32 }* %4 to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %440)
- %441 = extractvalue { i8*, i32 } %439, 0
- %442 = extractvalue { i8*, i32 } %439, 1
- %443 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
- store i8* %441, i8** %443, align 8
- %444 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
- store i32 %442, i32* %444, align 8
- br label %268
- }
- ; Function Attrs: inlinehint uwtable
- define internal { [0 x i32]*, i64 } @"_ZN99_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$13get_unchecked17he9b2cfe1bb70066dE"(i64, i64, [0 x i32]* noalias nonnull readonly, i64) unnamed_addr #0 {
- %5 = call i32* @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$6as_ptr17h32215ff12a098383E"([0 x i32]* noalias nonnull readonly %2, i64 %3)
- br label %6
- ; <label>:6: ; preds = %4
- %7 = icmp ule i64 %0, -1
- call void @llvm.assume(i1 %7)
- %8 = call i32* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$6offset17h2db78cc51ca12da6E"(i32* %5, i64 %0)
- br label %9
- ; <label>:9: ; preds = %6
- %10 = call { i64, i1 } @llvm.usub.with.overflow.i64(i64 %1, i64 %0)
- %11 = extractvalue { i64, i1 } %10, 0
- %12 = extractvalue { i64, i1 } %10, 1
- %13 = call i1 @llvm.expect.i1(i1 %12, i1 false)
- br i1 %13, label %21, label %14
- ; <label>:14: ; preds = %9
- %15 = call { [0 x i32]*, i64 } @_ZN4core5slice14from_raw_parts17hacb157bb9f25ba37E(i32* %8, i64 %11)
- %16 = extractvalue { [0 x i32]*, i64 } %15, 0
- %17 = extractvalue { [0 x i32]*, i64 } %15, 1
- br label %18
- ; <label>:18: ; preds = %14
- %19 = insertvalue { [0 x i32]*, i64 } undef, [0 x i32]* %16, 0
- %20 = insertvalue { [0 x i32]*, i64 } %19, i64 %17, 1
- ret { [0 x i32]*, i64 } %20
- ; <label>:21: ; preds = %9
- call void @_ZN4core9panicking5panic17hfefa0158f97fa77bE({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* @panic_loc.a to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*))
- unreachable
- }
- ; Function Attrs: inlinehint uwtable
- define internal { [0 x i32]*, i64 } @"_ZN99_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h5697259416355b17E"(i64, i64, [0 x i32]* noalias nonnull readonly, i64) unnamed_addr #0 {
- %5 = icmp ugt i64 %0, %1
- br i1 %5, label %6, label %7
- ; <label>:6: ; preds = %4
- call void @_ZN4core5slice22slice_index_order_fail17hd0a9eb5d87471258E(i64 %0, i64 %1)
- unreachable
- ; <label>:7: ; preds = %4
- %8 = call i64 @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$3len17he70cfd9d37ed05efE"([0 x i32]* noalias nonnull readonly %2, i64 %3)
- br label %9
- ; <label>:9: ; preds = %7
- %10 = icmp ugt i64 %1, %8
- br i1 %10, label %11, label %13
- ; <label>:11: ; preds = %9
- %12 = call i64 @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$3len17he70cfd9d37ed05efE"([0 x i32]* noalias nonnull readonly %2, i64 %3)
- br label %17
- ; <label>:13: ; preds = %9
- %14 = call { [0 x i32]*, i64 } @"_ZN99_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$13get_unchecked17he9b2cfe1bb70066dE"(i64 %0, i64 %1, [0 x i32]* noalias nonnull readonly %2, i64 %3)
- %15 = extractvalue { [0 x i32]*, i64 } %14, 0
- %16 = extractvalue { [0 x i32]*, i64 } %14, 1
- br label %18
- ; <label>:17: ; preds = %11
- call void @_ZN4core5slice20slice_index_len_fail17h41ae248f36c196f1E(i64 %1, i64 %12)
- unreachable
- ; <label>:18: ; preds = %13
- %19 = insertvalue { [0 x i32]*, i64 } undef, [0 x i32]* %15, 0
- %20 = insertvalue { [0 x i32]*, i64 } %19, i64 %16, 1
- ret { [0 x i32]*, i64 } %20
- }
- ; Function Attrs: uwtable
- define internal void @_ZN19bad_position_simple4main17hd6968b5c65b64145E() unnamed_addr #2 {
- call void @_ZN19bad_position_simple21import_path_to_string17h210232a05b4d0302E([0 x i32]* noalias nonnull readonly bitcast ([1 x i32]* @ref.b to [0 x i32]*), i64 1)
- br label %1
- ; <label>:1: ; preds = %0
- call void @_ZN19bad_position_simple21import_path_to_string17h210232a05b4d0302E([0 x i32]* noalias nonnull readonly @ref.c, i64 0)
- br label %2
- ; <label>:2: ; preds = %1
- ret void
- }
- ; Function Attrs: uwtable
- define internal void @_ZN19bad_position_simple21import_path_to_string17h210232a05b4d0302E([0 x i32]* noalias nonnull readonly, i64) unnamed_addr #2 {
- %3 = alloca i64, align 8
- %4 = alloca i64*, align 8
- %5 = alloca [1 x { i8*, i8* }], align 8
- %6 = alloca %"core::fmt::Arguments", align 8
- %7 = alloca i64, align 8
- %8 = alloca { [0 x i32]*, i64 }, align 8
- %9 = alloca i64, align 8
- %10 = alloca { i64, i64 }, align 8
- %11 = alloca { [0 x i32]*, i64 }, align 8
- %12 = alloca i8, align 1
- %13 = alloca { i32*, i32* }, align 8
- %14 = alloca %"core::option::Option<usize>", align 8
- %15 = call { i32*, i32* } @"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$4iter17h08ec6eec9d3c8166E"([0 x i32]* noalias nonnull readonly %0, i64 %1)
- store { i32*, i32* } %15, { i32*, i32* }* %13, align 8
- br label %16
- ; <label>:16: ; preds = %2
- call void @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position17hf1a29b42059163daE"(%"core::option::Option<usize>"* noalias nocapture sret dereferenceable(16) %14, { i32*, i32* }* dereferenceable(16) %13)
- br label %17
- ; <label>:17: ; preds = %16
- %18 = call zeroext i1 @"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$8is_empty17h7069f18437424c5eE"([0 x i32]* noalias nonnull readonly %0, i64 %1)
- br label %29
- ; <label>:19: ; preds = %31
- store i8 1, i8* %12, align 1
- br label %24
- ; <label>:20: ; preds = %31, %29
- store i8 0, i8* %12, align 1
- br label %24
- ; <label>:21: ; preds = %29
- %22 = icmp ult i64 0, %1
- %23 = call i1 @llvm.expect.i1(i1 %22, i1 true)
- br i1 %23, label %31, label %115
- ; <label>:24: ; preds = %20, %19
- %25 = bitcast %"core::option::Option<usize>"* %14 to i64*
- %26 = load i64, i64* %25, align 8, !range !1
- %27 = bitcast %"core::option::Option<usize>"* %14 to i64*
- %28 = load i64, i64* %27, align 8, !range !1
- switch i64 %28, label %35 [
- i64 1, label %38
- ]
- ; <label>:29: ; preds = %17
- %30 = xor i1 %18, true
- br i1 %30, label %21, label %20
- ; <label>:31: ; preds = %21
- %32 = getelementptr inbounds [0 x i32], [0 x i32]* %0, i64 0, i64 0
- %33 = load i32, i32* %32, align 4
- %34 = icmp eq i32 %33, 1
- br i1 %34, label %19, label %20
- ; <label>:35: ; preds = %24
- %36 = load i8, i8* %12, align 1, !range !2
- %37 = trunc i8 %36 to i1
- br i1 %37, label %76, label %81
- ; <label>:38: ; preds = %24
- %39 = bitcast %"core::option::Option<usize>"* %14 to %"core::option::Option<usize>::Some"*
- %40 = getelementptr inbounds %"core::option::Option<usize>::Some", %"core::option::Option<usize>::Some"* %39, i32 0, i32 1
- %41 = load i64, i64* %40, align 8
- %42 = load i8, i8* %12, align 1, !range !2
- %43 = trunc i8 %42 to i1
- br i1 %43, label %45, label %50
- ; <label>:44: ; preds = %93, %73, %65
- ret void
- ; <label>:45: ; preds = %38
- %46 = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %41, i64 1)
- %47 = extractvalue { i64, i1 } %46, 0
- %48 = extractvalue { i64, i1 } %46, 1
- %49 = call i1 @llvm.expect.i1(i1 %48, i1 false)
- br i1 %49, label %116, label %55
- ; <label>:50: ; preds = %38
- %51 = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %41, i64 1)
- %52 = extractvalue { i64, i1 } %51, 0
- %53 = extractvalue { i64, i1 } %51, 1
- %54 = call i1 @llvm.expect.i1(i1 %53, i1 false)
- br i1 %54, label %117, label %68
- ; <label>:55: ; preds = %45
- %56 = bitcast { i64, i64 }* %10 to i64*
- store i64 1, i64* %56, align 8
- %57 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %10, i32 0, i32 1
- store i64 %47, i64* %57, align 8
- %58 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %10, i32 0, i32 0
- %59 = load i64, i64* %58, align 8
- %60 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %10, i32 0, i32 1
- %61 = load i64, i64* %60, align 8
- %62 = call { [0 x i32]*, i64 } @"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h0fe7e803fce1e20aE"([0 x i32]* noalias nonnull readonly %0, i64 %1, i64 %59, i64 %61)
- %63 = extractvalue { [0 x i32]*, i64 } %62, 0
- %64 = extractvalue { [0 x i32]*, i64 } %62, 1
- br label %65
- ; <label>:65: ; preds = %55
- %66 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %11, i32 0, i32 0
- store [0 x i32]* %63, [0 x i32]** %66, align 8
- %67 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %11, i32 0, i32 1
- store i64 %64, i64* %67, align 8
- br label %44
- ; <label>:68: ; preds = %50
- store i64 %52, i64* %9, align 8
- %69 = load i64, i64* %9, align 8
- %70 = call { [0 x i32]*, i64 } @"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h41f64f54e8d1b7d6E"([0 x i32]* noalias nonnull readonly %0, i64 %1, i64 %69)
- %71 = extractvalue { [0 x i32]*, i64 } %70, 0
- %72 = extractvalue { [0 x i32]*, i64 } %70, 1
- br label %73
- ; <label>:73: ; preds = %68
- %74 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %11, i32 0, i32 0
- store [0 x i32]* %71, [0 x i32]** %74, align 8
- %75 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %11, i32 0, i32 1
- store i64 %72, i64* %75, align 8
- br label %44
- ; <label>:76: ; preds = %35
- store i64 1, i64* %7, align 8
- %77 = load i64, i64* %7, align 8
- %78 = call { [0 x i32]*, i64 } @"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hd2e2694457d96551E"([0 x i32]* noalias nonnull readonly %0, i64 %1, i64 %77)
- %79 = extractvalue { [0 x i32]*, i64 } %78, 0
- %80 = extractvalue { [0 x i32]*, i64 } %78, 1
- br label %84
- ; <label>:81: ; preds = %35
- %82 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %8, i32 0, i32 0
- store [0 x i32]* %0, [0 x i32]** %82, align 8
- %83 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %8, i32 0, i32 1
- store i64 %1, i64* %83, align 8
- br label %87
- ; <label>:84: ; preds = %76
- %85 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %8, i32 0, i32 0
- store [0 x i32]* %79, [0 x i32]** %85, align 8
- %86 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %8, i32 0, i32 1
- store i64 %80, i64* %86, align 8
- br label %87
- ; <label>:87: ; preds = %84, %81
- %88 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %8, i32 0, i32 0
- %89 = load [0 x i32]*, [0 x i32]** %88, align 8, !nonnull !3
- %90 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %8, i32 0, i32 1
- %91 = load i64, i64* %90, align 8
- %92 = call zeroext i1 @"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$8is_empty17h7069f18437424c5eE"([0 x i32]* noalias nonnull readonly %89, i64 %91)
- br label %93
- ; <label>:93: ; preds = %87
- %94 = xor i1 %92, true
- br i1 %94, label %95, label %44
- ; <label>:95: ; preds = %93
- %96 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %8, i32 0, i32 0
- %97 = load [0 x i32]*, [0 x i32]** %96, align 8, !nonnull !3
- %98 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %8, i32 0, i32 1
- %99 = load i64, i64* %98, align 8
- %100 = call i64 @"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$3len17hab82a3a5ee843773E"([0 x i32]* noalias nonnull readonly %97, i64 %99)
- store i64 %100, i64* %3, align 8
- br label %101
- ; <label>:101: ; preds = %95
- store i64* %3, i64** %4, align 8
- %102 = load i64*, i64** %4, align 8, !nonnull !3
- %103 = call { i8*, i8* } @_ZN4core3fmt10ArgumentV13new17h62ac4e23745d2eacE(i64* noalias readonly dereferenceable(8) %102, i1 (i64*, %"core::fmt::Formatter"*)* nonnull @"_ZN4core3fmt3num54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h4b475879c6110157E")
- %104 = extractvalue { i8*, i8* } %103, 0
- %105 = extractvalue { i8*, i8* } %103, 1
- br label %106
- ; <label>:106: ; preds = %101
- %107 = getelementptr inbounds [1 x { i8*, i8* }], [1 x { i8*, i8* }]* %5, i64 0, i64 0
- %108 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %107, i32 0, i32 0
- store i8* %104, i8** %108, align 8
- %109 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %107, i32 0, i32 1
- store i8* %105, i8** %109, align 8
- %110 = bitcast [1 x { i8*, i8* }]* %5 to [0 x { i8*, i8* }]*
- %111 = load [1 x %"core::fmt::rt::v1::Argument"]*, [1 x %"core::fmt::rt::v1::Argument"]** bitcast ({ { [0 x i8], { i64, [0 x i8], i64, [0 x i8] }, [0 x i8], { [0 x i8], <{ i64, [8 x i8] }>, [0 x i8], <{ i64, [8 x i8] }>, [0 x i8], i32, [0 x i8], i32, [0 x i8], i8, [7 x i8] }, [0 x i8] } }** @const.i to [1 x %"core::fmt::rt::v1::Argument"]**), align 8, !nonnull !3
- %112 = bitcast [1 x %"core::fmt::rt::v1::Argument"]* %111 to [0 x %"core::fmt::rt::v1::Argument"]*
- call void @_ZN4core3fmt9Arguments16new_v1_formatted17hea2ae333548f7201E(%"core::fmt::Arguments"* noalias nocapture sret dereferenceable(48) %6, [0 x { [0 x i8]*, i64 }]* noalias nonnull readonly bitcast ([1 x { [0 x i8]*, i64 }]* @ref.g to [0 x { [0 x i8]*, i64 }]*), i64 1, [0 x { i8*, i8* }]* noalias nonnull readonly %110, i64 1, [0 x %"core::fmt::rt::v1::Argument"]* noalias nonnull readonly %112, i64 1)
- br label %113
- ; <label>:113: ; preds = %106
- %114 = load { [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*, { [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }** bitcast ({ [0 x i8], { [0 x i8]*, i64 }, [0 x i8], i32, [0 x i8], i32, [0 x i8] }** @const.k to { [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }**), align 8, !nonnull !3
- call void @_ZN3std9panicking15begin_panic_fmt17h12231957b6c3aabeE(%"core::fmt::Arguments"* noalias readonly dereferenceable(48) %6, { [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(24) %114)
- unreachable
- ; <label>:115: ; preds = %21
- call void @_ZN4core9panicking18panic_bounds_check17hb9ff1ec5af7b2839E({ [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(24) bitcast ({ { [0 x i8]*, i64 }, i32, i32 }* @panic_bounds_check_loc.e to { [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*), i64 0, i64 %1)
- unreachable
- ; <label>:116: ; preds = %45
- call void @_ZN4core9panicking5panic17hfefa0158f97fa77bE({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* @panic_loc.l to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*))
- unreachable
- ; <label>:117: ; preds = %50
- call void @_ZN4core9panicking5panic17hfefa0158f97fa77bE({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* @panic_loc.m to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*))
- unreachable
- }
- ; Function Attrs: uwtable
- define internal zeroext i1 @"_ZN19bad_position_simple21import_path_to_string28_$u7b$$u7b$closure$u7d$$u7d$17h6e8857c45441a25dE"(%"import_path_to_string::{{closure}}"* nonnull, i32* noalias readonly dereferenceable(4)) unnamed_addr #2 {
- %3 = load i32, i32* %1, align 4
- %4 = icmp ne i32 %3, 1
- ret i1 %4
- }
- declare i32 @rust_eh_personality(i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*) unnamed_addr #3
- ; Function Attrs: argmemonly nounwind
- declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i32, i1) #4
- ; Function Attrs: nounwind
- declare void @llvm.assume(i1) #5
- ; Function Attrs: nounwind readnone
- declare i1 @llvm.expect.i1(i1, i1) #6
- ; Function Attrs: cold noinline noreturn
- declare void @_ZN4core9panicking5panic17hfefa0158f97fa77bE({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(40)) unnamed_addr #7
- declare hidden zeroext i1 @_ZN4core5slice8SliceExt8is_empty17h5df57ca3a59651deE([0 x i32]* noalias nonnull readonly, i64) unnamed_addr #3
- ; Function Attrs: nounwind readnone speculatable
- declare { i64, i1 } @llvm.uadd.with.overflow.i64(i64, i64) #8
- declare hidden void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$11into_result17h20c389a4d040cb5eE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16), %"core::result::Result<usize, usize>"* noalias nocapture dereferenceable(16)) unnamed_addr #3
- declare hidden i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h514ffbaf3bb75a3eE"(i64) unnamed_addr #3
- declare hidden void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17h222e7515b9cde0afE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16), i64) unnamed_addr #3
- declare hidden void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$7from_ok17hed12cd599a454669E"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16), i64) unnamed_addr #3
- ; Function Attrs: nounwind readnone speculatable
- declare { i64, i1 } @llvm.usub.with.overflow.i64(i64, i64) #8
- ; Function Attrs: cold noinline noreturn
- declare void @_ZN4core5slice22slice_index_order_fail17hd0a9eb5d87471258E(i64, i64) unnamed_addr #7
- ; Function Attrs: cold noinline noreturn
- declare void @_ZN4core5slice20slice_index_len_fail17h41ae248f36c196f1E(i64, i64) unnamed_addr #7
- ; Function Attrs: cold noinline noreturn
- declare void @_ZN4core9panicking18panic_bounds_check17hb9ff1ec5af7b2839E({ [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(24), i64, i64) unnamed_addr #7
- declare zeroext i1 @"_ZN4core3fmt3num54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h4b475879c6110157E"(i64* noalias readonly dereferenceable(8), %"core::fmt::Formatter"* dereferenceable(96)) unnamed_addr #3
- declare hidden { i8*, i8* } @_ZN4core3fmt10ArgumentV13new17h62ac4e23745d2eacE(i64* noalias readonly dereferenceable(8), i1 (i64*, %"core::fmt::Formatter"*)* nonnull) unnamed_addr #3
- ; Function Attrs: cold noinline noreturn
- declare void @_ZN3std9panicking15begin_panic_fmt17h12231957b6c3aabeE(%"core::fmt::Arguments"* noalias readonly dereferenceable(48), { [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(24)) unnamed_addr #7
- define i32 @main(i32, i8**) unnamed_addr {
- %3 = sext i32 %0 to i64
- %4 = call i64 @_ZN3std2rt10lang_start17hc22bd9d4d8304f2bE(void ()* @_ZN19bad_position_simple4main17hd6968b5c65b64145E, i64 %3, i8** %1)
- %5 = trunc i64 %4 to i32
- ret i32 %5
- }
- declare hidden i64 @_ZN3std2rt10lang_start17hc22bd9d4d8304f2bE(void ()* nonnull, i64, i8**) unnamed_addr #3
- ; Function Attrs: argmemonly nounwind
- declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #4
- ; Function Attrs: argmemonly nounwind
- declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #4
- attributes #0 = { inlinehint uwtable "probe-stack"="__rust_probestack" }
- attributes #1 = { alwaysinline uwtable "probe-stack"="__rust_probestack" }
- attributes #2 = { uwtable "probe-stack"="__rust_probestack" }
- attributes #3 = { "probe-stack"="__rust_probestack" }
- attributes #4 = { argmemonly nounwind }
- attributes #5 = { nounwind }
- attributes #6 = { nounwind readnone }
- attributes #7 = { cold noinline noreturn "probe-stack"="__rust_probestack" }
- attributes #8 = { nounwind readnone speculatable }
- !llvm.module.flags = !{!0}
- !0 = !{i32 7, !"PIE Level", i32 2}
- !1 = !{i64 0, i64 2}
- !2 = !{i8 0, i8 2}
- !3 = !{}
Add Comment
Please, Sign In to add comment