Skip to content

Instantly share code, notes, and snippets.

@TimNN

TimNN/farm.ll Secret

Created March 3, 2017 16:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TimNN/52fcea6426c872869269114c47f96e1f to your computer and use it in GitHub Desktop.
Save TimNN/52fcea6426c872869269114c47f96e1f to your computer and use it in GitHub Desktop.
; ModuleID = 'farm.cgu-0.rs'
source_filename = "farm.cgu-0.rs"
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
target triple = "arm--linux-android"
%str_slice = type { i8*, i32 }
%"core::fmt::Formatter" = type { i32, i32, i8, %"core::option::Option<usize>", %"core::option::Option<usize>", { i8*, void (i8*)** }, %"core::slice::Iter<core::fmt::ArgumentV1>", { %"core::fmt::ArgumentV1"*, i32 } }
%"core::option::Option<usize>" = type { i32, [0 x i32], [1 x i32] }
%"core::slice::Iter<core::fmt::ArgumentV1>" = type { %"core::fmt::ArgumentV1"*, %"core::fmt::ArgumentV1"*, %"core::marker::PhantomData<&core::fmt::ArgumentV1>" }
%"core::fmt::ArgumentV1" = type { %"core::fmt::Void"*, i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)* }
%"core::fmt::Void" = type { {} }
%"core::marker::PhantomData<&core::fmt::ArgumentV1>" = type {}
%"collections::vec::Vec<isize>" = type { %"alloc::raw_vec::RawVec<isize>", i32 }
%"alloc::raw_vec::RawVec<isize>" = type { %"core::ptr::Unique<isize>", i32 }
%"core::ptr::Unique<isize>" = type { %"core::nonzero::NonZero<*const isize>", %"core::marker::PhantomData<isize>" }
%"core::nonzero::NonZero<*const isize>" = type { i32* }
%"core::marker::PhantomData<isize>" = type {}
%"core::ops::RangeFull" = type {}
%"core::option::Option<isize>" = type { i32, [0 x i32], [1 x i32] }
%"core::iter::range::StepBy<isize, core::ops::Range<isize>>" = type { i32, %"core::ops::Range<isize>" }
%"core::ops::Range<isize>" = type { i32, i32 }
%"core::slice::Iter<isize>" = type { i32*, i32*, %"core::marker::PhantomData<&isize>" }
%"core::marker::PhantomData<&isize>" = type {}
%"core::fmt::builders::DebugList" = type { %"core::fmt::builders::DebugInner" }
%"core::fmt::builders::DebugInner" = type { %"core::fmt::Formatter"*, %"core::result::Result<(), core::fmt::Error>", i8 }
%"core::result::Result<(), core::fmt::Error>" = type { i8, [0 x i8], [0 x i8] }
%"core::fmt::Arguments" = type { { %str_slice*, i32 }, %"core::option::Option<&[core::fmt::rt::v1::Argument]>", { %"core::fmt::ArgumentV1"*, i32 } }
%"core::option::Option<&[core::fmt::rt::v1::Argument]>" = type { { %"core::fmt::rt::v1::Argument"*, i32 } }
%"core::fmt::rt::v1::Argument" = type { %"core::fmt::rt::v1::Position", %"core::fmt::rt::v1::FormatSpec" }
%"core::fmt::rt::v1::Position" = type { i32, [0 x i32], [1 x i32] }
%"core::fmt::rt::v1::FormatSpec" = type { i32, i8, i32, %"core::fmt::rt::v1::Count", %"core::fmt::rt::v1::Count" }
%"core::fmt::rt::v1::Count" = type { i32, [0 x i32], [1 x i32] }
%"core::slice::Repr<isize>" = type { i32*, i32 }
%"unwind::libunwind::_Unwind_Exception" = type { i64, void (i32, %"unwind::libunwind::_Unwind_Exception"*)*, [20 x i32] }
%"unwind::libunwind::_Unwind_Context" = type {}
@_ZN4farm4main15__STATIC_FMTSTR17hec44f1053dc1d4f9E = internal constant { %str_slice*, i32 } { %str_slice* getelementptr inbounds ([0 x %str_slice], [0 x %str_slice]* @ref.i, i32 0, i32 0), i32 0 }, align 4
@_ZN4farm4main10_FILE_LINE17h9cb38694b2dbd7adE = internal constant { %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str.j, i32 0, i32 0), i32 0 }, i32 0 }, align 4
@str.0 = internal constant [35 x i8] c"/checkout/src/libcollections/vec.rs"
@str.1 = internal constant [28 x i8] c"attempt to add with overflow"
@panic_loc.2 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.1, i32 0, i32 0), i32 28 }, %str_slice { i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str.0, i32 0, i32 0), i32 35 }, i32 1729 }, align 4
@str.3 = internal constant [17 x i8] c"capacity overflow"
@str.4 = internal constant [33 x i8] c"/checkout/src/liballoc/raw_vec.rs"
@str.5 = internal constant [33 x i8] c"attempt to multiply with overflow"
@panic_loc.6 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str.5, i32 0, i32 0), i32 33 }, %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str.4, i32 0, i32 0), i32 33 }, i32 344 }, align 4
@panic_loc.7 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str.5, i32 0, i32 0), i32 33 }, %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str.4, i32 0, i32 0), i32 33 }, i32 419 }, align 4
@str.8 = internal constant [35 x i8] c"/checkout/src/libcore/iter/range.rs"
@str.9 = internal constant [57 x i8] c"attempt to calculate the remainder with a divisor of zero"
@panic_loc.a = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([57 x i8], [57 x i8]* @str.9, i32 0, i32 0), i32 57 }, %str_slice { i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str.8, i32 0, i32 0), i32 35 }, i32 146 }, align 4
@str.b = internal constant [25 x i8] c"attempt to divide by zero"
@panic_loc.c = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @str.b, i32 0, i32 0), i32 25 }, %str_slice { i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str.8, i32 0, i32 0), i32 35 }, i32 147 }, align 4
@panic_loc.d = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @str.1, i32 0, i32 0), i32 28 }, %str_slice { i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str.8, i32 0, i32 0), i32 35 }, i32 147 }, align 4
@panic_loc.e = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @str.b, i32 0, i32 0), i32 25 }, %str_slice { i8* getelementptr inbounds ([35 x i8], [35 x i8]* @str.8, i32 0, i32 0), i32 35 }, i32 149 }, align 4
@vtable.f = internal unnamed_addr constant { void (i8*)*, i32, i32, i8 (i32**, %"core::fmt::Formatter"*)* } { void (i8*)* @_ZN4drop17h5e8360cf713132cfE, i32 4, i32 4, i8 (i32**, %"core::fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h889edfa5dbcb43f4E" }, align 4
@_ZN5alloc4heap24check_size_and_alignment14_MSG_FILE_LINE17h00c3435f05a4fcfdE = external global { %str_slice, %str_slice, i32 }
@_ZN5alloc4heap24check_size_and_alignment15__STATIC_FMTSTR17h557f9e10d9f56ed3E = external global { %str_slice*, i32 }
@_ZN5alloc4heap24check_size_and_alignment10_FILE_LINE17h86fe1dae5ff439efE = external global { %str_slice, i32 }
@_ZN5alloc4heap24check_size_and_alignment15__STATIC_FMTSTR17h0c070412f9a1704fE = external global { %str_slice*, i32 }
@_ZN5alloc4heap24check_size_and_alignment10_FILE_LINE17h5aab51be75daf954E = external global { %str_slice, i32 }
@_ZN5alloc7raw_vec11alloc_guard14_MSG_FILE_LINE17ha97eb2e42644e724E = external global { %str_slice, %str_slice, i32 }
@panic_loc.g = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str.5, i32 0, i32 0), i32 33 }, %str_slice { i8* getelementptr inbounds ([33 x i8], [33 x i8]* @str.4, i32 0, i32 0), i32 33 }, i32 549 }, align 4
@ref.h = internal unnamed_addr constant [0 x i32] zeroinitializer, align 4
@ref.i = internal unnamed_addr constant [0 x %str_slice] zeroinitializer, align 4
@str.j = internal constant [0 x i8] zeroinitializer
; Function Attrs: inlinehint uwtable
define internal zeroext i1 @"_ZN101_$LT$collections..vec..Vec$LT$A$GT$$u20$as$u20$core..cmp..PartialEq$LT$$u5b$B$u3b$$u20$0$u5d$$GT$$GT$2eq17h260bbf388bffd928E"(%"collections::vec::Vec<isize>"* noalias readonly dereferenceable(12), [0 x i32]* noalias readonly) unnamed_addr #0 {
entry-block:
%_13 = alloca %"core::ops::RangeFull"
%_8 = alloca %"core::ops::RangeFull"
br label %start
start: ; preds = %entry-block
%2 = call { i32*, i32 } @"_ZN95_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..Index$LT$core..ops..RangeFull$GT$$GT$5index17h3b3abfed5d3de87bE"(%"collections::vec::Vec<isize>"* noalias readonly dereferenceable(12) %0)
%3 = extractvalue { i32*, i32 } %2, 0
%4 = extractvalue { i32*, i32 } %2, 1
br label %bb1
bb1: ; preds = %start
%5 = bitcast [0 x i32]* %1 to i32*
%6 = call { i32*, i32 } @"_ZN4core5slice67_$LT$impl$u20$core..ops..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h73017c6b6bc52e91E"(i32* noalias nonnull readonly %5, i32 0)
%7 = extractvalue { i32*, i32 } %6, 0
%8 = extractvalue { i32*, i32 } %6, 1
br label %bb2
bb2: ; preds = %bb1
%9 = call zeroext i1 @"_ZN4core5slice81_$LT$impl$u20$core..cmp..PartialEq$LT$$u5b$B$u5d$$GT$$u20$for$u20$$u5b$A$u5d$$GT$2eq17h0e7bd66f7e58d2ddE"(i32* noalias nonnull readonly %3, i32 %4, i32* noalias nonnull readonly %7, i32 %8)
br label %bb3
bb3: ; preds = %bb2
ret i1 %9
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN118_$LT$core..iter..range..StepBy$LT$A$C$$u20$core..ops..Range$LT$A$GT$$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h5c5d949f560d7a14E"(%"core::option::Option<isize>"* noalias nocapture sret dereferenceable(8), %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* dereferenceable(12)) unnamed_addr #0 personality i32 (i32, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%personalityslot = alloca { i8*, i32 }
%_39 = alloca i8
%_38 = alloca i8
%_37 = alloca i8
%n1 = alloca i32
%n = alloca i32
%_17 = alloca %"core::option::Option<isize>"
%_11 = alloca i8
%_6 = alloca i8
%_5 = alloca i8
br label %start
start: ; preds = %entry-block
store i8 0, i8* %_38
store i8 0, i8* %_37
store i8 0, i8* %_39
%2 = getelementptr inbounds %"core::iter::range::StepBy<isize, core::ops::Range<isize>>", %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %1, i32 0, i32 0
%3 = call zeroext i1 @"_ZN49_$LT$isize$u20$as$u20$core..iter..range..Step$GT$11is_negative17h53522f896c8fd887E"(i32* noalias readonly dereferenceable(4) %2)
br label %bb1
bb1: ; preds = %start
br i1 %3, label %bb8, label %bb7
bb2: ; preds = %bb14, %bb9
store i8 1, i8* %_5
br label %bb5
bb3: ; preds = %bb14
store i8 0, i8* %_5
br label %bb5
bb4: ; preds = %bb9
%4 = xor i1 %3, true
br i1 %4, label %bb13, label %bb12
bb5: ; preds = %bb3, %bb2
%5 = load i8, i8* %_5, !range !1
%6 = trunc i8 %5 to i1
br i1 %6, label %bb16, label %bb17
bb6: ; preds = %bb10
store i8 1, i8* %_6
br label %bb9
bb7: ; preds = %bb10, %bb1
store i8 0, i8* %_6
br label %bb9
bb8: ; preds = %bb1
%7 = getelementptr inbounds %"core::iter::range::StepBy<isize, core::ops::Range<isize>>", %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %1, i32 0, i32 1
%8 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %7, i32 0, i32 0
%9 = getelementptr inbounds %"core::iter::range::StepBy<isize, core::ops::Range<isize>>", %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %1, i32 0, i32 1
%10 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %9, i32 0, i32 1
%11 = call zeroext i1 @"_ZN4core3cmp5impls57_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$isize$GT$2gt17h46264a7082b35b93E"(i32* noalias readonly dereferenceable(4) %8, i32* noalias readonly dereferenceable(4) %10)
br label %bb10
bb9: ; preds = %bb7, %bb6
%12 = load i8, i8* %_6, !range !1
%13 = trunc i8 %12 to i1
br i1 %13, label %bb2, label %bb4
bb10: ; preds = %bb8
br i1 %11, label %bb6, label %bb7
bb11: ; preds = %bb15
store i8 1, i8* %_11
br label %bb14
bb12: ; preds = %bb15, %bb4
store i8 0, i8* %_11
br label %bb14
bb13: ; preds = %bb4
%14 = getelementptr inbounds %"core::iter::range::StepBy<isize, core::ops::Range<isize>>", %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %1, i32 0, i32 1
%15 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %14, i32 0, i32 0
%16 = getelementptr inbounds %"core::iter::range::StepBy<isize, core::ops::Range<isize>>", %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %1, i32 0, i32 1
%17 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %16, i32 0, i32 1
%18 = call zeroext i1 @"_ZN4core3cmp5impls57_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$isize$GT$2lt17h3b57cd1e2446f5deE"(i32* noalias readonly dereferenceable(4) %15, i32* noalias readonly dereferenceable(4) %17)
br label %bb15
bb14: ; preds = %bb12, %bb11
%19 = load i8, i8* %_11, !range !1
%20 = trunc i8 %19 to i1
br i1 %20, label %bb2, label %bb3
bb15: ; preds = %bb13
br i1 %18, label %bb11, label %bb12
bb16: ; preds = %bb5
%21 = getelementptr inbounds %"core::iter::range::StepBy<isize, core::ops::Range<isize>>", %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %1, i32 0, i32 1
%22 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %21, i32 0, i32 0
%23 = getelementptr inbounds %"core::iter::range::StepBy<isize, core::ops::Range<isize>>", %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %1, i32 0, i32 0
store i8 1, i8* %_37
call void @"_ZN49_$LT$isize$u20$as$u20$core..iter..range..Step$GT$4step17h173d964420fa4598E"(%"core::option::Option<isize>"* noalias nocapture sret dereferenceable(8) %_17, i32* noalias readonly dereferenceable(4) %22, i32* noalias readonly dereferenceable(4) %23)
br label %bb18
bb17: ; preds = %bb5
%24 = getelementptr inbounds %"core::option::Option<isize>", %"core::option::Option<isize>"* %0, i32 0, i32 0
store i32 0, i32* %24
br label %bb28
bb18: ; preds = %bb16
%25 = getelementptr inbounds %"core::option::Option<isize>", %"core::option::Option<isize>"* %_17, i32 0, i32 0
%26 = load i32, i32* %25, !range !2
switch i32 %26, label %bb22 [
i32 0, label %bb21
]
bb19: ; preds = %bb31, %bb30, %bb29
%27 = load { i8*, i32 }, { i8*, i32 }* %personalityslot
resume { i8*, i32 } %27
bb20: ; preds = %bb32, %bb33
%28 = getelementptr inbounds %"core::option::Option<isize>", %"core::option::Option<isize>"* %_17, i32 0, i32 0
%29 = load i32, i32* %28, !range !2
switch i32 %29, label %bb29 [
i32 1, label %bb30
]
bb21: ; preds = %bb18
%30 = getelementptr inbounds %"core::iter::range::StepBy<isize, core::ops::Range<isize>>", %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %1, i32 0, i32 1
%31 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %30, i32 0, i32 1
%32 = invoke i32 @"_ZN44_$LT$isize$u20$as$u20$core..clone..Clone$GT$5clone17h2d5ec8dd257c30a9E"(i32* noalias readonly dereferenceable(4) %31)
to label %bb25 unwind label %cleanup2
bb22: ; preds = %bb18
store i8 0, i8* %_37
store i8 1, i8* %_38
%33 = bitcast %"core::option::Option<isize>"* %_17 to { i32, i32 }*
%34 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %33, i32 0, i32 1
%35 = load i32, i32* %34
store i32 %35, i32* %n
%36 = getelementptr inbounds %"core::iter::range::StepBy<isize, core::ops::Range<isize>>", %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %1, i32 0, i32 1
%37 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %36, i32 0, i32 0
invoke void @_ZN4core3mem4swap17hd79e03598b052fc7E(i32* dereferenceable(4) %37, i32* dereferenceable(4) %n)
to label %bb24 unwind label %cleanup
bb23: ; preds = %bb26, %bb24
%38 = getelementptr inbounds %"core::option::Option<isize>", %"core::option::Option<isize>"* %_17, i32 0, i32 0
%39 = load i32, i32* %38, !range !2
switch i32 %39, label %bb36 [
i32 1, label %bb37
]
bb24: ; preds = %bb22
store i8 0, i8* %_38
%40 = load i32, i32* %n
%41 = getelementptr inbounds %"core::option::Option<isize>", %"core::option::Option<isize>"* %0, i32 0, i32 0
store i32 1, i32* %41
%42 = bitcast %"core::option::Option<isize>"* %0 to { i32, i32 }*
%43 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %42, i32 0, i32 1
store i32 %40, i32* %43
br label %bb23
bb25: ; preds = %bb21
store i32 %32, i32* %n1
store i8 1, i8* %_39
%44 = getelementptr inbounds %"core::iter::range::StepBy<isize, core::ops::Range<isize>>", %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %1, i32 0, i32 1
%45 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %44, i32 0, i32 0
invoke void @_ZN4core3mem4swap17hd79e03598b052fc7E(i32* dereferenceable(4) %45, i32* dereferenceable(4) %n1)
to label %bb26 unwind label %cleanup2
bb26: ; preds = %bb25
store i8 0, i8* %_39
%46 = load i32, i32* %n1
%47 = getelementptr inbounds %"core::option::Option<isize>", %"core::option::Option<isize>"* %0, i32 0, i32 0
store i32 1, i32* %47
%48 = bitcast %"core::option::Option<isize>"* %0 to { i32, i32 }*
%49 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %48, i32 0, i32 1
store i32 %46, i32* %49
br label %bb23
bb27: ; preds = %bb38, %bb37, %bb36
br label %bb28
bb28: ; preds = %bb17, %bb27
ret void
bb29: ; preds = %bb20
br label %bb19
bb30: ; preds = %bb20
%50 = load i8, i8* %_37, !range !1
%51 = trunc i8 %50 to i1
br i1 %51, label %bb31, label %bb19
bb31: ; preds = %bb30
store i8 0, i8* %_37
br label %bb19
bb32: ; preds = %bb33
store i8 0, i8* %_38
br label %bb20
bb33: ; preds = %bb34, %bb35, %cleanup
%52 = load i8, i8* %_38, !range !1
%53 = trunc i8 %52 to i1
br i1 %53, label %bb32, label %bb20
bb34: ; preds = %bb35
store i8 0, i8* %_39
br label %bb33
bb35: ; preds = %cleanup2
%54 = load i8, i8* %_39, !range !1
%55 = trunc i8 %54 to i1
br i1 %55, label %bb34, label %bb33
bb36: ; preds = %bb23
br label %bb27
bb37: ; preds = %bb23
%56 = load i8, i8* %_37, !range !1
%57 = trunc i8 %56 to i1
br i1 %57, label %bb38, label %bb27
bb38: ; preds = %bb37
store i8 0, i8* %_37
br label %bb27
cleanup: ; preds = %bb22
%58 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %58, { i8*, i32 }* %personalityslot
br label %bb33
cleanup2: ; preds = %bb25, %bb21
%59 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %59, { i8*, i32 }* %personalityslot
br label %bb35
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN118_$LT$core..iter..range..StepBy$LT$A$C$$u20$core..ops..Range$LT$A$GT$$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$9size_hint17h549504389bdaacaeE"({ i32, %"core::option::Option<usize>" }* noalias nocapture sret dereferenceable(12), %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* noalias readonly dereferenceable(12)) unnamed_addr #0 {
entry-block:
%_15 = alloca %"core::option::Option<usize>"
%_13 = alloca %"core::option::Option<usize>"
%_3 = alloca %"core::option::Option<usize>"
br label %start
start: ; preds = %entry-block
%2 = getelementptr inbounds %"core::iter::range::StepBy<isize, core::ops::Range<isize>>", %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %1, i32 0, i32 1
%3 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %2, i32 0, i32 0
%4 = getelementptr inbounds %"core::iter::range::StepBy<isize, core::ops::Range<isize>>", %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %1, i32 0, i32 1
%5 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %4, i32 0, i32 1
%6 = getelementptr inbounds %"core::iter::range::StepBy<isize, core::ops::Range<isize>>", %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %1, i32 0, i32 0
call void @"_ZN49_$LT$isize$u20$as$u20$core..iter..range..Step$GT$13steps_between17haf9d080797d9c328E"(%"core::option::Option<usize>"* noalias nocapture sret dereferenceable(8) %_3, i32* noalias readonly dereferenceable(4) %3, i32* noalias readonly dereferenceable(4) %5, i32* noalias readonly dereferenceable(4) %6)
br label %bb1
bb1: ; preds = %start
%7 = getelementptr inbounds %"core::option::Option<usize>", %"core::option::Option<usize>"* %_3, i32 0, i32 0
%8 = load i32, i32* %7, !range !2
switch i32 %8, label %bb3 [
i32 0, label %bb2
]
bb2: ; preds = %bb1
%9 = getelementptr inbounds %"core::option::Option<usize>", %"core::option::Option<usize>"* %_15, i32 0, i32 0
store i32 0, i32* %9
%10 = getelementptr inbounds { i32, %"core::option::Option<usize>" }, { i32, %"core::option::Option<usize>" }* %0, i32 0, i32 0
store i32 0, i32* %10
%11 = getelementptr inbounds { i32, %"core::option::Option<usize>" }, { i32, %"core::option::Option<usize>" }* %0, i32 0, i32 1
%12 = bitcast %"core::option::Option<usize>"* %_15 to i8*
%13 = bitcast %"core::option::Option<usize>"* %11 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %13, i8* %12, i32 8, i32 4, i1 false)
br label %bb4
bb3: ; preds = %bb1
%14 = bitcast %"core::option::Option<usize>"* %_3 to { i32, i32 }*
%15 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %14, i32 0, i32 1
%16 = load i32, i32* %15
%17 = getelementptr inbounds %"core::option::Option<usize>", %"core::option::Option<usize>"* %_13, i32 0, i32 0
store i32 1, i32* %17
%18 = bitcast %"core::option::Option<usize>"* %_13 to { i32, i32 }*
%19 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %18, i32 0, i32 1
store i32 %16, i32* %19
%20 = getelementptr inbounds { i32, %"core::option::Option<usize>" }, { i32, %"core::option::Option<usize>" }* %0, i32 0, i32 0
store i32 %16, i32* %20
%21 = getelementptr inbounds { i32, %"core::option::Option<usize>" }, { i32, %"core::option::Option<usize>" }* %0, i32 0, i32 1
%22 = bitcast %"core::option::Option<usize>"* %_13 to i8*
%23 = bitcast %"core::option::Option<usize>"* %21 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %23, i8* %22, i32 8, i32 4, i1 false)
br label %bb4
bb4: ; preds = %bb2, %bb3
ret void
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(4) i32* @"_ZN11collections5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$17get_unchecked_mut17hf1a21cbe2a4ee656E"(i32* nonnull, i32, i32) unnamed_addr #0 personality i32 (i32, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%personalityslot = alloca { i8*, i32 }
br label %start
start: ; preds = %entry-block
%3 = invoke dereferenceable(4) i32* @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$17get_unchecked_mut17h87070274c2841df9E"(i32* nonnull %0, i32 %1, i32 %2)
to label %bb2 unwind label %cleanup
bb1: ; preds = %cleanup
%4 = load { i8*, i32 }, { i8*, i32 }* %personalityslot
resume { i8*, i32 } %4
bb2: ; preds = %start
ret i32* %3
cleanup: ; preds = %start
%5 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %5, { i8*, i32 }* %personalityslot
br label %bb1
}
define internal void @_ZN13drop_contents17hce36d3d4362f01aeE(%"alloc::raw_vec::RawVec<isize>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"alloc::raw_vec::RawVec<isize>", %"alloc::raw_vec::RawVec<isize>"* %0, i32 0, i32 0
%2 = getelementptr inbounds %"alloc::raw_vec::RawVec<isize>", %"alloc::raw_vec::RawVec<isize>"* %0, i32 0, i32 1
ret void
}
define internal void @_ZN13drop_contents17hda3a3227b902a756E(%"collections::vec::Vec<isize>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"collections::vec::Vec<isize>", %"collections::vec::Vec<isize>"* %0, i32 0, i32 0
call void @_ZN4drop17hce36d3d4362f01aeE(%"alloc::raw_vec::RawVec<isize>"* %1)
%2 = getelementptr inbounds %"collections::vec::Vec<isize>", %"collections::vec::Vec<isize>"* %0, i32 0, i32 1
ret void
}
; Function Attrs: uwtable
define internal i32 @"_ZN35_$LT$core..ptr..Unique$LT$T$GT$$GT$3new17ha33c81ef931b0582E"(i32*) unnamed_addr #1 {
entry-block:
%_0.i = alloca %"core::nonzero::NonZero<*const isize>"
%abi_cast = alloca i8*
%_6 = alloca %"core::marker::PhantomData<isize>"
%_3 = alloca %"core::nonzero::NonZero<*const isize>"
%_0 = alloca %"core::ptr::Unique<isize>"
br label %start
start: ; preds = %entry-block
%1 = getelementptr inbounds %"core::nonzero::NonZero<*const isize>", %"core::nonzero::NonZero<*const isize>"* %_0.i, i32 0, i32 0
store i32* %0, i32** %1
%2 = bitcast %"core::nonzero::NonZero<*const isize>"* %_0.i to i8**
%3 = load i8*, i8** %2, align 4
store i8* %3, i8** %abi_cast
%4 = bitcast %"core::nonzero::NonZero<*const isize>"* %_3 to i8*
%5 = bitcast i8** %abi_cast to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 4, i32 4, i1 false)
br label %bb1
bb1: ; preds = %start
%6 = getelementptr inbounds %"core::ptr::Unique<isize>", %"core::ptr::Unique<isize>"* %_0, i32 0, i32 0
%7 = bitcast %"core::nonzero::NonZero<*const isize>"* %_3 to i8*
%8 = bitcast %"core::nonzero::NonZero<*const isize>"* %6 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %8, i8* %7, i32 4, i32 4, i1 false)
%9 = bitcast %"core::ptr::Unique<isize>"* %_0 to i32*
%10 = load i32, i32* %9, align 4
ret i32 %10
}
; Function Attrs: inlinehint uwtable
define internal i32 @"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6expect17hba80334a565c8db6E"(%"core::option::Option<usize>"* noalias nocapture dereferenceable(8), i8* noalias nonnull readonly, i32) unnamed_addr #0 personality i32 (i32, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%personalityslot = alloca { i8*, i32 }
%_9 = alloca i8
%self = alloca %"core::option::Option<usize>"
br label %start
start: ; preds = %entry-block
store i8 0, i8* %_9
store i8 1, i8* %_9
%3 = bitcast %"core::option::Option<usize>"* %0 to i8*
%4 = bitcast %"core::option::Option<usize>"* %self to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %3, i32 8, i32 4, i1 false)
%5 = getelementptr inbounds %"core::option::Option<usize>", %"core::option::Option<usize>"* %self, i32 0, i32 0
%6 = load i32, i32* %5, !range !2
switch i32 %6, label %bb4 [
i32 0, label %bb3
]
bb1: ; preds = %bb8, %bb7, %bb6
%7 = load { i8*, i32 }, { i8*, i32 }* %personalityslot
resume { i8*, i32 } %7
bb2: ; preds = %cleanup
%8 = getelementptr inbounds %"core::option::Option<usize>", %"core::option::Option<usize>"* %self, i32 0, i32 0
%9 = load i32, i32* %8, !range !2
switch i32 %9, label %bb6 [
i32 1, label %bb7
]
bb3: ; preds = %start
invoke void @_ZN4core6option13expect_failed17h4aee2e09812a5db0E(i8* noalias nonnull readonly %1, i32 %2)
to label %unreachable unwind label %cleanup
bb4: ; preds = %start
store i8 0, i8* %_9
%10 = bitcast %"core::option::Option<usize>"* %self to { i32, i32 }*
%11 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %10, i32 0, i32 1
%12 = load i32, i32* %11
%13 = getelementptr inbounds %"core::option::Option<usize>", %"core::option::Option<usize>"* %self, i32 0, i32 0
%14 = load i32, i32* %13, !range !2
switch i32 %14, label %bb9 [
i32 1, label %bb5
]
bb5: ; preds = %bb9, %bb4
ret i32 %12
bb6: ; preds = %bb2
br label %bb1
bb7: ; preds = %bb2
%15 = load i8, i8* %_9, !range !1
%16 = trunc i8 %15 to i1
br i1 %16, label %bb8, label %bb1
bb8: ; preds = %bb7
store i8 0, i8* %_9
br label %bb1
bb9: ; preds = %bb4
br label %bb5
unreachable: ; preds = %bb3
unreachable
cleanup: ; preds = %bb3
%17 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %17, { i8*, i32 }* %personalityslot
br label %bb2
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN39_$LT$collections..vec..Vec$LT$T$GT$$GT$13with_capacity17hfd88081eec9bd485E"(%"collections::vec::Vec<isize>"* noalias nocapture sret dereferenceable(12), i32) unnamed_addr #0 {
entry-block:
%_3 = alloca %"alloc::raw_vec::RawVec<isize>"
br label %start
start: ; preds = %entry-block
call void @"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$13with_capacity17ha7adb695d1e74013E"(%"alloc::raw_vec::RawVec<isize>"* noalias nocapture sret dereferenceable(8) %_3, i32 %1)
br label %bb1
bb1: ; preds = %start
%2 = getelementptr inbounds %"collections::vec::Vec<isize>", %"collections::vec::Vec<isize>"* %0, i32 0, i32 0
%3 = bitcast %"alloc::raw_vec::RawVec<isize>"* %_3 to i8*
%4 = bitcast %"alloc::raw_vec::RawVec<isize>"* %2 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %3, i32 8, i32 4, i1 false)
%5 = getelementptr inbounds %"collections::vec::Vec<isize>", %"collections::vec::Vec<isize>"* %0, i32 0, i32 1
store i32 0, i32* %5
ret void
}
; Function Attrs: uwtable
define internal void @"_ZN39_$LT$collections..vec..Vec$LT$T$GT$$GT$16extend_desugared17h49bd5bbc15f3ff84E"(%"collections::vec::Vec<isize>"* dereferenceable(12), %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* noalias nocapture dereferenceable(12)) unnamed_addr #1 personality i32 (i32, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%personalityslot = alloca { i8*, i32 }
%_39 = alloca i8
%_38 = alloca i8
%_18 = alloca { i32, %"core::option::Option<usize>" }
%_12 = alloca {}
%_6 = alloca %"core::option::Option<isize>"
%_5 = alloca {}
%iterator = alloca %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"
%_0 = alloca {}
br label %start
start: ; preds = %entry-block
store i8 0, i8* %_38
store i8 0, i8* %_39
%2 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %1 to i8*
%3 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %iterator to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* %2, i32 12, i32 4, i1 false)
br label %bb1
bb1: ; preds = %bb22, %start
invoke void @"_ZN118_$LT$core..iter..range..StepBy$LT$A$C$$u20$core..ops..Range$LT$A$GT$$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h5c5d949f560d7a14E"(%"core::option::Option<isize>"* noalias nocapture sret dereferenceable(8) %_6, %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* dereferenceable(12) %iterator)
to label %bb4 unwind label %cleanup
bb2: ; preds = %bb3
%4 = load { i8*, i32 }, { i8*, i32 }* %personalityslot
resume { i8*, i32 } %4
bb3: ; preds = %bb26, %bb25, %bb24, %cleanup
br label %bb2
bb4: ; preds = %bb1
store i8 1, i8* %_38
%5 = getelementptr inbounds %"core::option::Option<isize>", %"core::option::Option<isize>"* %_6, i32 0, i32 0
%6 = load i32, i32* %5, !range !2
switch i32 %6, label %bb6 [
i32 1, label %bb7
]
bb5: ; preds = %bb27, %bb28
%7 = getelementptr inbounds %"core::option::Option<isize>", %"core::option::Option<isize>"* %_6, i32 0, i32 0
%8 = load i32, i32* %7, !range !2
switch i32 %8, label %bb24 [
i32 1, label %bb25
]
bb6: ; preds = %bb4
store i8 0, i8* %_38
br label %bb21
bb7: ; preds = %bb4
store i8 0, i8* %_38
store i8 1, i8* %_39
%9 = bitcast %"core::option::Option<isize>"* %_6 to { i32, i32 }*
%10 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %9, i32 0, i32 1
%11 = load i32, i32* %10
%12 = invoke i32 @"_ZN39_$LT$collections..vec..Vec$LT$T$GT$$GT$3len17h106296c4836e565dE"(%"collections::vec::Vec<isize>"* noalias readonly dereferenceable(12) %0)
to label %bb8 unwind label %cleanup1
bb8: ; preds = %bb7
%13 = invoke i32 @"_ZN39_$LT$collections..vec..Vec$LT$T$GT$$GT$8capacity17hc10cf5940395f0a8E"(%"collections::vec::Vec<isize>"* noalias readonly dereferenceable(12) %0)
to label %bb9 unwind label %cleanup1
bb9: ; preds = %bb8
%14 = icmp eq i32 %12, %13
br i1 %14, label %bb10, label %bb11
bb10: ; preds = %bb9
invoke void @"_ZN118_$LT$core..iter..range..StepBy$LT$A$C$$u20$core..ops..Range$LT$A$GT$$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$9size_hint17h549504389bdaacaeE"({ i32, %"core::option::Option<usize>" }* noalias nocapture sret dereferenceable(12) %_18, %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* noalias readonly dereferenceable(12) %iterator)
to label %bb12 unwind label %cleanup1
bb11: ; preds = %bb9
br label %bb15
bb12: ; preds = %bb10
%15 = getelementptr inbounds { i32, %"core::option::Option<usize>" }, { i32, %"core::option::Option<usize>" }* %_18, i32 0, i32 0
%16 = load i32, i32* %15
%17 = invoke i32 @"_ZN4core3num23_$LT$impl$u20$usize$GT$14saturating_add17hb1fbb042544872deE"(i32 %16, i32 1)
to label %bb13 unwind label %cleanup1
bb13: ; preds = %bb12
invoke void @"_ZN39_$LT$collections..vec..Vec$LT$T$GT$$GT$7reserve17h3ce9d93ac5514415E"(%"collections::vec::Vec<isize>"* dereferenceable(12) %0, i32 %17)
to label %bb14 unwind label %cleanup1
bb14: ; preds = %bb13
br label %bb15
bb15: ; preds = %bb11, %bb14
%18 = invoke { i32*, i32 } @"_ZN70_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..DerefMut$GT$9deref_mut17hb7faaf01903b8a3eE"(%"collections::vec::Vec<isize>"* dereferenceable(12) %0)
to label %bb16 unwind label %cleanup1
bb16: ; preds = %bb15
%19 = extractvalue { i32*, i32 } %18, 0
%20 = extractvalue { i32*, i32 } %18, 1
%21 = invoke dereferenceable(4) i32* @"_ZN11collections5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$17get_unchecked_mut17hf1a21cbe2a4ee656E"(i32* nonnull %19, i32 %20, i32 %12)
to label %bb17 unwind label %cleanup1
bb17: ; preds = %bb16
store i8 0, i8* %_39
invoke void @_ZN4core3ptr5write17hc62018ecf990a402E(i32* %21, i32 %11)
to label %bb18 unwind label %cleanup1
bb18: ; preds = %bb17
%22 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %12, i32 1)
%23 = extractvalue { i32, i1 } %22, 0
%24 = extractvalue { i32, i1 } %22, 1
%25 = call i1 @llvm.expect.i1(i1 %24, i1 false)
br i1 %25, label %panic, label %bb19
bb19: ; preds = %bb18
invoke void @"_ZN39_$LT$collections..vec..Vec$LT$T$GT$$GT$7set_len17hacb1d74822b7c024E"(%"collections::vec::Vec<isize>"* dereferenceable(12) %0, i32 %23)
to label %bb20 unwind label %cleanup1
bb20: ; preds = %bb19
%26 = getelementptr inbounds %"core::option::Option<isize>", %"core::option::Option<isize>"* %_6, i32 0, i32 0
%27 = load i32, i32* %26, !range !2
switch i32 %27, label %bb29 [
i32 1, label %bb22
]
bb21: ; preds = %bb6
br label %bb23
bb22: ; preds = %bb29, %bb20
br label %bb1
bb23: ; preds = %bb21
ret void
bb24: ; preds = %bb5
br label %bb3
bb25: ; preds = %bb5
%28 = load i8, i8* %_38, !range !1
%29 = trunc i8 %28 to i1
br i1 %29, label %bb26, label %bb3
bb26: ; preds = %bb25
store i8 0, i8* %_38
br label %bb3
bb27: ; preds = %bb28
store i8 0, i8* %_39
br label %bb5
bb28: ; preds = %cleanup1
%30 = load i8, i8* %_39, !range !1
%31 = trunc i8 %30 to i1
br i1 %31, label %bb27, label %bb5
bb29: ; preds = %bb20
br label %bb22
cleanup: ; preds = %bb1
%32 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %32, { i8*, i32 }* %personalityslot
br label %bb3
cleanup1: ; preds = %bb19, %panic, %bb17, %bb16, %bb15, %bb13, %bb12, %bb10, %bb8, %bb7
%33 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %33, { i8*, i32 }* %personalityslot
br label %bb28
panic: ; preds = %bb18
invoke void @_ZN4core9panicking5panic17hb790668694ff6b20E({ %str_slice, %str_slice, i32 }* @panic_loc.2)
to label %unreachable unwind label %cleanup1
unreachable: ; preds = %panic
unreachable
}
; Function Attrs: inlinehint uwtable
define internal i32 @"_ZN39_$LT$collections..vec..Vec$LT$T$GT$$GT$3len17h106296c4836e565dE"(%"collections::vec::Vec<isize>"* noalias readonly dereferenceable(12)) unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
%1 = getelementptr inbounds %"collections::vec::Vec<isize>", %"collections::vec::Vec<isize>"* %0, i32 0, i32 1
%2 = load i32, i32* %1
ret i32 %2
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN39_$LT$collections..vec..Vec$LT$T$GT$$GT$3new17hcfc3389d2ced7781E"(%"collections::vec::Vec<isize>"* noalias nocapture sret dereferenceable(12)) unnamed_addr #0 {
entry-block:
%_1 = alloca %"alloc::raw_vec::RawVec<isize>"
br label %start
start: ; preds = %entry-block
call void @"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$3new17h42d8af6371e69a6fE"(%"alloc::raw_vec::RawVec<isize>"* noalias nocapture sret dereferenceable(8) %_1)
br label %bb1
bb1: ; preds = %start
%1 = getelementptr inbounds %"collections::vec::Vec<isize>", %"collections::vec::Vec<isize>"* %0, i32 0, i32 0
%2 = bitcast %"alloc::raw_vec::RawVec<isize>"* %_1 to i8*
%3 = bitcast %"alloc::raw_vec::RawVec<isize>"* %1 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* %2, i32 8, i32 4, i1 false)
%4 = getelementptr inbounds %"collections::vec::Vec<isize>", %"collections::vec::Vec<isize>"* %0, i32 0, i32 1
store i32 0, i32* %4
ret void
}
; Function Attrs: uwtable
define internal void @"_ZN39_$LT$collections..vec..Vec$LT$T$GT$$GT$7reserve17h3ce9d93ac5514415E"(%"collections::vec::Vec<isize>"* dereferenceable(12), i32) unnamed_addr #1 {
entry-block:
%_0 = alloca {}
br label %start
start: ; preds = %entry-block
%2 = getelementptr inbounds %"collections::vec::Vec<isize>", %"collections::vec::Vec<isize>"* %0, i32 0, i32 0
%3 = getelementptr inbounds %"collections::vec::Vec<isize>", %"collections::vec::Vec<isize>"* %0, i32 0, i32 1
%4 = load i32, i32* %3
call void @"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$7reserve17h5adee1819325d09bE"(%"alloc::raw_vec::RawVec<isize>"* dereferenceable(8) %2, i32 %4, i32 %1)
br label %bb1
bb1: ; preds = %start
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN39_$LT$collections..vec..Vec$LT$T$GT$$GT$7set_len17hacb1d74822b7c024E"(%"collections::vec::Vec<isize>"* dereferenceable(12), i32) unnamed_addr #0 {
entry-block:
%_0 = alloca {}
br label %start
start: ; preds = %entry-block
%2 = getelementptr inbounds %"collections::vec::Vec<isize>", %"collections::vec::Vec<isize>"* %0, i32 0, i32 1
store i32 %1, i32* %2
ret void
}
; Function Attrs: inlinehint uwtable
define internal i32 @"_ZN39_$LT$collections..vec..Vec$LT$T$GT$$GT$8capacity17hc10cf5940395f0a8E"(%"collections::vec::Vec<isize>"* noalias readonly dereferenceable(12)) unnamed_addr #0 {
entry-block:
%_0.i = alloca i32
br label %start
start: ; preds = %entry-block
%1 = getelementptr inbounds %"collections::vec::Vec<isize>", %"collections::vec::Vec<isize>"* %0, i32 0, i32 0
%2 = call i32 @_ZN4core3mem7size_of17hcaa7f7532e110d10E(), !noalias !3
%3 = icmp eq i32 %2, 0
br i1 %3, label %bb2.i, label %bb3.i
bb2.i: ; preds = %start
store i32 -1, i32* %_0.i, !noalias !3
br label %"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$3cap17h4438e6dbdb0d0f7dE.exit"
bb3.i: ; preds = %start
%4 = getelementptr inbounds %"alloc::raw_vec::RawVec<isize>", %"alloc::raw_vec::RawVec<isize>"* %1, i32 0, i32 1
%5 = load i32, i32* %4, !alias.scope !3
store i32 %5, i32* %_0.i, !noalias !3
br label %"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$3cap17h4438e6dbdb0d0f7dE.exit"
"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$3cap17h4438e6dbdb0d0f7dE.exit": ; preds = %bb2.i, %bb3.i
%6 = load i32, i32* %_0.i, !noalias !3
br label %bb1
bb1: ; preds = %"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$3cap17h4438e6dbdb0d0f7dE.exit"
ret i32 %6
}
; Function Attrs: uwtable
define internal void @"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$13with_capacity17ha7adb695d1e74013E"(%"alloc::raw_vec::RawVec<isize>"* noalias nocapture sret dereferenceable(8), i32) unnamed_addr #1 {
entry-block:
%abi_cast = alloca i32
%_23 = alloca %"core::ptr::Unique<isize>"
%_19 = alloca {}
%ptr = alloca i8*
%_5 = alloca %"core::option::Option<usize>"
br label %start
start: ; preds = %entry-block
%2 = call i32 @_ZN4core3mem7size_of17hcaa7f7532e110d10E()
br label %bb1
bb1: ; preds = %start
call void @"_ZN4core3num23_$LT$impl$u20$usize$GT$11checked_mul17he7c7fc05ede669b1E"(%"core::option::Option<usize>"* noalias nocapture sret dereferenceable(8) %_5, i32 %1, i32 %2)
br label %bb2
bb2: ; preds = %bb1
%3 = call i32 @"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6expect17hba80334a565c8db6E"(%"core::option::Option<usize>"* noalias nocapture dereferenceable(8) %_5, i8* noalias nonnull readonly getelementptr inbounds ([17 x i8], [17 x i8]* @str.3, i32 0, i32 0), i32 17)
br label %bb3
bb3: ; preds = %bb2
call void @_ZN5alloc7raw_vec11alloc_guard17h6a704e09c67af29eE(i32 %3)
br label %bb4
bb4: ; preds = %bb3
%4 = icmp eq i32 %3, 0
br i1 %4, label %bb5, label %bb6
bb5: ; preds = %bb4
store i8* inttoptr (i32 1 to i8*), i8** %ptr
br label %bb12
bb6: ; preds = %bb4
%5 = call i32 @_ZN4core3mem8align_of17h65ab8586e36c1162E()
br label %bb7
bb7: ; preds = %bb6
%6 = call i8* @_ZN5alloc4heap8allocate17hb49e39ab82f954faE(i32 %3, i32 %5)
br label %bb8
bb8: ; preds = %bb7
%7 = call zeroext i1 @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17hb6150a2be661fd19E"(i8* %6)
br label %bb9
bb9: ; preds = %bb8
br i1 %7, label %bb10, label %bb11
bb10: ; preds = %bb9
call void @_ZN5alloc3oom3oom17h418421088806e038E()
unreachable
bb11: ; preds = %bb9
store i8* %6, i8** %ptr
br label %bb12
bb12: ; preds = %bb11, %bb5
%8 = load i8*, i8** %ptr
%9 = bitcast i8* %8 to i32*
%10 = call i32 @"_ZN35_$LT$core..ptr..Unique$LT$T$GT$$GT$3new17ha33c81ef931b0582E"(i32* %9)
store i32 %10, i32* %abi_cast
%11 = bitcast %"core::ptr::Unique<isize>"* %_23 to i8*
%12 = bitcast i32* %abi_cast to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %11, i8* %12, i32 4, i32 4, i1 false)
br label %bb13
bb13: ; preds = %bb12
%13 = getelementptr inbounds %"alloc::raw_vec::RawVec<isize>", %"alloc::raw_vec::RawVec<isize>"* %0, i32 0, i32 0
%14 = bitcast %"core::ptr::Unique<isize>"* %_23 to i8*
%15 = bitcast %"core::ptr::Unique<isize>"* %13 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %15, i8* %14, i32 4, i32 4, i1 false)
%16 = getelementptr inbounds %"alloc::raw_vec::RawVec<isize>", %"alloc::raw_vec::RawVec<isize>"* %0, i32 0, i32 1
store i32 %1, i32* %16
ret void
}
; Function Attrs: uwtable
define internal void @"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$18amortized_new_size17hae55b0917a3ec2e4E"({ i32, i32 }* noalias nocapture sret dereferenceable(8), %"alloc::raw_vec::RawVec<isize>"* noalias readonly dereferenceable(8), i32, i32) unnamed_addr #1 {
entry-block:
%_21 = alloca %"core::option::Option<usize>"
%_9 = alloca %"core::option::Option<usize>"
br label %start
start: ; preds = %entry-block
%4 = call i32 @_ZN4core3mem7size_of17hcaa7f7532e110d10E()
br label %bb1
bb1: ; preds = %start
call void @"_ZN4core3num23_$LT$impl$u20$usize$GT$11checked_add17he878fb3db94cea4fE"(%"core::option::Option<usize>"* noalias nocapture sret dereferenceable(8) %_9, i32 %2, i32 %3)
br label %bb2
bb2: ; preds = %bb1
%5 = call i32 @"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6expect17hba80334a565c8db6E"(%"core::option::Option<usize>"* noalias nocapture dereferenceable(8) %_9, i8* noalias nonnull readonly getelementptr inbounds ([17 x i8], [17 x i8]* @str.3, i32 0, i32 0), i32 17)
br label %bb3
bb3: ; preds = %bb2
%6 = getelementptr inbounds %"alloc::raw_vec::RawVec<isize>", %"alloc::raw_vec::RawVec<isize>"* %1, i32 0, i32 1
%7 = load i32, i32* %6
%8 = call { i32, i1 } @llvm.umul.with.overflow.i32(i32 %7, i32 2)
%9 = extractvalue { i32, i1 } %8, 0
%10 = extractvalue { i32, i1 } %8, 1
%11 = call i1 @llvm.expect.i1(i1 %10, i1 false)
br i1 %11, label %panic, label %bb4
bb4: ; preds = %bb3
%12 = call i32 @_ZN4core3cmp3max17h70f5a4b55eae6c00E(i32 %9, i32 %5)
br label %bb5
bb5: ; preds = %bb4
call void @"_ZN4core3num23_$LT$impl$u20$usize$GT$11checked_mul17he7c7fc05ede669b1E"(%"core::option::Option<usize>"* noalias nocapture sret dereferenceable(8) %_21, i32 %12, i32 %4)
br label %bb6
bb6: ; preds = %bb5
%13 = call i32 @"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6expect17hba80334a565c8db6E"(%"core::option::Option<usize>"* noalias nocapture dereferenceable(8) %_21, i8* noalias nonnull readonly getelementptr inbounds ([17 x i8], [17 x i8]* @str.3, i32 0, i32 0), i32 17)
br label %bb7
bb7: ; preds = %bb6
%14 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %0, i32 0, i32 0
store i32 %12, i32* %14
%15 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %0, i32 0, i32 1
store i32 %13, i32* %15
ret void
panic: ; preds = %bb3
call void @_ZN4core9panicking5panic17hb790668694ff6b20E({ %str_slice, %str_slice, i32 }* @panic_loc.6)
unreachable
}
; Function Attrs: uwtable
define internal void @"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$3new17h42d8af6371e69a6fE"(%"alloc::raw_vec::RawVec<isize>"* noalias nocapture sret dereferenceable(8)) unnamed_addr #1 {
entry-block:
%abi_cast = alloca i32
%_4 = alloca %"core::ptr::Unique<isize>"
%cap = alloca i32
br label %start
start: ; preds = %entry-block
%1 = call i32 @_ZN4core3mem7size_of17hcaa7f7532e110d10E()
br label %bb1
bb1: ; preds = %start
%2 = icmp eq i32 %1, 0
br i1 %2, label %bb2, label %bb3
bb2: ; preds = %bb1
store i32 -1, i32* %cap
br label %bb4
bb3: ; preds = %bb1
store i32 0, i32* %cap
br label %bb4
bb4: ; preds = %bb3, %bb2
%3 = call i32 @"_ZN35_$LT$core..ptr..Unique$LT$T$GT$$GT$3new17ha33c81ef931b0582E"(i32* inttoptr (i32 1 to i32*))
store i32 %3, i32* %abi_cast
%4 = bitcast %"core::ptr::Unique<isize>"* %_4 to i8*
%5 = bitcast i32* %abi_cast to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 4, i32 4, i1 false)
br label %bb5
bb5: ; preds = %bb4
%6 = load i32, i32* %cap
%7 = getelementptr inbounds %"alloc::raw_vec::RawVec<isize>", %"alloc::raw_vec::RawVec<isize>"* %0, i32 0, i32 0
%8 = bitcast %"core::ptr::Unique<isize>"* %_4 to i8*
%9 = bitcast %"core::ptr::Unique<isize>"* %7 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %9, i8* %8, i32 4, i32 4, i1 false)
%10 = getelementptr inbounds %"alloc::raw_vec::RawVec<isize>", %"alloc::raw_vec::RawVec<isize>"* %0, i32 0, i32 1
store i32 %6, i32* %10
ret void
}
; Function Attrs: uwtable
define internal i32* @"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$3ptr17h6e6dbca3bb38b248E"(%"alloc::raw_vec::RawVec<isize>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
br label %start
start: ; preds = %entry-block
%1 = getelementptr inbounds %"alloc::raw_vec::RawVec<isize>", %"alloc::raw_vec::RawVec<isize>"* %0, i32 0, i32 0
%2 = call dereferenceable(4) i32** @"_ZN63_$LT$core..ptr..Unique$LT$T$GT$$u20$as$u20$core..ops..Deref$GT$5deref17hd16859f46ea91a08E"(%"core::ptr::Unique<isize>"* noalias readonly dereferenceable(4) %1)
br label %bb1
bb1: ; preds = %start
%3 = load i32*, i32** %2
ret i32* %3
}
; Function Attrs: uwtable
define internal void @"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$7reserve17h5adee1819325d09bE"(%"alloc::raw_vec::RawVec<isize>"* dereferenceable(8), i32, i32) unnamed_addr #1 {
entry-block:
%_0.i = alloca i32
%abi_cast = alloca i32
%tmp_ret = alloca { i32, i32 }
%_41 = alloca %"core::ptr::Unique<isize>"
%_38 = alloca {}
%ptr = alloca i8*
%_9 = alloca {}
%_0 = alloca {}
br label %start
start: ; preds = %entry-block
%3 = call i32 @_ZN4core3mem7size_of17hcaa7f7532e110d10E()
br label %bb1
bb1: ; preds = %start
%4 = call i32 @_ZN4core3mem8align_of17h65ab8586e36c1162E()
br label %bb2
bb2: ; preds = %bb1
%5 = call i32 @_ZN4core3mem7size_of17hcaa7f7532e110d10E(), !noalias !6
%6 = icmp eq i32 %5, 0
br i1 %6, label %bb2.i, label %bb3.i
bb2.i: ; preds = %bb2
store i32 -1, i32* %_0.i, !noalias !6
br label %"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$3cap17h4438e6dbdb0d0f7dE.exit"
bb3.i: ; preds = %bb2
%7 = getelementptr inbounds %"alloc::raw_vec::RawVec<isize>", %"alloc::raw_vec::RawVec<isize>"* %0, i32 0, i32 1
%8 = load i32, i32* %7, !alias.scope !6
store i32 %8, i32* %_0.i, !noalias !6
br label %"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$3cap17h4438e6dbdb0d0f7dE.exit"
"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$3cap17h4438e6dbdb0d0f7dE.exit": ; preds = %bb2.i, %bb3.i
%9 = load i32, i32* %_0.i, !noalias !6
br label %bb3
bb3: ; preds = %"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$3cap17h4438e6dbdb0d0f7dE.exit"
%10 = call i32 @"_ZN4core3num23_$LT$impl$u20$usize$GT$12wrapping_sub17haafe9bf4f214e0b8E"(i32 %9, i32 %1)
br label %bb4
bb4: ; preds = %bb3
%11 = icmp uge i32 %10, %2
br i1 %11, label %bb5, label %bb6
bb5: ; preds = %bb4
br label %bb7
bb6: ; preds = %bb4
call void @"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$18amortized_new_size17hae55b0917a3ec2e4E"({ i32, i32 }* noalias nocapture sret dereferenceable(8) %tmp_ret, %"alloc::raw_vec::RawVec<isize>"* noalias readonly dereferenceable(8) %0, i32 %1, i32 %2)
%12 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %tmp_ret, i32 0, i32 0
%13 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %tmp_ret, i32 0, i32 1
%14 = load i32, i32* %12
%15 = load i32, i32* %13
br label %bb8
bb7: ; preds = %bb20, %bb5
ret void
bb8: ; preds = %bb6
call void @_ZN5alloc7raw_vec11alloc_guard17h6a704e09c67af29eE(i32 %15)
br label %bb9
bb9: ; preds = %bb8
%16 = getelementptr inbounds %"alloc::raw_vec::RawVec<isize>", %"alloc::raw_vec::RawVec<isize>"* %0, i32 0, i32 1
%17 = load i32, i32* %16
%18 = icmp eq i32 %17, 0
br i1 %18, label %bb10, label %bb11
bb10: ; preds = %bb9
%19 = call i8* @_ZN5alloc4heap8allocate17hb49e39ab82f954faE(i32 %15, i32 %4)
store i8* %19, i8** %ptr
br label %bb12
bb11: ; preds = %bb9
%20 = call i32* @"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$3ptr17h6e6dbca3bb38b248E"(%"alloc::raw_vec::RawVec<isize>"* noalias readonly dereferenceable(8) %0)
br label %bb13
bb12: ; preds = %bb10
br label %bb16
bb13: ; preds = %bb11
%21 = bitcast i32* %20 to i8*
%22 = getelementptr inbounds %"alloc::raw_vec::RawVec<isize>", %"alloc::raw_vec::RawVec<isize>"* %0, i32 0, i32 1
%23 = load i32, i32* %22
%24 = call { i32, i1 } @llvm.umul.with.overflow.i32(i32 %23, i32 %3)
%25 = extractvalue { i32, i1 } %24, 0
%26 = extractvalue { i32, i1 } %24, 1
%27 = call i1 @llvm.expect.i1(i1 %26, i1 false)
br i1 %27, label %panic, label %bb14
bb14: ; preds = %bb13
%28 = call i8* @_ZN5alloc4heap10reallocate17hbd9f01cd45135beeE(i8* %21, i32 %25, i32 %15, i32 %4)
store i8* %28, i8** %ptr
br label %bb15
bb15: ; preds = %bb14
br label %bb16
bb16: ; preds = %bb15, %bb12
%29 = load i8*, i8** %ptr
%30 = call zeroext i1 @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17hb6150a2be661fd19E"(i8* %29)
br label %bb17
bb17: ; preds = %bb16
br i1 %30, label %bb18, label %bb19
bb18: ; preds = %bb17
call void @_ZN5alloc3oom3oom17h418421088806e038E()
unreachable
bb19: ; preds = %bb17
%31 = load i8*, i8** %ptr
%32 = bitcast i8* %31 to i32*
%33 = call i32 @"_ZN35_$LT$core..ptr..Unique$LT$T$GT$$GT$3new17ha33c81ef931b0582E"(i32* %32)
store i32 %33, i32* %abi_cast
%34 = bitcast %"core::ptr::Unique<isize>"* %_41 to i8*
%35 = bitcast i32* %abi_cast to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %34, i8* %35, i32 4, i32 4, i1 false)
br label %bb20
bb20: ; preds = %bb19
%36 = getelementptr inbounds %"alloc::raw_vec::RawVec<isize>", %"alloc::raw_vec::RawVec<isize>"* %0, i32 0, i32 0
%37 = bitcast %"core::ptr::Unique<isize>"* %_41 to i8*
%38 = bitcast %"core::ptr::Unique<isize>"* %36 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %38, i8* %37, i32 4, i32 4, i1 false)
%39 = getelementptr inbounds %"alloc::raw_vec::RawVec<isize>", %"alloc::raw_vec::RawVec<isize>"* %0, i32 0, i32 1
store i32 %14, i32* %39
br label %bb7
panic: ; preds = %bb13
call void @_ZN4core9panicking5panic17hb790668694ff6b20E({ %str_slice, %str_slice, i32 }* @panic_loc.7)
unreachable
}
; Function Attrs: inlinehint uwtable
define internal i32 @"_ZN44_$LT$isize$u20$as$u20$core..clone..Clone$GT$5clone17h2d5ec8dd257c30a9E"(i32* noalias readonly dereferenceable(4)) unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
%1 = load i32, i32* %0
ret i32 %1
}
; Function Attrs: uwtable
define internal i8 @"_ZN48_$LT$$u5b$T$u5d$$u20$as$u20$core..fmt..Debug$GT$3fmt17h36f3c98f6f281e1bE"(i32* noalias nonnull readonly, i32, %"core::fmt::Formatter"* dereferenceable(52)) unnamed_addr #1 {
entry-block:
%abi_cast = alloca i8
%_10 = alloca %"core::slice::Iter<isize>"
%_8 = alloca %"core::fmt::builders::DebugList"
%_0 = alloca %"core::result::Result<(), core::fmt::Error>"
br label %start
start: ; preds = %entry-block
call void @_ZN4core3fmt9Formatter10debug_list17h288c62552fe78659E(%"core::fmt::builders::DebugList"* noalias nocapture sret dereferenceable(8) %_8, %"core::fmt::Formatter"* dereferenceable(52) %2)
br label %bb1
bb1: ; preds = %start
call void @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$4iter17h31c23eea4690360dE"(%"core::slice::Iter<isize>"* noalias nocapture sret dereferenceable(8) %_10, i32* noalias nonnull readonly %0, i32 %1)
br label %bb2
bb2: ; preds = %bb1
%3 = call dereferenceable(8) %"core::fmt::builders::DebugList"* @_ZN4core3fmt8builders9DebugList7entries17h326e29aa68d3b428E(%"core::fmt::builders::DebugList"* dereferenceable(8) %_8, %"core::slice::Iter<isize>"* noalias nocapture dereferenceable(8) %_10)
br label %bb3
bb3: ; preds = %bb2
%4 = call i8 @_ZN4core3fmt8builders9DebugList6finish17h0623428817418634E(%"core::fmt::builders::DebugList"* dereferenceable(8) %3)
store i8 %4, i8* %abi_cast
%5 = bitcast %"core::result::Result<(), core::fmt::Error>"* %_0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %5, i8* %abi_cast, i32 1, i32 1, i1 false)
br label %bb4
bb4: ; preds = %bb3
%6 = bitcast %"core::result::Result<(), core::fmt::Error>"* %_0 to i8*
%7 = load i8, i8* %6, align 1
ret i8 %7
}
; Function Attrs: inlinehint uwtable
define internal zeroext i1 @"_ZN49_$LT$isize$u20$as$u20$core..iter..range..Step$GT$11is_negative17h53522f896c8fd887E"(i32* noalias readonly dereferenceable(4)) unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
%1 = load i32, i32* %0
%2 = icmp slt i32 %1, 0
ret i1 %2
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN49_$LT$isize$u20$as$u20$core..iter..range..Step$GT$13steps_between17haf9d080797d9c328E"(%"core::option::Option<usize>"* noalias nocapture sret dereferenceable(8), i32* noalias readonly dereferenceable(4), i32* noalias readonly dereferenceable(4), i32* noalias readonly dereferenceable(4)) unnamed_addr #0 {
entry-block:
%_25 = alloca {}
%_15 = alloca {}
%_12 = alloca {}
%by_u = alloca i32
%diff = alloca i32
%_7 = alloca {}
br label %start
start: ; preds = %entry-block
%4 = load i32, i32* %3
%5 = icmp eq i32 %4, 0
br i1 %5, label %bb1, label %bb2
bb1: ; preds = %start
%6 = getelementptr inbounds %"core::option::Option<usize>", %"core::option::Option<usize>"* %0, i32 0, i32 0
store i32 0, i32* %6
br label %bb4
bb2: ; preds = %start
%7 = load i32, i32* %3
%8 = icmp sgt i32 %7, 0
br i1 %8, label %bb5, label %bb6
bb3: ; preds = %bb22, %bb4
ret void
bb4: ; preds = %bb9, %bb1
br label %bb3
bb5: ; preds = %bb2
%9 = load i32, i32* %1
%10 = load i32, i32* %2
%11 = icmp sge i32 %9, %10
br i1 %11, label %bb7, label %bb8
bb6: ; preds = %bb2
%12 = load i32, i32* %1
%13 = load i32, i32* %2
%14 = icmp sle i32 %12, %13
br i1 %14, label %bb11, label %bb12
bb7: ; preds = %bb5
%15 = getelementptr inbounds %"core::option::Option<usize>", %"core::option::Option<usize>"* %0, i32 0, i32 0
store i32 1, i32* %15
%16 = bitcast %"core::option::Option<usize>"* %0 to { i32, i32 }*
%17 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %16, i32 0, i32 1
store i32 0, i32* %17
br label %bb9
bb8: ; preds = %bb5
%18 = load i32, i32* %2
%19 = load i32, i32* %1
%20 = call i32 @"_ZN4core3num23_$LT$impl$u20$isize$GT$12wrapping_sub17h17fe23d91d68290fE"(i32 %18, i32 %19)
br label %bb10
bb9: ; preds = %bb11, %bb7
br label %bb4
bb10: ; preds = %bb8
store i32 %20, i32* %diff
%21 = load i32, i32* %3
store i32 %21, i32* %by_u
br label %bb15
bb11: ; preds = %bb6
%22 = getelementptr inbounds %"core::option::Option<usize>", %"core::option::Option<usize>"* %0, i32 0, i32 0
store i32 1, i32* %22
%23 = bitcast %"core::option::Option<usize>"* %0 to { i32, i32 }*
%24 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %23, i32 0, i32 1
store i32 0, i32* %24
br label %bb9
bb12: ; preds = %bb6
%25 = load i32, i32* %1
%26 = load i32, i32* %2
%27 = call i32 @"_ZN4core3num23_$LT$impl$u20$isize$GT$12wrapping_sub17h17fe23d91d68290fE"(i32 %25, i32 %26)
br label %bb13
bb13: ; preds = %bb12
store i32 %27, i32* %diff
%28 = load i32, i32* %3
%29 = call i32 @"_ZN4core3num23_$LT$impl$u20$isize$GT$12wrapping_mul17hf04031f2299647bcE"(i32 %28, i32 -1)
br label %bb14
bb14: ; preds = %bb13
store i32 %29, i32* %by_u
br label %bb15
bb15: ; preds = %bb14, %bb10
%30 = load i32, i32* %diff
%31 = load i32, i32* %by_u
%32 = icmp eq i32 %31, 0
%33 = call i1 @llvm.expect.i1(i1 %32, i1 false)
br i1 %33, label %panic, label %bb16
bb16: ; preds = %bb15
%34 = urem i32 %30, %31
%35 = icmp ugt i32 %34, 0
br i1 %35, label %bb17, label %bb18
bb17: ; preds = %bb16
%36 = load i32, i32* %diff
%37 = load i32, i32* %by_u
%38 = icmp eq i32 %37, 0
%39 = call i1 @llvm.expect.i1(i1 %38, i1 false)
br i1 %39, label %panic1, label %bb19
bb18: ; preds = %bb16
%40 = load i32, i32* %diff
%41 = load i32, i32* %by_u
%42 = icmp eq i32 %41, 0
%43 = call i1 @llvm.expect.i1(i1 %42, i1 false)
br i1 %43, label %panic3, label %bb21
bb19: ; preds = %bb17
%44 = udiv i32 %36, %37
%45 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %44, i32 1)
%46 = extractvalue { i32, i1 } %45, 0
%47 = extractvalue { i32, i1 } %45, 1
%48 = call i1 @llvm.expect.i1(i1 %47, i1 false)
br i1 %48, label %panic2, label %bb20
bb20: ; preds = %bb19
%49 = getelementptr inbounds %"core::option::Option<usize>", %"core::option::Option<usize>"* %0, i32 0, i32 0
store i32 1, i32* %49
%50 = bitcast %"core::option::Option<usize>"* %0 to { i32, i32 }*
%51 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %50, i32 0, i32 1
store i32 %46, i32* %51
br label %bb22
bb21: ; preds = %bb18
%52 = udiv i32 %40, %41
%53 = getelementptr inbounds %"core::option::Option<usize>", %"core::option::Option<usize>"* %0, i32 0, i32 0
store i32 1, i32* %53
%54 = bitcast %"core::option::Option<usize>"* %0 to { i32, i32 }*
%55 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %54, i32 0, i32 1
store i32 %52, i32* %55
br label %bb22
bb22: ; preds = %bb21, %bb20
br label %bb3
panic: ; preds = %bb15
call void @_ZN4core9panicking5panic17hb790668694ff6b20E({ %str_slice, %str_slice, i32 }* @panic_loc.a)
unreachable
panic1: ; preds = %bb17
call void @_ZN4core9panicking5panic17hb790668694ff6b20E({ %str_slice, %str_slice, i32 }* @panic_loc.c)
unreachable
panic2: ; preds = %bb19
call void @_ZN4core9panicking5panic17hb790668694ff6b20E({ %str_slice, %str_slice, i32 }* @panic_loc.d)
unreachable
panic3: ; preds = %bb18
call void @_ZN4core9panicking5panic17hb790668694ff6b20E({ %str_slice, %str_slice, i32 }* @panic_loc.e)
unreachable
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN49_$LT$isize$u20$as$u20$core..iter..range..Step$GT$4step17h173d964420fa4598E"(%"core::option::Option<isize>"* noalias nocapture sret dereferenceable(8), i32* noalias readonly dereferenceable(4), i32* noalias readonly dereferenceable(4)) unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
%3 = load i32, i32* %1
%4 = load i32, i32* %2
call void @"_ZN4core3num23_$LT$impl$u20$isize$GT$11checked_add17hf8168da169a02af8E"(%"core::option::Option<isize>"* noalias nocapture sret dereferenceable(8) %0, i32 %3, i32 %4)
br label %bb1
bb1: ; preds = %start
ret void
}
; Function Attrs: inlinehint uwtable
define internal i32 @_ZN4core3cmp3max17h70f5a4b55eae6c00E(i32, i32) unnamed_addr #0 personality i32 (i32, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%personalityslot = alloca { i8*, i32 }
%_11 = alloca i8
%_10 = alloca i8
%v2 = alloca i32
%v1 = alloca i32
%_0 = alloca i32
br label %start
start: ; preds = %entry-block
store i8 0, i8* %_11
store i8 0, i8* %_10
store i8 1, i8* %_10
store i32 %0, i32* %v1
store i8 1, i8* %_11
store i32 %1, i32* %v2
%2 = invoke zeroext i1 @"_ZN4core3cmp5impls57_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$usize$GT$2ge17h3e9f50175e485b3eE"(i32* noalias readonly dereferenceable(4) %v2, i32* noalias readonly dereferenceable(4) %v1)
to label %bb3 unwind label %cleanup
bb1: ; preds = %bb9, %bb2
%3 = load { i8*, i32 }, { i8*, i32 }* %personalityslot
resume { i8*, i32 } %3
bb2: ; preds = %bb10, %bb11
%4 = load i8, i8* %_10, !range !1
%5 = trunc i8 %4 to i1
br i1 %5, label %bb9, label %bb1
bb3: ; preds = %start
br i1 %2, label %bb4, label %bb5
bb4: ; preds = %bb3
store i8 0, i8* %_11
%6 = load i32, i32* %v2
store i32 %6, i32* %_0
br label %bb6
bb5: ; preds = %bb3
store i8 0, i8* %_10
%7 = load i32, i32* %v1
store i32 %7, i32* %_0
br label %bb6
bb6: ; preds = %bb5, %bb4
%8 = load i8, i8* %_11, !range !1
%9 = trunc i8 %8 to i1
br i1 %9, label %bb12, label %bb7
bb7: ; preds = %bb12, %bb6
%10 = load i8, i8* %_10, !range !1
%11 = trunc i8 %10 to i1
br i1 %11, label %bb13, label %bb8
bb8: ; preds = %bb13, %bb7
%12 = load i32, i32* %_0
ret i32 %12
bb9: ; preds = %bb2
store i8 0, i8* %_10
br label %bb1
bb10: ; preds = %bb11
store i8 0, i8* %_11
br label %bb2
bb11: ; preds = %cleanup
%13 = load i8, i8* %_11, !range !1
%14 = trunc i8 %13 to i1
br i1 %14, label %bb10, label %bb2
bb12: ; preds = %bb6
store i8 0, i8* %_11
br label %bb7
bb13: ; preds = %bb7
store i8 0, i8* %_10
br label %bb8
cleanup: ; preds = %start
%15 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %15, { i8*, i32 }* %personalityslot
br label %bb11
}
; Function Attrs: inlinehint uwtable
define internal zeroext i1 @"_ZN4core3cmp5impls57_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$isize$GT$2gt17h46264a7082b35b93E"(i32* noalias readonly dereferenceable(4), i32* noalias readonly dereferenceable(4)) unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
%2 = load i32, i32* %0
%3 = load i32, i32* %1
%4 = icmp sgt i32 %2, %3
ret i1 %4
}
; Function Attrs: inlinehint uwtable
define internal zeroext i1 @"_ZN4core3cmp5impls57_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$isize$GT$2lt17h3b57cd1e2446f5deE"(i32* noalias readonly dereferenceable(4), i32* noalias readonly dereferenceable(4)) unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
%2 = load i32, i32* %0
%3 = load i32, i32* %1
%4 = icmp slt i32 %2, %3
ret i1 %4
}
; Function Attrs: inlinehint uwtable
define internal zeroext i1 @"_ZN4core3cmp5impls57_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$usize$GT$2ge17h3e9f50175e485b3eE"(i32* noalias readonly dereferenceable(4), i32* noalias readonly dereferenceable(4)) unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
%2 = load i32, i32* %0
%3 = load i32, i32* %1
%4 = icmp uge i32 %2, %3
ret i1 %4
}
; Function Attrs: uwtable
define internal void @_ZN4core3fmt10ArgumentV13new17h4b93ed0528bb15c6E(%"core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(8), %"collections::vec::Vec<isize>"** noalias readonly dereferenceable(4), i8 (%"collections::vec::Vec<isize>"**, %"core::fmt::Formatter"*)*) unnamed_addr #1 {
entry-block:
%transmute_temp1 = alloca %"core::fmt::Void"*
%transmute_temp = alloca i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)*
br label %start
start: ; preds = %entry-block
%3 = bitcast i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)** %transmute_temp to i8 (%"collections::vec::Vec<isize>"**, %"core::fmt::Formatter"*)**
store i8 (%"collections::vec::Vec<isize>"**, %"core::fmt::Formatter"*)* %2, i8 (%"collections::vec::Vec<isize>"**, %"core::fmt::Formatter"*)** %3, align 4
%4 = load i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)*, i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)** %transmute_temp
br label %bb1
bb1: ; preds = %start
%5 = bitcast %"core::fmt::Void"** %transmute_temp1 to %"collections::vec::Vec<isize>"***
store %"collections::vec::Vec<isize>"** %1, %"collections::vec::Vec<isize>"*** %5, align 4
%6 = load %"core::fmt::Void"*, %"core::fmt::Void"** %transmute_temp1, !nonnull !9
br label %bb2
bb2: ; preds = %bb1
%7 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %0, i32 0, i32 0
store %"core::fmt::Void"* %6, %"core::fmt::Void"** %7
%8 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %0, i32 0, i32 1
store i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)* %4, i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)** %8
ret void
}
; Function Attrs: uwtable
define internal void @_ZN4core3fmt10ArgumentV13new17h6972ba66dd8899c7E(%"core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(8), [0 x i32]** noalias readonly dereferenceable(4), i8 ([0 x i32]**, %"core::fmt::Formatter"*)*) unnamed_addr #1 {
entry-block:
%transmute_temp1 = alloca %"core::fmt::Void"*
%transmute_temp = alloca i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)*
br label %start
start: ; preds = %entry-block
%3 = bitcast i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)** %transmute_temp to i8 ([0 x i32]**, %"core::fmt::Formatter"*)**
store i8 ([0 x i32]**, %"core::fmt::Formatter"*)* %2, i8 ([0 x i32]**, %"core::fmt::Formatter"*)** %3, align 4
%4 = load i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)*, i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)** %transmute_temp
br label %bb1
bb1: ; preds = %start
%5 = bitcast %"core::fmt::Void"** %transmute_temp1 to [0 x i32]***
store [0 x i32]** %1, [0 x i32]*** %5, align 4
%6 = load %"core::fmt::Void"*, %"core::fmt::Void"** %transmute_temp1, !nonnull !9
br label %bb2
bb2: ; preds = %bb1
%7 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %0, i32 0, i32 0
store %"core::fmt::Void"* %6, %"core::fmt::Void"** %7
%8 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %0, i32 0, i32 1
store i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)* %4, i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)** %8
ret void
}
; Function Attrs: uwtable
define internal void @_ZN4core3fmt10ArgumentV13new17h8b30214a05ae76acE(%"core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(8), i32* noalias readonly dereferenceable(4), i8 (i32*, %"core::fmt::Formatter"*)*) unnamed_addr #1 {
entry-block:
%transmute_temp1 = alloca %"core::fmt::Void"*
%transmute_temp = alloca i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)*
br label %start
start: ; preds = %entry-block
%3 = bitcast i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)** %transmute_temp to i8 (i32*, %"core::fmt::Formatter"*)**
store i8 (i32*, %"core::fmt::Formatter"*)* %2, i8 (i32*, %"core::fmt::Formatter"*)** %3, align 4
%4 = load i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)*, i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)** %transmute_temp
br label %bb1
bb1: ; preds = %start
%5 = bitcast %"core::fmt::Void"** %transmute_temp1 to i32**
store i32* %1, i32** %5, align 4
%6 = load %"core::fmt::Void"*, %"core::fmt::Void"** %transmute_temp1, !nonnull !9
br label %bb2
bb2: ; preds = %bb1
%7 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %0, i32 0, i32 0
store %"core::fmt::Void"* %6, %"core::fmt::Void"** %7
%8 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %0, i32 0, i32 1
store i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)* %4, i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)** %8
ret void
}
; Function Attrs: uwtable
define internal dereferenceable(8) %"core::fmt::builders::DebugList"* @_ZN4core3fmt8builders9DebugList7entries17h326e29aa68d3b428E(%"core::fmt::builders::DebugList"* dereferenceable(8), %"core::slice::Iter<isize>"* noalias nocapture dereferenceable(8)) unnamed_addr #1 personality i32 (i32, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%personalityslot = alloca { i8*, i32 }
%_23 = alloca i8
%entry = alloca i32*
%_12 = alloca i8*
%iter = alloca %"core::slice::Iter<isize>"
%_10 = alloca %"core::slice::Iter<isize>"
%_9 = alloca {}
%_8 = alloca %"core::slice::Iter<isize>"
%_result = alloca {}
%entries = alloca %"core::slice::Iter<isize>"
br label %start
start: ; preds = %entry-block
store i8 0, i8* %_23
%2 = bitcast %"core::slice::Iter<isize>"* %1 to i8*
%3 = bitcast %"core::slice::Iter<isize>"* %entries to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* %2, i32 8, i32 4, i1 false)
%4 = bitcast %"core::slice::Iter<isize>"* %entries to i8*
%5 = bitcast %"core::slice::Iter<isize>"* %_10 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %5, i8* %4, i32 8, i32 4, i1 false)
invoke void @"_ZN54_$LT$I$u20$as$u20$core..iter..traits..IntoIterator$GT$9into_iter17h628d6c7f3abe60e7E"(%"core::slice::Iter<isize>"* noalias nocapture sret dereferenceable(8) %_8, %"core::slice::Iter<isize>"* noalias nocapture dereferenceable(8) %_10)
to label %bb2 unwind label %cleanup
bb1: ; preds = %bb4, %cleanup
%6 = load { i8*, i32 }, { i8*, i32 }* %personalityslot
resume { i8*, i32 } %6
bb2: ; preds = %start
%7 = bitcast %"core::slice::Iter<isize>"* %_8 to i8*
%8 = bitcast %"core::slice::Iter<isize>"* %iter to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %8, i8* %7, i32 8, i32 4, i1 false)
br label %bb3
bb3: ; preds = %bb13, %bb2
%9 = invoke i8* @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h168758974c2a2892E"(%"core::slice::Iter<isize>"* dereferenceable(8) %iter)
to label %bb5 unwind label %cleanup1
bb4: ; preds = %bb17, %bb16, %bb15, %cleanup1
br label %bb1
bb5: ; preds = %bb3
store i8* %9, i8** %_12
store i8 1, i8* %_23
%10 = load i8*, i8** %_12
%11 = icmp ne i8* %10, null
%12 = zext i1 %11 to i32
switch i32 %12, label %bb8 [
i32 0, label %bb7
]
bb6: ; preds = %bb9
%13 = load i8*, i8** %_12
%14 = icmp ne i8* %13, null
%15 = zext i1 %14 to i32
switch i32 %15, label %bb15 [
i32 1, label %bb16
]
bb7: ; preds = %bb5
store i8 0, i8* %_23
br label %bb11
bb8: ; preds = %bb5
store i8 0, i8* %_23
%16 = bitcast i8** %_12 to i32**
%17 = load i32*, i32** %16, !nonnull !9
store i32* %17, i32** %entry
%18 = bitcast i32** %entry to i8*
%19 = invoke dereferenceable(8) %"core::fmt::builders::DebugList"* @_ZN4core3fmt8builders9DebugList5entry17hd9c8b4dc15f5fa44E(%"core::fmt::builders::DebugList"* dereferenceable(8) %0, i8* nonnull %18, void (i8*)** noalias nonnull readonly getelementptr inbounds ({ void (i8*)*, i32, i32, i8 (i32**, %"core::fmt::Formatter"*)* }, { void (i8*)*, i32, i32, i8 (i32**, %"core::fmt::Formatter"*)* }* @vtable.f, i32 0, i32 0))
to label %bb10 unwind label %cleanup2
bb9: ; preds = %cleanup2
br label %bb6
bb10: ; preds = %bb8
br label %bb12
bb11: ; preds = %bb7
br label %bb14
bb12: ; preds = %bb10
%20 = load i8*, i8** %_12
%21 = icmp ne i8* %20, null
%22 = zext i1 %21 to i32
switch i32 %22, label %bb18 [
i32 1, label %bb13
]
bb13: ; preds = %bb18, %bb12
br label %bb3
bb14: ; preds = %bb11
ret %"core::fmt::builders::DebugList"* %0
bb15: ; preds = %bb6
br label %bb4
bb16: ; preds = %bb6
%23 = load i8, i8* %_23, !range !1
%24 = trunc i8 %23 to i1
br i1 %24, label %bb17, label %bb4
bb17: ; preds = %bb16
store i8 0, i8* %_23
br label %bb4
bb18: ; preds = %bb12
br label %bb13
cleanup: ; preds = %start
%25 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %25, { i8*, i32 }* %personalityslot
br label %bb1
cleanup1: ; preds = %bb3
%26 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %26, { i8*, i32 }* %personalityslot
br label %bb4
cleanup2: ; preds = %bb8
%27 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %27, { i8*, i32 }* %personalityslot
br label %bb9
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN4core3fmt9Arguments6new_v117haf3166c487b5521aE(%"core::fmt::Arguments"* noalias nocapture sret dereferenceable(24), %str_slice* noalias nonnull readonly, i32, %"core::fmt::ArgumentV1"* noalias nonnull readonly, i32) unnamed_addr #0 {
entry-block:
%_6 = alloca %"core::option::Option<&[core::fmt::rt::v1::Argument]>"
br label %start
start: ; preds = %entry-block
%5 = bitcast %"core::option::Option<&[core::fmt::rt::v1::Argument]>"* %_6 to i8*
call void @llvm.memset.p0i8.i32(i8* %5, i8 0, i32 8, i32 4, i1 false)
%6 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %0, i32 0, i32 0
%7 = getelementptr inbounds { %str_slice*, i32 }, { %str_slice*, i32 }* %6, i32 0, i32 0
store %str_slice* %1, %str_slice** %7
%8 = getelementptr inbounds { %str_slice*, i32 }, { %str_slice*, i32 }* %6, i32 0, i32 1
store i32 %2, i32* %8
%9 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %0, i32 0, i32 1
%10 = bitcast %"core::option::Option<&[core::fmt::rt::v1::Argument]>"* %_6 to i8*
%11 = bitcast %"core::option::Option<&[core::fmt::rt::v1::Argument]>"* %9 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %11, i8* %10, i32 8, i32 4, i1 false)
%12 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %0, i32 0, i32 2
%13 = getelementptr inbounds { %"core::fmt::ArgumentV1"*, i32 }, { %"core::fmt::ArgumentV1"*, i32 }* %12, i32 0, i32 0
store %"core::fmt::ArgumentV1"* %3, %"core::fmt::ArgumentV1"** %13
%14 = getelementptr inbounds { %"core::fmt::ArgumentV1"*, i32 }, { %"core::fmt::ArgumentV1"*, i32 }* %12, i32 0, i32 1
store i32 %4, i32* %14
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN4core3fmt9Formatter10debug_list17h288c62552fe78659E(%"core::fmt::builders::DebugList"* noalias nocapture sret dereferenceable(8), %"core::fmt::Formatter"* dereferenceable(52)) unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
call void @_ZN4core3fmt8builders14debug_list_new17h87c529c93343d084E(%"core::fmt::builders::DebugList"* noalias nocapture sret dereferenceable(8) %0, %"core::fmt::Formatter"* dereferenceable(52) %1)
br label %bb1
bb1: ; preds = %start
ret void
}
; Function Attrs: inlinehint uwtable
define internal i32 @_ZN4core3mem11size_of_val17h89e2907390b55efeE(i32* noalias nonnull readonly, i32) unnamed_addr #0 {
entry-block:
%tmp_ret = alloca i32
br label %start
start: ; preds = %entry-block
%2 = mul i32 %1, 4
store i32 %2, i32* %tmp_ret
%3 = load i32, i32* %tmp_ret
br label %bb1
bb1: ; preds = %start
ret i32 %3
}
; Function Attrs: inlinehint uwtable
define internal i32 @_ZN4core3mem13uninitialized17h87edea676efbac3bE() unnamed_addr #0 {
entry-block:
%tmp_ret = alloca i32
br label %start
start: ; preds = %entry-block
%0 = load i32, i32* %tmp_ret
br label %bb1
bb1: ; preds = %start
ret i32 %0
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN4core3mem4swap17hd79e03598b052fc7E(i32* dereferenceable(4), i32* dereferenceable(4)) unnamed_addr #0 personality i32 (i32, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%personalityslot = alloca { i8*, i32 }
%_27 = alloca i8
%t = alloca i32
%_0 = alloca {}
br label %start
start: ; preds = %entry-block
store i8 0, i8* %_27
%2 = invoke i32 @_ZN4core3mem13uninitialized17h87edea676efbac3bE()
to label %bb2 unwind label %cleanup
bb1: ; preds = %bb7, %bb8
%3 = load { i8*, i32 }, { i8*, i32 }* %personalityslot
resume { i8*, i32 } %3
bb2: ; preds = %start
store i32 %2, i32* %t
store i8 1, i8* %_27
%4 = bitcast i32* %t to i8*
%5 = bitcast i32* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 4, i32 4, i1 false)
br label %bb3
bb3: ; preds = %bb2
%6 = bitcast i32* %0 to i8*
%7 = bitcast i32* %1 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %7, i32 4, i32 4, i1 false)
br label %bb4
bb4: ; preds = %bb3
%8 = bitcast i32* %1 to i8*
%9 = bitcast i32* %t to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %8, i8* %9, i32 4, i32 4, i1 false)
br label %bb5
bb5: ; preds = %bb4
store i8 0, i8* %_27
%10 = load i32, i32* %t
invoke void @_ZN4core3mem6forget17hbc0e06c443059e2fE(i32 %10)
to label %bb6 unwind label %cleanup
bb6: ; preds = %bb5
ret void
bb7: ; preds = %bb8
store i8 0, i8* %_27
br label %bb1
bb8: ; preds = %cleanup
%11 = load i8, i8* %_27, !range !1
%12 = trunc i8 %11 to i1
br i1 %12, label %bb7, label %bb1
cleanup: ; preds = %bb5, %start
%13 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %13, { i8*, i32 }* %personalityslot
br label %bb8
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN4core3mem6forget17hbc0e06c443059e2fE(i32) unnamed_addr #0 personality i32 (i32, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%personalityslot = alloca { i8*, i32 }
br label %start
start: ; preds = %entry-block
br label %bb2
bb1: ; No predecessors!
%1 = load { i8*, i32 }, { i8*, i32 }* %personalityslot
resume { i8*, i32 } %1
bb2: ; preds = %start
ret void
}
; Function Attrs: inlinehint uwtable
define internal i32 @_ZN4core3mem7size_of17h8501faafc0670793E() unnamed_addr #0 {
entry-block:
%tmp_ret = alloca i32
br label %start
start: ; preds = %entry-block
store i32 4, i32* %tmp_ret
%0 = load i32, i32* %tmp_ret
br label %bb1
bb1: ; preds = %start
ret i32 %0
}
; Function Attrs: inlinehint uwtable
define internal i32 @_ZN4core3mem7size_of17hcaa7f7532e110d10E() unnamed_addr #0 {
entry-block:
%tmp_ret = alloca i32
br label %start
start: ; preds = %entry-block
store i32 4, i32* %tmp_ret
%0 = load i32, i32* %tmp_ret
br label %bb1
bb1: ; preds = %start
ret i32 %0
}
; Function Attrs: inlinehint uwtable
define internal i32 @_ZN4core3mem8align_of17h65ab8586e36c1162E() unnamed_addr #0 {
entry-block:
%tmp_ret = alloca i32
br label %start
start: ; preds = %entry-block
store i32 4, i32* %tmp_ret
%0 = load i32, i32* %tmp_ret
br label %bb1
bb1: ; preds = %start
ret i32 %0
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN4core3num23_$LT$impl$u20$isize$GT$11checked_add17hf8168da169a02af8E"(%"core::option::Option<isize>"* noalias nocapture sret dereferenceable(8), i32, i32) unnamed_addr #0 {
entry-block:
%tmp_ret = alloca { i32, i8 }
br label %start
start: ; preds = %entry-block
call void @"_ZN4core3num23_$LT$impl$u20$isize$GT$15overflowing_add17he9f4beee1a24f47eE"({ i32, i8 }* noalias nocapture sret dereferenceable(8) %tmp_ret, i32 %1, i32 %2)
%3 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %tmp_ret, i32 0, i32 0
%4 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %tmp_ret, i32 0, i32 1
%5 = load i32, i32* %3
%6 = load i8, i8* %4, !range !1
%7 = trunc i8 %6 to i1
br label %bb1
bb1: ; preds = %start
br i1 %7, label %bb2, label %bb3
bb2: ; preds = %bb1
%8 = getelementptr inbounds %"core::option::Option<isize>", %"core::option::Option<isize>"* %0, i32 0, i32 0
store i32 0, i32* %8
br label %bb4
bb3: ; preds = %bb1
%9 = getelementptr inbounds %"core::option::Option<isize>", %"core::option::Option<isize>"* %0, i32 0, i32 0
store i32 1, i32* %9
%10 = bitcast %"core::option::Option<isize>"* %0 to { i32, i32 }*
%11 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %10, i32 0, i32 1
store i32 %5, i32* %11
br label %bb4
bb4: ; preds = %bb3, %bb2
ret void
}
; Function Attrs: inlinehint uwtable
define internal i32 @"_ZN4core3num23_$LT$impl$u20$isize$GT$12wrapping_mul17hf04031f2299647bcE"(i32, i32) unnamed_addr #0 {
entry-block:
%tmp_ret = alloca i32
br label %start
start: ; preds = %entry-block
%2 = mul i32 %0, %1
store i32 %2, i32* %tmp_ret
%3 = load i32, i32* %tmp_ret
br label %bb1
bb1: ; preds = %start
ret i32 %3
}
; Function Attrs: inlinehint uwtable
define internal i32 @"_ZN4core3num23_$LT$impl$u20$isize$GT$12wrapping_sub17h17fe23d91d68290fE"(i32, i32) unnamed_addr #0 {
entry-block:
%tmp_ret = alloca i32
br label %start
start: ; preds = %entry-block
%2 = sub i32 %0, %1
store i32 %2, i32* %tmp_ret
%3 = load i32, i32* %tmp_ret
br label %bb1
bb1: ; preds = %start
ret i32 %3
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN4core3num23_$LT$impl$u20$isize$GT$15overflowing_add17he9f4beee1a24f47eE"({ i32, i8 }* noalias nocapture sret dereferenceable(8), i32, i32) unnamed_addr #0 {
entry-block:
%tmp_ret = alloca { i32, i8 }
br label %start
start: ; preds = %entry-block
%3 = call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 %1, i32 %2)
%4 = extractvalue { i32, i1 } %3, 0
%5 = extractvalue { i32, i1 } %3, 1
%6 = zext i1 %5 to i8
%7 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %tmp_ret, i32 0, i32 0
store i32 %4, i32* %7
%8 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %tmp_ret, i32 0, i32 1
store i8 %6, i8* %8
%9 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %tmp_ret, i32 0, i32 0
%10 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %tmp_ret, i32 0, i32 1
%11 = load i32, i32* %9
%12 = load i8, i8* %10, !range !1
%13 = trunc i8 %12 to i1
br label %bb1
bb1: ; preds = %start
%14 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %0, i32 0, i32 0
store i32 %11, i32* %14
%15 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %0, i32 0, i32 1
%16 = zext i1 %13 to i8
store i8 %16, i8* %15
ret void
}
; Function Attrs: inlinehint uwtable
define internal i32 @"_ZN4core3num23_$LT$impl$u20$isize$GT$9max_value17hc2bbac3340affe2bE"() unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
%0 = call i32 @"_ZN4core3num23_$LT$impl$u20$isize$GT$9min_value17hc629413cb7288492E"()
br label %bb1
bb1: ; preds = %start
%1 = xor i32 %0, -1
ret i32 %1
}
; Function Attrs: inlinehint uwtable
define internal i32 @"_ZN4core3num23_$LT$impl$u20$isize$GT$9min_value17hc629413cb7288492E"() unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
br label %bb1
bb1: ; preds = %start
ret i32 -2147483648
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN4core3num23_$LT$impl$u20$usize$GT$11checked_add17he878fb3db94cea4fE"(%"core::option::Option<usize>"* noalias nocapture sret dereferenceable(8), i32, i32) unnamed_addr #0 {
entry-block:
%tmp_ret = alloca { i32, i8 }
br label %start
start: ; preds = %entry-block
call void @"_ZN4core3num23_$LT$impl$u20$usize$GT$15overflowing_add17h4dabf1fc0c2dfd75E"({ i32, i8 }* noalias nocapture sret dereferenceable(8) %tmp_ret, i32 %1, i32 %2)
%3 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %tmp_ret, i32 0, i32 0
%4 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %tmp_ret, i32 0, i32 1
%5 = load i32, i32* %3
%6 = load i8, i8* %4, !range !1
%7 = trunc i8 %6 to i1
br label %bb1
bb1: ; preds = %start
br i1 %7, label %bb2, label %bb3
bb2: ; preds = %bb1
%8 = getelementptr inbounds %"core::option::Option<usize>", %"core::option::Option<usize>"* %0, i32 0, i32 0
store i32 0, i32* %8
br label %bb4
bb3: ; preds = %bb1
%9 = getelementptr inbounds %"core::option::Option<usize>", %"core::option::Option<usize>"* %0, i32 0, i32 0
store i32 1, i32* %9
%10 = bitcast %"core::option::Option<usize>"* %0 to { i32, i32 }*
%11 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %10, i32 0, i32 1
store i32 %5, i32* %11
br label %bb4
bb4: ; preds = %bb3, %bb2
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN4core3num23_$LT$impl$u20$usize$GT$11checked_mul17he7c7fc05ede669b1E"(%"core::option::Option<usize>"* noalias nocapture sret dereferenceable(8), i32, i32) unnamed_addr #0 {
entry-block:
%tmp_ret = alloca { i32, i8 }
br label %start
start: ; preds = %entry-block
call void @"_ZN4core3num23_$LT$impl$u20$usize$GT$15overflowing_mul17h6993bfa7b0970241E"({ i32, i8 }* noalias nocapture sret dereferenceable(8) %tmp_ret, i32 %1, i32 %2)
%3 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %tmp_ret, i32 0, i32 0
%4 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %tmp_ret, i32 0, i32 1
%5 = load i32, i32* %3
%6 = load i8, i8* %4, !range !1
%7 = trunc i8 %6 to i1
br label %bb1
bb1: ; preds = %start
br i1 %7, label %bb2, label %bb3
bb2: ; preds = %bb1
%8 = getelementptr inbounds %"core::option::Option<usize>", %"core::option::Option<usize>"* %0, i32 0, i32 0
store i32 0, i32* %8
br label %bb4
bb3: ; preds = %bb1
%9 = getelementptr inbounds %"core::option::Option<usize>", %"core::option::Option<usize>"* %0, i32 0, i32 0
store i32 1, i32* %9
%10 = bitcast %"core::option::Option<usize>"* %0 to { i32, i32 }*
%11 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %10, i32 0, i32 1
store i32 %5, i32* %11
br label %bb4
bb4: ; preds = %bb3, %bb2
ret void
}
; Function Attrs: inlinehint uwtable
define internal i32 @"_ZN4core3num23_$LT$impl$u20$usize$GT$12wrapping_sub17haafe9bf4f214e0b8E"(i32, i32) unnamed_addr #0 {
entry-block:
%tmp_ret = alloca i32
br label %start
start: ; preds = %entry-block
%2 = sub i32 %0, %1
store i32 %2, i32* %tmp_ret
%3 = load i32, i32* %tmp_ret
br label %bb1
bb1: ; preds = %start
ret i32 %3
}
; Function Attrs: inlinehint uwtable
define internal i32 @"_ZN4core3num23_$LT$impl$u20$usize$GT$14saturating_add17hb1fbb042544872deE"(i32, i32) unnamed_addr #0 {
entry-block:
%_5 = alloca %"core::option::Option<usize>"
%_0 = alloca i32
br label %start
start: ; preds = %entry-block
call void @"_ZN4core3num23_$LT$impl$u20$usize$GT$11checked_add17he878fb3db94cea4fE"(%"core::option::Option<usize>"* noalias nocapture sret dereferenceable(8) %_5, i32 %0, i32 %1)
br label %bb1
bb1: ; preds = %start
%2 = getelementptr inbounds %"core::option::Option<usize>", %"core::option::Option<usize>"* %_5, i32 0, i32 0
%3 = load i32, i32* %2, !range !2
switch i32 %3, label %bb3 [
i32 0, label %bb2
]
bb2: ; preds = %bb1
%4 = call i32 @"_ZN4core3num23_$LT$impl$u20$usize$GT$9max_value17ha8e0a62e9a503d4eE"()
store i32 %4, i32* %_0
br label %bb4
bb3: ; preds = %bb1
%5 = bitcast %"core::option::Option<usize>"* %_5 to { i32, i32 }*
%6 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %5, i32 0, i32 1
%7 = load i32, i32* %6
store i32 %7, i32* %_0
br label %bb4
bb4: ; preds = %bb2, %bb3
%8 = load i32, i32* %_0
ret i32 %8
}
; Function Attrs: inlinehint uwtable
define internal zeroext i1 @"_ZN4core3num23_$LT$impl$u20$usize$GT$15is_power_of_two17hc8f3d64c044ae4c4E"(i32) unnamed_addr #0 {
entry-block:
%_0 = alloca i8
br label %start
start: ; preds = %entry-block
%1 = call i32 @"_ZN4core3num23_$LT$impl$u20$usize$GT$12wrapping_sub17haafe9bf4f214e0b8E"(i32 %0, i32 1)
br label %bb5
bb1: ; preds = %bb3
store i8 1, i8* %_0
br label %bb4
bb2: ; preds = %bb3, %bb5
store i8 0, i8* %_0
br label %bb4
bb3: ; preds = %bb5
%2 = icmp eq i32 %0, 0
%3 = xor i1 %2, true
br i1 %3, label %bb1, label %bb2
bb4: ; preds = %bb2, %bb1
%4 = load i8, i8* %_0, !range !1
%5 = trunc i8 %4 to i1
ret i1 %5
bb5: ; preds = %start
%6 = and i32 %1, %0
%7 = icmp eq i32 %6, 0
br i1 %7, label %bb3, label %bb2
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN4core3num23_$LT$impl$u20$usize$GT$15overflowing_add17h4dabf1fc0c2dfd75E"({ i32, i8 }* noalias nocapture sret dereferenceable(8), i32, i32) unnamed_addr #0 {
entry-block:
%tmp_ret = alloca { i32, i8 }
br label %start
start: ; preds = %entry-block
%3 = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %1, i32 %2)
%4 = extractvalue { i32, i1 } %3, 0
%5 = extractvalue { i32, i1 } %3, 1
%6 = zext i1 %5 to i8
%7 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %tmp_ret, i32 0, i32 0
store i32 %4, i32* %7
%8 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %tmp_ret, i32 0, i32 1
store i8 %6, i8* %8
%9 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %tmp_ret, i32 0, i32 0
%10 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %tmp_ret, i32 0, i32 1
%11 = load i32, i32* %9
%12 = load i8, i8* %10, !range !1
%13 = trunc i8 %12 to i1
br label %bb1
bb1: ; preds = %start
%14 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %0, i32 0, i32 0
store i32 %11, i32* %14
%15 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %0, i32 0, i32 1
%16 = zext i1 %13 to i8
store i8 %16, i8* %15
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN4core3num23_$LT$impl$u20$usize$GT$15overflowing_mul17h6993bfa7b0970241E"({ i32, i8 }* noalias nocapture sret dereferenceable(8), i32, i32) unnamed_addr #0 {
entry-block:
%tmp_ret = alloca { i32, i8 }
br label %start
start: ; preds = %entry-block
%3 = call { i32, i1 } @llvm.umul.with.overflow.i32(i32 %1, i32 %2)
%4 = extractvalue { i32, i1 } %3, 0
%5 = extractvalue { i32, i1 } %3, 1
%6 = zext i1 %5 to i8
%7 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %tmp_ret, i32 0, i32 0
store i32 %4, i32* %7
%8 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %tmp_ret, i32 0, i32 1
store i8 %6, i8* %8
%9 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %tmp_ret, i32 0, i32 0
%10 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %tmp_ret, i32 0, i32 1
%11 = load i32, i32* %9
%12 = load i8, i8* %10, !range !1
%13 = trunc i8 %12 to i1
br label %bb1
bb1: ; preds = %start
%14 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %0, i32 0, i32 0
store i32 %11, i32* %14
%15 = getelementptr inbounds { i32, i8 }, { i32, i8 }* %0, i32 0, i32 1
%16 = zext i1 %13 to i8
store i8 %16, i8* %15
ret void
}
; Function Attrs: inlinehint uwtable
define internal i32 @"_ZN4core3num23_$LT$impl$u20$usize$GT$9max_value17ha8e0a62e9a503d4eE"() unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
ret i32 -1
}
; Function Attrs: inlinehint uwtable
define internal i8* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$15wrapping_offset17h1595897c08996aa9E"(i8*, i32) unnamed_addr #0 {
entry-block:
%tmp_ret = alloca i8*
br label %start
start: ; preds = %entry-block
%2 = getelementptr i8, i8* %0, i32 %1
store i8* %2, i8** %tmp_ret
%3 = load i8*, i8** %tmp_ret
br label %bb1
bb1: ; preds = %start
ret i8* %3
}
; Function Attrs: inlinehint uwtable
define internal i32* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$6offset17h5a99e5f4521011f5E"(i32*, i32) unnamed_addr #0 {
entry-block:
%tmp_ret = alloca i32*
br label %start
start: ; preds = %entry-block
%2 = getelementptr inbounds i32, i32* %0, i32 %1
store i32* %2, i32** %tmp_ret
%3 = load i32*, i32** %tmp_ret
br label %bb1
bb1: ; preds = %start
ret i32* %3
}
; Function Attrs: inlinehint uwtable
define internal zeroext i1 @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17h4700ca1333b78896E"(i32*) unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
%1 = call i32* @_ZN4core3ptr8null_mut17hf94c9058a1373344E()
br label %bb1
bb1: ; preds = %start
%2 = icmp eq i32* %0, %1
ret i1 %2
}
; Function Attrs: inlinehint uwtable
define internal zeroext i1 @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17hb6150a2be661fd19E"(i8*) unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
%1 = call i8* @_ZN4core3ptr8null_mut17he7fb89303162bb4dE()
br label %bb1
bb1: ; preds = %start
%2 = icmp eq i8* %0, %1
ret i1 %2
}
; Function Attrs: inlinehint uwtable
define internal i32* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$6offset17h1756066fd9968d61E"(i32*, i32) unnamed_addr #0 {
entry-block:
%tmp_ret = alloca i32*
br label %start
start: ; preds = %entry-block
%2 = getelementptr inbounds i32, i32* %0, i32 %1
store i32* %2, i32** %tmp_ret
%3 = load i32*, i32** %tmp_ret
br label %bb1
bb1: ; preds = %start
ret i32* %3
}
; Function Attrs: inlinehint uwtable
define internal zeroext i1 @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$7is_null17h6966f69e11eb5f3bE"(i32*) unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
%1 = call i32* @_ZN4core3ptr4null17h88c41cd3f3f12207E()
br label %bb1
bb1: ; preds = %start
%2 = icmp eq i32* %0, %1
ret i1 %2
}
; Function Attrs: inlinehint uwtable
define internal i32* @_ZN4core3ptr4null17h88c41cd3f3f12207E() unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
ret i32* null
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN4core3ptr5write17hc62018ecf990a402E(i32*, i32) unnamed_addr #0 personality i32 (i32, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%personalityslot = alloca { i8*, i32 }
br label %start
start: ; preds = %entry-block
store i32 %1, i32* %0
br label %bb2
bb1: ; No predecessors!
%2 = load { i8*, i32 }, { i8*, i32 }* %personalityslot
resume { i8*, i32 } %2
bb2: ; preds = %start
ret void
}
; Function Attrs: inlinehint uwtable
define internal i8* @_ZN4core3ptr8null_mut17he7fb89303162bb4dE() unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
ret i8* null
}
; Function Attrs: inlinehint uwtable
define internal i32* @_ZN4core3ptr8null_mut17hf94c9058a1373344E() unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
ret i32* null
}
; Function Attrs: uwtable
define internal void @"_ZN4core4iter5range43_$LT$impl$u20$core..ops..Range$LT$A$GT$$GT$7step_by17ha24258a8601f244bE"(%"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* noalias nocapture sret dereferenceable(12), %"core::ops::Range<isize>"* noalias nocapture dereferenceable(8), i32) unnamed_addr #1 {
entry-block:
br label %start
start: ; preds = %entry-block
%3 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %1, i32 0, i32 0
%4 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %1, i32 0, i32 1
%5 = load i32, i32* %3
%6 = load i32, i32* %4
%7 = getelementptr inbounds %"core::iter::range::StepBy<isize, core::ops::Range<isize>>", %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %0, i32 0, i32 0
store i32 %2, i32* %7
%8 = getelementptr inbounds %"core::iter::range::StepBy<isize, core::ops::Range<isize>>", %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %0, i32 0, i32 1
%9 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %8, i32 0, i32 0
store i32 %5, i32* %9
%10 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %8, i32 0, i32 1
store i32 %6, i32* %10
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN4core4iter8iterator8Iterator7collect17h68b276c36a921e76E(%"collections::vec::Vec<isize>"* noalias nocapture sret dereferenceable(12), %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* noalias nocapture dereferenceable(12)) unnamed_addr #0 personality i32 (i32, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%personalityslot = alloca { i8*, i32 }
%_3 = alloca %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"
%self = alloca %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"
br label %start
start: ; preds = %entry-block
%2 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %1 to i8*
%3 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %self to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* %2, i32 12, i32 4, i1 false)
%4 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %self to i8*
%5 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %_3 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %5, i8* %4, i32 12, i32 4, i1 false)
invoke void @"_ZN92_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..iter..traits..FromIterator$LT$T$GT$$GT$9from_iter17hb23e12a3a1ca6171E"(%"collections::vec::Vec<isize>"* noalias nocapture sret dereferenceable(12) %0, %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* noalias nocapture dereferenceable(12) %_3)
to label %bb2 unwind label %cleanup
bb1: ; preds = %cleanup
%6 = load { i8*, i32 }, { i8*, i32 }* %personalityslot
resume { i8*, i32 } %6
bb2: ; preds = %start
ret void
cleanup: ; preds = %start
%7 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %7, { i8*, i32 }* %personalityslot
br label %bb1
}
; Function Attrs: uwtable
define internal i8 @"_ZN4core5array69_$LT$impl$u20$core..fmt..Debug$u20$for$u20$$u5b$T$u3b$$u20$0$u5d$$GT$3fmt17hcc00632eecc20f91E"([0 x i32]* noalias readonly, %"core::fmt::Formatter"* dereferenceable(52)) unnamed_addr #1 {
entry-block:
%abi_cast = alloca i8
%_11 = alloca %"core::ops::RangeFull"
%_7 = alloca { i32*, i32 }
%_0 = alloca %"core::result::Result<(), core::fmt::Error>"
br label %start
start: ; preds = %entry-block
%2 = bitcast [0 x i32]* %0 to i32*
%3 = call { i32*, i32 } @"_ZN4core5slice67_$LT$impl$u20$core..ops..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h73017c6b6bc52e91E"(i32* noalias nonnull readonly %2, i32 0)
%4 = extractvalue { i32*, i32 } %3, 0
%5 = extractvalue { i32*, i32 } %3, 1
br label %bb1
bb1: ; preds = %start
%6 = getelementptr inbounds { i32*, i32 }, { i32*, i32 }* %_7, i32 0, i32 0
store i32* %4, i32** %6
%7 = getelementptr inbounds { i32*, i32 }, { i32*, i32 }* %_7, i32 0, i32 1
store i32 %5, i32* %7
%8 = call i8 @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h51910e818e0aa7a9E"({ i32*, i32 }* noalias readonly dereferenceable(8) %_7, %"core::fmt::Formatter"* dereferenceable(52) %1)
store i8 %8, i8* %abi_cast
%9 = bitcast %"core::result::Result<(), core::fmt::Error>"* %_0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %9, i8* %abi_cast, i32 1, i32 1, i1 false)
br label %bb2
bb2: ; preds = %bb1
%10 = bitcast %"core::result::Result<(), core::fmt::Error>"* %_0 to i8*
%11 = load i8, i8* %10, align 1
ret i8 %11
}
; Function Attrs: inlinehint uwtable
define internal { i32*, i32 } @_ZN4core5slice14from_raw_parts17h444bffac668187a5E(i32*, i32) unnamed_addr #0 {
entry-block:
%transmute_temp = alloca { i32*, i32 }
%_5 = alloca %"core::slice::Repr<isize>"
br label %start
start: ; preds = %entry-block
%2 = getelementptr inbounds %"core::slice::Repr<isize>", %"core::slice::Repr<isize>"* %_5, i32 0, i32 0
store i32* %0, i32** %2
%3 = getelementptr inbounds %"core::slice::Repr<isize>", %"core::slice::Repr<isize>"* %_5, i32 0, i32 1
store i32 %1, i32* %3
%4 = getelementptr inbounds %"core::slice::Repr<isize>", %"core::slice::Repr<isize>"* %_5, i32 0, i32 0
%5 = getelementptr inbounds %"core::slice::Repr<isize>", %"core::slice::Repr<isize>"* %_5, i32 0, i32 1
%6 = load i32*, i32** %4
%7 = load i32, i32* %5
%8 = bitcast { i32*, i32 }* %transmute_temp to %"core::slice::Repr<isize>"*
%9 = getelementptr inbounds %"core::slice::Repr<isize>", %"core::slice::Repr<isize>"* %8, i32 0, i32 0
store i32* %6, i32** %9, align 4
%10 = getelementptr inbounds %"core::slice::Repr<isize>", %"core::slice::Repr<isize>"* %8, i32 0, i32 1
store i32 %7, i32* %10, align 4
%11 = getelementptr inbounds { i32*, i32 }, { i32*, i32 }* %transmute_temp, i32 0, i32 0
%12 = load i32*, i32** %11, !nonnull !9
%13 = getelementptr inbounds { i32*, i32 }, { i32*, i32 }* %transmute_temp, i32 0, i32 1
%14 = load i32, i32* %13
br label %bb1
bb1: ; preds = %start
%15 = insertvalue { i32*, i32 } undef, i32* %12, 0
%16 = insertvalue { i32*, i32 } %15, i32 %14, 1
ret { i32*, i32 } %16
}
; Function Attrs: inlinehint uwtable
define internal { i32*, i32 } @_ZN4core5slice18from_raw_parts_mut17ha40066db014fefddE(i32*, i32) unnamed_addr #0 {
entry-block:
%transmute_temp = alloca { i32*, i32 }
%_6 = alloca %"core::slice::Repr<isize>"
br label %start
start: ; preds = %entry-block
%2 = getelementptr inbounds %"core::slice::Repr<isize>", %"core::slice::Repr<isize>"* %_6, i32 0, i32 0
store i32* %0, i32** %2
%3 = getelementptr inbounds %"core::slice::Repr<isize>", %"core::slice::Repr<isize>"* %_6, i32 0, i32 1
store i32 %1, i32* %3
%4 = getelementptr inbounds %"core::slice::Repr<isize>", %"core::slice::Repr<isize>"* %_6, i32 0, i32 0
%5 = getelementptr inbounds %"core::slice::Repr<isize>", %"core::slice::Repr<isize>"* %_6, i32 0, i32 1
%6 = load i32*, i32** %4
%7 = load i32, i32* %5
%8 = bitcast { i32*, i32 }* %transmute_temp to %"core::slice::Repr<isize>"*
%9 = getelementptr inbounds %"core::slice::Repr<isize>", %"core::slice::Repr<isize>"* %8, i32 0, i32 0
store i32* %6, i32** %9, align 4
%10 = getelementptr inbounds %"core::slice::Repr<isize>", %"core::slice::Repr<isize>"* %8, i32 0, i32 1
store i32 %7, i32* %10, align 4
%11 = getelementptr inbounds { i32*, i32 }, { i32*, i32 }* %transmute_temp, i32 0, i32 0
%12 = load i32*, i32** %11, !nonnull !9
%13 = getelementptr inbounds { i32*, i32 }, { i32*, i32 }* %transmute_temp, i32 0, i32 1
%14 = load i32, i32* %13
br label %bb1
bb1: ; preds = %start
%15 = insertvalue { i32*, i32 } undef, i32* %12, 0
%16 = insertvalue { i32*, i32 } %15, i32 %14, 1
ret { i32*, i32 } %16
}
; Function Attrs: inlinehint uwtable
define internal { i32*, i32 } @"_ZN4core5slice67_$LT$impl$u20$core..ops..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h73017c6b6bc52e91E"(i32* noalias nonnull readonly, i32) unnamed_addr #0 personality i32 (i32, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%personalityslot = alloca { i8*, i32 }
br label %start
start: ; preds = %entry-block
%2 = invoke { i32*, i32 } @"_ZN73_$LT$core..ops..RangeFull$u20$as$u20$core..slice..SliceIndex$LT$T$GT$$GT$5index17h862c129474b254c0E"(i32* noalias nonnull readonly %0, i32 %1)
to label %bb2 unwind label %cleanup
bb1: ; preds = %cleanup
%3 = load { i8*, i32 }, { i8*, i32 }* %personalityslot
resume { i8*, i32 } %3
bb2: ; preds = %start
%4 = extractvalue { i32*, i32 } %2, 0
%5 = extractvalue { i32*, i32 } %2, 1
%6 = insertvalue { i32*, i32 } undef, i32* %4, 0
%7 = insertvalue { i32*, i32 } %6, i32 %5, 1
ret { i32*, i32 } %7
cleanup: ; preds = %start
%8 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %8, { i8*, i32 }* %personalityslot
br label %bb1
}
; Function Attrs: uwtable
define internal zeroext i1 @"_ZN4core5slice81_$LT$impl$u20$core..cmp..PartialEq$LT$$u5b$B$u5d$$GT$$u20$for$u20$$u5b$A$u5d$$GT$2eq17h0e7bd66f7e58d2ddE"(i32* noalias nonnull readonly, i32, i32* noalias nonnull readonly, i32) unnamed_addr #1 {
entry-block:
br label %start
start: ; preds = %entry-block
%4 = call zeroext i1 @"_ZN68_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..SlicePartialEq$LT$A$GT$$GT$5equal17h4cc7b484d57a8cbaE"(i32* noalias nonnull readonly %0, i32 %1, i32* noalias nonnull readonly %2, i32 %3)
br label %bb1
bb1: ; preds = %start
ret i1 %4
}
define internal void @_ZN4drop17h5e8360cf713132cfE(i8*) unnamed_addr {
entry-block:
ret void
}
define internal void @_ZN4drop17h71bcd51b390c66a7E(i32*, i32) unnamed_addr {
entry-block:
ret void
}
define internal void @_ZN4drop17hce36d3d4362f01aeE(%"alloc::raw_vec::RawVec<isize>"*) unnamed_addr personality i32 (i32, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
invoke void @"_ZN67_$LT$alloc..raw_vec..RawVec$LT$T$GT$$u20$as$u20$core..ops..Drop$GT$4drop17h828055aa96f635aaE"(%"alloc::raw_vec::RawVec<isize>"* dereferenceable(8) %0)
to label %normal-return unwind label %cleanup_unwind
cleanup_unwind: ; preds = %entry-block
%1 = landingpad { i8*, i32 }
cleanup
call void @_ZN13drop_contents17hce36d3d4362f01aeE(%"alloc::raw_vec::RawVec<isize>"* %0)
resume { i8*, i32 } %1
normal-return: ; preds = %entry-block
call void @_ZN13drop_contents17hce36d3d4362f01aeE(%"alloc::raw_vec::RawVec<isize>"* %0)
ret void
}
define internal void @_ZN4drop17hda3a3227b902a756E(%"collections::vec::Vec<isize>"*) unnamed_addr personality i32 (i32, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
invoke void @"_ZN66_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..Drop$GT$4drop17h5d15ec6c0a41d3cdE"(%"collections::vec::Vec<isize>"* dereferenceable(12) %0)
to label %normal-return unwind label %cleanup_unwind
cleanup_unwind: ; preds = %entry-block
%1 = landingpad { i8*, i32 }
cleanup
call void @_ZN13drop_contents17hda3a3227b902a756E(%"collections::vec::Vec<isize>"* %0)
resume { i8*, i32 } %1
normal-return: ; preds = %entry-block
call void @_ZN13drop_contents17hda3a3227b902a756E(%"collections::vec::Vec<isize>"* %0)
ret void
}
; Function Attrs: uwtable
define internal i8 @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h51910e818e0aa7a9E"({ i32*, i32 }* noalias readonly dereferenceable(8), %"core::fmt::Formatter"* dereferenceable(52)) unnamed_addr #1 {
entry-block:
%abi_cast = alloca i8
%_0 = alloca %"core::result::Result<(), core::fmt::Error>"
br label %start
start: ; preds = %entry-block
%2 = getelementptr inbounds { i32*, i32 }, { i32*, i32 }* %0, i32 0, i32 0
%3 = load i32*, i32** %2, !nonnull !9
%4 = getelementptr inbounds { i32*, i32 }, { i32*, i32 }* %0, i32 0, i32 1
%5 = load i32, i32* %4
%6 = call i8 @"_ZN48_$LT$$u5b$T$u5d$$u20$as$u20$core..fmt..Debug$GT$3fmt17h36f3c98f6f281e1bE"(i32* noalias nonnull readonly %3, i32 %5, %"core::fmt::Formatter"* dereferenceable(52) %1)
store i8 %6, i8* %abi_cast
%7 = bitcast %"core::result::Result<(), core::fmt::Error>"* %_0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %7, i8* %abi_cast, i32 1, i32 1, i1 false)
br label %bb1
bb1: ; preds = %start
%8 = bitcast %"core::result::Result<(), core::fmt::Error>"* %_0 to i8*
%9 = load i8, i8* %8, align 1
ret i8 %9
}
; Function Attrs: uwtable
define internal i8 @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h55fc9138d8f966ebE"([0 x i32]** noalias readonly dereferenceable(4), %"core::fmt::Formatter"* dereferenceable(52)) unnamed_addr #1 {
entry-block:
%abi_cast = alloca i8
%_0 = alloca %"core::result::Result<(), core::fmt::Error>"
br label %start
start: ; preds = %entry-block
%2 = load [0 x i32]*, [0 x i32]** %0, !nonnull !9
%3 = call i8 @"_ZN4core5array69_$LT$impl$u20$core..fmt..Debug$u20$for$u20$$u5b$T$u3b$$u20$0$u5d$$GT$3fmt17hcc00632eecc20f91E"([0 x i32]* noalias readonly %2, %"core::fmt::Formatter"* dereferenceable(52) %1)
store i8 %3, i8* %abi_cast
%4 = bitcast %"core::result::Result<(), core::fmt::Error>"* %_0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %abi_cast, i32 1, i32 1, i1 false)
br label %bb1
bb1: ; preds = %start
%5 = bitcast %"core::result::Result<(), core::fmt::Error>"* %_0 to i8*
%6 = load i8, i8* %5, align 1
ret i8 %6
}
; Function Attrs: uwtable
define internal i8 @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h889edfa5dbcb43f4E"(i32** noalias readonly dereferenceable(4), %"core::fmt::Formatter"* dereferenceable(52)) unnamed_addr #1 {
entry-block:
%abi_cast = alloca i8
%_0 = alloca %"core::result::Result<(), core::fmt::Error>"
br label %start
start: ; preds = %entry-block
%2 = load i32*, i32** %0, !nonnull !9
%3 = call i8 @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$isize$GT$3fmt17hd531887b89f04cd2E"(i32* noalias readonly dereferenceable(4) %2, %"core::fmt::Formatter"* dereferenceable(52) %1)
store i8 %3, i8* %abi_cast
%4 = bitcast %"core::result::Result<(), core::fmt::Error>"* %_0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %abi_cast, i32 1, i32 1, i1 false)
br label %bb1
bb1: ; preds = %start
%5 = bitcast %"core::result::Result<(), core::fmt::Error>"* %_0 to i8*
%6 = load i8, i8* %5, align 1
ret i8 %6
}
; Function Attrs: uwtable
define internal i8 @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hf2572bffe505eb08E"(%"collections::vec::Vec<isize>"** noalias readonly dereferenceable(4), %"core::fmt::Formatter"* dereferenceable(52)) unnamed_addr #1 {
entry-block:
%abi_cast = alloca i8
%_0 = alloca %"core::result::Result<(), core::fmt::Error>"
br label %start
start: ; preds = %entry-block
%2 = load %"collections::vec::Vec<isize>"*, %"collections::vec::Vec<isize>"** %0, !nonnull !9
%3 = call i8 @"_ZN67_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17h0d27c943cb81dbc0E"(%"collections::vec::Vec<isize>"* noalias readonly dereferenceable(12) %2, %"core::fmt::Formatter"* dereferenceable(52) %1)
store i8 %3, i8* %abi_cast
%4 = bitcast %"core::result::Result<(), core::fmt::Error>"* %_0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %abi_cast, i32 1, i32 1, i1 false)
br label %bb1
bb1: ; preds = %start
%5 = bitcast %"core::result::Result<(), core::fmt::Error>"* %_0 to i8*
%6 = load i8, i8* %5, align 1
ret i8 %6
}
; Function Attrs: inlinehint uwtable
define internal i32* @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$10as_mut_ptr17h5d245b89f8bcd5eeE"(i32* nonnull, i32) unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
ret i32* %0
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(4) i32* @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$17get_unchecked_mut17h87070274c2841df9E"(i32* nonnull, i32, i32) unnamed_addr #0 personality i32 (i32, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%personalityslot = alloca { i8*, i32 }
br label %start
start: ; preds = %entry-block
%3 = invoke dereferenceable(4) i32* @"_ZN58_$LT$usize$u20$as$u20$core..slice..SliceIndex$LT$T$GT$$GT$17get_unchecked_mut17h03bc40300e5b3901E"(i32 %2, i32* nonnull %0, i32 %1)
to label %bb2 unwind label %cleanup
bb1: ; preds = %cleanup
%4 = load { i8*, i32 }, { i8*, i32 }* %personalityslot
resume { i8*, i32 } %4
bb2: ; preds = %start
ret i32* %3
cleanup: ; preds = %start
%5 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %5, { i8*, i32 }* %personalityslot
br label %bb1
}
; Function Attrs: inlinehint uwtable
define internal i32 @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$3len17hf53211ce24d9fa62E"(i32* noalias nonnull readonly, i32) unnamed_addr #0 {
entry-block:
%transmute_temp = alloca %"core::slice::Repr<isize>"
br label %start
start: ; preds = %entry-block
%2 = bitcast %"core::slice::Repr<isize>"* %transmute_temp to { i32*, i32 }*
%3 = getelementptr inbounds { i32*, i32 }, { i32*, i32 }* %2, i32 0, i32 0
store i32* %0, i32** %3, align 4
%4 = getelementptr inbounds { i32*, i32 }, { i32*, i32 }* %2, i32 0, i32 1
store i32 %1, i32* %4, align 4
%5 = getelementptr inbounds %"core::slice::Repr<isize>", %"core::slice::Repr<isize>"* %transmute_temp, i32 0, i32 0
%6 = getelementptr inbounds %"core::slice::Repr<isize>", %"core::slice::Repr<isize>"* %transmute_temp, i32 0, i32 1
%7 = load i32*, i32** %5
%8 = load i32, i32* %6
br label %bb1
bb1: ; preds = %start
ret i32 %8
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$4iter17h31c23eea4690360dE"(%"core::slice::Iter<isize>"* noalias nocapture sret dereferenceable(8), i32* noalias nonnull readonly, i32) unnamed_addr #0 {
entry-block:
%_30 = alloca %"core::marker::PhantomData<&isize>"
%_14 = alloca i32*
%p = alloca i32*
br label %start
start: ; preds = %entry-block
%3 = call i32 @_ZN4core3mem7size_of17hcaa7f7532e110d10E()
br label %bb1
bb1: ; preds = %start
%4 = icmp eq i32 %3, 0
br i1 %4, label %bb2, label %bb3
bb2: ; preds = %bb1
store i32* inttoptr (i32 1 to i32*), i32** %p
br label %bb7
bb3: ; preds = %bb1
%5 = call i32* @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$6as_ptr17hc506f33bca2e14e5E"(i32* noalias nonnull readonly %1, i32 %2)
br label %bb4
bb4: ; preds = %bb3
%6 = call zeroext i1 @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$7is_null17h6966f69e11eb5f3bE"(i32* %5)
br label %bb5
bb5: ; preds = %bb4
%7 = xor i1 %6, true
call void @llvm.assume(i1 %7)
br label %bb6
bb6: ; preds = %bb5
store i32* %5, i32** %p
br label %bb7
bb7: ; preds = %bb6, %bb2
%8 = load i32*, i32** %p
%9 = load i32*, i32** %p
%10 = call i32 @_ZN4core3mem7size_of17hcaa7f7532e110d10E()
br label %bb8
bb8: ; preds = %bb7
%11 = icmp eq i32 %10, 0
br i1 %11, label %bb9, label %bb10
bb9: ; preds = %bb8
%12 = bitcast i32* %9 to i8*
%13 = call i32 @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$3len17hf53211ce24d9fa62E"(i32* noalias nonnull readonly %1, i32 %2)
br label %bb11
bb10: ; preds = %bb8
%14 = call i32 @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$3len17hf53211ce24d9fa62E"(i32* noalias nonnull readonly %1, i32 %2)
br label %bb13
bb11: ; preds = %bb9
%15 = call i8* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$15wrapping_offset17h1595897c08996aa9E"(i8* %12, i32 %13)
br label %bb12
bb12: ; preds = %bb11
%16 = bitcast i8* %15 to i32*
store i32* %16, i32** %_14
br label %bb15
bb13: ; preds = %bb10
%17 = call i32* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$6offset17h1756066fd9968d61E"(i32* %9, i32 %14)
store i32* %17, i32** %_14
br label %bb14
bb14: ; preds = %bb13
br label %bb15
bb15: ; preds = %bb14, %bb12
%18 = getelementptr inbounds %"core::slice::Iter<isize>", %"core::slice::Iter<isize>"* %0, i32 0, i32 0
store i32* %8, i32** %18
%19 = load i32*, i32** %_14
%20 = getelementptr inbounds %"core::slice::Iter<isize>", %"core::slice::Iter<isize>"* %0, i32 0, i32 1
store i32* %19, i32** %20
ret void
}
; Function Attrs: inlinehint uwtable
define internal i32* @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$6as_ptr17hc506f33bca2e14e5E"(i32* noalias nonnull readonly, i32) unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
ret i32* %0
}
; Function Attrs: uwtable
define internal void @"_ZN54_$LT$I$u20$as$u20$core..iter..traits..IntoIterator$GT$9into_iter17h628d6c7f3abe60e7E"(%"core::slice::Iter<isize>"* noalias nocapture sret dereferenceable(8), %"core::slice::Iter<isize>"* noalias nocapture dereferenceable(8)) unnamed_addr #1 {
entry-block:
%_3 = alloca %"core::slice::Iter<isize>"
%self = alloca %"core::slice::Iter<isize>"
br label %start
start: ; preds = %entry-block
%2 = bitcast %"core::slice::Iter<isize>"* %1 to i8*
%3 = bitcast %"core::slice::Iter<isize>"* %self to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* %2, i32 8, i32 4, i1 false)
%4 = bitcast %"core::slice::Iter<isize>"* %self to i8*
%5 = bitcast %"core::slice::Iter<isize>"* %_3 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %5, i8* %4, i32 8, i32 4, i1 false)
%6 = bitcast %"core::slice::Iter<isize>"* %_3 to i8*
%7 = bitcast %"core::slice::Iter<isize>"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %7, i8* %6, i32 8, i32 4, i1 false)
ret void
}
; Function Attrs: uwtable
define internal void @"_ZN54_$LT$I$u20$as$u20$core..iter..traits..IntoIterator$GT$9into_iter17h883a2a73801cd837E"(%"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* noalias nocapture sret dereferenceable(12), %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* noalias nocapture dereferenceable(12)) unnamed_addr #1 {
entry-block:
%_3 = alloca %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"
%self = alloca %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"
br label %start
start: ; preds = %entry-block
%2 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %1 to i8*
%3 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %self to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* %2, i32 12, i32 4, i1 false)
%4 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %self to i8*
%5 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %_3 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %5, i8* %4, i32 12, i32 4, i1 false)
%6 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %_3 to i8*
%7 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %7, i8* %6, i32 12, i32 4, i1 false)
ret void
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(4) i32* @"_ZN58_$LT$usize$u20$as$u20$core..slice..SliceIndex$LT$T$GT$$GT$17get_unchecked_mut17h03bc40300e5b3901E"(i32, i32* nonnull, i32) unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
%3 = call i32* @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$10as_mut_ptr17h5d245b89f8bcd5eeE"(i32* nonnull %1, i32 %2)
br label %bb1
bb1: ; preds = %start
%4 = call i32* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$6offset17h5a99e5f4521011f5E"(i32* %3, i32 %0)
br label %bb2
bb2: ; preds = %bb1
ret i32* %4
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN5alloc4heap10deallocate17h5acaa15d61cc071bE(i8*, i32, i32) unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
call void @__rust_deallocate(i8* %0, i32 %1, i32 %2)
br label %bb1
bb1: ; preds = %start
ret void
}
; Function Attrs: inlinehint uwtable
define internal i8* @_ZN5alloc4heap10reallocate17hbd9f01cd45135beeE(i8*, i32, i32, i32) unnamed_addr #0 {
entry-block:
%tmp_ret1.i = alloca %"core::fmt::ArgumentV1"
%tmp_ret.i = alloca %"core::fmt::ArgumentV1"
%_43.i = alloca { i32* }
%_42.i = alloca [1 x %"core::fmt::ArgumentV1"]
%_37.i = alloca %"core::fmt::Arguments"
%_33.i = alloca {}
%_32.i = alloca {}
%_24.i = alloca { i32* }
%_23.i = alloca [1 x %"core::fmt::ArgumentV1"]
%_18.i = alloca %"core::fmt::Arguments"
%_13.i = alloca {}
%_12.i = alloca {}
%_6.i = alloca {}
%_5.i = alloca {}
%align.i = alloca i32
%size.i = alloca i32
%_0.i = alloca {}
br label %start
start: ; preds = %entry-block
store i32 %2, i32* %size.i
store i32 %3, i32* %align.i
%4 = load i32, i32* %size.i
%5 = icmp ne i32 %4, 0
%6 = xor i1 %5, true
br i1 %6, label %bb1.i, label %bb2.i
bb1.i: ; preds = %start
call void @_ZN4core9panicking5panic17hb790668694ff6b20E({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(20) @_ZN5alloc4heap24check_size_and_alignment14_MSG_FILE_LINE17h00c3435f05a4fcfdE)
unreachable
bb2.i: ; preds = %start
%7 = load i32, i32* %size.i
%8 = icmp ule i32 %7, 2147483647
%9 = xor i1 %8, true
br i1 %9, label %bb3.i, label %bb4.i
bb3.i: ; preds = %bb2.i
%10 = load %str_slice*, %str_slice** getelementptr inbounds ({ %str_slice*, i32 }, { %str_slice*, i32 }* @_ZN5alloc4heap24check_size_and_alignment15__STATIC_FMTSTR17h557f9e10d9f56ed3E, i32 0, i32 0), !nonnull !9
%11 = load i32, i32* getelementptr inbounds ({ %str_slice*, i32 }, { %str_slice*, i32 }* @_ZN5alloc4heap24check_size_and_alignment15__STATIC_FMTSTR17h557f9e10d9f56ed3E, i32 0, i32 1)
%12 = getelementptr inbounds { i32* }, { i32* }* %_24.i, i32 0, i32 0
store i32* %size.i, i32** %12
%13 = getelementptr inbounds { i32* }, { i32* }* %_24.i, i32 0, i32 0
%14 = load i32*, i32** %13, !nonnull !9
call void @_ZN4core3fmt10ArgumentV13new17h8b30214a05ae76acE(%"core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(8) %tmp_ret.i, i32* noalias readonly dereferenceable(4) %14, i8 (i32*, %"core::fmt::Formatter"*)* @"_ZN4core3fmt3num54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17hd186a95412e1e036E")
%15 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %tmp_ret.i, i32 0, i32 0
%16 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %tmp_ret.i, i32 0, i32 1
%17 = load %"core::fmt::Void"*, %"core::fmt::Void"** %15, !nonnull !9
%18 = load i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)*, i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)** %16
%19 = getelementptr inbounds [1 x %"core::fmt::ArgumentV1"], [1 x %"core::fmt::ArgumentV1"]* %_23.i, i32 0, i32 0
%20 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %19, i32 0, i32 0
store %"core::fmt::Void"* %17, %"core::fmt::Void"** %20
%21 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %19, i32 0, i32 1
store i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)* %18, i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)** %21
%22 = bitcast [1 x %"core::fmt::ArgumentV1"]* %_23.i to %"core::fmt::ArgumentV1"*
call void @_ZN4core3fmt9Arguments6new_v117haf3166c487b5521aE(%"core::fmt::Arguments"* noalias nocapture sret dereferenceable(24) %_18.i, %str_slice* noalias nonnull readonly %10, i32 %11, %"core::fmt::ArgumentV1"* noalias nonnull readonly %22, i32 1)
call void @_ZN4core9panicking9panic_fmt17he9c7f335d160b59dE(%"core::fmt::Arguments"* noalias nocapture dereferenceable(24) %_18.i, { %str_slice, i32 }* noalias readonly dereferenceable(12) @_ZN5alloc4heap24check_size_and_alignment10_FILE_LINE17h86fe1dae5ff439efE)
unreachable
bb4.i: ; preds = %bb2.i
%23 = load i32, i32* %align.i
%24 = call zeroext i1 @"_ZN4core3num23_$LT$impl$u20$usize$GT$15is_power_of_two17hc8f3d64c044ae4c4E"(i32 %23)
%25 = xor i1 %24, true
br i1 %25, label %bb8.i, label %_ZN5alloc4heap24check_size_and_alignment17h02338cd31f2cbb59E.exit
bb8.i: ; preds = %bb4.i
%26 = load %str_slice*, %str_slice** getelementptr inbounds ({ %str_slice*, i32 }, { %str_slice*, i32 }* @_ZN5alloc4heap24check_size_and_alignment15__STATIC_FMTSTR17h0c070412f9a1704fE, i32 0, i32 0), !nonnull !9
%27 = load i32, i32* getelementptr inbounds ({ %str_slice*, i32 }, { %str_slice*, i32 }* @_ZN5alloc4heap24check_size_and_alignment15__STATIC_FMTSTR17h0c070412f9a1704fE, i32 0, i32 1)
%28 = getelementptr inbounds { i32* }, { i32* }* %_43.i, i32 0, i32 0
store i32* %align.i, i32** %28
%29 = getelementptr inbounds { i32* }, { i32* }* %_43.i, i32 0, i32 0
%30 = load i32*, i32** %29, !nonnull !9
call void @_ZN4core3fmt10ArgumentV13new17h8b30214a05ae76acE(%"core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(8) %tmp_ret1.i, i32* noalias readonly dereferenceable(4) %30, i8 (i32*, %"core::fmt::Formatter"*)* @"_ZN4core3fmt3num54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17hd186a95412e1e036E")
%31 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %tmp_ret1.i, i32 0, i32 0
%32 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %tmp_ret1.i, i32 0, i32 1
%33 = load %"core::fmt::Void"*, %"core::fmt::Void"** %31, !nonnull !9
%34 = load i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)*, i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)** %32
%35 = getelementptr inbounds [1 x %"core::fmt::ArgumentV1"], [1 x %"core::fmt::ArgumentV1"]* %_42.i, i32 0, i32 0
%36 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %35, i32 0, i32 0
store %"core::fmt::Void"* %33, %"core::fmt::Void"** %36
%37 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %35, i32 0, i32 1
store i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)* %34, i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)** %37
%38 = bitcast [1 x %"core::fmt::ArgumentV1"]* %_42.i to %"core::fmt::ArgumentV1"*
call void @_ZN4core3fmt9Arguments6new_v117haf3166c487b5521aE(%"core::fmt::Arguments"* noalias nocapture sret dereferenceable(24) %_37.i, %str_slice* noalias nonnull readonly %26, i32 %27, %"core::fmt::ArgumentV1"* noalias nonnull readonly %38, i32 1)
call void @_ZN4core9panicking9panic_fmt17he9c7f335d160b59dE(%"core::fmt::Arguments"* noalias nocapture dereferenceable(24) %_37.i, { %str_slice, i32 }* noalias readonly dereferenceable(12) @_ZN5alloc4heap24check_size_and_alignment10_FILE_LINE17h5aab51be75daf954E)
unreachable
_ZN5alloc4heap24check_size_and_alignment17h02338cd31f2cbb59E.exit: ; preds = %bb4.i
br label %bb1
bb1: ; preds = %_ZN5alloc4heap24check_size_and_alignment17h02338cd31f2cbb59E.exit
%39 = call i8* @__rust_reallocate(i8* %0, i32 %1, i32 %2, i32 %3)
br label %bb2
bb2: ; preds = %bb1
ret i8* %39
}
; Function Attrs: inlinehint uwtable
define internal i8* @_ZN5alloc4heap8allocate17hb49e39ab82f954faE(i32, i32) unnamed_addr #0 {
entry-block:
%tmp_ret1.i = alloca %"core::fmt::ArgumentV1"
%tmp_ret.i = alloca %"core::fmt::ArgumentV1"
%_43.i = alloca { i32* }
%_42.i = alloca [1 x %"core::fmt::ArgumentV1"]
%_37.i = alloca %"core::fmt::Arguments"
%_33.i = alloca {}
%_32.i = alloca {}
%_24.i = alloca { i32* }
%_23.i = alloca [1 x %"core::fmt::ArgumentV1"]
%_18.i = alloca %"core::fmt::Arguments"
%_13.i = alloca {}
%_12.i = alloca {}
%_6.i = alloca {}
%_5.i = alloca {}
%align.i = alloca i32
%size.i = alloca i32
%_0.i = alloca {}
br label %start
start: ; preds = %entry-block
store i32 %0, i32* %size.i
store i32 %1, i32* %align.i
%2 = load i32, i32* %size.i
%3 = icmp ne i32 %2, 0
%4 = xor i1 %3, true
br i1 %4, label %bb1.i, label %bb2.i
bb1.i: ; preds = %start
call void @_ZN4core9panicking5panic17hb790668694ff6b20E({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(20) @_ZN5alloc4heap24check_size_and_alignment14_MSG_FILE_LINE17h00c3435f05a4fcfdE)
unreachable
bb2.i: ; preds = %start
%5 = load i32, i32* %size.i
%6 = icmp ule i32 %5, 2147483647
%7 = xor i1 %6, true
br i1 %7, label %bb3.i, label %bb4.i
bb3.i: ; preds = %bb2.i
%8 = load %str_slice*, %str_slice** getelementptr inbounds ({ %str_slice*, i32 }, { %str_slice*, i32 }* @_ZN5alloc4heap24check_size_and_alignment15__STATIC_FMTSTR17h557f9e10d9f56ed3E, i32 0, i32 0), !nonnull !9
%9 = load i32, i32* getelementptr inbounds ({ %str_slice*, i32 }, { %str_slice*, i32 }* @_ZN5alloc4heap24check_size_and_alignment15__STATIC_FMTSTR17h557f9e10d9f56ed3E, i32 0, i32 1)
%10 = getelementptr inbounds { i32* }, { i32* }* %_24.i, i32 0, i32 0
store i32* %size.i, i32** %10
%11 = getelementptr inbounds { i32* }, { i32* }* %_24.i, i32 0, i32 0
%12 = load i32*, i32** %11, !nonnull !9
call void @_ZN4core3fmt10ArgumentV13new17h8b30214a05ae76acE(%"core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(8) %tmp_ret.i, i32* noalias readonly dereferenceable(4) %12, i8 (i32*, %"core::fmt::Formatter"*)* @"_ZN4core3fmt3num54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17hd186a95412e1e036E")
%13 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %tmp_ret.i, i32 0, i32 0
%14 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %tmp_ret.i, i32 0, i32 1
%15 = load %"core::fmt::Void"*, %"core::fmt::Void"** %13, !nonnull !9
%16 = load i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)*, i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)** %14
%17 = getelementptr inbounds [1 x %"core::fmt::ArgumentV1"], [1 x %"core::fmt::ArgumentV1"]* %_23.i, i32 0, i32 0
%18 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %17, i32 0, i32 0
store %"core::fmt::Void"* %15, %"core::fmt::Void"** %18
%19 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %17, i32 0, i32 1
store i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)* %16, i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)** %19
%20 = bitcast [1 x %"core::fmt::ArgumentV1"]* %_23.i to %"core::fmt::ArgumentV1"*
call void @_ZN4core3fmt9Arguments6new_v117haf3166c487b5521aE(%"core::fmt::Arguments"* noalias nocapture sret dereferenceable(24) %_18.i, %str_slice* noalias nonnull readonly %8, i32 %9, %"core::fmt::ArgumentV1"* noalias nonnull readonly %20, i32 1)
call void @_ZN4core9panicking9panic_fmt17he9c7f335d160b59dE(%"core::fmt::Arguments"* noalias nocapture dereferenceable(24) %_18.i, { %str_slice, i32 }* noalias readonly dereferenceable(12) @_ZN5alloc4heap24check_size_and_alignment10_FILE_LINE17h86fe1dae5ff439efE)
unreachable
bb4.i: ; preds = %bb2.i
%21 = load i32, i32* %align.i
%22 = call zeroext i1 @"_ZN4core3num23_$LT$impl$u20$usize$GT$15is_power_of_two17hc8f3d64c044ae4c4E"(i32 %21)
%23 = xor i1 %22, true
br i1 %23, label %bb8.i, label %_ZN5alloc4heap24check_size_and_alignment17h02338cd31f2cbb59E.exit
bb8.i: ; preds = %bb4.i
%24 = load %str_slice*, %str_slice** getelementptr inbounds ({ %str_slice*, i32 }, { %str_slice*, i32 }* @_ZN5alloc4heap24check_size_and_alignment15__STATIC_FMTSTR17h0c070412f9a1704fE, i32 0, i32 0), !nonnull !9
%25 = load i32, i32* getelementptr inbounds ({ %str_slice*, i32 }, { %str_slice*, i32 }* @_ZN5alloc4heap24check_size_and_alignment15__STATIC_FMTSTR17h0c070412f9a1704fE, i32 0, i32 1)
%26 = getelementptr inbounds { i32* }, { i32* }* %_43.i, i32 0, i32 0
store i32* %align.i, i32** %26
%27 = getelementptr inbounds { i32* }, { i32* }* %_43.i, i32 0, i32 0
%28 = load i32*, i32** %27, !nonnull !9
call void @_ZN4core3fmt10ArgumentV13new17h8b30214a05ae76acE(%"core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(8) %tmp_ret1.i, i32* noalias readonly dereferenceable(4) %28, i8 (i32*, %"core::fmt::Formatter"*)* @"_ZN4core3fmt3num54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17hd186a95412e1e036E")
%29 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %tmp_ret1.i, i32 0, i32 0
%30 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %tmp_ret1.i, i32 0, i32 1
%31 = load %"core::fmt::Void"*, %"core::fmt::Void"** %29, !nonnull !9
%32 = load i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)*, i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)** %30
%33 = getelementptr inbounds [1 x %"core::fmt::ArgumentV1"], [1 x %"core::fmt::ArgumentV1"]* %_42.i, i32 0, i32 0
%34 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %33, i32 0, i32 0
store %"core::fmt::Void"* %31, %"core::fmt::Void"** %34
%35 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %33, i32 0, i32 1
store i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)* %32, i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)** %35
%36 = bitcast [1 x %"core::fmt::ArgumentV1"]* %_42.i to %"core::fmt::ArgumentV1"*
call void @_ZN4core3fmt9Arguments6new_v117haf3166c487b5521aE(%"core::fmt::Arguments"* noalias nocapture sret dereferenceable(24) %_37.i, %str_slice* noalias nonnull readonly %24, i32 %25, %"core::fmt::ArgumentV1"* noalias nonnull readonly %36, i32 1)
call void @_ZN4core9panicking9panic_fmt17he9c7f335d160b59dE(%"core::fmt::Arguments"* noalias nocapture dereferenceable(24) %_37.i, { %str_slice, i32 }* noalias readonly dereferenceable(12) @_ZN5alloc4heap24check_size_and_alignment10_FILE_LINE17h5aab51be75daf954E)
unreachable
_ZN5alloc4heap24check_size_and_alignment17h02338cd31f2cbb59E.exit: ; preds = %bb4.i
br label %bb1
bb1: ; preds = %_ZN5alloc4heap24check_size_and_alignment17h02338cd31f2cbb59E.exit
%37 = call i8* @__rust_allocate(i32 %0, i32 %1)
br label %bb2
bb2: ; preds = %bb1
ret i8* %37
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN5alloc7raw_vec11alloc_guard17h6a704e09c67af29eE(i32) unnamed_addr #0 {
entry-block:
%_5 = alloca {}
%_0 = alloca {}
br label %start
start: ; preds = %entry-block
%1 = call i32 @_ZN4core3mem7size_of17h8501faafc0670793E()
br label %bb1
bb1: ; preds = %start
%2 = icmp ult i32 %1, 8
br i1 %2, label %bb2, label %bb3
bb2: ; preds = %bb1
%3 = icmp ule i32 %0, 2147483647
%4 = xor i1 %3, true
br i1 %4, label %bb4, label %bb5
bb3: ; preds = %bb1
br label %bb6
bb4: ; preds = %bb2
call void @_ZN4core9panicking5panic17hb790668694ff6b20E({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(20) @_ZN5alloc7raw_vec11alloc_guard14_MSG_FILE_LINE17ha97eb2e42644e724E)
unreachable
bb5: ; preds = %bb2
br label %bb6
bb6: ; preds = %bb3, %bb5
ret void
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(4) i32** @"_ZN63_$LT$core..ptr..Unique$LT$T$GT$$u20$as$u20$core..ops..Deref$GT$5deref17hd16859f46ea91a08E"(%"core::ptr::Unique<isize>"* noalias readonly dereferenceable(4)) unnamed_addr #0 {
entry-block:
%transmute_temp = alloca i32**
br label %start
start: ; preds = %entry-block
%1 = getelementptr inbounds %"core::ptr::Unique<isize>", %"core::ptr::Unique<isize>"* %0, i32 0, i32 0
%2 = call dereferenceable(4) i32** @"_ZN68_$LT$core..nonzero..NonZero$LT$T$GT$$u20$as$u20$core..ops..Deref$GT$5deref17h10cc308805aa5594E"(%"core::nonzero::NonZero<*const isize>"* noalias readonly dereferenceable(4) %1)
br label %bb1
bb1: ; preds = %start
store i32** %2, i32*** %transmute_temp, align 4
%3 = load i32**, i32*** %transmute_temp, !nonnull !9
br label %bb2
bb2: ; preds = %bb1
ret i32** %3
}
; Function Attrs: uwtable
define internal void @"_ZN66_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..Drop$GT$4drop17h5d15ec6c0a41d3cdE"(%"collections::vec::Vec<isize>"* dereferenceable(12)) unnamed_addr #1 {
entry-block:
%_9 = alloca %"core::ops::RangeFull"
%_0 = alloca {}
br label %start
start: ; preds = %entry-block
%1 = call { i32*, i32 } @"_ZN98_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..IndexMut$LT$core..ops..RangeFull$GT$$GT$9index_mut17hc7cc9925558b3123E"(%"collections::vec::Vec<isize>"* dereferenceable(12) %0)
%2 = extractvalue { i32*, i32 } %1, 0
%3 = extractvalue { i32*, i32 } %1, 1
br label %bb1
bb1: ; preds = %start
br label %bb2
bb2: ; preds = %bb1
ret void
}
; Function Attrs: uwtable
define internal void @"_ZN67_$LT$alloc..raw_vec..RawVec$LT$T$GT$$u20$as$u20$core..ops..Drop$GT$4drop17h828055aa96f635aaE"(%"alloc::raw_vec::RawVec<isize>"* dereferenceable(8)) unnamed_addr #1 {
entry-block:
%_4 = alloca i8
%_0 = alloca {}
br label %start
start: ; preds = %entry-block
%1 = call i32 @_ZN4core3mem7size_of17hcaa7f7532e110d10E()
br label %bb1
bb1: ; preds = %start
%2 = icmp ne i32 %1, 0
br i1 %2, label %bb4, label %bb3
bb2: ; preds = %bb4
store i8 1, i8* %_4
br label %bb5
bb3: ; preds = %bb4, %bb1
store i8 0, i8* %_4
br label %bb5
bb4: ; preds = %bb1
%3 = getelementptr inbounds %"alloc::raw_vec::RawVec<isize>", %"alloc::raw_vec::RawVec<isize>"* %0, i32 0, i32 1
%4 = load i32, i32* %3
%5 = icmp ne i32 %4, 0
br i1 %5, label %bb2, label %bb3
bb5: ; preds = %bb3, %bb2
%6 = load i8, i8* %_4, !range !1
%7 = trunc i8 %6 to i1
br i1 %7, label %bb6, label %bb7
bb6: ; preds = %bb5
%8 = call i32 @_ZN4core3mem8align_of17h65ab8586e36c1162E()
br label %bb8
bb7: ; preds = %bb5
br label %bb12
bb8: ; preds = %bb6
%9 = getelementptr inbounds %"alloc::raw_vec::RawVec<isize>", %"alloc::raw_vec::RawVec<isize>"* %0, i32 0, i32 1
%10 = load i32, i32* %9
%11 = call { i32, i1 } @llvm.umul.with.overflow.i32(i32 %1, i32 %10)
%12 = extractvalue { i32, i1 } %11, 0
%13 = extractvalue { i32, i1 } %11, 1
%14 = call i1 @llvm.expect.i1(i1 %13, i1 false)
br i1 %14, label %panic, label %bb9
bb9: ; preds = %bb8
%15 = getelementptr inbounds %"alloc::raw_vec::RawVec<isize>", %"alloc::raw_vec::RawVec<isize>"* %0, i32 0, i32 0
%16 = call dereferenceable(4) i32** @"_ZN63_$LT$core..ptr..Unique$LT$T$GT$$u20$as$u20$core..ops..Deref$GT$5deref17hd16859f46ea91a08E"(%"core::ptr::Unique<isize>"* noalias readonly dereferenceable(4) %15)
br label %bb10
bb10: ; preds = %bb9
%17 = load i32*, i32** %16
%18 = bitcast i32* %17 to i8*
call void @_ZN5alloc4heap10deallocate17h5acaa15d61cc071bE(i8* %18, i32 %12, i32 %8)
br label %bb11
bb11: ; preds = %bb10
br label %bb12
bb12: ; preds = %bb7, %bb11
ret void
panic: ; preds = %bb8
call void @_ZN4core9panicking5panic17hb790668694ff6b20E({ %str_slice, %str_slice, i32 }* @panic_loc.g)
unreachable
}
; Function Attrs: uwtable
define internal i8 @"_ZN67_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17h0d27c943cb81dbc0E"(%"collections::vec::Vec<isize>"* noalias readonly dereferenceable(12), %"core::fmt::Formatter"* dereferenceable(52)) unnamed_addr #1 {
entry-block:
%abi_cast = alloca i8
%_0 = alloca %"core::result::Result<(), core::fmt::Error>"
br label %start
start: ; preds = %entry-block
%2 = call { i32*, i32 } @"_ZN67_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..Deref$GT$5deref17hda73ccf6deeee640E"(%"collections::vec::Vec<isize>"* noalias readonly dereferenceable(12) %0)
%3 = extractvalue { i32*, i32 } %2, 0
%4 = extractvalue { i32*, i32 } %2, 1
br label %bb1
bb1: ; preds = %start
%5 = call i8 @"_ZN48_$LT$$u5b$T$u5d$$u20$as$u20$core..fmt..Debug$GT$3fmt17h36f3c98f6f281e1bE"(i32* noalias nonnull readonly %3, i32 %4, %"core::fmt::Formatter"* dereferenceable(52) %1)
store i8 %5, i8* %abi_cast
%6 = bitcast %"core::result::Result<(), core::fmt::Error>"* %_0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %abi_cast, i32 1, i32 1, i1 false)
br label %bb2
bb2: ; preds = %bb1
%7 = bitcast %"core::result::Result<(), core::fmt::Error>"* %_0 to i8*
%8 = load i8, i8* %7, align 1
ret i8 %8
}
; Function Attrs: uwtable
define internal { i32*, i32 } @"_ZN67_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..Deref$GT$5deref17hda73ccf6deeee640E"(%"collections::vec::Vec<isize>"* noalias readonly dereferenceable(12)) unnamed_addr #1 {
entry-block:
br label %start
start: ; preds = %entry-block
%1 = getelementptr inbounds %"collections::vec::Vec<isize>", %"collections::vec::Vec<isize>"* %0, i32 0, i32 0
%2 = call i32* @"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$3ptr17h6e6dbca3bb38b248E"(%"alloc::raw_vec::RawVec<isize>"* noalias readonly dereferenceable(8) %1)
br label %bb1
bb1: ; preds = %start
%3 = call zeroext i1 @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17h4700ca1333b78896E"(i32* %2)
br label %bb2
bb2: ; preds = %bb1
%4 = xor i1 %3, true
call void @llvm.assume(i1 %4)
br label %bb3
bb3: ; preds = %bb2
%5 = getelementptr inbounds %"collections::vec::Vec<isize>", %"collections::vec::Vec<isize>"* %0, i32 0, i32 1
%6 = load i32, i32* %5
%7 = call { i32*, i32 } @_ZN4core5slice14from_raw_parts17h444bffac668187a5E(i32* %2, i32 %6)
%8 = extractvalue { i32*, i32 } %7, 0
%9 = extractvalue { i32*, i32 } %7, 1
br label %bb4
bb4: ; preds = %bb3
%10 = insertvalue { i32*, i32 } undef, i32* %8, 0
%11 = insertvalue { i32*, i32 } %10, i32 %9, 1
ret { i32*, i32 } %11
}
; Function Attrs: uwtable
define internal zeroext i1 @"_ZN68_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..SlicePartialEq$LT$A$GT$$GT$5equal17h4cc7b484d57a8cbaE"(i32* noalias nonnull readonly, i32, i32* noalias nonnull readonly, i32) unnamed_addr #1 {
entry-block:
%_11 = alloca {}
%_5 = alloca {}
%_0 = alloca i8
br label %start
start: ; preds = %entry-block
%4 = call i32 @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$3len17hf53211ce24d9fa62E"(i32* noalias nonnull readonly %0, i32 %1)
br label %bb1
bb1: ; preds = %start
%5 = call i32 @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$3len17hf53211ce24d9fa62E"(i32* noalias nonnull readonly %2, i32 %3)
br label %bb2
bb2: ; preds = %bb1
%6 = icmp ne i32 %4, %5
br i1 %6, label %bb3, label %bb4
bb3: ; preds = %bb2
store i8 0, i8* %_0
br label %bb6
bb4: ; preds = %bb2
%7 = call i32* @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$6as_ptr17hc506f33bca2e14e5E"(i32* noalias nonnull readonly %0, i32 %1)
br label %bb7
bb5: ; preds = %bb14, %bb6
%8 = load i8, i8* %_0, !range !1
%9 = trunc i8 %8 to i1
ret i1 %9
bb6: ; preds = %bb9, %bb3
br label %bb5
bb7: ; preds = %bb4
%10 = call i32* @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$6as_ptr17hc506f33bca2e14e5E"(i32* noalias nonnull readonly %2, i32 %3)
br label %bb8
bb8: ; preds = %bb7
%11 = icmp eq i32* %7, %10
br i1 %11, label %bb9, label %bb10
bb9: ; preds = %bb8
store i8 1, i8* %_0
br label %bb6
bb10: ; preds = %bb8
%12 = call i32 @_ZN4core3mem11size_of_val17h89e2907390b55efeE(i32* noalias nonnull readonly %0, i32 %1)
br label %bb11
bb11: ; preds = %bb10
%13 = call i32* @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$6as_ptr17hc506f33bca2e14e5E"(i32* noalias nonnull readonly %0, i32 %1)
br label %bb12
bb12: ; preds = %bb11
%14 = bitcast i32* %13 to i8*
%15 = call i32* @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$6as_ptr17hc506f33bca2e14e5E"(i32* noalias nonnull readonly %2, i32 %3)
br label %bb13
bb13: ; preds = %bb12
%16 = bitcast i32* %15 to i8*
%17 = call i32 @memcmp(i8* %14, i8* %16, i32 %12)
br label %bb14
bb14: ; preds = %bb13
%18 = icmp eq i32 %17, 0
%19 = zext i1 %18 to i8
store i8 %19, i8* %_0
br label %bb5
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(4) i32** @"_ZN68_$LT$core..nonzero..NonZero$LT$T$GT$$u20$as$u20$core..ops..Deref$GT$5deref17h10cc308805aa5594E"(%"core::nonzero::NonZero<*const isize>"* noalias readonly dereferenceable(4)) unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
%1 = getelementptr inbounds %"core::nonzero::NonZero<*const isize>", %"core::nonzero::NonZero<*const isize>"* %0, i32 0, i32 0
ret i32** %1
}
; Function Attrs: uwtable
define internal { i32*, i32 } @"_ZN70_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..DerefMut$GT$9deref_mut17hb7faaf01903b8a3eE"(%"collections::vec::Vec<isize>"* dereferenceable(12)) unnamed_addr #1 {
entry-block:
br label %start
start: ; preds = %entry-block
%1 = getelementptr inbounds %"collections::vec::Vec<isize>", %"collections::vec::Vec<isize>"* %0, i32 0, i32 0
%2 = call i32* @"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$3ptr17h6e6dbca3bb38b248E"(%"alloc::raw_vec::RawVec<isize>"* noalias readonly dereferenceable(8) %1)
br label %bb1
bb1: ; preds = %start
%3 = call zeroext i1 @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17h4700ca1333b78896E"(i32* %2)
br label %bb2
bb2: ; preds = %bb1
%4 = xor i1 %3, true
call void @llvm.assume(i1 %4)
br label %bb3
bb3: ; preds = %bb2
%5 = getelementptr inbounds %"collections::vec::Vec<isize>", %"collections::vec::Vec<isize>"* %0, i32 0, i32 1
%6 = load i32, i32* %5
%7 = call { i32*, i32 } @_ZN4core5slice18from_raw_parts_mut17ha40066db014fefddE(i32* %2, i32 %6)
%8 = extractvalue { i32*, i32 } %7, 0
%9 = extractvalue { i32*, i32 } %7, 1
br label %bb4
bb4: ; preds = %bb3
%10 = insertvalue { i32*, i32 } undef, i32* %8, 0
%11 = insertvalue { i32*, i32 } %10, i32 %9, 1
ret { i32*, i32 } %11
}
; Function Attrs: inlinehint uwtable
define internal { i32*, i32 } @"_ZN73_$LT$core..ops..RangeFull$u20$as$u20$core..slice..SliceIndex$LT$T$GT$$GT$5index17h862c129474b254c0E"(i32* noalias nonnull readonly, i32) unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
%2 = insertvalue { i32*, i32 } undef, i32* %0, 0
%3 = insertvalue { i32*, i32 } %2, i32 %1, 1
ret { i32*, i32 } %3
}
; Function Attrs: inlinehint uwtable
define internal i8* @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h168758974c2a2892E"(%"core::slice::Iter<isize>"* dereferenceable(8)) unnamed_addr #0 {
entry-block:
%_0.i.i = alloca i32*
%_17 = alloca i32*
%_3 = alloca {}
%_0 = alloca i8*
br label %start
start: ; preds = %entry-block
%1 = call i32 @_ZN4core3mem7size_of17hcaa7f7532e110d10E()
br label %bb1
bb1: ; preds = %start
%2 = icmp ne i32 %1, 0
br i1 %2, label %bb2, label %bb3
bb2: ; preds = %bb1
%3 = getelementptr inbounds %"core::slice::Iter<isize>", %"core::slice::Iter<isize>"* %0, i32 0, i32 0
%4 = load i32*, i32** %3
%5 = call zeroext i1 @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$7is_null17h6966f69e11eb5f3bE"(i32* %4)
br label %bb4
bb3: ; preds = %bb1
br label %bb8
bb4: ; preds = %bb2
%6 = xor i1 %5, true
call void @llvm.assume(i1 %6)
br label %bb5
bb5: ; preds = %bb4
%7 = getelementptr inbounds %"core::slice::Iter<isize>", %"core::slice::Iter<isize>"* %0, i32 0, i32 1
%8 = load i32*, i32** %7
%9 = call zeroext i1 @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$7is_null17h6966f69e11eb5f3bE"(i32* %8)
br label %bb6
bb6: ; preds = %bb5
%10 = xor i1 %9, true
call void @llvm.assume(i1 %10)
br label %bb7
bb7: ; preds = %bb6
br label %bb8
bb8: ; preds = %bb3, %bb7
%11 = getelementptr inbounds %"core::slice::Iter<isize>", %"core::slice::Iter<isize>"* %0, i32 0, i32 0
%12 = load i32*, i32** %11
%13 = getelementptr inbounds %"core::slice::Iter<isize>", %"core::slice::Iter<isize>"* %0, i32 0, i32 1
%14 = load i32*, i32** %13
%15 = icmp eq i32* %12, %14
br i1 %15, label %bb9, label %bb10
bb9: ; preds = %bb8
store i8* null, i8** %_0
br label %bb16
bb10: ; preds = %bb8
%16 = getelementptr inbounds %"core::slice::Iter<isize>", %"core::slice::Iter<isize>"* %0, i32 0, i32 0
%17 = load i32*, i32** %16
%18 = load i32*, i32** %16
%19 = call i32 @_ZN4core3mem7size_of17hcaa7f7532e110d10E()
%20 = icmp eq i32 %19, 0
br i1 %20, label %bb2.i.i, label %bb3.i.i
bb2.i.i: ; preds = %bb10
%21 = bitcast i32* %18 to i8*
%22 = call i8* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$15wrapping_offset17h1595897c08996aa9E"(i8* %21, i32 1)
%23 = bitcast i8* %22 to i32*
store i32* %23, i32** %_0.i.i
br label %_ZN4core5slice10PointerExt8post_inc17h27614ccdf274e27fE.exit
bb3.i.i: ; preds = %bb10
%24 = call i32* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$6offset17h1756066fd9968d61E"(i32* %18, i32 1)
store i32* %24, i32** %_0.i.i
br label %_ZN4core5slice10PointerExt8post_inc17h27614ccdf274e27fE.exit
_ZN4core5slice10PointerExt8post_inc17h27614ccdf274e27fE.exit: ; preds = %bb2.i.i, %bb3.i.i
%25 = load i32*, i32** %_0.i.i
store i32* %25, i32** %16
br label %bb11
bb11: ; preds = %_ZN4core5slice10PointerExt8post_inc17h27614ccdf274e27fE.exit
%26 = call i32 @_ZN4core3mem7size_of17hcaa7f7532e110d10E()
br label %bb12
bb12: ; preds = %bb11
%27 = icmp eq i32 %26, 0
br i1 %27, label %bb13, label %bb14
bb13: ; preds = %bb12
store i32* inttoptr (i32 1 to i32*), i32** %_17
br label %bb15
bb14: ; preds = %bb12
store i32* %17, i32** %_17
br label %bb15
bb15: ; preds = %bb14, %bb13
%28 = load i32*, i32** %_17, !nonnull !9
%29 = bitcast i8** %_0 to i32**
store i32* %28, i32** %29
br label %bb16
bb16: ; preds = %bb15, %bb9
%30 = load i8*, i8** %_0
ret i8* %30
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN92_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..iter..traits..FromIterator$LT$T$GT$$GT$9from_iter17hb23e12a3a1ca6171E"(%"collections::vec::Vec<isize>"* noalias nocapture sret dereferenceable(12), %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* noalias nocapture dereferenceable(12)) unnamed_addr #0 personality i32 (i32, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%personalityslot = alloca { i8*, i32 }
%_4 = alloca %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"
%_3 = alloca %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"
%iter = alloca %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"
br label %start
start: ; preds = %entry-block
%2 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %1 to i8*
%3 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %iter to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* %2, i32 12, i32 4, i1 false)
%4 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %iter to i8*
%5 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %_4 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %5, i8* %4, i32 12, i32 4, i1 false)
invoke void @"_ZN54_$LT$I$u20$as$u20$core..iter..traits..IntoIterator$GT$9into_iter17h883a2a73801cd837E"(%"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* noalias nocapture sret dereferenceable(12) %_3, %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* noalias nocapture dereferenceable(12) %_4)
to label %bb2 unwind label %cleanup
bb1: ; preds = %cleanup
%6 = load { i8*, i32 }, { i8*, i32 }* %personalityslot
resume { i8*, i32 } %6
bb2: ; preds = %start
invoke void @"_ZN97_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$collections..vec..SpecExtend$LT$T$C$$u20$I$GT$$GT$9from_iter17h16888636024459a4E"(%"collections::vec::Vec<isize>"* noalias nocapture sret dereferenceable(12) %0, %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* noalias nocapture dereferenceable(12) %_3)
to label %bb3 unwind label %cleanup
bb3: ; preds = %bb2
ret void
cleanup: ; preds = %bb2, %start
%7 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %7, { i8*, i32 }* %personalityslot
br label %bb1
}
; Function Attrs: inlinehint uwtable
define internal { i32*, i32 } @"_ZN95_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..Index$LT$core..ops..RangeFull$GT$$GT$5index17h3b3abfed5d3de87bE"(%"collections::vec::Vec<isize>"* noalias readonly dereferenceable(12)) unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
%1 = call { i32*, i32 } @"_ZN67_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..Deref$GT$5deref17hda73ccf6deeee640E"(%"collections::vec::Vec<isize>"* noalias readonly dereferenceable(12) %0)
%2 = extractvalue { i32*, i32 } %1, 0
%3 = extractvalue { i32*, i32 } %1, 1
br label %bb1
bb1: ; preds = %start
%4 = insertvalue { i32*, i32 } undef, i32* %2, 0
%5 = insertvalue { i32*, i32 } %4, i32 %3, 1
ret { i32*, i32 } %5
}
; Function Attrs: uwtable
define internal void @"_ZN97_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$collections..vec..SpecExtend$LT$T$C$$u20$I$GT$$GT$11spec_extend17hf0ed68d83aa74e41E"(%"collections::vec::Vec<isize>"* dereferenceable(12), %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* noalias nocapture dereferenceable(12)) unnamed_addr #1 personality i32 (i32, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%personalityslot = alloca { i8*, i32 }
%_6 = alloca %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"
%iter = alloca %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"
br label %start
start: ; preds = %entry-block
%2 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %1 to i8*
%3 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %iter to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* %2, i32 12, i32 4, i1 false)
%4 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %iter to i8*
%5 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %_6 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %5, i8* %4, i32 12, i32 4, i1 false)
invoke void @"_ZN39_$LT$collections..vec..Vec$LT$T$GT$$GT$16extend_desugared17h49bd5bbc15f3ff84E"(%"collections::vec::Vec<isize>"* dereferenceable(12) %0, %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* noalias nocapture dereferenceable(12) %_6)
to label %bb2 unwind label %cleanup
bb1: ; preds = %cleanup
%6 = load { i8*, i32 }, { i8*, i32 }* %personalityslot
resume { i8*, i32 } %6
bb2: ; preds = %start
ret void
cleanup: ; preds = %start
%7 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %7, { i8*, i32 }* %personalityslot
br label %bb1
}
; Function Attrs: uwtable
define internal void @"_ZN97_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$collections..vec..SpecExtend$LT$T$C$$u20$I$GT$$GT$9from_iter17h16888636024459a4E"(%"collections::vec::Vec<isize>"* noalias nocapture sret dereferenceable(12), %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* noalias nocapture dereferenceable(12)) unnamed_addr #1 personality i32 (i32, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%personalityslot = alloca { i8*, i32 }
%_34 = alloca i8
%_33 = alloca i8
%_32 = alloca i8
%_31 = alloca i8
%_30 = alloca i8
%_29 = alloca %"collections::vec::Vec<isize>"
%_28 = alloca %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"
%_25 = alloca %"collections::vec::Vec<isize>"
%_14 = alloca {}
%vector1 = alloca %"collections::vec::Vec<isize>"
%_9 = alloca { i32, %"core::option::Option<usize>" }
%_4 = alloca %"core::option::Option<isize>"
%vector = alloca %"collections::vec::Vec<isize>"
%iterator = alloca %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"
br label %start
start: ; preds = %entry-block
store i8 0, i8* %_34
store i8 0, i8* %_33
store i8 0, i8* %_32
store i8 0, i8* %_31
store i8 0, i8* %_30
store i8 1, i8* %_30
%2 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %1 to i8*
%3 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %iterator to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* %2, i32 12, i32 4, i1 false)
invoke void @"_ZN118_$LT$core..iter..range..StepBy$LT$A$C$$u20$core..ops..Range$LT$A$GT$$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h5c5d949f560d7a14E"(%"core::option::Option<isize>"* noalias nocapture sret dereferenceable(8) %_4, %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* dereferenceable(12) %iterator)
to label %bb3 unwind label %cleanup
bb1: ; preds = %bb20, %bb2
%4 = load { i8*, i32 }, { i8*, i32 }* %personalityslot
resume { i8*, i32 } %4
bb2: ; preds = %bb21, %bb22
%5 = load i8, i8* %_30, !range !1
%6 = trunc i8 %5 to i1
br i1 %6, label %bb20, label %bb1
bb3: ; preds = %start
store i8 1, i8* %_32
%7 = getelementptr inbounds %"core::option::Option<isize>", %"core::option::Option<isize>"* %_4, i32 0, i32 0
%8 = load i32, i32* %7, !range !2
switch i32 %8, label %bb6 [
i32 0, label %bb5
]
bb4: ; preds = %bb26, %bb27
%9 = getelementptr inbounds %"core::option::Option<isize>", %"core::option::Option<isize>"* %_4, i32 0, i32 0
%10 = load i32, i32* %9, !range !2
switch i32 %10, label %bb23 [
i32 1, label %bb24
]
bb5: ; preds = %bb3
invoke void @"_ZN39_$LT$collections..vec..Vec$LT$T$GT$$GT$3new17hcfc3389d2ced7781E"(%"collections::vec::Vec<isize>"* noalias nocapture sret dereferenceable(12) %0)
to label %bb8 unwind label %cleanup2
bb6: ; preds = %bb3
store i8 0, i8* %_32
store i8 1, i8* %_33
%11 = bitcast %"core::option::Option<isize>"* %_4 to { i32, i32 }*
%12 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %11, i32 0, i32 1
%13 = load i32, i32* %12
invoke void @"_ZN118_$LT$core..iter..range..StepBy$LT$A$C$$u20$core..ops..Range$LT$A$GT$$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$9size_hint17h549504389bdaacaeE"({ i32, %"core::option::Option<usize>" }* noalias nocapture sret dereferenceable(12) %_9, %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* noalias readonly dereferenceable(12) %iterator)
to label %bb11 unwind label %cleanup2
bb7: ; preds = %bb10, %bb19
ret void
bb8: ; preds = %bb5
store i8 0, i8* %_32
br label %bb9
bb9: ; preds = %bb8
store i8 0, i8* %_30
br label %bb10
bb10: ; preds = %bb9
br label %bb7
bb11: ; preds = %bb6
%14 = getelementptr inbounds { i32, %"core::option::Option<usize>" }, { i32, %"core::option::Option<usize>" }* %_9, i32 0, i32 0
%15 = load i32, i32* %14
%16 = invoke i32 @"_ZN4core3num23_$LT$impl$u20$usize$GT$14saturating_add17hb1fbb042544872deE"(i32 %15, i32 1)
to label %bb12 unwind label %cleanup3
bb12: ; preds = %bb11
invoke void @"_ZN39_$LT$collections..vec..Vec$LT$T$GT$$GT$13with_capacity17hfd88081eec9bd485E"(%"collections::vec::Vec<isize>"* noalias nocapture sret dereferenceable(12) %vector1, i32 %16)
to label %bb13 unwind label %cleanup3
bb13: ; preds = %bb12
store i8 1, i8* %_34
%17 = invoke { i32*, i32 } @"_ZN70_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..DerefMut$GT$9deref_mut17hb7faaf01903b8a3eE"(%"collections::vec::Vec<isize>"* dereferenceable(12) %vector1)
to label %bb14 unwind label %cleanup3
bb14: ; preds = %bb13
%18 = extractvalue { i32*, i32 } %17, 0
%19 = extractvalue { i32*, i32 } %17, 1
%20 = invoke dereferenceable(4) i32* @"_ZN11collections5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$17get_unchecked_mut17hf1a21cbe2a4ee656E"(i32* nonnull %18, i32 %19, i32 0)
to label %bb15 unwind label %cleanup3
bb15: ; preds = %bb14
store i8 0, i8* %_33
invoke void @_ZN4core3ptr5write17hc62018ecf990a402E(i32* %20, i32 %13)
to label %bb16 unwind label %cleanup3
bb16: ; preds = %bb15
invoke void @"_ZN39_$LT$collections..vec..Vec$LT$T$GT$$GT$7set_len17hacb1d74822b7c024E"(%"collections::vec::Vec<isize>"* dereferenceable(12) %vector1, i32 1)
to label %bb17 unwind label %cleanup3
bb17: ; preds = %bb16
store i8 0, i8* %_34
%21 = bitcast %"collections::vec::Vec<isize>"* %vector1 to i8*
%22 = bitcast %"collections::vec::Vec<isize>"* %_25 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %22, i8* %21, i32 12, i32 4, i1 false)
store i8 1, i8* %_31
%23 = bitcast %"collections::vec::Vec<isize>"* %_25 to i8*
%24 = bitcast %"collections::vec::Vec<isize>"* %vector to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %24, i8* %23, i32 12, i32 4, i1 false)
%25 = getelementptr inbounds %"core::option::Option<isize>", %"core::option::Option<isize>"* %_4, i32 0, i32 0
%26 = load i32, i32* %25, !range !2
switch i32 %26, label %bb30 [
i32 1, label %bb18
]
bb18: ; preds = %bb30, %bb17
store i8 0, i8* %_30
%27 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %iterator to i8*
%28 = bitcast %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* %_28 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %28, i8* %27, i32 12, i32 4, i1 false)
invoke void @"_ZN97_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$collections..vec..SpecExtend$LT$T$C$$u20$I$GT$$GT$11spec_extend17hf0ed68d83aa74e41E"(%"collections::vec::Vec<isize>"* dereferenceable(12) %vector, %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* noalias nocapture dereferenceable(12) %_28)
to label %bb19 unwind label %cleanup
bb19: ; preds = %bb18
store i8 0, i8* %_31
%29 = bitcast %"collections::vec::Vec<isize>"* %vector to i8*
%30 = bitcast %"collections::vec::Vec<isize>"* %_29 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %30, i8* %29, i32 12, i32 4, i1 false)
%31 = bitcast %"collections::vec::Vec<isize>"* %_29 to i8*
%32 = bitcast %"collections::vec::Vec<isize>"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %32, i8* %31, i32 12, i32 4, i1 false)
br label %bb7
bb20: ; preds = %bb2
store i8 0, i8* %_30
br label %bb1
bb21: ; preds = %bb22
store i8 0, i8* %_31
call void @_ZN4drop17hda3a3227b902a756E(%"collections::vec::Vec<isize>"* %vector)
br label %bb2
bb22: ; preds = %bb25, %bb24, %bb23, %cleanup
%33 = load i8, i8* %_31, !range !1
%34 = trunc i8 %33 to i1
br i1 %34, label %bb21, label %bb2
bb23: ; preds = %bb4
br label %bb22
bb24: ; preds = %bb4
%35 = load i8, i8* %_32, !range !1
%36 = trunc i8 %35 to i1
br i1 %36, label %bb25, label %bb22
bb25: ; preds = %bb24
store i8 0, i8* %_32
br label %bb22
bb26: ; preds = %bb27
store i8 0, i8* %_33
br label %bb4
bb27: ; preds = %bb28, %bb29, %cleanup2
%37 = load i8, i8* %_33, !range !1
%38 = trunc i8 %37 to i1
br i1 %38, label %bb26, label %bb4
bb28: ; preds = %bb29
store i8 0, i8* %_34
call void @_ZN4drop17hda3a3227b902a756E(%"collections::vec::Vec<isize>"* %vector1)
br label %bb27
bb29: ; preds = %cleanup3
%39 = load i8, i8* %_34, !range !1
%40 = trunc i8 %39 to i1
br i1 %40, label %bb28, label %bb27
bb30: ; preds = %bb17
br label %bb18
cleanup: ; preds = %bb18, %start
%41 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %41, { i8*, i32 }* %personalityslot
br label %bb22
cleanup2: ; preds = %bb5, %bb6
%42 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %42, { i8*, i32 }* %personalityslot
br label %bb27
cleanup3: ; preds = %bb16, %bb15, %bb14, %bb13, %bb12, %bb11
%43 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %43, { i8*, i32 }* %personalityslot
br label %bb29
}
; Function Attrs: inlinehint uwtable
define internal { i32*, i32 } @"_ZN98_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..IndexMut$LT$core..ops..RangeFull$GT$$GT$9index_mut17hc7cc9925558b3123E"(%"collections::vec::Vec<isize>"* dereferenceable(12)) unnamed_addr #0 {
entry-block:
br label %start
start: ; preds = %entry-block
%1 = call { i32*, i32 } @"_ZN70_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..DerefMut$GT$9deref_mut17hb7faaf01903b8a3eE"(%"collections::vec::Vec<isize>"* dereferenceable(12) %0)
%2 = extractvalue { i32*, i32 } %1, 0
%3 = extractvalue { i32*, i32 } %1, 1
br label %bb1
bb1: ; preds = %start
%4 = insertvalue { i32*, i32 } undef, i32* %2, 0
%5 = insertvalue { i32*, i32 } %4, i32 %3, 1
ret { i32*, i32 } %5
}
; Function Attrs: uwtable
define internal void @_ZN4farm4main17h8da056cb67c7e794E() unnamed_addr #1 personality i32 (i32, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%tmp_ret3 = alloca %"core::fmt::ArgumentV1"
%tmp_ret = alloca %"core::fmt::ArgumentV1"
%arg1 = alloca %"core::ops::Range<isize>"
%personalityslot = alloca { i8*, i32 }
%arg = alloca %"core::ops::Range<isize>"
%_24 = alloca { %"collections::vec::Vec<isize>"**, [0 x i32]** }
%_23 = alloca [2 x %"core::fmt::ArgumentV1"]
%_18 = alloca %"core::fmt::Arguments"
%right_val = alloca [0 x i32]*
%left_val = alloca %"collections::vec::Vec<isize>"*
%_8 = alloca %"core::ops::Range<isize>"
%_7 = alloca %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"
%_6 = alloca %"collections::vec::Vec<isize>"
%_4 = alloca { %"collections::vec::Vec<isize>"*, [0 x i32]* }
%_3 = alloca %"core::ops::Range<isize>"
%_2 = alloca %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"
%_1 = alloca %"collections::vec::Vec<isize>"
%_0 = alloca {}
br label %start
start: ; preds = %entry-block
%0 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %_3, i32 0, i32 0
store i32 200, i32* %0
%1 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %_3, i32 0, i32 1
store i32 -5, i32* %1
%2 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %_3, i32 0, i32 0
%3 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %_3, i32 0, i32 1
%4 = load i32, i32* %2
%5 = load i32, i32* %3
%6 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %arg, i32 0, i32 0
store i32 %4, i32* %6
%7 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %arg, i32 0, i32 1
store i32 %5, i32* %7
call void @"_ZN4core4iter5range43_$LT$impl$u20$core..ops..Range$LT$A$GT$$GT$7step_by17ha24258a8601f244bE"(%"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* noalias nocapture sret dereferenceable(12) %_2, %"core::ops::Range<isize>"* noalias nocapture dereferenceable(8) %arg, i32 1)
br label %bb1
bb1: ; preds = %start
call void @_ZN4core4iter8iterator8Iterator7collect17h68b276c36a921e76E(%"collections::vec::Vec<isize>"* noalias nocapture sret dereferenceable(12) %_1, %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* noalias nocapture dereferenceable(12) %_2)
br label %bb2
bb2: ; preds = %bb1
invoke void @_ZN4drop17hda3a3227b902a756E(%"collections::vec::Vec<isize>"* %_1)
to label %bb3 unwind label %cleanup
bb3: ; preds = %bb2
%8 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %_8, i32 0, i32 0
store i32 200, i32* %8
%9 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %_8, i32 0, i32 1
store i32 200, i32* %9
%10 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %_8, i32 0, i32 0
%11 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %_8, i32 0, i32 1
%12 = load i32, i32* %10
%13 = load i32, i32* %11
%14 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %arg1, i32 0, i32 0
store i32 %12, i32* %14
%15 = getelementptr inbounds %"core::ops::Range<isize>", %"core::ops::Range<isize>"* %arg1, i32 0, i32 1
store i32 %13, i32* %15
call void @"_ZN4core4iter5range43_$LT$impl$u20$core..ops..Range$LT$A$GT$$GT$7step_by17ha24258a8601f244bE"(%"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* noalias nocapture sret dereferenceable(12) %_7, %"core::ops::Range<isize>"* noalias nocapture dereferenceable(8) %arg1, i32 1)
br label %bb4
bb4: ; preds = %bb3
call void @_ZN4core4iter8iterator8Iterator7collect17h68b276c36a921e76E(%"collections::vec::Vec<isize>"* noalias nocapture sret dereferenceable(12) %_6, %"core::iter::range::StepBy<isize, core::ops::Range<isize>>"* noalias nocapture dereferenceable(12) %_7)
br label %bb5
bb5: ; preds = %bb4
%16 = getelementptr inbounds { %"collections::vec::Vec<isize>"*, [0 x i32]* }, { %"collections::vec::Vec<isize>"*, [0 x i32]* }* %_4, i32 0, i32 0
store %"collections::vec::Vec<isize>"* %_6, %"collections::vec::Vec<isize>"** %16
%17 = getelementptr inbounds { %"collections::vec::Vec<isize>"*, [0 x i32]* }, { %"collections::vec::Vec<isize>"*, [0 x i32]* }* %_4, i32 0, i32 1
store [0 x i32]* @ref.h, [0 x i32]** %17
%18 = getelementptr inbounds { %"collections::vec::Vec<isize>"*, [0 x i32]* }, { %"collections::vec::Vec<isize>"*, [0 x i32]* }* %_4, i32 0, i32 0
%19 = load %"collections::vec::Vec<isize>"*, %"collections::vec::Vec<isize>"** %18, !nonnull !9
store %"collections::vec::Vec<isize>"* %19, %"collections::vec::Vec<isize>"** %left_val
%20 = getelementptr inbounds { %"collections::vec::Vec<isize>"*, [0 x i32]* }, { %"collections::vec::Vec<isize>"*, [0 x i32]* }* %_4, i32 0, i32 1
%21 = load [0 x i32]*, [0 x i32]** %20, !nonnull !9
store [0 x i32]* %21, [0 x i32]** %right_val
%22 = load %"collections::vec::Vec<isize>"*, %"collections::vec::Vec<isize>"** %left_val, !nonnull !9
%23 = load [0 x i32]*, [0 x i32]** %right_val, !nonnull !9
%24 = invoke zeroext i1 @"_ZN101_$LT$collections..vec..Vec$LT$A$GT$$u20$as$u20$core..cmp..PartialEq$LT$$u5b$B$u3b$$u20$0$u5d$$GT$$GT$2eq17h260bbf388bffd928E"(%"collections::vec::Vec<isize>"* noalias readonly dereferenceable(12) %22, [0 x i32]* noalias readonly %23)
to label %bb8 unwind label %cleanup2
bb6: ; preds = %bb7, %cleanup
%25 = load { i8*, i32 }, { i8*, i32 }* %personalityslot
resume { i8*, i32 } %25
bb7: ; preds = %cleanup2
call void @_ZN4drop17hda3a3227b902a756E(%"collections::vec::Vec<isize>"* %_6)
br label %bb6
bb8: ; preds = %bb5
%26 = xor i1 %24, true
br i1 %26, label %bb9, label %bb10
bb9: ; preds = %bb8
%27 = load %str_slice*, %str_slice** getelementptr inbounds ({ %str_slice*, i32 }, { %str_slice*, i32 }* @_ZN4farm4main15__STATIC_FMTSTR17hec44f1053dc1d4f9E, i32 0, i32 0), !nonnull !9
%28 = load i32, i32* getelementptr inbounds ({ %str_slice*, i32 }, { %str_slice*, i32 }* @_ZN4farm4main15__STATIC_FMTSTR17hec44f1053dc1d4f9E, i32 0, i32 1)
%29 = getelementptr inbounds { %"collections::vec::Vec<isize>"**, [0 x i32]** }, { %"collections::vec::Vec<isize>"**, [0 x i32]** }* %_24, i32 0, i32 0
store %"collections::vec::Vec<isize>"** %left_val, %"collections::vec::Vec<isize>"*** %29
%30 = getelementptr inbounds { %"collections::vec::Vec<isize>"**, [0 x i32]** }, { %"collections::vec::Vec<isize>"**, [0 x i32]** }* %_24, i32 0, i32 1
store [0 x i32]** %right_val, [0 x i32]*** %30
%31 = getelementptr inbounds { %"collections::vec::Vec<isize>"**, [0 x i32]** }, { %"collections::vec::Vec<isize>"**, [0 x i32]** }* %_24, i32 0, i32 0
%32 = load %"collections::vec::Vec<isize>"**, %"collections::vec::Vec<isize>"*** %31, !nonnull !9
%33 = getelementptr inbounds { %"collections::vec::Vec<isize>"**, [0 x i32]** }, { %"collections::vec::Vec<isize>"**, [0 x i32]** }* %_24, i32 0, i32 1
%34 = load [0 x i32]**, [0 x i32]*** %33, !nonnull !9
invoke void @_ZN4core3fmt10ArgumentV13new17h4b93ed0528bb15c6E(%"core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(8) %tmp_ret, %"collections::vec::Vec<isize>"** noalias readonly dereferenceable(4) %32, i8 (%"collections::vec::Vec<isize>"**, %"core::fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hf2572bffe505eb08E")
to label %bb11 unwind label %cleanup2
bb10: ; preds = %bb8
invoke void @_ZN4drop17hda3a3227b902a756E(%"collections::vec::Vec<isize>"* %_6)
to label %bb14 unwind label %cleanup
bb11: ; preds = %bb9
%35 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %tmp_ret, i32 0, i32 0
%36 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %tmp_ret, i32 0, i32 1
%37 = load %"core::fmt::Void"*, %"core::fmt::Void"** %35, !nonnull !9
%38 = load i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)*, i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)** %36
invoke void @_ZN4core3fmt10ArgumentV13new17h6972ba66dd8899c7E(%"core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(8) %tmp_ret3, [0 x i32]** noalias readonly dereferenceable(4) %34, i8 ([0 x i32]**, %"core::fmt::Formatter"*)* @"_ZN53_$LT$$RF$$u27$a$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h55fc9138d8f966ebE")
to label %bb12 unwind label %cleanup2
bb12: ; preds = %bb11
%39 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %tmp_ret3, i32 0, i32 0
%40 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %tmp_ret3, i32 0, i32 1
%41 = load %"core::fmt::Void"*, %"core::fmt::Void"** %39, !nonnull !9
%42 = load i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)*, i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)** %40
%43 = getelementptr inbounds [2 x %"core::fmt::ArgumentV1"], [2 x %"core::fmt::ArgumentV1"]* %_23, i32 0, i32 0
%44 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %43, i32 0, i32 0
store %"core::fmt::Void"* %37, %"core::fmt::Void"** %44
%45 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %43, i32 0, i32 1
store i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)* %38, i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)** %45
%46 = getelementptr inbounds [2 x %"core::fmt::ArgumentV1"], [2 x %"core::fmt::ArgumentV1"]* %_23, i32 0, i32 1
%47 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %46, i32 0, i32 0
store %"core::fmt::Void"* %41, %"core::fmt::Void"** %47
%48 = getelementptr inbounds %"core::fmt::ArgumentV1", %"core::fmt::ArgumentV1"* %46, i32 0, i32 1
store i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)* %42, i8 (%"core::fmt::Void"*, %"core::fmt::Formatter"*)** %48
%49 = bitcast [2 x %"core::fmt::ArgumentV1"]* %_23 to %"core::fmt::ArgumentV1"*
invoke void @_ZN4core3fmt9Arguments6new_v117haf3166c487b5521aE(%"core::fmt::Arguments"* noalias nocapture sret dereferenceable(24) %_18, %str_slice* noalias nonnull readonly %27, i32 %28, %"core::fmt::ArgumentV1"* noalias nonnull readonly %49, i32 2)
to label %bb13 unwind label %cleanup2
bb13: ; preds = %bb12
invoke void @_ZN3std9panicking15begin_panic_fmt17haa043917b5d6f21bE(%"core::fmt::Arguments"* noalias readonly dereferenceable(24) %_18, { %str_slice, i32 }* noalias readonly dereferenceable(12) @_ZN4farm4main10_FILE_LINE17h9cb38694b2dbd7adE)
to label %unreachable unwind label %cleanup2
bb14: ; preds = %bb10
ret void
cleanup: ; preds = %bb10, %bb2
%50 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %50, { i8*, i32 }* %personalityslot
br label %bb6
cleanup2: ; preds = %bb13, %bb12, %bb11, %bb9, %bb5
%51 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %51, { i8*, i32 }* %personalityslot
br label %bb7
unreachable: ; preds = %bb13
unreachable
}
; Function Attrs: nounwind
declare i32 @rust_eh_personality(i32, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*) unnamed_addr #2
; Function Attrs: argmemonly nounwind
declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture writeonly, i8* nocapture readonly, i32, i32, i1) #3
; Function Attrs: cold noinline noreturn
declare void @_ZN4core6option13expect_failed17h4aee2e09812a5db0E(i8* noalias nonnull readonly, i32) unnamed_addr #4
; Function Attrs: nounwind readnone
declare { i32, i1 } @llvm.uadd.with.overflow.i32(i32, i32) #5
; Function Attrs: nounwind readnone
declare i1 @llvm.expect.i1(i1, i1) #5
; Function Attrs: cold noinline noreturn
declare void @_ZN4core9panicking5panic17hb790668694ff6b20E({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(20)) unnamed_addr #4
; Function Attrs: cold noinline noreturn
declare void @_ZN5alloc3oom3oom17h418421088806e038E() unnamed_addr #4
; Function Attrs: nounwind readnone
declare { i32, i1 } @llvm.umul.with.overflow.i32(i32, i32) #5
declare i8 @_ZN4core3fmt8builders9DebugList6finish17h0623428817418634E(%"core::fmt::builders::DebugList"* dereferenceable(8)) unnamed_addr
declare dereferenceable(8) %"core::fmt::builders::DebugList"* @_ZN4core3fmt8builders9DebugList5entry17hd9c8b4dc15f5fa44E(%"core::fmt::builders::DebugList"* dereferenceable(8), i8* nonnull, void (i8*)** noalias nonnull readonly) unnamed_addr
; Function Attrs: argmemonly nounwind
declare void @llvm.memset.p0i8.i32(i8* nocapture writeonly, i8, i32, i32, i1) #3
declare void @_ZN4core3fmt8builders14debug_list_new17h87c529c93343d084E(%"core::fmt::builders::DebugList"* noalias nocapture sret dereferenceable(8), %"core::fmt::Formatter"* dereferenceable(52)) unnamed_addr
; Function Attrs: nounwind readnone
declare { i32, i1 } @llvm.sadd.with.overflow.i32(i32, i32) #5
declare i8 @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$isize$GT$3fmt17hd531887b89f04cd2E"(i32* noalias readonly dereferenceable(4), %"core::fmt::Formatter"* dereferenceable(52)) unnamed_addr
; Function Attrs: nounwind
declare void @llvm.assume(i1) #2
; Function Attrs: nounwind
declare void @__rust_deallocate(i8*, i32, i32) unnamed_addr #2
; Function Attrs: nounwind
declare i8* @__rust_reallocate(i8*, i32, i32, i32) unnamed_addr #2
declare i8 @"_ZN4core3fmt3num54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17hd186a95412e1e036E"(i32* noalias readonly dereferenceable(4), %"core::fmt::Formatter"* dereferenceable(52)) unnamed_addr
; Function Attrs: cold noinline noreturn
declare void @_ZN4core9panicking9panic_fmt17he9c7f335d160b59dE(%"core::fmt::Arguments"* noalias nocapture dereferenceable(24), { %str_slice, i32 }* noalias readonly dereferenceable(12)) unnamed_addr #4
; Function Attrs: nounwind
declare noalias i8* @__rust_allocate(i32, i32) unnamed_addr #2
; Function Attrs: nounwind
declare i32 @memcmp(i8*, i8*, i32) unnamed_addr #2
; Function Attrs: cold noinline noreturn
declare void @_ZN3std9panicking15begin_panic_fmt17haa043917b5d6f21bE(%"core::fmt::Arguments"* noalias readonly dereferenceable(24), { %str_slice, i32 }* noalias readonly dereferenceable(12)) unnamed_addr #4
define i32 @main(i32, i8**) unnamed_addr {
top:
%2 = call i32 @_ZN3std2rt10lang_start17hb7fc7ec87b663023E(i8* bitcast (void ()* @_ZN4farm4main17h8da056cb67c7e794E to i8*), i32 %0, i8** %1)
ret i32 %2
}
declare i32 @_ZN3std2rt10lang_start17hb7fc7ec87b663023E(i8*, i32, i8**) unnamed_addr
attributes #0 = { inlinehint uwtable }
attributes #1 = { uwtable }
attributes #2 = { nounwind }
attributes #3 = { argmemonly nounwind }
attributes #4 = { cold noinline noreturn }
attributes #5 = { nounwind readnone }
!llvm.module.flags = !{!0}
!0 = !{i32 1, !"PIE Level", i32 2}
!1 = !{i8 0, i8 2}
!2 = !{i32 0, i32 2}
!3 = !{!4}
!4 = distinct !{!4, !5, !"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$3cap17h4438e6dbdb0d0f7dE: argument 0"}
!5 = distinct !{!5, !"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$3cap17h4438e6dbdb0d0f7dE"}
!6 = !{!7}
!7 = distinct !{!7, !8, !"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$3cap17h4438e6dbdb0d0f7dE: argument 0"}
!8 = distinct !{!8, !"_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$3cap17h4438e6dbdb0d0f7dE"}
!9 = !{}
#![feature(fmt_internals, libstd_sys_internals, step_by)]
fn main() {
(200..-5).step_by(1).collect::<Vec<isize>>();
match (&(200..200).step_by(1).collect::<Vec<isize>>(), &[]) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
::std::rt::begin_panic_fmt(
&::std::fmt::Arguments::new_v1(
{
static __STATIC_FMTSTR: &'static [&'static str] = &[];
__STATIC_FMTSTR
},
&match (&left_val, &right_val) {
(__arg0, __arg1) => [
::std::fmt::ArgumentV1::new(__arg0, ::std::fmt::Debug::fmt),
::std::fmt::ArgumentV1::new(__arg1, ::std::fmt::Debug::fmt)
]
}
),
{
static _FILE_LINE: (&'static str, u32) = ("", 0);
&_FILE_LINE
}
)
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment