; ModuleID = 'rust.3a1fbbbh-cgu.0'
source_filename = "rust.3a1fbbbh-cgu.0"
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.7.0"
%"core::option::Option<usize>::Some" = type { [1 x i64], i64, [0 x i64] }
%"core::ptr::Repr<isize>" = type { [2 x i64] }
%"core::mem::manually_drop::ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>" = type { [0 x i64], %"core::ptr::swap_nonoverlapping_bytes::UnalignedBlock", [0 x i64] }
%"core::ptr::swap_nonoverlapping_bytes::UnalignedBlock" = type { [0 x i64], i64, [0 x i64], i64, [0 x i64], i64, [0 x i64], i64, [0 x i64] }
%"core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>" = type { [4 x i64] }
%"core::marker::PhantomData<&isize>" = type {}
%"alloc::vec::Vec<isize>" = type { [0 x i64], { i64*, i64 }, [0 x i64], i64, [0 x i64] }
%"unwind::libunwind::_Unwind_Exception" = type { [0 x i64], i64, [0 x i64], void (i32, %"unwind::libunwind::_Unwind_Exception"*)*, [0 x i64], [6 x i64], [0 x i64] }
%"unwind::libunwind::_Unwind_Context" = type { [0 x i8] }
@str.0 = internal constant [72 x i8] c"/rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/ops/arith.rs"
@str.1 = internal constant [28 x i8] c"attempt to add with overflow"
@panic_loc.2 = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([28 x i8]* @str.1 to [0 x i8]*), i64 28 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([72 x i8]* @str.0 to [0 x i8]*), i64 72 }, i32 100, i32 45 }, align 8
@str.3 = internal constant [57 x i8] c"attempt to calculate the remainder with a divisor of zero"
@panic_loc.4 = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([57 x i8]* @str.3 to [0 x i8]*), i64 57 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([72 x i8]* @str.0 to [0 x i8]*), i64 72 }, i32 528, i32 45 }, align 8
@str.5 = internal constant [48 x i8] c"attempt to calculate the remainder with overflow"
@panic_loc.6 = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([48 x i8]* @str.5 to [0 x i8]*), i64 48 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([72 x i8]* @str.0 to [0 x i8]*), i64 72 }, i32 528, i32 45 }, align 8
@str.7 = internal constant [72 x i8] c"/rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/slice/mod.rs"
@panic_loc.8 = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([57 x i8]* @str.3 to [0 x i8]*), i64 57 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([72 x i8]* @str.7 to [0 x i8]*), i64 72 }, i32 5216, i32 19 }, align 8
@0 = private unnamed_addr constant <{ [33 x i8] }> <{ [33 x i8] c"attempt to create unaligned slice" }>, align 1
@1 = private unnamed_addr constant <{ [24 x i8] }> <{ [24 x i8] c"src/libcore/slice/mod.rs" }>, align 1
@2 = private unnamed_addr constant <{ i8*, [8 x i8], i8*, [16 x i8] }> <{ i8* getelementptr inbounds (<{ [33 x i8] }>, <{ [33 x i8] }>* @0, i32 0, i32 0, i32 0), [8 x i8] c"!\00\00\00\00\00\00\00", i8* getelementptr inbounds (<{ [24 x i8] }>, <{ [24 x i8] }>* @1, i32 0, i32 0, i32 0), [16 x i8] c"\18\00\00\00\00\00\00\00`\14\00\00\05\00\00\00" }>, align 8
@3 = private unnamed_addr constant <{ [55 x i8] }> <{ [55 x i8] c"attempt to create slice covering half the address space" }>, align 1
@4 = private unnamed_addr constant <{ i8*, [8 x i8], i8*, [16 x i8] }> <{ i8* getelementptr inbounds (<{ [55 x i8] }>, <{ [55 x i8] }>* @3, i32 0, i32 0, i32 0), [8 x i8] c"7\00\00\00\00\00\00\00", i8* getelementptr inbounds (<{ [24 x i8] }>, <{ [24 x i8] }>* @1, i32 0, i32 0, i32 0), [16 x i8] c"\18\00\00\00\00\00\00\00a\14\00\00\05\00\00\00" }>, align 8
@panic_loc.9 = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([57 x i8]* @str.3 to [0 x i8]*), i64 57 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([72 x i8]* @str.7 to [0 x i8]*), i64 72 }, i32 5237, i32 19 }, align 8
@5 = private unnamed_addr constant <{ i8*, [8 x i8], i8*, [16 x i8] }> <{ i8* getelementptr inbounds (<{ [33 x i8] }>, <{ [33 x i8] }>* @0, i32 0, i32 0, i32 0), [8 x i8] c"!\00\00\00\00\00\00\00", i8* getelementptr inbounds (<{ [24 x i8] }>, <{ [24 x i8] }>* @1, i32 0, i32 0, i32 0), [16 x i8] c"\18\00\00\00\00\00\00\00u\14\00\00\05\00\00\00" }>, align 8
@6 = private unnamed_addr constant <{ i8*, [8 x i8], i8*, [16 x i8] }> <{ i8* getelementptr inbounds (<{ [55 x i8] }>, <{ [55 x i8] }>* @3, i32 0, i32 0, i32 0), [8 x i8] c"7\00\00\00\00\00\00\00", i8* getelementptr inbounds (<{ [24 x i8] }>, <{ [24 x i8] }>* @1, i32 0, i32 0, i32 0), [16 x i8] c"\18\00\00\00\00\00\00\00v\14\00\00\05\00\00\00" }>, align 8
@panic_bounds_check_loc.a = private unnamed_addr constant { { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([72 x i8]* @str.7 to [0 x i8]*), i64 72 }, i32 2687, i32 14 }, align 8
@str.b = internal constant [7 x i8] c"rust.rs"
@panic_loc.c = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([28 x i8]* @str.1 to [0 x i8]*), i64 28 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([7 x i8]* @str.b to [0 x i8]*), i64 7 }, i32 6, i32 9 }, align 8
@panic_loc.d = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([28 x i8]* @str.1 to [0 x i8]*), i64 28 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([7 x i8]* @str.b to [0 x i8]*), i64 7 }, i32 9, i32 16 }, align 8
; <isize as core::ops::arith::Add>::add
; Function Attrs: inlinehint uwtable
define internal i64 @"_ZN47_$LT$isize$u20$as$u20$core..ops..arith..Add$GT$3add17h5b676053fe71193bE"(i64, i64) unnamed_addr #0 !dbg !5 {
start:
%other = alloca i64, align 8
%self = alloca i64, align 8
store i64 %0, i64* %self, align 8
call void @llvm.dbg.declare(metadata i64* %self, metadata !14, metadata !DIExpression()), !dbg !16
store i64 %1, i64* %other, align 8
call void @llvm.dbg.declare(metadata i64* %other, metadata !17, metadata !DIExpression()), !dbg !16
%2 = load i64, i64* %self, align 8, !dbg !18
%3 = load i64, i64* %other, align 8, !dbg !19
%4 = call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %2, i64 %3), !dbg !18
%5 = extractvalue { i64, i1 } %4, 0, !dbg !18
%6 = extractvalue { i64, i1 } %4, 1, !dbg !18
%7 = call i1 @llvm.expect.i1(i1 %6, i1 false), !dbg !18
br i1 %7, label %panic, label %bb1, !dbg !18
bb1: ; preds = %start
ret i64 %5, !dbg !20
panic: ; preds = %start
; call core::panicking::panic
call void @_ZN4core9panicking5panic17h89241d71a860ed98E({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly align 8 dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* @panic_loc.2 to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*)), !dbg !18
unreachable, !dbg !18
}
; <isize as core::ops::arith::Rem>::rem
; Function Attrs: inlinehint uwtable
define internal i64 @"_ZN47_$LT$isize$u20$as$u20$core..ops..arith..Rem$GT$3rem17hcd48825ab2f2796fE"(i64, i64) unnamed_addr #0 !dbg !21 {
start:
%other = alloca i64, align 8
%self = alloca i64, align 8
store i64 %0, i64* %self, align 8
call void @llvm.dbg.declare(metadata i64* %self, metadata !22, metadata !DIExpression()), !dbg !23
store i64 %1, i64* %other, align 8
call void @llvm.dbg.declare(metadata i64* %other, metadata !24, metadata !DIExpression()), !dbg !23
%2 = load i64, i64* %self, align 8, !dbg !25
%3 = load i64, i64* %other, align 8, !dbg !26
%4 = icmp eq i64 %3, 0, !dbg !25
%5 = call i1 @llvm.expect.i1(i1 %4, i1 false), !dbg !25
br i1 %5, label %panic, label %bb1, !dbg !25
bb1: ; preds = %start
%6 = icmp eq i64 %3, -1, !dbg !25
%7 = icmp eq i64 %2, -9223372036854775808, !dbg !25
%8 = and i1 %6, %7, !dbg !25
%9 = call i1 @llvm.expect.i1(i1 %8, i1 false), !dbg !25
br i1 %9, label %panic1, label %bb2, !dbg !25
bb2: ; preds = %bb1
%10 = srem i64 %2, %3, !dbg !25
ret i64 %10, !dbg !27
panic: ; preds = %start
; call core::panicking::panic
call void @_ZN4core9panicking5panic17h89241d71a860ed98E({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly align 8 dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* @panic_loc.4 to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*)), !dbg !25
unreachable, !dbg !25
panic1: ; preds = %bb1
; call core::panicking::panic
call void @_ZN4core9panicking5panic17h89241d71a860ed98E({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly align 8 dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* @panic_loc.6 to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*)), !dbg !25
unreachable, !dbg !25
}
; <usize as core::iter::range::Step>::add_usize
; Function Attrs: inlinehint uwtable
define internal { i64, i64 } @"_ZN49_$LT$usize$u20$as$u20$core..iter..range..Step$GT$9add_usize17h9709d2abb99d1f02E"(i64* noalias readonly align 8 dereferenceable(8), i64) unnamed_addr #0 !dbg !28 {
start:
%n_as_t = alloca i64, align 8
%_3 = alloca i64, align 8
%n = alloca i64, align 8
%self = alloca i64*, align 8
store i64* %0, i64** %self, align 8
call void @llvm.dbg.declare(metadata i64** %self, metadata !53, metadata !DIExpression()), !dbg !54
store i64 %1, i64* %n, align 8
call void @llvm.dbg.declare(metadata i64* %n, metadata !55, metadata !DIExpression()), !dbg !54
call void @llvm.dbg.declare(metadata i64* %n_as_t, metadata !56, metadata !DIExpression()), !dbg !58
%2 = load i64, i64* %n, align 8, !dbg !59
; call <T as core::convert::TryFrom<U>>::try_from
%3 = call i64 @"_ZN53_$LT$T$u20$as$u20$core..convert..TryFrom$LT$U$GT$$GT$8try_from17h8206762129109ef0E"(i64 %2), !dbg !60
store i64 %3, i64* %_3, align 8, !dbg !60
br label %bb1, !dbg !60
bb1: ; preds = %start
%4 = load i64, i64* %_3, align 8, !dbg !61
store i64 %4, i64* %n_as_t, align 8, !dbg !61
%5 = load i64*, i64** %self, align 8, !dbg !62, !nonnull !2
%6 = load i64, i64* %5, align 8, !dbg !62
%7 = load i64, i64* %n_as_t, align 8, !dbg !63
; call core::num::<impl usize>::checked_add
%8 = call { i64, i64 } @"_ZN4core3num23_$LT$impl$u20$usize$GT$11checked_add17h9d0539ad7ca701ccE"(i64 %6, i64 %7), !dbg !62
%9 = extractvalue { i64, i64 } %8, 0, !dbg !62
%10 = extractvalue { i64, i64 } %8, 1, !dbg !62
br label %bb2, !dbg !62
bb2: ; preds = %bb1
%11 = insertvalue { i64, i64 } undef, i64 %9, 0, !dbg !64
%12 = insertvalue { i64, i64 } %11, i64 %10, 1, !dbg !64
ret { i64, i64 } %12, !dbg !64
}
; core::intrinsics::copy_nonoverlapping
; Function Attrs: inlinehint uwtable
define void @_ZN4core10intrinsics19copy_nonoverlapping17h6fe3ca3ba4278673E(i64*, i64*, i64) unnamed_addr #0 !dbg !65 {
start:
%count = alloca i64, align 8
%dst = alloca i64*, align 8
%src = alloca i64*, align 8
store i64* %0, i64** %src, align 8
call void @llvm.dbg.declare(metadata i64** %src, metadata !72, metadata !DIExpression()), !dbg !73
store i64* %1, i64** %dst, align 8
call void @llvm.dbg.declare(metadata i64** %dst, metadata !74, metadata !DIExpression()), !dbg !73
store i64 %2, i64* %count, align 8
call void @llvm.dbg.declare(metadata i64* %count, metadata !75, metadata !DIExpression()), !dbg !73
%3 = load i64*, i64** %src, align 8, !dbg !76
%4 = load i64*, i64** %dst, align 8, !dbg !77
%5 = load i64, i64* %count, align 8, !dbg !78
%6 = mul i64 8, %5, !dbg !79
%7 = bitcast i64* %4 to i8*, !dbg !79
%8 = bitcast i64* %3 to i8*, !dbg !79
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %7, i8* align 8 %8, i64 %6, i1 false), !dbg !79
br label %bb1, !dbg !79
bb1: ; preds = %start
ret void, !dbg !80
}
; core::intrinsics::copy_nonoverlapping
; Function Attrs: inlinehint uwtable
define void @_ZN4core10intrinsics19copy_nonoverlapping17he1b9af375418f5b7E(i8*, i8*, i64) unnamed_addr #0 !dbg !81 {
start:
%count = alloca i64, align 8
%dst = alloca i8*, align 8
%src = alloca i8*, align 8
store i8* %0, i8** %src, align 8
call void @llvm.dbg.declare(metadata i8** %src, metadata !89, metadata !DIExpression()), !dbg !90
store i8* %1, i8** %dst, align 8
call void @llvm.dbg.declare(metadata i8** %dst, metadata !91, metadata !DIExpression()), !dbg !90
store i64 %2, i64* %count, align 8
call void @llvm.dbg.declare(metadata i64* %count, metadata !92, metadata !DIExpression()), !dbg !90
%3 = load i8*, i8** %src, align 8, !dbg !93
%4 = load i8*, i8** %dst, align 8, !dbg !94
%5 = load i64, i64* %count, align 8, !dbg !95
%6 = mul i64 1, %5, !dbg !96
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %4, i8* align 1 %3, i64 %6, i1 false), !dbg !96
br label %bb1, !dbg !96
bb1: ; preds = %start
ret void, !dbg !97
}
; core::cmp::impls::<impl core::cmp::PartialOrd for usize>::lt
; Function Attrs: inlinehint uwtable
define internal zeroext i1 @"_ZN4core3cmp5impls57_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$usize$GT$2lt17hd1f31b451aec6da1E"(i64* noalias readonly align 8 dereferenceable(8), i64* noalias readonly align 8 dereferenceable(8)) unnamed_addr #0 !dbg !98 {
start:
%other = alloca i64*, align 8
%self = alloca i64*, align 8
store i64* %0, i64** %self, align 8
call void @llvm.dbg.declare(metadata i64** %self, metadata !106, metadata !DIExpression()), !dbg !107
store i64* %1, i64** %other, align 8
call void @llvm.dbg.declare(metadata i64** %other, metadata !108, metadata !DIExpression()), !dbg !107
%2 = load i64*, i64** %self, align 8, !dbg !109, !nonnull !2
%3 = load i64, i64* %2, align 8, !dbg !109
%4 = load i64*, i64** %other, align 8, !dbg !110, !nonnull !2
%5 = load i64, i64* %4, align 8, !dbg !110
%6 = icmp ult i64 %3, %5, !dbg !109
ret i1 %6, !dbg !111
}
; core::mem::swap
; Function Attrs: inlinehint uwtable
define void @_ZN4core3mem4swap17h8ad51cb2c514cb30E(i64* align 8 dereferenceable(8), i64* align 8 dereferenceable(8)) unnamed_addr #0 !dbg !112 {
start:
%y = alloca i64*, align 8
%x = alloca i64*, align 8
store i64* %0, i64** %x, align 8
call void @llvm.dbg.declare(metadata i64** %x, metadata !118, metadata !DIExpression()), !dbg !119
store i64* %1, i64** %y, align 8
call void @llvm.dbg.declare(metadata i64** %y, metadata !120, metadata !DIExpression()), !dbg !119
%2 = load i64*, i64** %x, align 8, !dbg !121, !nonnull !2
%3 = load i64*, i64** %y, align 8, !dbg !123, !nonnull !2
; call core::ptr::swap_nonoverlapping_one
call void @_ZN4core3ptr23swap_nonoverlapping_one17h12c8b2d352680437E(i64* %2, i64* %3), !dbg !124
br label %bb1, !dbg !124
bb1: ; preds = %start
ret void, !dbg !125
}
; core::mem::size_of
; Function Attrs: inlinehint uwtable
define i64 @_ZN4core3mem7size_of17h62169596611dd2e0E() unnamed_addr #0 !dbg !126 {
start:
%tmp_ret = alloca i64, align 8
store i64 8, i64* %tmp_ret, align 8, !dbg !129
%0 = load i64, i64* %tmp_ret, align 8, !dbg !129
br label %bb1, !dbg !129
bb1: ; preds = %start
ret i64 %0, !dbg !130
}
; core::mem::size_of
; Function Attrs: inlinehint uwtable
define i64 @_ZN4core3mem7size_of17h68d991970122feb2E() unnamed_addr #0 !dbg !131 {
start:
%tmp_ret = alloca i64, align 8
store i64 32, i64* %tmp_ret, align 8, !dbg !142
%0 = load i64, i64* %tmp_ret, align 8, !dbg !142
br label %bb1, !dbg !142
bb1: ; preds = %start
ret i64 %0, !dbg !143
}
; core::mem::size_of
; Function Attrs: inlinehint uwtable
define i64 @_ZN4core3mem7size_of17hd7e5cfcb791a5d1fE() unnamed_addr #0 !dbg !144 {
start:
%tmp_ret = alloca i64, align 8
store i64 8, i64* %tmp_ret, align 8, !dbg !147
%0 = load i64, i64* %tmp_ret, align 8, !dbg !147
br label %bb1, !dbg !147
bb1: ; preds = %start
ret i64 %0, !dbg !148
}
; core::mem::align_of
; Function Attrs: inlinehint uwtable
define i64 @_ZN4core3mem8align_of17h7f293d7f1cd07ba4E() unnamed_addr #0 !dbg !149 {
start:
%tmp_ret = alloca i64, align 8
store i64 8, i64* %tmp_ret, align 8, !dbg !150
%0 = load i64, i64* %tmp_ret, align 8, !dbg !150
br label %bb1, !dbg !150
bb1: ; preds = %start
ret i64 %0, !dbg !151
}
; core::num::<impl usize>::checked_add
; Function Attrs: inlinehint uwtable
define internal { i64, i64 } @"_ZN4core3num23_$LT$impl$u20$usize$GT$11checked_add17h9d0539ad7ca701ccE"(i64, i64) unnamed_addr #0 !dbg !152 {
start:
%b = alloca i8, align 1
%a = alloca i64, align 8
%_0 = alloca { i64, i64 }, align 8
%rhs = alloca i64, align 8
%self = alloca i64, align 8
store i64 %0, i64* %self, align 8
call void @llvm.dbg.declare(metadata i64* %self, metadata !158, metadata !DIExpression()), !dbg !159
store i64 %1, i64* %rhs, align 8
call void @llvm.dbg.declare(metadata i64* %rhs, metadata !160, metadata !DIExpression()), !dbg !159
call void @llvm.dbg.declare(metadata i64* %a, metadata !161, metadata !DIExpression()), !dbg !163
call void @llvm.dbg.declare(metadata i8* %b, metadata !164, metadata !DIExpression()), !dbg !165
%2 = load i64, i64* %self, align 8, !dbg !166
%3 = load i64, i64* %rhs, align 8, !dbg !167
; call core::num::<impl usize>::overflowing_add
%4 = call { i64, i8 } @"_ZN4core3num23_$LT$impl$u20$usize$GT$15overflowing_add17h154f19bc24a86072E"(i64 %2, i64 %3), !dbg !166
%5 = extractvalue { i64, i8 } %4, 0, !dbg !166
%6 = extractvalue { i64, i8 } %4, 1, !dbg !166
%7 = trunc i8 %6 to i1, !dbg !166
br label %bb1, !dbg !166
bb1: ; preds = %start
store i64 %5, i64* %a, align 8, !dbg !168
%8 = zext i1 %7 to i8, !dbg !169
store i8 %8, i8* %b, align 1, !dbg !169
%9 = load i8, i8* %b, align 1, !dbg !170, !range !171
%10 = trunc i8 %9 to i1, !dbg !170
br i1 %10, label %bb3, label %bb2, !dbg !172
bb2: ; preds = %bb1
%11 = load i64, i64* %a, align 8, !dbg !173
%12 = bitcast { i64, i64 }* %_0 to %"core::option::Option<usize>::Some"*, !dbg !174
%13 = getelementptr inbounds %"core::option::Option<usize>::Some", %"core::option::Option<usize>::Some"* %12, i32 0, i32 1, !dbg !174
store i64 %11, i64* %13, align 8, !dbg !174
%14 = bitcast { i64, i64 }* %_0 to i64*, !dbg !174
store i64 1, i64* %14, align 8, !dbg !174
br label %bb4, !dbg !172
bb3: ; preds = %bb1
%15 = bitcast { i64, i64 }* %_0 to i64*, !dbg !175
store i64 0, i64* %15, align 8, !dbg !175
br label %bb4, !dbg !172
bb4: ; preds = %bb2, %bb3
%16 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %_0, i32 0, i32 0, !dbg !176
%17 = load i64, i64* %16, align 8, !dbg !176, !range !177
%18 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %_0, i32 0, i32 1, !dbg !176
%19 = load i64, i64* %18, align 8, !dbg !176
%20 = insertvalue { i64, i64 } undef, i64 %17, 0, !dbg !176
%21 = insertvalue { i64, i64 } %20, i64 %19, 1, !dbg !176
ret { i64, i64 } %21, !dbg !176
}
; core::num::<impl usize>::checked_mul
; Function Attrs: inlinehint uwtable
define internal { i64, i64 } @"_ZN4core3num23_$LT$impl$u20$usize$GT$11checked_mul17h806479b1ea86b354E"(i64, i64) unnamed_addr #0 !dbg !178 {
start:
%b = alloca i8, align 1
%a = alloca i64, align 8
%_0 = alloca { i64, i64 }, align 8
%rhs = alloca i64, align 8
%self = alloca i64, align 8
store i64 %0, i64* %self, align 8
call void @llvm.dbg.declare(metadata i64* %self, metadata !179, metadata !DIExpression()), !dbg !180
store i64 %1, i64* %rhs, align 8
call void @llvm.dbg.declare(metadata i64* %rhs, metadata !181, metadata !DIExpression()), !dbg !180
call void @llvm.dbg.declare(metadata i64* %a, metadata !182, metadata !DIExpression()), !dbg !184
call void @llvm.dbg.declare(metadata i8* %b, metadata !185, metadata !DIExpression()), !dbg !186
%2 = load i64, i64* %self, align 8, !dbg !187
%3 = load i64, i64* %rhs, align 8, !dbg !188
; call core::num::<impl usize>::overflowing_mul
%4 = call { i64, i8 } @"_ZN4core3num23_$LT$impl$u20$usize$GT$15overflowing_mul17hc6ec270855067cfeE"(i64 %2, i64 %3), !dbg !187
%5 = extractvalue { i64, i8 } %4, 0, !dbg !187
%6 = extractvalue { i64, i8 } %4, 1, !dbg !187
%7 = trunc i8 %6 to i1, !dbg !187
br label %bb1, !dbg !187
bb1: ; preds = %start
store i64 %5, i64* %a, align 8, !dbg !189
%8 = zext i1 %7 to i8, !dbg !190
store i8 %8, i8* %b, align 1, !dbg !190
%9 = load i8, i8* %b, align 1, !dbg !191, !range !171
%10 = trunc i8 %9 to i1, !dbg !191
br i1 %10, label %bb3, label %bb2, !dbg !192
bb2: ; preds = %bb1
%11 = load i64, i64* %a, align 8, !dbg !193
%12 = bitcast { i64, i64 }* %_0 to %"core::option::Option<usize>::Some"*, !dbg !194
%13 = getelementptr inbounds %"core::option::Option<usize>::Some", %"core::option::Option<usize>::Some"* %12, i32 0, i32 1, !dbg !194
store i64 %11, i64* %13, align 8, !dbg !194
%14 = bitcast { i64, i64 }* %_0 to i64*, !dbg !194
store i64 1, i64* %14, align 8, !dbg !194
br label %bb4, !dbg !192
bb3: ; preds = %bb1
%15 = bitcast { i64, i64 }* %_0 to i64*, !dbg !195
store i64 0, i64* %15, align 8, !dbg !195
br label %bb4, !dbg !192
bb4: ; preds = %bb2, %bb3
%16 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %_0, i32 0, i32 0, !dbg !196
%17 = load i64, i64* %16, align 8, !dbg !196, !range !177
%18 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %_0, i32 0, i32 1, !dbg !196
%19 = load i64, i64* %18, align 8, !dbg !196
%20 = insertvalue { i64, i64 } undef, i64 %17, 0, !dbg !196
%21 = insertvalue { i64, i64 } %20, i64 %19, 1, !dbg !196
ret { i64, i64 } %21, !dbg !196
}
; core::num::<impl usize>::saturating_mul
; Function Attrs: inlinehint uwtable
define internal i64 @"_ZN4core3num23_$LT$impl$u20$usize$GT$14saturating_mul17hb7b5c8bd037e7bc6E"(i64, i64) unnamed_addr #0 !dbg !197 {
start:
%rhs = alloca i64, align 8
%self = alloca i64, align 8
store i64 %0, i64* %self, align 8
call void @llvm.dbg.declare(metadata i64* %self, metadata !200, metadata !DIExpression()), !dbg !201
store i64 %1, i64* %rhs, align 8
call void @llvm.dbg.declare(metadata i64* %rhs, metadata !202, metadata !DIExpression()), !dbg !201
%2 = load i64, i64* %self, align 8, !dbg !203
%3 = load i64, i64* %rhs, align 8, !dbg !204
; call core::num::<impl usize>::checked_mul
%4 = call { i64, i64 } @"_ZN4core3num23_$LT$impl$u20$usize$GT$11checked_mul17h806479b1ea86b354E"(i64 %2, i64 %3), !dbg !203
%5 = extractvalue { i64, i64 } %4, 0, !dbg !203
%6 = extractvalue { i64, i64 } %4, 1, !dbg !203
br label %bb1, !dbg !203
bb1: ; preds = %start
; call core::num::<impl usize>::max_value
%7 = call i64 @"_ZN4core3num23_$LT$impl$u20$usize$GT$9max_value17h9054e781c42925f6E"(), !dbg !205
br label %bb2, !dbg !205
bb2: ; preds = %bb1
; call core::option::Option<T>::unwrap_or
%8 = call i64 @"_ZN4core6option15Option$LT$T$GT$9unwrap_or17h716b96369b915d77E"(i64 %5, i64 %6, i64 %7), !dbg !203
br label %bb3, !dbg !203
bb3: ; preds = %bb2
ret i64 %8, !dbg !206
}
; core::num::<impl usize>::overflowing_add
; Function Attrs: inlinehint uwtable
define internal { i64, i8 } @"_ZN4core3num23_$LT$impl$u20$usize$GT$15overflowing_add17h154f19bc24a86072E"(i64, i64) unnamed_addr #0 !dbg !207 {
start:
%tmp_ret = alloca { i64, i8 }, align 8
%b = alloca i8, align 1
%a = alloca i64, align 8
%_0 = alloca { i64, i8 }, align 8
%rhs = alloca i64, align 8
%self = alloca i64, align 8
store i64 %0, i64* %self, align 8
call void @llvm.dbg.declare(metadata i64* %self, metadata !214, metadata !DIExpression()), !dbg !215
store i64 %1, i64* %rhs, align 8
call void @llvm.dbg.declare(metadata i64* %rhs, metadata !216, metadata !DIExpression()), !dbg !215
call void @llvm.dbg.declare(metadata i64* %a, metadata !217, metadata !DIExpression()), !dbg !219
call void @llvm.dbg.declare(metadata i8* %b, metadata !220, metadata !DIExpression()), !dbg !221
%2 = load i64, i64* %self, align 8, !dbg !222
%3 = load i64, i64* %rhs, align 8, !dbg !223
%4 = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %2, i64 %3), !dbg !224
%5 = extractvalue { i64, i1 } %4, 0, !dbg !224
%6 = extractvalue { i64, i1 } %4, 1, !dbg !224
%7 = zext i1 %6 to i8, !dbg !224
%8 = bitcast { i64, i8 }* %tmp_ret to i64*, !dbg !224
store i64 %5, i64* %8, align 8, !dbg !224
%9 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %tmp_ret, i32 0, i32 1, !dbg !224
store i8 %7, i8* %9, align 8, !dbg !224
%10 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %tmp_ret, i32 0, i32 0, !dbg !224
%11 = load i64, i64* %10, align 8, !dbg !224
%12 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %tmp_ret, i32 0, i32 1, !dbg !224
%13 = load i8, i8* %12, align 8, !dbg !224, !range !171
%14 = trunc i8 %13 to i1, !dbg !224
br label %bb1, !dbg !224
bb1: ; preds = %start
store i64 %11, i64* %a, align 8, !dbg !225
%15 = zext i1 %14 to i8, !dbg !226
store i8 %15, i8* %b, align 1, !dbg !226
%16 = load i64, i64* %a, align 8, !dbg !227
%17 = load i8, i8* %b, align 1, !dbg !228, !range !171
%18 = trunc i8 %17 to i1, !dbg !228
%19 = bitcast { i64, i8 }* %_0 to i64*, !dbg !229
store i64 %16, i64* %19, align 8, !dbg !229
%20 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %_0, i32 0, i32 1, !dbg !229
%21 = zext i1 %18 to i8, !dbg !229
store i8 %21, i8* %20, align 8, !dbg !229
%22 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %_0, i32 0, i32 0, !dbg !230
%23 = load i64, i64* %22, align 8, !dbg !230
%24 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %_0, i32 0, i32 1, !dbg !230
%25 = load i8, i8* %24, align 8, !dbg !230, !range !171
%26 = trunc i8 %25 to i1, !dbg !230
%27 = zext i1 %26 to i8, !dbg !230
%28 = insertvalue { i64, i8 } undef, i64 %23, 0, !dbg !230
%29 = insertvalue { i64, i8 } %28, i8 %27, 1, !dbg !230
ret { i64, i8 } %29, !dbg !230
}
; core::num::<impl usize>::overflowing_mul
; Function Attrs: inlinehint uwtable
define internal { i64, i8 } @"_ZN4core3num23_$LT$impl$u20$usize$GT$15overflowing_mul17hc6ec270855067cfeE"(i64, i64) unnamed_addr #0 !dbg !231 {
start:
%tmp_ret = alloca { i64, i8 }, align 8
%b = alloca i8, align 1
%a = alloca i64, align 8
%_0 = alloca { i64, i8 }, align 8
%rhs = alloca i64, align 8
%self = alloca i64, align 8
store i64 %0, i64* %self, align 8
call void @llvm.dbg.declare(metadata i64* %self, metadata !232, metadata !DIExpression()), !dbg !233
store i64 %1, i64* %rhs, align 8
call void @llvm.dbg.declare(metadata i64* %rhs, metadata !234, metadata !DIExpression()), !dbg !233
call void @llvm.dbg.declare(metadata i64* %a, metadata !235, metadata !DIExpression()), !dbg !237
call void @llvm.dbg.declare(metadata i8* %b, metadata !238, metadata !DIExpression()), !dbg !239
%2 = load i64, i64* %self, align 8, !dbg !240
%3 = load i64, i64* %rhs, align 8, !dbg !241
%4 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %2, i64 %3), !dbg !242
%5 = extractvalue { i64, i1 } %4, 0, !dbg !242
%6 = extractvalue { i64, i1 } %4, 1, !dbg !242
%7 = zext i1 %6 to i8, !dbg !242
%8 = bitcast { i64, i8 }* %tmp_ret to i64*, !dbg !242
store i64 %5, i64* %8, align 8, !dbg !242
%9 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %tmp_ret, i32 0, i32 1, !dbg !242
store i8 %7, i8* %9, align 8, !dbg !242
%10 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %tmp_ret, i32 0, i32 0, !dbg !242
%11 = load i64, i64* %10, align 8, !dbg !242
%12 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %tmp_ret, i32 0, i32 1, !dbg !242
%13 = load i8, i8* %12, align 8, !dbg !242, !range !171
%14 = trunc i8 %13 to i1, !dbg !242
br label %bb1, !dbg !242
bb1: ; preds = %start
store i64 %11, i64* %a, align 8, !dbg !243
%15 = zext i1 %14 to i8, !dbg !244
store i8 %15, i8* %b, align 1, !dbg !244
%16 = load i64, i64* %a, align 8, !dbg !245
%17 = load i8, i8* %b, align 1, !dbg !246, !range !171
%18 = trunc i8 %17 to i1, !dbg !246
%19 = bitcast { i64, i8 }* %_0 to i64*, !dbg !247
store i64 %16, i64* %19, align 8, !dbg !247
%20 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %_0, i32 0, i32 1, !dbg !247
%21 = zext i1 %18 to i8, !dbg !247
store i8 %21, i8* %20, align 8, !dbg !247
%22 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %_0, i32 0, i32 0, !dbg !248
%23 = load i64, i64* %22, align 8, !dbg !248
%24 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %_0, i32 0, i32 1, !dbg !248
%25 = load i8, i8* %24, align 8, !dbg !248, !range !171
%26 = trunc i8 %25 to i1, !dbg !248
%27 = zext i1 %26 to i8, !dbg !248
%28 = insertvalue { i64, i8 } undef, i64 %23, 0, !dbg !248
%29 = insertvalue { i64, i8 } %28, i8 %27, 1, !dbg !248
ret { i64, i8 } %29, !dbg !248
}
; core::num::<impl usize>::max_value
; Function Attrs: inlinehint uwtable
define internal i64 @"_ZN4core3num23_$LT$impl$u20$usize$GT$9max_value17h9054e781c42925f6E"() unnamed_addr #0 !dbg !249 {
start:
ret i64 -1, !dbg !250
}
; core::ptr::swap_nonoverlapping
; Function Attrs: inlinehint uwtable
define void @_ZN4core3ptr19swap_nonoverlapping17h8775c1adf9b15317E(i64*, i64*, i64) unnamed_addr #0 !dbg !251 {
start:
%len = alloca i64, align 8
%y2 = alloca i8*, align 8
%x1 = alloca i8*, align 8
%count = alloca i64, align 8
%y = alloca i64*, align 8
%x = alloca i64*, align 8
store i64* %0, i64** %x, align 8
call void @llvm.dbg.declare(metadata i64** %x, metadata !255, metadata !DIExpression()), !dbg !256
store i64* %1, i64** %y, align 8
call void @llvm.dbg.declare(metadata i64** %y, metadata !257, metadata !DIExpression()), !dbg !256
store i64 %2, i64* %count, align 8
call void @llvm.dbg.declare(metadata i64* %count, metadata !258, metadata !DIExpression()), !dbg !256
call void @llvm.dbg.declare(metadata i8** %x1, metadata !259, metadata !DIExpression()), !dbg !261
call void @llvm.dbg.declare(metadata i8** %y2, metadata !262, metadata !DIExpression()), !dbg !264
call void @llvm.dbg.declare(metadata i64* %len, metadata !265, metadata !DIExpression()), !dbg !267
%3 = load i64*, i64** %x, align 8, !dbg !268
%4 = bitcast i64* %3 to i8*, !dbg !268
store i8* %4, i8** %x1, align 8, !dbg !268
%5 = load i64*, i64** %y, align 8, !dbg !269
%6 = bitcast i64* %5 to i8*, !dbg !269
store i8* %6, i8** %y2, align 8, !dbg !269
; call core::mem::size_of
%7 = call i64 @_ZN4core3mem7size_of17h62169596611dd2e0E(), !dbg !270
br label %bb1, !dbg !270
bb1: ; preds = %start
%8 = load i64, i64* %count, align 8, !dbg !271
%9 = mul i64 %7, %8, !dbg !270
store i64 %9, i64* %len, align 8, !dbg !270
%10 = load i8*, i8** %x1, align 8, !dbg !272
%11 = load i8*, i8** %y2, align 8, !dbg !273
%12 = load i64, i64* %len, align 8, !dbg !274
; call core::ptr::swap_nonoverlapping_bytes
call void @_ZN4core3ptr25swap_nonoverlapping_bytes17h0231428c44134a09E(i8* %10, i8* %11, i64 %12), !dbg !275
br label %bb2, !dbg !275
bb2: ; preds = %bb1
ret void, !dbg !276
}
; core::ptr::slice_from_raw_parts
; Function Attrs: inlinehint uwtable
define { [0 x i64]*, i64 } @_ZN4core3ptr20slice_from_raw_parts17hceeedbdd3a01887eE(i64*, i64) unnamed_addr #0 !dbg !277 {
start:
%_4 = alloca { i64*, i64 }, align 8
%_3 = alloca %"core::ptr::Repr<isize>", align 8
%len = alloca i64, align 8
%data = alloca i64*, align 8
store i64* %0, i64** %data, align 8
call void @llvm.dbg.declare(metadata i64** %data, metadata !285, metadata !DIExpression()), !dbg !286
store i64 %1, i64* %len, align 8
call void @llvm.dbg.declare(metadata i64* %len, metadata !287, metadata !DIExpression()), !dbg !286
%2 = load i64*, i64** %data, align 8, !dbg !288
%3 = load i64, i64* %len, align 8, !dbg !290
%4 = bitcast { i64*, i64 }* %_4 to i64**, !dbg !291
store i64* %2, i64** %4, align 8, !dbg !291
%5 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %_4, i32 0, i32 1, !dbg !291
store i64 %3, i64* %5, align 8, !dbg !291
%6 = bitcast %"core::ptr::Repr<isize>"* %_3 to { i64*, i64 }*, !dbg !292
%7 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %_4, i32 0, i32 0, !dbg !292
%8 = load i64*, i64** %7, align 8, !dbg !292
%9 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %_4, i32 0, i32 1, !dbg !292
%10 = load i64, i64* %9, align 8, !dbg !292
%11 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %6, i32 0, i32 0, !dbg !292
store i64* %8, i64** %11, align 8, !dbg !292
%12 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %6, i32 0, i32 1, !dbg !292
store i64 %10, i64* %12, align 8, !dbg !292
%13 = bitcast %"core::ptr::Repr<isize>"* %_3 to { [0 x i64]*, i64 }*, !dbg !292
%14 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %13, i32 0, i32 0, !dbg !292
%15 = load [0 x i64]*, [0 x i64]** %14, align 8, !dbg !292
%16 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %13, i32 0, i32 1, !dbg !292
%17 = load i64, i64* %16, align 8, !dbg !292
%18 = insertvalue { [0 x i64]*, i64 } undef, [0 x i64]* %15, 0, !dbg !293
%19 = insertvalue { [0 x i64]*, i64 } %18, i64 %17, 1, !dbg !293
ret { [0 x i64]*, i64 } %19, !dbg !293
}
; core::ptr::swap_nonoverlapping_one
; Function Attrs: inlinehint uwtable
define void @_ZN4core3ptr23swap_nonoverlapping_one17h12c8b2d352680437E(i64*, i64*) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality !dbg !294 {
start:
%personalityslot = alloca { i8*, i32 }, align 8
%_18 = alloca i8, align 1
%z = alloca i64, align 8
%y = alloca i64*, align 8
%x = alloca i64*, align 8
store i64* %0, i64** %x, align 8
call void @llvm.dbg.declare(metadata i64** %x, metadata !297, metadata !DIExpression()), !dbg !298
store i64* %1, i64** %y, align 8
call void @llvm.dbg.declare(metadata i64** %y, metadata !299, metadata !DIExpression()), !dbg !298
call void @llvm.dbg.declare(metadata i64* %z, metadata !300, metadata !DIExpression()), !dbg !302
store i8 0, i8* %_18, align 1, !dbg !303
; call core::mem::size_of
%2 = call i64 @_ZN4core3mem7size_of17h62169596611dd2e0E(), !dbg !303
br label %bb2, !dbg !303
bb1: ; preds = %bb10, %bb11
%3 = bitcast { i8*, i32 }* %personalityslot to i8**, !dbg !304
%4 = load i8*, i8** %3, align 8, !dbg !304
%5 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %personalityslot, i32 0, i32 1, !dbg !304
%6 = load i32, i32* %5, align 8, !dbg !304
%7 = insertvalue { i8*, i32 } undef, i8* %4, 0, !dbg !304
%8 = insertvalue { i8*, i32 } %7, i32 %6, 1, !dbg !304
resume { i8*, i32 } %8, !dbg !304
bb2: ; preds = %start
%9 = icmp ult i64 %2, 32, !dbg !303
br i1 %9, label %bb4, label %bb3, !dbg !305
bb3: ; preds = %bb2
%10 = load i64*, i64** %x, align 8, !dbg !306
%11 = load i64*, i64** %y, align 8, !dbg !307
; call core::ptr::swap_nonoverlapping
call void @_ZN4core3ptr19swap_nonoverlapping17h8775c1adf9b15317E(i64* %10, i64* %11, i64 1), !dbg !308
br label %bb8, !dbg !308
bb4: ; preds = %bb2
%12 = load i64*, i64** %x, align 8, !dbg !309
store i8 1, i8* %_18, align 1, !dbg !310
; call core::ptr::read
%13 = call i64 @_ZN4core3ptr4read17h6c5ac2ebfe0041f6E(i64* %12), !dbg !310
store i64 %13, i64* %z, align 8, !dbg !310
br label %bb5, !dbg !310
bb5: ; preds = %bb4
%14 = load i64*, i64** %y, align 8, !dbg !311
%15 = load i64*, i64** %x, align 8, !dbg !312
; invoke core::intrinsics::copy_nonoverlapping
invoke void @_ZN4core10intrinsics19copy_nonoverlapping17h6fe3ca3ba4278673E(i64* %14, i64* %15, i64 1)
to label %bb6 unwind label %cleanup, !dbg !313
bb6: ; preds = %bb5
%16 = load i64*, i64** %y, align 8, !dbg !314
store i8 0, i8* %_18, align 1, !dbg !315
%17 = load i64, i64* %z, align 8, !dbg !315
; invoke core::ptr::write
invoke void @_ZN4core3ptr5write17h4aea043b48e6b795E(i64* %16, i64 %17)
to label %bb7 unwind label %cleanup, !dbg !316
bb7: ; preds = %bb6
store i8 0, i8* %_18, align 1, !dbg !317
br label %bb9, !dbg !305
bb8: ; preds = %bb3
br label %bb9, !dbg !305
bb9: ; preds = %bb8, %bb7
ret void, !dbg !318
bb10: ; preds = %bb11
store i8 0, i8* %_18, align 1, !dbg !317
br label %bb1, !dbg !317
bb11: ; preds = %cleanup
%18 = load i8, i8* %_18, align 1, !dbg !317, !range !171
%19 = trunc i8 %18 to i1, !dbg !317
br i1 %19, label %bb10, label %bb1, !dbg !317
cleanup: ; preds = %bb6, %bb5
%20 = landingpad { i8*, i32 }
cleanup
%21 = extractvalue { i8*, i32 } %20, 0
%22 = extractvalue { i8*, i32 } %20, 1
%23 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %personalityslot, i32 0, i32 0
store i8* %21, i8** %23, align 8
%24 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %personalityslot, i32 0, i32 1
store i32 %22, i32* %24, align 8
br label %bb11
}
; core::ptr::slice_from_raw_parts_mut
; Function Attrs: inlinehint uwtable
define { [0 x i64]*, i64 } @_ZN4core3ptr24slice_from_raw_parts_mut17h94ce74124d6a8a85E(i64*, i64) unnamed_addr #0 !dbg !319 {
start:
%_4 = alloca { i64*, i64 }, align 8
%_3 = alloca %"core::ptr::Repr<isize>", align 8
%len = alloca i64, align 8
%data = alloca i64*, align 8
store i64* %0, i64** %data, align 8
call void @llvm.dbg.declare(metadata i64** %data, metadata !327, metadata !DIExpression()), !dbg !328
store i64 %1, i64* %len, align 8
call void @llvm.dbg.declare(metadata i64* %len, metadata !329, metadata !DIExpression()), !dbg !328
%2 = load i64*, i64** %data, align 8, !dbg !330
%3 = load i64, i64* %len, align 8, !dbg !332
%4 = bitcast { i64*, i64 }* %_4 to i64**, !dbg !333
store i64* %2, i64** %4, align 8, !dbg !333
%5 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %_4, i32 0, i32 1, !dbg !333
store i64 %3, i64* %5, align 8, !dbg !333
%6 = bitcast %"core::ptr::Repr<isize>"* %_3 to { i64*, i64 }*, !dbg !334
%7 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %_4, i32 0, i32 0, !dbg !334
%8 = load i64*, i64** %7, align 8, !dbg !334
%9 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %_4, i32 0, i32 1, !dbg !334
%10 = load i64, i64* %9, align 8, !dbg !334
%11 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %6, i32 0, i32 0, !dbg !334
store i64* %8, i64** %11, align 8, !dbg !334
%12 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %6, i32 0, i32 1, !dbg !334
store i64 %10, i64* %12, align 8, !dbg !334
%13 = bitcast %"core::ptr::Repr<isize>"* %_3 to { [0 x i64]*, i64 }*, !dbg !334
%14 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %13, i32 0, i32 0, !dbg !334
%15 = load [0 x i64]*, [0 x i64]** %14, align 8, !dbg !334
%16 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %13, i32 0, i32 1, !dbg !334
%17 = load i64, i64* %16, align 8, !dbg !334
%18 = insertvalue { [0 x i64]*, i64 } undef, [0 x i64]* %15, 0, !dbg !335
%19 = insertvalue { [0 x i64]*, i64 } %18, i64 %17, 1, !dbg !335
ret { [0 x i64]*, i64 } %19, !dbg !335
}
; core::ptr::swap_nonoverlapping_bytes
; Function Attrs: inlinehint uwtable
define internal void @_ZN4core3ptr25swap_nonoverlapping_bytes17h0231428c44134a09E(i8*, i8*, i64) unnamed_addr #0 !dbg !336 {
start:
%self.i.i8 = alloca %"core::mem::manually_drop::ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"*, align 8
call void @llvm.dbg.declare(metadata %"core::mem::manually_drop::ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"** %self.i.i8, metadata !339, metadata !DIExpression()), !dbg !359
%self.i9 = alloca %"core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"*, align 8
call void @llvm.dbg.declare(metadata %"core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"** %self.i9, metadata !379, metadata !DIExpression()), !dbg !380
%self.i.i = alloca <4 x i64>*, align 8
call void @llvm.dbg.declare(metadata <4 x i64>** %self.i.i, metadata !381, metadata !DIExpression()), !dbg !390
%self.i = alloca <4 x i64>*, align 8
call void @llvm.dbg.declare(metadata <4 x i64>** %self.i, metadata !404, metadata !DIExpression()), !dbg !405
%y7 = alloca i8*, align 8
%x6 = alloca i8*, align 8
%t5 = alloca i8*, align 8
%rem = alloca i64, align 8
%t4 = alloca %"core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>", align 8
%y3 = alloca i8*, align 8
%x2 = alloca i8*, align 8
%t1 = alloca i8*, align 8
%t = alloca <4 x i64>, align 32
%i = alloca i64, align 8
%block_size = alloca i64, align 8
%len = alloca i64, align 8
%y = alloca i8*, align 8
%x = alloca i8*, align 8
store i8* %0, i8** %x, align 8
call void @llvm.dbg.declare(metadata i8** %x, metadata !406, metadata !DIExpression()), !dbg !407
store i8* %1, i8** %y, align 8
call void @llvm.dbg.declare(metadata i8** %y, metadata !408, metadata !DIExpression()), !dbg !407
store i64 %2, i64* %len, align 8
call void @llvm.dbg.declare(metadata i64* %len, metadata !409, metadata !DIExpression()), !dbg !407
call void @llvm.dbg.declare(metadata i64* %block_size, metadata !410, metadata !DIExpression()), !dbg !411
call void @llvm.dbg.declare(metadata i64* %i, metadata !412, metadata !DIExpression()), !dbg !413
call void @llvm.dbg.declare(metadata <4 x i64>* %t, metadata !414, metadata !DIExpression()), !dbg !415
call void @llvm.dbg.declare(metadata i8** %t1, metadata !416, metadata !DIExpression()), !dbg !418
call void @llvm.dbg.declare(metadata i8** %x2, metadata !419, metadata !DIExpression()), !dbg !421
call void @llvm.dbg.declare(metadata i8** %y3, metadata !422, metadata !DIExpression()), !dbg !424
call void @llvm.dbg.declare(metadata %"core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"* %t4, metadata !425, metadata !DIExpression()), !dbg !426
call void @llvm.dbg.declare(metadata i64* %rem, metadata !427, metadata !DIExpression()), !dbg !428
call void @llvm.dbg.declare(metadata i8** %t5, metadata !429, metadata !DIExpression()), !dbg !431
call void @llvm.dbg.declare(metadata i8** %x6, metadata !432, metadata !DIExpression()), !dbg !434
call void @llvm.dbg.declare(metadata i8** %y7, metadata !435, metadata !DIExpression()), !dbg !437
; call core::mem::size_of
%3 = call i64 @_ZN4core3mem7size_of17h68d991970122feb2E(), !dbg !438
store i64 %3, i64* %block_size, align 8, !dbg !438
br label %bb1, !dbg !438
bb1: ; preds = %start
store i64 0, i64* %i, align 8, !dbg !439
br label %bb2, !dbg !440
bb2: ; preds = %bb11, %bb1
%4 = load i64, i64* %i, align 8, !dbg !441
%5 = load i64, i64* %block_size, align 8, !dbg !442
%6 = add i64 %4, %5, !dbg !441
%7 = load i64, i64* %len, align 8, !dbg !443
%8 = icmp ule i64 %6, %7, !dbg !441
br i1 %8, label %bb3, label %bb4, !dbg !440
bb3: ; preds = %bb2
%9 = bitcast <4 x i64>* %t to {}*, !dbg !444
br label %bb5, !dbg !449
bb4: ; preds = %bb2
%10 = load i64, i64* %i, align 8, !dbg !450
%11 = load i64, i64* %len, align 8, !dbg !451
%12 = icmp ult i64 %10, %11, !dbg !450
br i1 %12, label %bb12, label %bb20, !dbg !452
bb5: ; preds = %bb3
store <4 x i64>* %t, <4 x i64>** %self.i, align 8
%13 = load <4 x i64>*, <4 x i64>** %self.i, align 8, !dbg !453, !nonnull !2
store <4 x i64>* %13, <4 x i64>** %self.i.i, align 8
%14 = load <4 x i64>*, <4 x i64>** %self.i.i, align 8, !dbg !454, !nonnull !2
br label %bb6, !dbg !455
bb6: ; preds = %bb5
%15 = bitcast <4 x i64>* %14 to i8*, !dbg !455
store i8* %15, i8** %t1, align 8, !dbg !455
%16 = load i8*, i8** %x, align 8, !dbg !456
%17 = load i64, i64* %i, align 8, !dbg !457
; call core::ptr::<impl *mut T>::add
%18 = call i8* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$3add17h0420c0e37e430bfcE"(i8* %16, i64 %17), !dbg !456
store i8* %18, i8** %x2, align 8, !dbg !456
br label %bb7, !dbg !456
bb7: ; preds = %bb6
%19 = load i8*, i8** %y, align 8, !dbg !458
%20 = load i64, i64* %i, align 8, !dbg !459
; call core::ptr::<impl *mut T>::add
%21 = call i8* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$3add17h0420c0e37e430bfcE"(i8* %19, i64 %20), !dbg !458
store i8* %21, i8** %y3, align 8, !dbg !458
br label %bb8, !dbg !458
bb8: ; preds = %bb7
%22 = load i8*, i8** %x2, align 8, !dbg !460
%23 = load i8*, i8** %t1, align 8, !dbg !461
%24 = load i64, i64* %block_size, align 8, !dbg !462
; call core::intrinsics::copy_nonoverlapping
call void @_ZN4core10intrinsics19copy_nonoverlapping17he1b9af375418f5b7E(i8* %22, i8* %23, i64 %24), !dbg !463
br label %bb9, !dbg !463
bb9: ; preds = %bb8
%25 = load i8*, i8** %y3, align 8, !dbg !464
%26 = load i8*, i8** %x2, align 8, !dbg !465
%27 = load i64, i64* %block_size, align 8, !dbg !466
; call core::intrinsics::copy_nonoverlapping
call void @_ZN4core10intrinsics19copy_nonoverlapping17he1b9af375418f5b7E(i8* %25, i8* %26, i64 %27), !dbg !467
br label %bb10, !dbg !467
bb10: ; preds = %bb9
%28 = load i8*, i8** %t1, align 8, !dbg !468
%29 = load i8*, i8** %y3, align 8, !dbg !469
%30 = load i64, i64* %block_size, align 8, !dbg !470
; call core::intrinsics::copy_nonoverlapping
call void @_ZN4core10intrinsics19copy_nonoverlapping17he1b9af375418f5b7E(i8* %28, i8* %29, i64 %30), !dbg !471
br label %bb11, !dbg !471
bb11: ; preds = %bb10
%31 = load i64, i64* %block_size, align 8, !dbg !472
%32 = load i64, i64* %i, align 8, !dbg !473
%33 = add i64 %32, %31, !dbg !473
store i64 %33, i64* %i, align 8, !dbg !473
br label %bb2, !dbg !440
bb12: ; preds = %bb4
%34 = bitcast %"core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"* %t4 to {}*, !dbg !474
br label %bb13, !dbg !479
bb13: ; preds = %bb12
%35 = load i64, i64* %len, align 8, !dbg !480
%36 = load i64, i64* %i, align 8, !dbg !481
%37 = sub i64 %35, %36, !dbg !480
store i64 %37, i64* %rem, align 8, !dbg !480
store %"core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"* %t4, %"core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"** %self.i9, align 8
%38 = load %"core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"*, %"core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"** %self.i9, align 8, !dbg !482, !nonnull !2
%39 = bitcast %"core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"* %38 to %"core::mem::manually_drop::ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"*, !dbg !482
store %"core::mem::manually_drop::ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"* %39, %"core::mem::manually_drop::ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"** %self.i.i8, align 8
%40 = load %"core::mem::manually_drop::ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"*, %"core::mem::manually_drop::ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"** %self.i.i8, align 8, !dbg !483, !nonnull !2
%41 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"* %40 to %"core::ptr::swap_nonoverlapping_bytes::UnalignedBlock"*, !dbg !483
br label %bb14, !dbg !484
bb14: ; preds = %bb13
%42 = bitcast %"core::ptr::swap_nonoverlapping_bytes::UnalignedBlock"* %41 to i8*, !dbg !484
store i8* %42, i8** %t5, align 8, !dbg !484
%43 = load i8*, i8** %x, align 8, !dbg !485
%44 = load i64, i64* %i, align 8, !dbg !486
; call core::ptr::<impl *mut T>::add
%45 = call i8* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$3add17h0420c0e37e430bfcE"(i8* %43, i64 %44), !dbg !485
store i8* %45, i8** %x6, align 8, !dbg !485
br label %bb15, !dbg !485
bb15: ; preds = %bb14
%46 = load i8*, i8** %y, align 8, !dbg !487
%47 = load i64, i64* %i, align 8, !dbg !488
; call core::ptr::<impl *mut T>::add
%48 = call i8* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$3add17h0420c0e37e430bfcE"(i8* %46, i64 %47), !dbg !487
store i8* %48, i8** %y7, align 8, !dbg !487
br label %bb16, !dbg !487
bb16: ; preds = %bb15
%49 = load i8*, i8** %x6, align 8, !dbg !489
%50 = load i8*, i8** %t5, align 8, !dbg !490
%51 = load i64, i64* %rem, align 8, !dbg !491
; call core::intrinsics::copy_nonoverlapping
call void @_ZN4core10intrinsics19copy_nonoverlapping17he1b9af375418f5b7E(i8* %49, i8* %50, i64 %51), !dbg !492
br label %bb17, !dbg !492
bb17: ; preds = %bb16
%52 = load i8*, i8** %y7, align 8, !dbg !493
%53 = load i8*, i8** %x6, align 8, !dbg !494
%54 = load i64, i64* %rem, align 8, !dbg !495
; call core::intrinsics::copy_nonoverlapping
call void @_ZN4core10intrinsics19copy_nonoverlapping17he1b9af375418f5b7E(i8* %52, i8* %53, i64 %54), !dbg !496
br label %bb18, !dbg !496
bb18: ; preds = %bb17
%55 = load i8*, i8** %t5, align 8, !dbg !497
%56 = load i8*, i8** %y7, align 8, !dbg !498
%57 = load i64, i64* %rem, align 8, !dbg !499
; call core::intrinsics::copy_nonoverlapping
call void @_ZN4core10intrinsics19copy_nonoverlapping17he1b9af375418f5b7E(i8* %55, i8* %56, i64 %57), !dbg !500
br label %bb19, !dbg !500
bb19: ; preds = %bb18
br label %bb20, !dbg !452
bb20: ; preds = %bb19, %bb4
ret void, !dbg !501
}
; core::ptr::<impl *mut T>::add
; Function Attrs: inlinehint uwtable
define i8* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$3add17h0420c0e37e430bfcE"(i8*, i64) unnamed_addr #0 !dbg !502 {
start:
%count = alloca i64, align 8
%self = alloca i8*, align 8
store i8* %0, i8** %self, align 8
call void @llvm.dbg.declare(metadata i8** %self, metadata !506, metadata !DIExpression()), !dbg !507
store i64 %1, i64* %count, align 8
call void @llvm.dbg.declare(metadata i64* %count, metadata !508, metadata !DIExpression()), !dbg !507
%2 = load i8*, i8** %self, align 8, !dbg !509
%3 = load i64, i64* %count, align 8, !dbg !510
; call core::ptr::<impl *mut T>::offset
%4 = call i8* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$6offset17h59fdf5f61cd3626bE"(i8* %2, i64 %3), !dbg !509
br label %bb1, !dbg !509
bb1: ; preds = %start
ret i8* %4, !dbg !511
}
; core::ptr::<impl *mut T>::offset
; Function Attrs: inlinehint uwtable
define i8* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$6offset17h59fdf5f61cd3626bE"(i8*, i64) unnamed_addr #0 !dbg !512 {
start:
%tmp_ret = alloca i8*, align 8
%count = alloca i64, align 8
%self = alloca i8*, align 8
store i8* %0, i8** %self, align 8
call void @llvm.dbg.declare(metadata i8** %self, metadata !515, metadata !DIExpression()), !dbg !516
store i64 %1, i64* %count, align 8
call void @llvm.dbg.declare(metadata i64* %count, metadata !517, metadata !DIExpression()), !dbg !516
%2 = load i8*, i8** %self, align 8, !dbg !518
%3 = load i64, i64* %count, align 8, !dbg !519
%4 = getelementptr inbounds i8, i8* %2, i64 %3, !dbg !520
store i8* %4, i8** %tmp_ret, align 8, !dbg !520
%5 = load i8*, i8** %tmp_ret, align 8, !dbg !520
br label %bb1, !dbg !520
bb1: ; preds = %start
ret i8* %5, !dbg !521
}
; core::ptr::<impl *mut T>::is_null
; Function Attrs: inlinehint uwtable
define zeroext i1 @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17ha979f8c7c468a2b4E"(i64*) unnamed_addr #0 !dbg !522 {
start:
%self = alloca i64*, align 8
store i64* %0, i64** %self, align 8
call void @llvm.dbg.declare(metadata i64** %self, metadata !525, metadata !DIExpression()), !dbg !526
%1 = load i64*, i64** %self, align 8, !dbg !527
%2 = bitcast i64* %1 to i8*, !dbg !528
; call core::ptr::null_mut
%3 = call i8* @_ZN4core3ptr8null_mut17had996423b354d73cE(), !dbg !529
br label %bb1, !dbg !529
bb1: ; preds = %start
%4 = icmp eq i8* %2, %3, !dbg !528
ret i1 %4, !dbg !530
}
; core::ptr::<impl *const T>::wrapping_add
; Function Attrs: inlinehint uwtable
define i8* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$12wrapping_add17h796bc2d3568076dbE"(i8*, i64) unnamed_addr #0 !dbg !531 {
start:
%count = alloca i64, align 8
%self = alloca i8*, align 8
store i8* %0, i8** %self, align 8
call void @llvm.dbg.declare(metadata i8** %self, metadata !534, metadata !DIExpression()), !dbg !535
store i64 %1, i64* %count, align 8
call void @llvm.dbg.declare(metadata i64* %count, metadata !536, metadata !DIExpression()), !dbg !535
%2 = load i8*, i8** %self, align 8, !dbg !537
%3 = load i64, i64* %count, align 8, !dbg !538
; call core::ptr::<impl *const T>::wrapping_offset
%4 = call i8* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$15wrapping_offset17h45b3ac03c2a8679dE"(i8* %2, i64 %3), !dbg !537
br label %bb1, !dbg !537
bb1: ; preds = %start
ret i8* %4, !dbg !539
}
; core::ptr::<impl *const T>::wrapping_offset
; Function Attrs: inlinehint uwtable
define i8* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$15wrapping_offset17h45b3ac03c2a8679dE"(i8*, i64) unnamed_addr #0 !dbg !540 {
start:
%tmp_ret = alloca i8*, align 8
%count = alloca i64, align 8
%self = alloca i8*, align 8
store i8* %0, i8** %self, align 8
call void @llvm.dbg.declare(metadata i8** %self, metadata !543, metadata !DIExpression()), !dbg !544
store i64 %1, i64* %count, align 8
call void @llvm.dbg.declare(metadata i64* %count, metadata !545, metadata !DIExpression()), !dbg !544
%2 = load i8*, i8** %self, align 8, !dbg !546
%3 = load i64, i64* %count, align 8, !dbg !548
%4 = getelementptr i8, i8* %2, i64 %3, !dbg !549
store i8* %4, i8** %tmp_ret, align 8, !dbg !549
%5 = load i8*, i8** %tmp_ret, align 8, !dbg !549
br label %bb1, !dbg !549
bb1: ; preds = %start
ret i8* %5, !dbg !550
}
; core::ptr::<impl *const T>::add
; Function Attrs: inlinehint uwtable
define i64* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$3add17hca3a566798bffda1E"(i64*, i64) unnamed_addr #0 !dbg !551 {
start:
%count = alloca i64, align 8
%self = alloca i64*, align 8
store i64* %0, i64** %self, align 8
call void @llvm.dbg.declare(metadata i64** %self, metadata !554, metadata !DIExpression()), !dbg !555
store i64 %1, i64* %count, align 8
call void @llvm.dbg.declare(metadata i64* %count, metadata !556, metadata !DIExpression()), !dbg !555
%2 = load i64*, i64** %self, align 8, !dbg !557
%3 = load i64, i64* %count, align 8, !dbg !558
; call core::ptr::<impl *const T>::offset
%4 = call i64* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$6offset17h66d880d9e1cefb86E"(i64* %2, i64 %3), !dbg !557
br label %bb1, !dbg !557
bb1: ; preds = %start
ret i64* %4, !dbg !559
}
; core::ptr::<impl *const T>::offset
; Function Attrs: inlinehint uwtable
define i64* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$6offset17h66d880d9e1cefb86E"(i64*, i64) unnamed_addr #0 !dbg !560 {
start:
%tmp_ret = alloca i64*, align 8
%count = alloca i64, align 8
%self = alloca i64*, align 8
store i64* %0, i64** %self, align 8
call void @llvm.dbg.declare(metadata i64** %self, metadata !563, metadata !DIExpression()), !dbg !564
store i64 %1, i64* %count, align 8
call void @llvm.dbg.declare(metadata i64* %count, metadata !565, metadata !DIExpression()), !dbg !564
%2 = load i64*, i64** %self, align 8, !dbg !566
%3 = load i64, i64* %count, align 8, !dbg !567
%4 = getelementptr inbounds i64, i64* %2, i64 %3, !dbg !568
store i64* %4, i64** %tmp_ret, align 8, !dbg !568
%5 = load i64*, i64** %tmp_ret, align 8, !dbg !568
br label %bb1, !dbg !568
bb1: ; preds = %start
ret i64* %5, !dbg !569
}
; core::ptr::<impl *const T>::is_null
; Function Attrs: inlinehint uwtable
define zeroext i1 @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$7is_null17h2cb5e5d9be44649cE"(i64*) unnamed_addr #0 !dbg !570 {
start:
%self = alloca i64*, align 8
store i64* %0, i64** %self, align 8
call void @llvm.dbg.declare(metadata i64** %self, metadata !573, metadata !DIExpression()), !dbg !574
%1 = load i64*, i64** %self, align 8, !dbg !575
%2 = bitcast i64* %1 to i8*, !dbg !576
; call core::ptr::null
%3 = call i8* @_ZN4core3ptr4null17h6f7f1f48fb5b772cE(), !dbg !577
br label %bb1, !dbg !577
bb1: ; preds = %start
%4 = icmp eq i8* %2, %3, !dbg !576
ret i1 %4, !dbg !578
}
; core::ptr::null
; Function Attrs: inlinehint uwtable
define i8* @_ZN4core3ptr4null17h6f7f1f48fb5b772cE() unnamed_addr #0 !dbg !579 {
start:
ret i8* null, !dbg !582
}
; core::ptr::read
; Function Attrs: inlinehint uwtable
define i64 @_ZN4core3ptr4read17h6c5ac2ebfe0041f6E(i64*) unnamed_addr #0 !dbg !583 {
start:
%self.i.i = alloca i64*, align 8
call void @llvm.dbg.declare(metadata i64** %self.i.i, metadata !586, metadata !DIExpression()), !dbg !594
%self.i1 = alloca i64*, align 8
call void @llvm.dbg.declare(metadata i64** %self.i1, metadata !607, metadata !DIExpression()), !dbg !608
%slot.i.i = alloca i64, align 8
call void @llvm.dbg.declare(metadata i64* %slot.i.i, metadata !609, metadata !DIExpression()), !dbg !613
%self.i = alloca i64, align 8
call void @llvm.dbg.declare(metadata i64* %self.i, metadata !619, metadata !DIExpression()), !dbg !620
%_0.i = alloca i64, align 8
%tmp = alloca i64, align 8
%src = alloca i64*, align 8
store i64* %0, i64** %src, align 8
call void @llvm.dbg.declare(metadata i64** %src, metadata !621, metadata !DIExpression()), !dbg !622
call void @llvm.dbg.declare(metadata i64* %tmp, metadata !623, metadata !DIExpression()), !dbg !624
%1 = bitcast i64* %_0.i to {}*, !dbg !625
%2 = load i64, i64* %_0.i, align 8, !dbg !630
store i64 %2, i64* %tmp, align 8, !dbg !631
br label %bb1, !dbg !631
bb1: ; preds = %start
%3 = load i64*, i64** %src, align 8, !dbg !632
store i64* %tmp, i64** %self.i1, align 8
%4 = load i64*, i64** %self.i1, align 8, !dbg !633, !nonnull !2
store i64* %4, i64** %self.i.i, align 8
%5 = load i64*, i64** %self.i.i, align 8, !dbg !634, !nonnull !2
br label %bb2, !dbg !635
bb2: ; preds = %bb1
; call core::intrinsics::copy_nonoverlapping
call void @_ZN4core10intrinsics19copy_nonoverlapping17h6fe3ca3ba4278673E(i64* %3, i64* %5, i64 1), !dbg !636
br label %bb3, !dbg !636
bb3: ; preds = %bb2
%6 = load i64, i64* %tmp, align 8, !dbg !637
store i64 %6, i64* %self.i, align 8
%7 = load i64, i64* %self.i, align 8, !dbg !638
store i64 %7, i64* %slot.i.i, align 8
%8 = load i64, i64* %slot.i.i, align 8, !dbg !639
br label %bb4, !dbg !637
bb4: ; preds = %bb3
ret i64 %8, !dbg !640
}
; core::ptr::write
; Function Attrs: inlinehint uwtable
define void @_ZN4core3ptr5write17h4aea043b48e6b795E(i64*, i64) unnamed_addr #0 !dbg !641 {
start:
%src = alloca i64, align 8
%dst = alloca i64*, align 8
store i64* %0, i64** %dst, align 8
call void @llvm.dbg.declare(metadata i64** %dst, metadata !644, metadata !DIExpression()), !dbg !645
store i64 %1, i64* %src, align 8
call void @llvm.dbg.declare(metadata i64* %src, metadata !646, metadata !DIExpression()), !dbg !645
%2 = load i64*, i64** %dst, align 8, !dbg !647
%3 = load i64, i64* %src, align 8, !dbg !648
store i64 %3, i64* %2, align 8, !dbg !648
ret void, !dbg !649
}
; core::ptr::unique::Unique<T>::as_ptr
; Function Attrs: inlinehint uwtable
define i64* @"_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ptr17haf927ead46b1fb4dE"(i64* nonnull) unnamed_addr #0 !dbg !650 {
start:
%self = alloca i64*, align 8
store i64* %0, i64** %self, align 8
call void @llvm.dbg.declare(metadata i64** %self, metadata !661, metadata !DIExpression()), !dbg !662
%1 = load i64*, i64** %self, align 8, !dbg !663
ret i64* %1, !dbg !664
}
; core::ptr::null_mut
; Function Attrs: inlinehint uwtable
define i8* @_ZN4core3ptr8null_mut17had996423b354d73cE() unnamed_addr #0 !dbg !665 {
start:
ret i8* null, !dbg !668
}
; core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::Range<A>>::next
; Function Attrs: inlinehint uwtable
define { i64, i64 } @"_ZN4core4iter5range101_$LT$impl$u20$core..iter..traits..iterator..Iterator$u20$for$u20$core..ops..range..Range$LT$A$GT$$GT$4next17h28f5ccce6734b660E"({ i64, i64 }* align 8 dereferenceable(16)) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality !dbg !669 {
start:
%personalityslot = alloca { i8*, i32 }, align 8
%_15 = alloca i8, align 1
%n = alloca i64, align 8
%_5 = alloca { i64, i64 }, align 8
%_0 = alloca { i64, i64 }, align 8
%self = alloca { i64, i64 }*, align 8
store { i64, i64 }* %0, { i64, i64 }** %self, align 8
call void @llvm.dbg.declare(metadata { i64, i64 }** %self, metadata !682, metadata !DIExpression()), !dbg !683
call void @llvm.dbg.declare(metadata i64* %n, metadata !684, metadata !DIExpression()), !dbg !686
store i8 0, i8* %_15, align 1, !dbg !687
%1 = load { i64, i64 }*, { i64, i64 }** %self, align 8, !dbg !687, !nonnull !2
%2 = bitcast { i64, i64 }* %1 to i64*, !dbg !687
%3 = load { i64, i64 }*, { i64, i64 }** %self, align 8, !dbg !688, !nonnull !2
%4 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %3, i32 0, i32 1, !dbg !688
; call core::cmp::impls::<impl core::cmp::PartialOrd for usize>::lt
%5 = call zeroext i1 @"_ZN4core3cmp5impls57_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$usize$GT$2lt17hd1f31b451aec6da1E"(i64* noalias readonly align 8 dereferenceable(8) %2, i64* noalias readonly align 8 dereferenceable(8) %4), !dbg !687
br label %bb2, !dbg !687
bb1: ; preds = %bb12, %bb9
%6 = bitcast { i8*, i32 }* %personalityslot to i8**, !dbg !689
%7 = load i8*, i8** %6, align 8, !dbg !689
%8 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %personalityslot, i32 0, i32 1, !dbg !689
%9 = load i32, i32* %8, align 8, !dbg !689
%10 = insertvalue { i8*, i32 } undef, i8* %7, 0, !dbg !689
%11 = insertvalue { i8*, i32 } %10, i32 %9, 1, !dbg !689
resume { i8*, i32 } %11, !dbg !689
bb2: ; preds = %start
br i1 %5, label %bb4, label %bb3, !dbg !690
bb3: ; preds = %bb2
%12 = bitcast { i64, i64 }* %_0 to i64*, !dbg !691
store i64 0, i64* %12, align 8, !dbg !691
br label %bb11, !dbg !690
bb4: ; preds = %bb2
%13 = load { i64, i64 }*, { i64, i64 }** %self, align 8, !dbg !692, !nonnull !2
%14 = bitcast { i64, i64 }* %13 to i64*, !dbg !692
store i8 1, i8* %_15, align 1, !dbg !692
; call <usize as core::iter::range::Step>::add_usize
%15 = call { i64, i64 } @"_ZN49_$LT$usize$u20$as$u20$core..iter..range..Step$GT$9add_usize17h9709d2abb99d1f02E"(i64* noalias readonly align 8 dereferenceable(8) %14, i64 1), !dbg !692
store { i64, i64 } %15, { i64, i64 }* %_5, align 8, !dbg !692
br label %bb5, !dbg !692
bb5: ; preds = %bb4
%16 = bitcast { i64, i64 }* %_5 to i64*, !dbg !693
%17 = load i64, i64* %16, align 8, !dbg !693, !range !177
%18 = icmp eq i64 %17, 1, !dbg !693
br i1 %18, label %bb7, label %bb6, !dbg !693
bb6: ; preds = %bb5
%19 = bitcast { i64, i64 }* %_0 to i64*, !dbg !694
store i64 0, i64* %19, align 8, !dbg !694
br label %bb17, !dbg !695
bb7: ; preds = %bb5
store i8 0, i8* %_15, align 1, !dbg !696
%20 = bitcast { i64, i64 }* %_5 to %"core::option::Option<usize>::Some"*, !dbg !696
%21 = getelementptr inbounds %"core::option::Option<usize>::Some", %"core::option::Option<usize>::Some"* %20, i32 0, i32 1, !dbg !696
%22 = load i64, i64* %21, align 8, !dbg !696
store i64 %22, i64* %n, align 8, !dbg !696
%23 = load { i64, i64 }*, { i64, i64 }** %self, align 8, !dbg !697, !nonnull !2
%24 = bitcast { i64, i64 }* %23 to i64*, !dbg !697
; invoke core::mem::swap
invoke void @_ZN4core3mem4swap17h8ad51cb2c514cb30E(i64* align 8 dereferenceable(8) %n, i64* align 8 dereferenceable(8) %24)
to label %bb8 unwind label %cleanup, !dbg !698
bb8: ; preds = %bb7
%25 = load i64, i64* %n, align 8, !dbg !699
%26 = bitcast { i64, i64 }* %_0 to %"core::option::Option<usize>::Some"*, !dbg !700
%27 = getelementptr inbounds %"core::option::Option<usize>::Some", %"core::option::Option<usize>::Some"* %26, i32 0, i32 1, !dbg !700
store i64 %25, i64* %27, align 8, !dbg !700
%28 = bitcast { i64, i64 }* %_0 to i64*, !dbg !700
store i64 1, i64* %28, align 8, !dbg !700
br label %bb17, !dbg !701
bb9: ; preds = %bb10
%29 = bitcast { i64, i64 }* %_5 to i64*, !dbg !701
%30 = load i64, i64* %29, align 8, !dbg !701, !range !177
%31 = icmp eq i64 %30, 1, !dbg !701
br i1 %31, label %bb1, label %bb12, !dbg !701
bb10: ; preds = %cleanup
br label %bb9, !dbg !702
bb11: ; preds = %bb3, %bb13
%32 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %_0, i32 0, i32 0, !dbg !703
%33 = load i64, i64* %32, align 8, !dbg !703, !range !177
%34 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %_0, i32 0, i32 1, !dbg !703
%35 = load i64, i64* %34, align 8, !dbg !703
%36 = insertvalue { i64, i64 } undef, i64 %33, 0, !dbg !703
%37 = insertvalue { i64, i64 } %36, i64 %35, 1, !dbg !703
ret { i64, i64 } %37, !dbg !703
bb12: ; preds = %bb9
br label %bb1, !dbg !701
bb13: ; preds = %bb15, %bb14, %bb16
store i8 0, i8* %_15, align 1, !dbg !701
br label %bb11, !dbg !690
bb14: ; preds = %bb17
%38 = load i8, i8* %_15, align 1, !dbg !701, !range !171
%39 = trunc i8 %38 to i1, !dbg !701
br i1 %39, label %bb15, label %bb13, !dbg !701
bb15: ; preds = %bb14
store i8 0, i8* %_15, align 1, !dbg !701
br label %bb13, !dbg !701
bb16: ; preds = %bb17
br label %bb13, !dbg !701
bb17: ; preds = %bb8, %bb6
%40 = bitcast { i64, i64 }* %_5 to i64*, !dbg !701
%41 = load i64, i64* %40, align 8, !dbg !701, !range !177
%42 = icmp eq i64 %41, 1, !dbg !701
br i1 %42, label %bb14, label %bb16, !dbg !701
cleanup: ; preds = %bb7
%43 = landingpad { i8*, i32 }
cleanup
%44 = extractvalue { i8*, i32 } %43, 0
%45 = extractvalue { i8*, i32 } %43, 1
%46 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %personalityslot, i32 0, i32 0
store i8* %44, i8** %46, align 8
%47 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %personalityslot, i32 0, i32 1
store i32 %45, i32* %47, align 8
br label %bb10
}
; core::slice::from_raw_parts
; Function Attrs: inlinehint uwtable
define { [0 x i64]*, i64 } @_ZN4core5slice14from_raw_parts17h35540e84de7ba669E(i64*, i64) unnamed_addr #0 !dbg !704 {
start:
%len = alloca i64, align 8
%data = alloca i64*, align 8
store i64* %0, i64** %data, align 8
call void @llvm.dbg.declare(metadata i64** %data, metadata !713, metadata !DIExpression()), !dbg !714
store i64 %1, i64* %len, align 8
call void @llvm.dbg.declare(metadata i64* %len, metadata !715, metadata !DIExpression()), !dbg !714
br i1 false, label %bb1, label %bb6, !dbg !716
bb1: ; preds = %start
%2 = load i64*, i64** %data, align 8, !dbg !719
%3 = ptrtoint i64* %2 to i64, !dbg !719
; call core::mem::align_of
%4 = call i64 @_ZN4core3mem8align_of17h7f293d7f1cd07ba4E(), !dbg !720
br label %bb2, !dbg !720
bb2: ; preds = %bb1
%5 = icmp eq i64 %4, 0, !dbg !719
%6 = call i1 @llvm.expect.i1(i1 %5, i1 false), !dbg !719
br i1 %6, label %panic, label %bb3, !dbg !719
bb3: ; preds = %bb2
%7 = urem i64 %3, %4, !dbg !719
%8 = icmp eq i64 %7, 0, !dbg !719
%9 = xor i1 %8, true, !dbg !721
br i1 %9, label %bb5, label %bb4, !dbg !721
bb4: ; preds = %bb3
br label %bb6, !dbg !716
bb5: ; preds = %bb3
; call core::panicking::panic
call void @_ZN4core9panicking5panic17h89241d71a860ed98E({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly align 8 dereferenceable(40) bitcast (<{ i8*, [8 x i8], i8*, [16 x i8] }>* @2 to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*)), !dbg !722
unreachable, !dbg !722
bb6: ; preds = %bb4, %start
br i1 false, label %bb7, label %bb12, !dbg !716
bb7: ; preds = %bb6
; call core::mem::size_of
%10 = call i64 @_ZN4core3mem7size_of17hd7e5cfcb791a5d1fE(), !dbg !723
br label %bb8, !dbg !723
bb8: ; preds = %bb7
%11 = load i64, i64* %len, align 8, !dbg !724
; call core::num::<impl usize>::saturating_mul
%12 = call i64 @"_ZN4core3num23_$LT$impl$u20$usize$GT$14saturating_mul17hb7b5c8bd037e7bc6E"(i64 %10, i64 %11), !dbg !723
br label %bb9, !dbg !723
bb9: ; preds = %bb8
%13 = icmp ule i64 %12, 9223372036854775807, !dbg !723
%14 = xor i1 %13, true, !dbg !721
br i1 %14, label %bb11, label %bb10, !dbg !721
bb10: ; preds = %bb9
br label %bb12, !dbg !716
bb11: ; preds = %bb9
; call core::panicking::panic
call void @_ZN4core9panicking5panic17h89241d71a860ed98E({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly align 8 dereferenceable(40) bitcast (<{ i8*, [8 x i8], i8*, [16 x i8] }>* @4 to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*)), !dbg !722
unreachable, !dbg !722
bb12: ; preds = %bb10, %bb6
%15 = load i64*, i64** %data, align 8, !dbg !725
%16 = load i64, i64* %len, align 8, !dbg !726
; call core::ptr::slice_from_raw_parts
%17 = call { [0 x i64]*, i64 } @_ZN4core3ptr20slice_from_raw_parts17hceeedbdd3a01887eE(i64* %15, i64 %16), !dbg !727
%18 = extractvalue { [0 x i64]*, i64 } %17, 0, !dbg !727
%19 = extractvalue { [0 x i64]*, i64 } %17, 1, !dbg !727
br label %bb13, !dbg !727
bb13: ; preds = %bb12
%20 = insertvalue { [0 x i64]*, i64 } undef, [0 x i64]* %18, 0, !dbg !728
%21 = insertvalue { [0 x i64]*, i64 } %20, i64 %19, 1, !dbg !728
ret { [0 x i64]*, i64 } %21, !dbg !728
panic: ; preds = %bb2
; call core::panicking::panic
call void @_ZN4core9panicking5panic17h89241d71a860ed98E({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly align 8 dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* @panic_loc.8 to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*)), !dbg !719
unreachable, !dbg !719
}
; core::slice::from_raw_parts_mut
; Function Attrs: inlinehint uwtable
define { [0 x i64]*, i64 } @_ZN4core5slice18from_raw_parts_mut17hedc6f5a5b623fa49E(i64*, i64) unnamed_addr #0 !dbg !729 {
start:
%len = alloca i64, align 8
%data = alloca i64*, align 8
store i64* %0, i64** %data, align 8
call void @llvm.dbg.declare(metadata i64** %data, metadata !736, metadata !DIExpression()), !dbg !737
store i64 %1, i64* %len, align 8
call void @llvm.dbg.declare(metadata i64* %len, metadata !738, metadata !DIExpression()), !dbg !737
br i1 false, label %bb1, label %bb6, !dbg !739
bb1: ; preds = %start
%2 = load i64*, i64** %data, align 8, !dbg !741
%3 = ptrtoint i64* %2 to i64, !dbg !741
; call core::mem::align_of
%4 = call i64 @_ZN4core3mem8align_of17h7f293d7f1cd07ba4E(), !dbg !742
br label %bb2, !dbg !742
bb2: ; preds = %bb1
%5 = icmp eq i64 %4, 0, !dbg !741
%6 = call i1 @llvm.expect.i1(i1 %5, i1 false), !dbg !741
br i1 %6, label %panic, label %bb3, !dbg !741
bb3: ; preds = %bb2
%7 = urem i64 %3, %4, !dbg !741
%8 = icmp eq i64 %7, 0, !dbg !741
%9 = xor i1 %8, true, !dbg !743
br i1 %9, label %bb5, label %bb4, !dbg !743
bb4: ; preds = %bb3
br label %bb6, !dbg !739
bb5: ; preds = %bb3
; call core::panicking::panic
call void @_ZN4core9panicking5panic17h89241d71a860ed98E({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly align 8 dereferenceable(40) bitcast (<{ i8*, [8 x i8], i8*, [16 x i8] }>* @5 to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*)), !dbg !744
unreachable, !dbg !744
bb6: ; preds = %bb4, %start
br i1 false, label %bb7, label %bb12, !dbg !739
bb7: ; preds = %bb6
; call core::mem::size_of
%10 = call i64 @_ZN4core3mem7size_of17hd7e5cfcb791a5d1fE(), !dbg !745
br label %bb8, !dbg !745
bb8: ; preds = %bb7
%11 = load i64, i64* %len, align 8, !dbg !746
; call core::num::<impl usize>::saturating_mul
%12 = call i64 @"_ZN4core3num23_$LT$impl$u20$usize$GT$14saturating_mul17hb7b5c8bd037e7bc6E"(i64 %10, i64 %11), !dbg !745
br label %bb9, !dbg !745
bb9: ; preds = %bb8
%13 = icmp ule i64 %12, 9223372036854775807, !dbg !745
%14 = xor i1 %13, true, !dbg !743
br i1 %14, label %bb11, label %bb10, !dbg !743
bb10: ; preds = %bb9
br label %bb12, !dbg !739
bb11: ; preds = %bb9
; call core::panicking::panic
call void @_ZN4core9panicking5panic17h89241d71a860ed98E({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly align 8 dereferenceable(40) bitcast (<{ i8*, [8 x i8], i8*, [16 x i8] }>* @6 to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*)), !dbg !744
unreachable, !dbg !744
bb12: ; preds = %bb10, %bb6
%15 = load i64*, i64** %data, align 8, !dbg !747
%16 = load i64, i64* %len, align 8, !dbg !748
; call core::ptr::slice_from_raw_parts_mut
%17 = call { [0 x i64]*, i64 } @_ZN4core3ptr24slice_from_raw_parts_mut17h94ce74124d6a8a85E(i64* %15, i64 %16), !dbg !749
%18 = extractvalue { [0 x i64]*, i64 } %17, 0, !dbg !749
%19 = extractvalue { [0 x i64]*, i64 } %17, 1, !dbg !749
br label %bb13, !dbg !749
bb13: ; preds = %bb12
%20 = insertvalue { [0 x i64]*, i64 } undef, [0 x i64]* %18, 0, !dbg !750
%21 = insertvalue { [0 x i64]*, i64 } %20, i64 %19, 1, !dbg !750
ret { [0 x i64]*, i64 } %21, !dbg !750
panic: ; preds = %bb2
; call core::panicking::panic
call void @_ZN4core9panicking5panic17h89241d71a860ed98E({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly align 8 dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* @panic_loc.9 to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*)), !dbg !741
unreachable, !dbg !741
}
; core::slice::<impl [T]>::len
; Function Attrs: inlinehint uwtable
define i64 @"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$3len17hd2800026b116b3aeE"([0 x i64]* noalias nonnull readonly align 8, i64) unnamed_addr #0 !dbg !751 {
start:
%_2 = alloca %"core::ptr::Repr<isize>", align 8
%self = alloca { [0 x i64]*, i64 }, align 8
%2 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %self, i32 0, i32 0
store [0 x i64]* %0, [0 x i64]** %2, align 8
%3 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %self, i32 0, i32 1
store i64 %1, i64* %3, align 8
call void @llvm.dbg.declare(metadata { [0 x i64]*, i64 }* %self, metadata !755, metadata !DIExpression()), !dbg !756
%4 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %self, i32 0, i32 0, !dbg !757
%5 = load [0 x i64]*, [0 x i64]** %4, align 8, !dbg !757, !nonnull !2
%6 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %self, i32 0, i32 1, !dbg !757
%7 = load i64, i64* %6, align 8, !dbg !757
%8 = bitcast %"core::ptr::Repr<isize>"* %_2 to { [0 x i64]*, i64 }*, !dbg !759
%9 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %8, i32 0, i32 0, !dbg !759
store [0 x i64]* %5, [0 x i64]** %9, align 8, !dbg !759
%10 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %8, i32 0, i32 1, !dbg !759
store i64 %7, i64* %10, align 8, !dbg !759
%11 = bitcast %"core::ptr::Repr<isize>"* %_2 to { i64*, i64 }*, !dbg !759
%12 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %11, i32 0, i32 1, !dbg !759
%13 = load i64, i64* %12, align 8, !dbg !759
ret i64 %13, !dbg !760
}
; core::slice::<impl [T]>::iter
; Function Attrs: inlinehint uwtable
define { i64*, i64* } @"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$4iter17h0f94ceb2d99e4dddE"([0 x i64]* noalias nonnull readonly align 8, i64) unnamed_addr #0 !dbg !761 {
start:
%_21 = alloca %"core::marker::PhantomData<&isize>", align 1
%end = alloca i64*, align 8
%ptr = alloca i64*, align 8
%_0 = alloca { i64*, i64* }, align 8
%self = alloca { [0 x i64]*, i64 }, align 8
%2 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %self, i32 0, i32 0
store [0 x i64]* %0, [0 x i64]** %2, align 8
%3 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %self, i32 0, i32 1
store i64 %1, i64* %3, align 8
call void @llvm.dbg.declare(metadata { [0 x i64]*, i64 }* %self, metadata !773, metadata !DIExpression()), !dbg !774
call void @llvm.dbg.declare(metadata i64** %ptr, metadata !775, metadata !DIExpression()), !dbg !778
call void @llvm.dbg.declare(metadata i64** %end, metadata !779, metadata !DIExpression()), !dbg !781
%4 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %self, i32 0, i32 0, !dbg !782
%5 = load [0 x i64]*, [0 x i64]** %4, align 8, !dbg !782, !nonnull !2
%6 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %self, i32 0, i32 1, !dbg !782
%7 = load i64, i64* %6, align 8, !dbg !782
; call core::slice::<impl [T]>::as_ptr
%8 = call i64* @"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$6as_ptr17h889bd891d50bb3bfE"([0 x i64]* noalias nonnull readonly align 8 %5, i64 %7), !dbg !782
store i64* %8, i64** %ptr, align 8, !dbg !782
br label %bb1, !dbg !782
bb1: ; preds = %start
%9 = load i64*, i64** %ptr, align 8, !dbg !783
; call core::ptr::<impl *const T>::is_null
%10 = call zeroext i1 @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$7is_null17h2cb5e5d9be44649cE"(i64* %9), !dbg !783
br label %bb2, !dbg !783
bb2: ; preds = %bb1
%11 = xor i1 %10, true, !dbg !784
call void @llvm.assume(i1 %11), !dbg !785
br label %bb3, !dbg !785
bb3: ; preds = %bb2
; call core::mem::size_of
%12 = call i64 @_ZN4core3mem7size_of17hd7e5cfcb791a5d1fE(), !dbg !786
br label %bb4, !dbg !786
bb4: ; preds = %bb3
%13 = icmp eq i64 %12, 0, !dbg !786
br i1 %13, label %bb6, label %bb5, !dbg !787
bb5: ; preds = %bb4
%14 = load i64*, i64** %ptr, align 8, !dbg !788
%15 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %self, i32 0, i32 0, !dbg !789
%16 = load [0 x i64]*, [0 x i64]** %15, align 8, !dbg !789, !nonnull !2
%17 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %self, i32 0, i32 1, !dbg !789
%18 = load i64, i64* %17, align 8, !dbg !789
; call core::slice::<impl [T]>::len
%19 = call i64 @"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$3len17hd2800026b116b3aeE"([0 x i64]* noalias nonnull readonly align 8 %16, i64 %18), !dbg !789
br label %bb9, !dbg !789
bb6: ; preds = %bb4
%20 = load i64*, i64** %ptr, align 8, !dbg !790
%21 = bitcast i64* %20 to i8*, !dbg !791
%22 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %self, i32 0, i32 0, !dbg !792
%23 = load [0 x i64]*, [0 x i64]** %22, align 8, !dbg !792, !nonnull !2
%24 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %self, i32 0, i32 1, !dbg !792
%25 = load i64, i64* %24, align 8, !dbg !792
; call core::slice::<impl [T]>::len
%26 = call i64 @"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$3len17hd2800026b116b3aeE"([0 x i64]* noalias nonnull readonly align 8 %23, i64 %25), !dbg !792
br label %bb7, !dbg !792
bb7: ; preds = %bb6
; call core::ptr::<impl *const T>::wrapping_add
%27 = call i8* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$12wrapping_add17h796bc2d3568076dbE"(i8* %21, i64 %26), !dbg !791
br label %bb8, !dbg !791
bb8: ; preds = %bb7
%28 = bitcast i8* %27 to i64*, !dbg !791
store i64* %28, i64** %end, align 8, !dbg !791
br label %bb11, !dbg !787
bb9: ; preds = %bb5
; call core::ptr::<impl *const T>::add
%29 = call i64* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$3add17hca3a566798bffda1E"(i64* %14, i64 %19), !dbg !788
store i64* %29, i64** %end, align 8, !dbg !788
br label %bb10, !dbg !788
bb10: ; preds = %bb9
br label %bb11, !dbg !787
bb11: ; preds = %bb10, %bb8
%30 = load i64*, i64** %ptr, align 8, !dbg !793
%31 = load i64*, i64** %end, align 8, !dbg !794
%32 = bitcast { i64*, i64* }* %_0 to i64**, !dbg !795
store i64* %30, i64** %32, align 8, !dbg !795
%33 = getelementptr inbounds { i64*, i64* }, { i64*, i64* }* %_0, i32 0, i32 1, !dbg !795
store i64* %31, i64** %33, align 8, !dbg !795
%34 = bitcast { i64*, i64* }* %_0 to %"core::marker::PhantomData<&isize>"*, !dbg !795
%35 = getelementptr inbounds { i64*, i64* }, { i64*, i64* }* %_0, i32 0, i32 0, !dbg !796
%36 = load i64*, i64** %35, align 8, !dbg !796
%37 = getelementptr inbounds { i64*, i64* }, { i64*, i64* }* %_0, i32 0, i32 1, !dbg !796
%38 = load i64*, i64** %37, align 8, !dbg !796
%39 = insertvalue { i64*, i64* } undef, i64* %36, 0, !dbg !796
%40 = insertvalue { i64*, i64* } %39, i64* %38, 1, !dbg !796
ret { i64*, i64* } %40, !dbg !796
}
; core::slice::<impl [T]>::as_ptr
; Function Attrs: inlinehint uwtable
define i64* @"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$6as_ptr17h889bd891d50bb3bfE"([0 x i64]* noalias nonnull readonly align 8, i64) unnamed_addr #0 !dbg !797 {
start:
%self = alloca { [0 x i64]*, i64 }, align 8
%2 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %self, i32 0, i32 0
store [0 x i64]* %0, [0 x i64]** %2, align 8
%3 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %self, i32 0, i32 1
store i64 %1, i64* %3, align 8
call void @llvm.dbg.declare(metadata { [0 x i64]*, i64 }* %self, metadata !800, metadata !DIExpression()), !dbg !801
%4 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %self, i32 0, i32 0, !dbg !802
%5 = load [0 x i64]*, [0 x i64]** %4, align 8, !dbg !802, !nonnull !2
%6 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %self, i32 0, i32 1, !dbg !802
%7 = load i64, i64* %6, align 8, !dbg !802
%8 = bitcast [0 x i64]* %5 to i64*, !dbg !802
ret i64* %8, !dbg !803
}
; core::slice::<impl core::ops::index::IndexMut<I> for [T]>::index_mut
; Function Attrs: inlinehint uwtable
define align 8 dereferenceable(8) i64* @"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hae2665d649d0961bE"([0 x i64]* nonnull align 8, i64, i64) unnamed_addr #0 !dbg !804 {
start:
%index = alloca i64, align 8
%self = alloca { [0 x i64]*, i64 }, align 8
%3 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %self, i32 0, i32 0
store [0 x i64]* %0, [0 x i64]** %3, align 8
%4 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %self, i32 0, i32 1
store i64 %1, i64* %4, align 8
call void @llvm.dbg.declare(metadata { [0 x i64]*, i64 }* %self, metadata !810, metadata !DIExpression()), !dbg !811
store i64 %2, i64* %index, align 8
call void @llvm.dbg.declare(metadata i64* %index, metadata !812, metadata !DIExpression()), !dbg !811
%5 = load i64, i64* %index, align 8, !dbg !813
%6 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %self, i32 0, i32 0, !dbg !814
%7 = load [0 x i64]*, [0 x i64]** %6, align 8, !dbg !814, !nonnull !2
%8 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %self, i32 0, i32 1, !dbg !814
%9 = load i64, i64* %8, align 8, !dbg !814
; call <usize as core::slice::SliceIndex<[T]>>::index_mut
%10 = call align 8 dereferenceable(8) i64* @"_ZN68_$LT$usize$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hd852e2f14eb0bd1dE"(i64 %5, [0 x i64]* nonnull align 8 %7, i64 %9), !dbg !813
br label %bb1, !dbg !813
bb1: ; preds = %start
ret i64* %10, !dbg !815
}
; core::option::Option<T>::unwrap_or
; Function Attrs: inlinehint uwtable
define i64 @"_ZN4core6option15Option$LT$T$GT$9unwrap_or17h716b96369b915d77E"(i64, i64, i64) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality !dbg !816 {
start:
%personalityslot = alloca { i8*, i32 }, align 8
%_6 = alloca i8, align 1
%_5 = alloca i8, align 1
%x = alloca i64, align 8
%_0 = alloca i64, align 8
%def = alloca i64, align 8
%self = alloca { i64, i64 }, align 8
%3 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %self, i32 0, i32 0
store i64 %0, i64* %3, align 8
%4 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %self, i32 0, i32 1
store i64 %1, i64* %4, align 8
call void @llvm.dbg.declare(metadata { i64, i64 }* %self, metadata !820, metadata !DIExpression()), !dbg !821
store i64 %2, i64* %def, align 8
call void @llvm.dbg.declare(metadata i64* %def, metadata !822, metadata !DIExpression()), !dbg !821
call void @llvm.dbg.declare(metadata i64* %x, metadata !823, metadata !DIExpression()), !dbg !825
store i8 0, i8* %_5, align 1, !dbg !826
store i8 0, i8* %_6, align 1, !dbg !826
store i8 1, i8* %_5, align 1, !dbg !826
store i8 1, i8* %_6, align 1, !dbg !826
%5 = bitcast { i64, i64 }* %self to i64*, !dbg !826
%6 = load i64, i64* %5, align 8, !dbg !826, !range !177
switch i64 %6, label %bb3 [
i64 0, label %bb2
i64 1, label %bb4
], !dbg !826
bb1: ; preds = %bb8, %bb7, %bb9
%7 = bitcast { i8*, i32 }* %personalityslot to i8**, !dbg !827
%8 = load i8*, i8** %7, align 8, !dbg !827
%9 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %personalityslot, i32 0, i32 1, !dbg !827
%10 = load i32, i32* %9, align 8, !dbg !827
%11 = insertvalue { i8*, i32 } undef, i8* %8, 0, !dbg !827
%12 = insertvalue { i8*, i32 } %11, i32 %10, 1, !dbg !827
resume { i8*, i32 } %12, !dbg !827
bb2: ; preds = %start
store i8 0, i8* %_6, align 1, !dbg !828
%13 = load i64, i64* %def, align 8, !dbg !828
store i64 %13, i64* %_0, align 8, !dbg !828
br label %bb11, !dbg !829
bb3: ; preds = %start
unreachable, !dbg !830
bb4: ; preds = %start
store i8 0, i8* %_5, align 1, !dbg !831
%14 = bitcast { i64, i64 }* %self to %"core::option::Option<usize>::Some"*, !dbg !831
%15 = getelementptr inbounds %"core::option::Option<usize>::Some", %"core::option::Option<usize>::Some"* %14, i32 0, i32 1, !dbg !831
%16 = load i64, i64* %15, align 8, !dbg !831
store i64 %16, i64* %x, align 8, !dbg !831
%17 = load i64, i64* %x, align 8, !dbg !832
store i64 %17, i64* %_0, align 8, !dbg !832
br label %bb11, !dbg !833
bb5: ; No predecessors!
%18 = bitcast { i64, i64 }* %self to i64*, !dbg !833
%19 = load i64, i64* %18, align 8, !dbg !833, !range !177
%20 = icmp eq i64 %19, 1, !dbg !833
br i1 %20, label %bb7, label %bb9, !dbg !833
bb6: ; preds = %bb10, %bb11
%21 = bitcast { i64, i64 }* %self to i64*, !dbg !833
%22 = load i64, i64* %21, align 8, !dbg !833, !range !177
%23 = icmp eq i64 %22, 1, !dbg !833
br i1 %23, label %bb13, label %bb15, !dbg !833
bb7: ; preds = %bb5
%24 = load i8, i8* %_5, align 1, !dbg !833, !range !171
%25 = trunc i8 %24 to i1, !dbg !833
br i1 %25, label %bb8, label %bb1, !dbg !833
bb8: ; preds = %bb7
store i8 0, i8* %_5, align 1, !dbg !833
br label %bb1, !dbg !833
bb9: ; preds = %bb5
br label %bb1, !dbg !833
bb10: ; preds = %bb11
store i8 0, i8* %_6, align 1, !dbg !833
br label %bb6, !dbg !833
bb11: ; preds = %bb2, %bb4
%26 = load i8, i8* %_6, align 1, !dbg !833, !range !171
%27 = trunc i8 %26 to i1, !dbg !833
br i1 %27, label %bb10, label %bb6, !dbg !833
bb12: ; preds = %bb14, %bb13, %bb15
%28 = load i64, i64* %_0, align 8, !dbg !834
ret i64 %28, !dbg !834
bb13: ; preds = %bb6
%29 = load i8, i8* %_5, align 1, !dbg !833, !range !171
%30 = trunc i8 %29 to i1, !dbg !833
br i1 %30, label %bb14, label %bb12, !dbg !833
bb14: ; preds = %bb13
store i8 0, i8* %_5, align 1, !dbg !833
br label %bb12, !dbg !833
bb15: ; preds = %bb6
br label %bb12, !dbg !833
}
; <T as core::convert::From<T>>::from
; Function Attrs: uwtable
define i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17hf819fa74a5f891eeE"(i64) unnamed_addr #1 !dbg !835 {
start:
%t = alloca i64, align 8
store i64 %0, i64* %t, align 8
call void @llvm.dbg.declare(metadata i64* %t, metadata !841, metadata !DIExpression()), !dbg !842
%1 = load i64, i64* %t, align 8, !dbg !843
ret i64 %1, !dbg !844
}
; <T as core::convert::Into<U>>::into
; Function Attrs: uwtable
define i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17hab5a7b5d22211336E"(i64) unnamed_addr #1 !dbg !845 {
start:
%self = alloca i64, align 8
store i64 %0, i64* %self, align 8
call void @llvm.dbg.declare(metadata i64* %self, metadata !848, metadata !DIExpression()), !dbg !849
%1 = load i64, i64* %self, align 8, !dbg !850
; call <T as core::convert::From<T>>::from
%2 = call i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17hf819fa74a5f891eeE"(i64 %1), !dbg !851
br label %bb1, !dbg !851
bb1: ; preds = %start
ret i64 %2, !dbg !852
}
; <T as core::convert::TryFrom<U>>::try_from
; Function Attrs: uwtable
define i64 @"_ZN53_$LT$T$u20$as$u20$core..convert..TryFrom$LT$U$GT$$GT$8try_from17h8206762129109ef0E"(i64) unnamed_addr #1 !dbg !853 {
start:
%_0 = alloca i64, align 8
%value = alloca i64, align 8
store i64 %0, i64* %value, align 8
call void @llvm.dbg.declare(metadata i64* %value, metadata !870, metadata !DIExpression()), !dbg !871
%1 = load i64, i64* %value, align 8, !dbg !872
; call <T as core::convert::Into<U>>::into
%2 = call i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17hab5a7b5d22211336E"(i64 %1), !dbg !873
br label %bb1, !dbg !873
bb1: ; preds = %start
store i64 %2, i64* %_0, align 8, !dbg !874
%3 = load i64, i64* %_0, align 8, !dbg !875
ret i64 %3, !dbg !875
}
; alloc::vec::Vec<T>::as_mut_ptr
; Function Attrs: inlinehint uwtable
define i64* @"_ZN5alloc3vec12Vec$LT$T$GT$10as_mut_ptr17h7db90383f1af03efE"(%"alloc::vec::Vec<isize>"* align 8 dereferenceable(24)) unnamed_addr #0 !dbg !876 {
start:
%ptr = alloca i64*, align 8
%self = alloca %"alloc::vec::Vec<isize>"*, align 8
store %"alloc::vec::Vec<isize>"* %0, %"alloc::vec::Vec<isize>"** %self, align 8
call void @llvm.dbg.declare(metadata %"alloc::vec::Vec<isize>"** %self, metadata !897, metadata !DIExpression()), !dbg !898
call void @llvm.dbg.declare(metadata i64** %ptr, metadata !899, metadata !DIExpression()), !dbg !901
%1 = load %"alloc::vec::Vec<isize>"*, %"alloc::vec::Vec<isize>"** %self, align 8, !dbg !902, !nonnull !2
%2 = bitcast %"alloc::vec::Vec<isize>"* %1 to { i64*, i64 }*, !dbg !902
; call alloc::raw_vec::RawVec<T,A>::ptr
%3 = call i64* @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$3ptr17h14cfb4671224e24dE"({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %2), !dbg !902
store i64* %3, i64** %ptr, align 8, !dbg !902
br label %bb1, !dbg !902
bb1: ; preds = %start
%4 = load i64*, i64** %ptr, align 8, !dbg !903
; call core::ptr::<impl *mut T>::is_null
%5 = call zeroext i1 @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17ha979f8c7c468a2b4E"(i64* %4), !dbg !903
br label %bb2, !dbg !903
bb2: ; preds = %bb1
%6 = xor i1 %5, true, !dbg !904
call void @llvm.assume(i1 %6), !dbg !905
br label %bb3, !dbg !905
bb3: ; preds = %bb2
%7 = load i64*, i64** %ptr, align 8, !dbg !906
ret i64* %7, !dbg !907
}
; alloc::vec::Vec<T>::as_ptr
; Function Attrs: inlinehint uwtable
define i64* @"_ZN5alloc3vec12Vec$LT$T$GT$6as_ptr17h6f8c42ce0d643832E"(%"alloc::vec::Vec<isize>"* noalias readonly align 8 dereferenceable(24)) unnamed_addr #0 !dbg !908 {
start:
%ptr = alloca i64*, align 8
%self = alloca %"alloc::vec::Vec<isize>"*, align 8
store %"alloc::vec::Vec<isize>"* %0, %"alloc::vec::Vec<isize>"** %self, align 8
call void @llvm.dbg.declare(metadata %"alloc::vec::Vec<isize>"** %self, metadata !912, metadata !DIExpression()), !dbg !913
call void @llvm.dbg.declare(metadata i64** %ptr, metadata !914, metadata !DIExpression()), !dbg !916
%1 = load %"alloc::vec::Vec<isize>"*, %"alloc::vec::Vec<isize>"** %self, align 8, !dbg !917, !nonnull !2
%2 = bitcast %"alloc::vec::Vec<isize>"* %1 to { i64*, i64 }*, !dbg !917
; call alloc::raw_vec::RawVec<T,A>::ptr
%3 = call i64* @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$3ptr17h14cfb4671224e24dE"({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %2), !dbg !917
store i64* %3, i64** %ptr, align 8, !dbg !917
br label %bb1, !dbg !917
bb1: ; preds = %start
%4 = load i64*, i64** %ptr, align 8, !dbg !918
; call core::ptr::<impl *mut T>::is_null
%5 = call zeroext i1 @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17ha979f8c7c468a2b4E"(i64* %4), !dbg !918
br label %bb2, !dbg !918
bb2: ; preds = %bb1
%6 = xor i1 %5, true, !dbg !919
call void @llvm.assume(i1 %6), !dbg !920
br label %bb3, !dbg !920
bb3: ; preds = %bb2
%7 = load i64*, i64** %ptr, align 8, !dbg !921
ret i64* %7, !dbg !922
}
; alloc::raw_vec::RawVec<T,A>::ptr
; Function Attrs: uwtable
define i64* @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$3ptr17h14cfb4671224e24dE"({ i64*, i64 }* noalias readonly align 8 dereferenceable(16)) unnamed_addr #1 !dbg !923 {
start:
%self = alloca { i64*, i64 }*, align 8
store { i64*, i64 }* %0, { i64*, i64 }** %self, align 8
call void @llvm.dbg.declare(metadata { i64*, i64 }** %self, metadata !928, metadata !DIExpression()), !dbg !929
%1 = load { i64*, i64 }*, { i64*, i64 }** %self, align 8, !dbg !930, !nonnull !2
%2 = bitcast { i64*, i64 }* %1 to i64**, !dbg !930
%3 = load i64*, i64** %2, align 8, !dbg !930, !nonnull !2
; call core::ptr::unique::Unique<T>::as_ptr
%4 = call i64* @"_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ptr17haf927ead46b1fb4dE"(i64* nonnull %3), !dbg !930
br label %bb1, !dbg !930
bb1: ; preds = %start
ret i64* %4, !dbg !931
}
; <I as core::iter::traits::collect::IntoIterator>::into_iter
; Function Attrs: uwtable
define { i64*, i64* } @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h063b82e0a27c293dE"(i64*, i64*) unnamed_addr #1 !dbg !932 {
start:
%self = alloca { i64*, i64* }, align 8
%2 = getelementptr inbounds { i64*, i64* }, { i64*, i64* }* %self, i32 0, i32 0
store i64* %0, i64** %2, align 8
%3 = getelementptr inbounds { i64*, i64* }, { i64*, i64* }* %self, i32 0, i32 1
store i64* %1, i64** %3, align 8
call void @llvm.dbg.declare(metadata { i64*, i64* }* %self, metadata !941, metadata !DIExpression()), !dbg !942
%4 = getelementptr inbounds { i64*, i64* }, { i64*, i64* }* %self, i32 0, i32 0, !dbg !943
%5 = load i64*, i64** %4, align 8, !dbg !943
%6 = getelementptr inbounds { i64*, i64* }, { i64*, i64* }* %self, i32 0, i32 1, !dbg !943
%7 = load i64*, i64** %6, align 8, !dbg !943
%8 = insertvalue { i64*, i64* } undef, i64* %5, 0, !dbg !944
%9 = insertvalue { i64*, i64* } %8, i64* %7, 1, !dbg !944
ret { i64*, i64* } %9, !dbg !944
}
; <I as core::iter::traits::collect::IntoIterator>::into_iter
; Function Attrs: uwtable
define { i64, i64 } @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17hf5b8ef5eff0c64c1E"(i64, i64) unnamed_addr #1 !dbg !945 {
start:
%self = alloca { i64, i64 }, align 8
%2 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %self, i32 0, i32 0
store i64 %0, i64* %2, align 8
%3 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %self, i32 0, i32 1
store i64 %1, i64* %3, align 8
call void @llvm.dbg.declare(metadata { i64, i64 }* %self, metadata !950, metadata !DIExpression()), !dbg !951
%4 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %self, i32 0, i32 0, !dbg !952
%5 = load i64, i64* %4, align 8, !dbg !952
%6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %self, i32 0, i32 1, !dbg !952
%7 = load i64, i64* %6, align 8, !dbg !952
%8 = insertvalue { i64, i64 } undef, i64 %5, 0, !dbg !953
%9 = insertvalue { i64, i64 } %8, i64 %7, 1, !dbg !953
ret { i64, i64 } %9, !dbg !953
}
; <&isize as core::ops::arith::Add<isize>>::add
; Function Attrs: inlinehint uwtable
define internal i64 @"_ZN64_$LT$$RF$isize$u20$as$u20$core..ops..arith..Add$LT$isize$GT$$GT$3add17haae222d643ffa60fE"(i64* noalias readonly align 8 dereferenceable(8), i64) unnamed_addr #0 !dbg !954 {
start:
%other = alloca i64, align 8
%self = alloca i64*, align 8
store i64* %0, i64** %self, align 8
call void @llvm.dbg.declare(metadata i64** %self, metadata !958, metadata !DIExpression()), !dbg !959
store i64 %1, i64* %other, align 8
call void @llvm.dbg.declare(metadata i64* %other, metadata !960, metadata !DIExpression()), !dbg !959
%2 = load i64*, i64** %self, align 8, !dbg !961, !nonnull !2
%3 = load i64, i64* %2, align 8, !dbg !961
%4 = load i64, i64* %other, align 8, !dbg !962
; call <isize as core::ops::arith::Add>::add
%5 = call i64 @"_ZN47_$LT$isize$u20$as$u20$core..ops..arith..Add$GT$3add17h5b676053fe71193bE"(i64 %3, i64 %4), !dbg !963
br label %bb1, !dbg !963
bb1: ; preds = %start
ret i64 %5, !dbg !965
}
; <&isize as core::ops::arith::Rem<isize>>::rem
; Function Attrs: inlinehint uwtable
define internal i64 @"_ZN64_$LT$$RF$isize$u20$as$u20$core..ops..arith..Rem$LT$isize$GT$$GT$3rem17h56b516efd6f0069bE"(i64* noalias readonly align 8 dereferenceable(8), i64) unnamed_addr #0 !dbg !966 {
start:
%other = alloca i64, align 8
%self = alloca i64*, align 8
store i64* %0, i64** %self, align 8
call void @llvm.dbg.declare(metadata i64** %self, metadata !967, metadata !DIExpression()), !dbg !968
store i64 %1, i64* %other, align 8
call void @llvm.dbg.declare(metadata i64* %other, metadata !969, metadata !DIExpression()), !dbg !968
%2 = load i64*, i64** %self, align 8, !dbg !970, !nonnull !2
%3 = load i64, i64* %2, align 8, !dbg !970
%4 = load i64, i64* %other, align 8, !dbg !971
; call <isize as core::ops::arith::Rem>::rem
%5 = call i64 @"_ZN47_$LT$isize$u20$as$u20$core..ops..arith..Rem$GT$3rem17hcd48825ab2f2796fE"(i64 %3, i64 %4), !dbg !972
br label %bb1, !dbg !972
bb1: ; preds = %start
ret i64 %5, !dbg !974
}
; <alloc::vec::Vec<T> as core::ops::deref::Deref>::deref
; Function Attrs: uwtable
define { [0 x i64]*, i64 } @"_ZN68_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17h378128d7d9378466E"(%"alloc::vec::Vec<isize>"* noalias readonly align 8 dereferenceable(24)) unnamed_addr #1 !dbg !975 {
start:
%self = alloca %"alloc::vec::Vec<isize>"*, align 8
store %"alloc::vec::Vec<isize>"* %0, %"alloc::vec::Vec<isize>"** %self, align 8
call void @llvm.dbg.declare(metadata %"alloc::vec::Vec<isize>"** %self, metadata !979, metadata !DIExpression()), !dbg !980
%1 = load %"alloc::vec::Vec<isize>"*, %"alloc::vec::Vec<isize>"** %self, align 8, !dbg !981, !nonnull !2
; call alloc::vec::Vec<T>::as_ptr
%2 = call i64* @"_ZN5alloc3vec12Vec$LT$T$GT$6as_ptr17h6f8c42ce0d643832E"(%"alloc::vec::Vec<isize>"* noalias readonly align 8 dereferenceable(24) %1), !dbg !981
br label %bb1, !dbg !981
bb1: ; preds = %start
%3 = load %"alloc::vec::Vec<isize>"*, %"alloc::vec::Vec<isize>"** %self, align 8, !dbg !983, !nonnull !2
%4 = getelementptr inbounds %"alloc::vec::Vec<isize>", %"alloc::vec::Vec<isize>"* %3, i32 0, i32 3, !dbg !983
%5 = load i64, i64* %4, align 8, !dbg !983
; call core::slice::from_raw_parts
%6 = call { [0 x i64]*, i64 } @_ZN4core5slice14from_raw_parts17h35540e84de7ba669E(i64* %2, i64 %5), !dbg !984
%7 = extractvalue { [0 x i64]*, i64 } %6, 0, !dbg !984
%8 = extractvalue { [0 x i64]*, i64 } %6, 1, !dbg !984
br label %bb2, !dbg !984
bb2: ; preds = %bb1
%9 = insertvalue { [0 x i64]*, i64 } undef, [0 x i64]* %7, 0, !dbg !985
%10 = insertvalue { [0 x i64]*, i64 } %9, i64 %8, 1, !dbg !985
ret { [0 x i64]*, i64 } %10, !dbg !985
}
; <usize as core::slice::SliceIndex<[T]>>::index_mut
; Function Attrs: inlinehint uwtable
define align 8 dereferenceable(8) i64* @"_ZN68_$LT$usize$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hd852e2f14eb0bd1dE"(i64, [0 x i64]* nonnull align 8, i64) unnamed_addr #0 !dbg !986 {
start:
%slice = alloca { [0 x i64]*, i64 }, align 8
%self = alloca i64, align 8
store i64 %0, i64* %self, align 8
call void @llvm.dbg.declare(metadata i64* %self, metadata !989, metadata !DIExpression()), !dbg !990
%3 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %slice, i32 0, i32 0
store [0 x i64]* %1, [0 x i64]** %3, align 8
%4 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %slice, i32 0, i32 1
store i64 %2, i64* %4, align 8
call void @llvm.dbg.declare(metadata { [0 x i64]*, i64 }* %slice, metadata !991, metadata !DIExpression()), !dbg !990
%5 = load i64, i64* %self, align 8, !dbg !992
%6 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %slice, i32 0, i32 0, !dbg !993
%7 = load [0 x i64]*, [0 x i64]** %6, align 8, !dbg !993, !nonnull !2
%8 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %slice, i32 0, i32 1, !dbg !993
%9 = load i64, i64* %8, align 8, !dbg !993
%10 = icmp ult i64 %5, %9, !dbg !993
%11 = call i1 @llvm.expect.i1(i1 %10, i1 true), !dbg !993
br i1 %11, label %bb1, label %panic, !dbg !993
bb1: ; preds = %start
%12 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %slice, i32 0, i32 0, !dbg !994
%13 = load [0 x i64]*, [0 x i64]** %12, align 8, !dbg !994, !nonnull !2
%14 = getelementptr inbounds { [0 x i64]*, i64 }, { [0 x i64]*, i64 }* %slice, i32 0, i32 1, !dbg !994
%15 = load i64, i64* %14, align 8, !dbg !994
%16 = getelementptr inbounds [0 x i64], [0 x i64]* %13, i64 0, i64 %5, !dbg !994
ret i64* %16, !dbg !995
panic: ; preds = %start
; call core::panicking::panic_bounds_check
call void @_ZN4core9panicking18panic_bounds_check17h0b7abca9936e6c0aE({ [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly align 8 dereferenceable(24) bitcast ({ { [0 x i8]*, i64 }, i32, i32 }* @panic_bounds_check_loc.a to { [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*), i64 %5, i64 %9), !dbg !993
unreachable, !dbg !993
}
; <alloc::vec::Vec<T> as core::ops::deref::DerefMut>::deref_mut
; Function Attrs: uwtable
define { [0 x i64]*, i64 } @"_ZN71_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$9deref_mut17h599a33f1d75b3f9cE"(%"alloc::vec::Vec<isize>"* align 8 dereferenceable(24)) unnamed_addr #1 !dbg !996 {
start:
%self = alloca %"alloc::vec::Vec<isize>"*, align 8
store %"alloc::vec::Vec<isize>"* %0, %"alloc::vec::Vec<isize>"** %self, align 8
call void @llvm.dbg.declare(metadata %"alloc::vec::Vec<isize>"** %self, metadata !999, metadata !DIExpression()), !dbg !1000
%1 = load %"alloc::vec::Vec<isize>"*, %"alloc::vec::Vec<isize>"** %self, align 8, !dbg !1001, !nonnull !2
; call alloc::vec::Vec<T>::as_mut_ptr
%2 = call i64* @"_ZN5alloc3vec12Vec$LT$T$GT$10as_mut_ptr17h7db90383f1af03efE"(%"alloc::vec::Vec<isize>"* align 8 dereferenceable(24) %1), !dbg !1001
br label %bb1, !dbg !1001
bb1: ; preds = %start
%3 = load %"alloc::vec::Vec<isize>"*, %"alloc::vec::Vec<isize>"** %self, align 8, !dbg !1003, !nonnull !2
%4 = getelementptr inbounds %"alloc::vec::Vec<isize>", %"alloc::vec::Vec<isize>"* %3, i32 0, i32 3, !dbg !1003
%5 = load i64, i64* %4, align 8, !dbg !1003
; call core::slice::from_raw_parts_mut
%6 = call { [0 x i64]*, i64 } @_ZN4core5slice18from_raw_parts_mut17hedc6f5a5b623fa49E(i64* %2, i64 %5), !dbg !1004
%7 = extractvalue { [0 x i64]*, i64 } %6, 0, !dbg !1004
%8 = extractvalue { [0 x i64]*, i64 } %6, 1, !dbg !1004
br label %bb2, !dbg !1004
bb2: ; preds = %bb1
%9 = insertvalue { [0 x i64]*, i64 } undef, [0 x i64]* %7, 0, !dbg !1005
%10 = insertvalue { [0 x i64]*, i64 } %9, i64 %8, 1, !dbg !1005
ret { [0 x i64]*, i64 } %10, !dbg !1005
}
; <alloc::vec::Vec<T> as core::ops::index::IndexMut<I>>::index_mut
; Function Attrs: inlinehint uwtable
define align 8 dereferenceable(8) i64* @"_ZN80_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17h034d16c396055127E"(%"alloc::vec::Vec<isize>"* align 8 dereferenceable(24), i64) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality !dbg !1006 {
start:
%personalityslot = alloca { i8*, i32 }, align 8
%_10 = alloca i8, align 1
%index = alloca i64, align 8
%self = alloca %"alloc::vec::Vec<isize>"*, align 8
store %"alloc::vec::Vec<isize>"* %0, %"alloc::vec::Vec<isize>"** %self, align 8
call void @llvm.dbg.declare(metadata %"alloc::vec::Vec<isize>"** %self, metadata !1009, metadata !DIExpression()), !dbg !1010
store i64 %1, i64* %index, align 8
call void @llvm.dbg.declare(metadata i64* %index, metadata !1011, metadata !DIExpression()), !dbg !1010
store i8 0, i8* %_10, align 1, !dbg !1012
store i8 1, i8* %_10, align 1, !dbg !1012
%2 = load %"alloc::vec::Vec<isize>"*, %"alloc::vec::Vec<isize>"** %self, align 8, !dbg !1013, !nonnull !2
; invoke <alloc::vec::Vec<T> as core::ops::deref::DerefMut>::deref_mut
%3 = invoke { [0 x i64]*, i64 } @"_ZN71_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$9deref_mut17h599a33f1d75b3f9cE"(%"alloc::vec::Vec<isize>"* align 8 dereferenceable(24) %2)
to label %bb2 unwind label %cleanup, !dbg !1014
bb1: ; preds = %bb4, %bb5
%4 = bitcast { i8*, i32 }* %personalityslot to i8**, !dbg !1015
%5 = load i8*, i8** %4, align 8, !dbg !1015
%6 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %personalityslot, i32 0, i32 1, !dbg !1015
%7 = load i32, i32* %6, align 8, !dbg !1015
%8 = insertvalue { i8*, i32 } undef, i8* %5, 0, !dbg !1015
%9 = insertvalue { i8*, i32 } %8, i32 %7, 1, !dbg !1015
resume { i8*, i32 } %9, !dbg !1015
bb2: ; preds = %start
%10 = extractvalue { [0 x i64]*, i64 } %3, 0, !dbg !1014
%11 = extractvalue { [0 x i64]*, i64 } %3, 1, !dbg !1014
store i8 0, i8* %_10, align 1, !dbg !1016
%12 = load i64, i64* %index, align 8, !dbg !1016
; invoke core::slice::<impl core::ops::index::IndexMut<I> for [T]>::index_mut
%13 = invoke align 8 dereferenceable(8) i64* @"_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hae2665d649d0961bE"([0 x i64]* nonnull align 8 %10, i64 %11, i64 %12)
to label %bb3 unwind label %cleanup, !dbg !1012
bb3: ; preds = %bb2
ret i64* %13, !dbg !1017
bb4: ; preds = %bb5
store i8 0, i8* %_10, align 1, !dbg !1018
br label %bb1, !dbg !1018
bb5: ; preds = %cleanup
%14 = load i8, i8* %_10, align 1, !dbg !1018, !range !171
%15 = trunc i8 %14 to i1, !dbg !1018
br i1 %15, label %bb4, label %bb1, !dbg !1018
cleanup: ; preds = %bb2, %start
%16 = landingpad { i8*, i32 }
cleanup
%17 = extractvalue { i8*, i32 } %16, 0
%18 = extractvalue { i8*, i32 } %16, 1
%19 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %personalityslot, i32 0, i32 0
store i8* %17, i8** %19, align 8
%20 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %personalityslot, i32 0, i32 1
store i32 %18, i32* %20, align 8
br label %bb5
}
; <core::slice::Iter<T> as core::iter::traits::iterator::Iterator>::next
; Function Attrs: inlinehint uwtable
define align 8 dereferenceable_or_null(8) i64* @"_ZN85_$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha91bd2d222d31b6cE"({ i64*, i64* }* align 8 dereferenceable(16)) unnamed_addr #0 !dbg !1019 {
start:
%old.i = alloca i64*, align 8
call void @llvm.dbg.declare(metadata i64** %old.i, metadata !1033, metadata !DIExpression()), !dbg !1038
%_0.i = alloca i64*, align 8
%offset.i = alloca i64, align 8
call void @llvm.dbg.declare(metadata i64* %offset.i, metadata !1041, metadata !DIExpression()), !dbg !1042
%self.i = alloca { i64*, i64* }*, align 8
call void @llvm.dbg.declare(metadata { i64*, i64* }** %self.i, metadata !1043, metadata !DIExpression()), !dbg !1042
%_0 = alloca i64*, align 8
%self = alloca { i64*, i64* }*, align 8
store { i64*, i64* }* %0, { i64*, i64* }** %self, align 8
call void @llvm.dbg.declare(metadata { i64*, i64* }** %self, metadata !1044, metadata !DIExpression()), !dbg !1045
%1 = load { i64*, i64* }*, { i64*, i64* }** %self, align 8, !dbg !1046, !nonnull !2
%2 = bitcast { i64*, i64* }* %1 to i64**, !dbg !1046
%3 = load i64*, i64** %2, align 8, !dbg !1046
; call core::ptr::<impl *const T>::is_null
%4 = call zeroext i1 @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$7is_null17h2cb5e5d9be44649cE"(i64* %3), !dbg !1046
br label %bb1, !dbg !1046
bb1: ; preds = %start
%5 = xor i1 %4, true, !dbg !1047
call void @llvm.assume(i1 %5), !dbg !1048
br label %bb2, !dbg !1048
bb2: ; preds = %bb1
; call core::mem::size_of
%6 = call i64 @_ZN4core3mem7size_of17hd7e5cfcb791a5d1fE(), !dbg !1049
br label %bb3, !dbg !1049
bb3: ; preds = %bb2
%7 = icmp ne i64 %6, 0, !dbg !1049
br i1 %7, label %bb4, label %bb7, !dbg !1050
bb4: ; preds = %bb3
%8 = load { i64*, i64* }*, { i64*, i64* }** %self, align 8, !dbg !1051, !nonnull !2
%9 = getelementptr inbounds { i64*, i64* }, { i64*, i64* }* %8, i32 0, i32 1, !dbg !1051
%10 = load i64*, i64** %9, align 8, !dbg !1051
; call core::ptr::<impl *const T>::is_null
%11 = call zeroext i1 @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$7is_null17h2cb5e5d9be44649cE"(i64* %10), !dbg !1051
br label %bb5, !dbg !1051
bb5: ; preds = %bb4
%12 = xor i1 %11, true, !dbg !1052
call void @llvm.assume(i1 %12), !dbg !1053
br label %bb6, !dbg !1053
bb6: ; preds = %bb5
br label %bb7, !dbg !1050
bb7: ; preds = %bb6, %bb3
%13 = load { i64*, i64* }*, { i64*, i64* }** %self, align 8, !dbg !1054, !nonnull !2
%14 = bitcast { i64*, i64* }* %13 to i64**, !dbg !1054
%15 = load i64*, i64** %14, align 8, !dbg !1054
%16 = load { i64*, i64* }*, { i64*, i64* }** %self, align 8, !dbg !1055, !nonnull !2
%17 = getelementptr inbounds { i64*, i64* }, { i64*, i64* }* %16, i32 0, i32 1, !dbg !1055
%18 = load i64*, i64** %17, align 8, !dbg !1055
%19 = icmp eq i64* %15, %18, !dbg !1054
br i1 %19, label %bb9, label %bb8, !dbg !1056
bb8: ; preds = %bb7
%20 = load { i64*, i64* }*, { i64*, i64* }** %self, align 8, !dbg !1057, !nonnull !2
store { i64*, i64* }* %20, { i64*, i64* }** %self.i, align 8
store i64 1, i64* %offset.i, align 8
; call core::mem::size_of
%21 = call i64 @_ZN4core3mem7size_of17hd7e5cfcb791a5d1fE(), !dbg !1058
%22 = icmp eq i64 %21, 0, !dbg !1058
br i1 %22, label %bb3.i, label %bb2.i, !dbg !1059
bb2.i: ; preds = %bb8
%23 = load { i64*, i64* }*, { i64*, i64* }** %self.i, align 8, !dbg !1060, !nonnull !2
%24 = bitcast { i64*, i64* }* %23 to i64**, !dbg !1060
%25 = load i64*, i64** %24, align 8, !dbg !1060
store i64* %25, i64** %old.i, align 8, !dbg !1060
%26 = load { i64*, i64* }*, { i64*, i64* }** %self.i, align 8, !dbg !1061, !nonnull !2
%27 = bitcast { i64*, i64* }* %26 to i64**, !dbg !1061
%28 = load i64*, i64** %27, align 8, !dbg !1061
%29 = load i64, i64* %offset.i, align 8, !dbg !1062
; call core::ptr::<impl *const T>::offset
%30 = call i64* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$6offset17h66d880d9e1cefb86E"(i64* %28, i64 %29), !dbg !1061
%31 = load { i64*, i64* }*, { i64*, i64* }** %self.i, align 8, !dbg !1063, !nonnull !2
%32 = bitcast { i64*, i64* }* %31 to i64**, !dbg !1063
store i64* %30, i64** %32, align 8, !dbg !1063
%33 = load i64*, i64** %old.i, align 8, !dbg !1064
store i64* %33, i64** %_0.i, align 8, !dbg !1064
br label %"_ZN4core5slice13Iter$LT$T$GT$14post_inc_start17h8479de9ec9ee8a6eE.exit", !dbg !1059
bb3.i: ; preds = %bb8
%34 = load { i64*, i64* }*, { i64*, i64* }** %self.i, align 8, !dbg !1065, !nonnull !2
%35 = getelementptr inbounds { i64*, i64* }, { i64*, i64* }* %34, i32 0, i32 1, !dbg !1065
%36 = load i64*, i64** %35, align 8, !dbg !1065
%37 = bitcast i64* %36 to i8*, !dbg !1065
%38 = load i64, i64* %offset.i, align 8, !dbg !1066
%39 = sub i64 0, %38, !dbg !1067
; call core::ptr::<impl *const T>::wrapping_offset
%40 = call i8* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$15wrapping_offset17h45b3ac03c2a8679dE"(i8* %37, i64 %39), !dbg !1068
%41 = load { i64*, i64* }*, { i64*, i64* }** %self.i, align 8, !dbg !1069, !nonnull !2
%42 = getelementptr inbounds { i64*, i64* }, { i64*, i64* }* %41, i32 0, i32 1, !dbg !1069
%43 = bitcast i8* %40 to i64*, !dbg !1069
store i64* %43, i64** %42, align 8, !dbg !1069
%44 = load { i64*, i64* }*, { i64*, i64* }** %self.i, align 8, !dbg !1070, !nonnull !2
%45 = bitcast { i64*, i64* }* %44 to i64**, !dbg !1070
%46 = load i64*, i64** %45, align 8, !dbg !1070
store i64* %46, i64** %_0.i, align 8, !dbg !1070
br label %"_ZN4core5slice13Iter$LT$T$GT$14post_inc_start17h8479de9ec9ee8a6eE.exit", !dbg !1059
"_ZN4core5slice13Iter$LT$T$GT$14post_inc_start17h8479de9ec9ee8a6eE.exit": ; preds = %bb3.i, %bb2.i
%47 = load i64*, i64** %_0.i, align 8, !dbg !1071
br label %bb10, !dbg !1057
bb9: ; preds = %bb7
%48 = bitcast i64** %_0 to {}**, !dbg !1072
store {}* null, {}** %48, align 8, !dbg !1072
br label %bb11, !dbg !1056
bb10: ; preds = %"_ZN4core5slice13Iter$LT$T$GT$14post_inc_start17h8479de9ec9ee8a6eE.exit"
store i64* %47, i64** %_0, align 8, !dbg !1073
br label %bb11, !dbg !1056
bb11: ; preds = %bb10, %bb9
%49 = load i64*, i64** %_0, align 8, !dbg !1074
ret i64* %49, !dbg !1074
}
; rust::rust_loop
; Function Attrs: uwtable
define i64 @_ZN4rust9rust_loop17h3ed0672b8cf44eb1E(i64, i64, %"alloc::vec::Vec<isize>"* align 8 dereferenceable(24)) unnamed_addr #1 !dbg !1075 {
start:
%i4 = alloca i64, align 8
%val3 = alloca i64, align 8
%_32 = alloca { i64, i64 }, align 8
%__next2 = alloca i64, align 8
%iter1 = alloca { i64, i64 }, align 8
%_29 = alloca { i64, i64 }, align 8
%_19 = alloca i64, align 8
%i = alloca i64*, align 8
%val = alloca i64*, align 8
%_12 = alloca i64*, align 8
%__next = alloca i64*, align 8
%iter = alloca { i64*, i64* }, align 8
%sum = alloca i64, align 8
%v = alloca %"alloc::vec::Vec<isize>"*, align 8
%b = alloca i64, align 8
%a = alloca i64, align 8
store i64 %0, i64* %a, align 8
call void @llvm.dbg.declare(metadata i64* %a, metadata !1080, metadata !DIExpression()), !dbg !1081
store i64 %1, i64* %b, align 8
call void @llvm.dbg.declare(metadata i64* %b, metadata !1082, metadata !DIExpression()), !dbg !1081
store %"alloc::vec::Vec<isize>"* %2, %"alloc::vec::Vec<isize>"** %v, align 8
call void @llvm.dbg.declare(metadata %"alloc::vec::Vec<isize>"** %v, metadata !1083, metadata !DIExpression()), !dbg !1081
call void @llvm.dbg.declare(metadata i64* %sum, metadata !1084, metadata !DIExpression()), !dbg !1086
call void @llvm.dbg.declare(metadata { i64*, i64* }* %iter, metadata !1087, metadata !DIExpression()), !dbg !1089
call void @llvm.dbg.declare(metadata i64** %__next, metadata !1090, metadata !DIExpression()), !dbg !1092
call void @llvm.dbg.declare(metadata i64** %val, metadata !1093, metadata !DIExpression()), !dbg !1095
call void @llvm.dbg.declare(metadata i64** %i, metadata !1096, metadata !DIExpression()), !dbg !1098
call void @llvm.dbg.declare(metadata { i64, i64 }* %iter1, metadata !1099, metadata !DIExpression()), !dbg !1101
call void @llvm.dbg.declare(metadata i64* %__next2, metadata !1102, metadata !DIExpression()), !dbg !1104
call void @llvm.dbg.declare(metadata i64* %val3, metadata !1105, metadata !DIExpression()), !dbg !1107
call void @llvm.dbg.declare(metadata i64* %i4, metadata !1108, metadata !DIExpression()), !dbg !1110
store i64 0, i64* %sum, align 8, !dbg !1111
%3 = load %"alloc::vec::Vec<isize>"*, %"alloc::vec::Vec<isize>"** %v, align 8, !dbg !1112, !nonnull !2
; call <alloc::vec::Vec<T> as core::ops::deref::Deref>::deref
%4 = call { [0 x i64]*, i64 } @"_ZN68_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17h378128d7d9378466E"(%"alloc::vec::Vec<isize>"* noalias readonly align 8 dereferenceable(24) %3), !dbg !1112
%5 = extractvalue { [0 x i64]*, i64 } %4, 0, !dbg !1112
%6 = extractvalue { [0 x i64]*, i64 } %4, 1, !dbg !1112
br label %bb1, !dbg !1112
bb1: ; preds = %start
; call core::slice::<impl [T]>::iter
%7 = call { i64*, i64* } @"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$4iter17h0f94ceb2d99e4dddE"([0 x i64]* noalias nonnull readonly align 8 %5, i64 %6), !dbg !1112
%8 = extractvalue { i64*, i64* } %7, 0, !dbg !1112
%9 = extractvalue { i64*, i64* } %7, 1, !dbg !1112
br label %bb2, !dbg !1112
bb2: ; preds = %bb1
; call <I as core::iter::traits::collect::IntoIterator>::into_iter
%10 = call { i64*, i64* } @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h063b82e0a27c293dE"(i64* %8, i64* %9), !dbg !1112
%11 = extractvalue { i64*, i64* } %10, 0, !dbg !1112
%12 = extractvalue { i64*, i64* } %10, 1, !dbg !1112
br label %bb3, !dbg !1112
bb3: ; preds = %bb2
%13 = getelementptr inbounds { i64*, i64* }, { i64*, i64* }* %iter, i32 0, i32 0, !dbg !1112
store i64* %11, i64** %13, align 8, !dbg !1112
%14 = getelementptr inbounds { i64*, i64* }, { i64*, i64* }* %iter, i32 0, i32 1, !dbg !1112
store i64* %12, i64** %14, align 8, !dbg !1112
br label %bb4, !dbg !1113
bb4: ; preds = %bb15, %bb3
; call <core::slice::Iter<T> as core::iter::traits::iterator::Iterator>::next
%15 = call align 8 dereferenceable_or_null(8) i64* @"_ZN85_$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha91bd2d222d31b6cE"({ i64*, i64* }* align 8 dereferenceable(16) %iter), !dbg !1092
store i64* %15, i64** %_12, align 8, !dbg !1092
br label %bb5, !dbg !1092
bb5: ; preds = %bb4
%16 = bitcast i64** %_12 to {}**, !dbg !1114
%17 = load {}*, {}** %16, align 8, !dbg !1114
%18 = icmp eq {}* %17, null, !dbg !1114
%19 = select i1 %18, i64 0, i64 1, !dbg !1114
switch i64 %19, label %bb7 [
i64 0, label %bb6
i64 1, label %bb8
], !dbg !1114
bb6: ; preds = %bb5
%20 = bitcast { i64, i64 }* %_29 to i64*, !dbg !1115
store i64 0, i64* %20, align 8, !dbg !1115
%21 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %_29, i32 0, i32 1, !dbg !1115
store i64 5, i64* %21, align 8, !dbg !1115
%22 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %_29, i32 0, i32 0, !dbg !1115
%23 = load i64, i64* %22, align 8, !dbg !1115
%24 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %_29, i32 0, i32 1, !dbg !1115
%25 = load i64, i64* %24, align 8, !dbg !1115
; call <I as core::iter::traits::collect::IntoIterator>::into_iter
%26 = call { i64, i64 } @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17hf5b8ef5eff0c64c1E"(i64 %23, i64 %25), !dbg !1115
%27 = extractvalue { i64, i64 } %26, 0, !dbg !1115
%28 = extractvalue { i64, i64 } %26, 1, !dbg !1115
br label %bb16, !dbg !1115
bb7: ; preds = %bb5
unreachable, !dbg !1092
bb8: ; preds = %bb5
%29 = load i64*, i64** %_12, align 8, !dbg !1114, !nonnull !2
store i64* %29, i64** %val, align 8, !dbg !1114
%30 = load i64*, i64** %val, align 8, !dbg !1095, !nonnull !2
store i64* %30, i64** %__next, align 8, !dbg !1095
%31 = load i64*, i64** %__next, align 8, !dbg !1092, !nonnull !2
store i64* %31, i64** %i, align 8, !dbg !1092
%32 = load i64*, i64** %i, align 8, !dbg !1116, !nonnull !2
; call <&isize as core::ops::arith::Rem<isize>>::rem
%33 = call i64 @"_ZN64_$LT$$RF$isize$u20$as$u20$core..ops..arith..Rem$LT$isize$GT$$GT$3rem17h56b516efd6f0069bE"(i64* noalias readonly align 8 dereferenceable(8) %32, i64 3), !dbg !1116
br label %bb9, !dbg !1116
bb9: ; preds = %bb8
%34 = icmp eq i64 %33, 1, !dbg !1116
br i1 %34, label %bb11, label %bb10, !dbg !1117
bb10: ; preds = %bb9
%35 = load i64*, i64** %i, align 8, !dbg !1118, !nonnull !2
%36 = load i64, i64* %b, align 8, !dbg !1119
; call <&isize as core::ops::arith::Add<isize>>::add
%37 = call i64 @"_ZN64_$LT$$RF$isize$u20$as$u20$core..ops..arith..Add$LT$isize$GT$$GT$3add17haae222d643ffa60fE"(i64* noalias readonly align 8 dereferenceable(8) %35, i64 %36), !dbg !1118
store i64 %37, i64* %_19, align 8, !dbg !1118
br label %bb13, !dbg !1118
bb11: ; preds = %bb9
%38 = load i64*, i64** %i, align 8, !dbg !1120, !nonnull !2
%39 = load i64, i64* %a, align 8, !dbg !1121
; call <&isize as core::ops::arith::Add<isize>>::add
%40 = call i64 @"_ZN64_$LT$$RF$isize$u20$as$u20$core..ops..arith..Add$LT$isize$GT$$GT$3add17haae222d643ffa60fE"(i64* noalias readonly align 8 dereferenceable(8) %38, i64 %39), !dbg !1120
store i64 %40, i64* %_19, align 8, !dbg !1120
br label %bb12, !dbg !1120
bb12: ; preds = %bb11
br label %bb14, !dbg !1117
bb13: ; preds = %bb10
br label %bb14, !dbg !1117
bb14: ; preds = %bb13, %bb12
%41 = load i64, i64* %sum, align 8, !dbg !1122
%42 = load i64, i64* %_19, align 8, !dbg !1122
%43 = call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %41, i64 %42), !dbg !1122
%44 = extractvalue { i64, i1 } %43, 0, !dbg !1122
%45 = extractvalue { i64, i1 } %43, 1, !dbg !1122
%46 = call i1 @llvm.expect.i1(i1 %45, i1 false), !dbg !1122
br i1 %46, label %panic, label %bb15, !dbg !1122
bb15: ; preds = %bb14
store i64 %44, i64* %sum, align 8, !dbg !1122
br label %bb4, !dbg !1113
bb16: ; preds = %bb6
%47 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %iter1, i32 0, i32 0, !dbg !1115
store i64 %27, i64* %47, align 8, !dbg !1115
%48 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %iter1, i32 0, i32 1, !dbg !1115
store i64 %28, i64* %48, align 8, !dbg !1115
br label %bb17, !dbg !1123
bb17: ; preds = %bb23, %bb16
; call core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::Range<A>>::next
%49 = call { i64, i64 } @"_ZN4core4iter5range101_$LT$impl$u20$core..iter..traits..iterator..Iterator$u20$for$u20$core..ops..range..Range$LT$A$GT$$GT$4next17h28f5ccce6734b660E"({ i64, i64 }* align 8 dereferenceable(16) %iter1), !dbg !1104
store { i64, i64 } %49, { i64, i64 }* %_32, align 8, !dbg !1104
br label %bb18, !dbg !1104
bb18: ; preds = %bb17
%50 = bitcast { i64, i64 }* %_32 to i64*, !dbg !1124
%51 = load i64, i64* %50, align 8, !dbg !1124, !range !177
switch i64 %51, label %bb20 [
i64 0, label %bb19
i64 1, label %bb21
], !dbg !1124
bb19: ; preds = %bb18
%52 = load i64, i64* %sum, align 8, !dbg !1125
ret i64 %52, !dbg !1126
bb20: ; preds = %bb18
unreachable, !dbg !1104
bb21: ; preds = %bb18
%53 = bitcast { i64, i64 }* %_32 to %"core::option::Option<usize>::Some"*, !dbg !1124
%54 = getelementptr inbounds %"core::option::Option<usize>::Some", %"core::option::Option<usize>::Some"* %53, i32 0, i32 1, !dbg !1124
%55 = load i64, i64* %54, align 8, !dbg !1124
store i64 %55, i64* %val3, align 8, !dbg !1124
%56 = load i64, i64* %val3, align 8, !dbg !1107
store i64 %56, i64* %__next2, align 8, !dbg !1107
%57 = load i64, i64* %__next2, align 8, !dbg !1104
store i64 %57, i64* %i4, align 8, !dbg !1104
%58 = load i64, i64* %i4, align 8, !dbg !1127
%59 = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %58, i64 2), !dbg !1128
%60 = extractvalue { i64, i1 } %59, 0, !dbg !1128
%61 = extractvalue { i64, i1 } %59, 1, !dbg !1128
%62 = call i1 @llvm.expect.i1(i1 %61, i1 false), !dbg !1128
br i1 %62, label %panic5, label %bb22, !dbg !1128
bb22: ; preds = %bb21
%63 = load %"alloc::vec::Vec<isize>"*, %"alloc::vec::Vec<isize>"** %v, align 8, !dbg !1129, !nonnull !2
%64 = load i64, i64* %i4, align 8, !dbg !1130
; call <alloc::vec::Vec<T> as core::ops::index::IndexMut<I>>::index_mut
%65 = call align 8 dereferenceable(8) i64* @"_ZN80_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17h034d16c396055127E"(%"alloc::vec::Vec<isize>"* align 8 dereferenceable(24) %63, i64 %64), !dbg !1129
br label %bb23, !dbg !1129
bb23: ; preds = %bb22
store i64 %60, i64* %65, align 8, !dbg !1129
br label %bb17, !dbg !1123
panic: ; preds = %bb14
; call core::panicking::panic
call void @_ZN4core9panicking5panic17h89241d71a860ed98E({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly align 8 dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* @panic_loc.c to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*)), !dbg !1122
unreachable, !dbg !1122
panic5: ; preds = %bb21
; call core::panicking::panic
call void @_ZN4core9panicking5panic17h89241d71a860ed98E({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly align 8 dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* @panic_loc.d to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*)), !dbg !1128
unreachable, !dbg !1128
}
; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.declare(metadata, metadata, metadata) #2
; Function Attrs: nounwind readnone speculatable
declare { i64, i1 } @llvm.sadd.with.overflow.i64(i64, i64) #2
; Function Attrs: nounwind readnone
declare i1 @llvm.expect.i1(i1, i1) #3
; core::panicking::panic
; Function Attrs: cold noinline noreturn uwtable
declare void @_ZN4core9panicking5panic17h89241d71a860ed98E({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly align 8 dereferenceable(40)) unnamed_addr #4
; Function Attrs: argmemonly nounwind
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i1) #5
; Function Attrs: nounwind readnone speculatable
declare { i64, i1 } @llvm.uadd.with.overflow.i64(i64, i64) #2
; Function Attrs: nounwind readnone speculatable
declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #2
; Function Attrs: nounwind uwtable
declare i32 @rust_eh_personality(i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*) unnamed_addr #6
; Function Attrs: nounwind
declare void @llvm.assume(i1) #7
; core::panicking::panic_bounds_check
; Function Attrs: cold noinline noreturn uwtable
declare void @_ZN4core9panicking18panic_bounds_check17h0b7abca9936e6c0aE({ [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly align 8 dereferenceable(24), i64, i64) unnamed_addr #4
attributes #0 = { inlinehint uwtable "no-frame-pointer-elim"="true" "probe-stack"="__rust_probestack" "target-cpu"="core2" }
attributes #1 = { uwtable "no-frame-pointer-elim"="true" "probe-stack"="__rust_probestack" "target-cpu"="core2" }
attributes #2 = { nounwind readnone speculatable }
attributes #3 = { nounwind readnone }
attributes #4 = { cold noinline noreturn uwtable "no-frame-pointer-elim"="true" "probe-stack"="__rust_probestack" "target-cpu"="core2" }
attributes #5 = { argmemonly nounwind }
attributes #6 = { nounwind uwtable "no-frame-pointer-elim"="true" "probe-stack"="__rust_probestack" "target-cpu"="core2" }
attributes #7 = { nounwind }
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!3, !4}
!0 = distinct !DICompileUnit(language: DW_LANG_Rust, file: !1, producer: "clang LLVM (rustc version 1.37.0 (eae3437df 2019-08-13))", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
!1 = !DIFile(filename: "rust.rs/@/rust.3a1fbbbh-cgu.0", directory: "/Users/craig/llvm-ir/tests/basic_bc")
!2 = !{}
!3 = !{i32 2, !"Dwarf Version", i32 2}
!4 = !{i32 2, !"Debug Info Version", i32 3}
!5 = distinct !DISubprogram(name: "add", linkageName: "_ZN47_$LT$isize$u20$as$u20$core..ops..arith..Add$GT$3add17h5b676053fe71193bE", scope: !7, file: !6, line: 100, type: !11, scopeLine: 100, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !2, retainedNodes: !2)
!6 = !DIFile(filename: "/rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/ops/arith.rs", directory: "")
!7 = !DINamespace(name: "{{impl}}", scope: !8)
!8 = !DINamespace(name: "arith", scope: !9)
!9 = !DINamespace(name: "ops", scope: !10)
!10 = !DINamespace(name: "core", scope: null)
!11 = !DISubroutineType(types: !12)
!12 = !{!13, !13, !13}
!13 = !DIBasicType(name: "isize", size: 64, encoding: DW_ATE_signed)
!14 = !DILocalVariable(name: "self", arg: 1, scope: !5, file: !15, line: 1, type: !13)
!15 = !DIFile(filename: "rust.rs", directory: "")
!16 = !DILocation(line: 1, scope: !5)
!17 = !DILocalVariable(name: "other", arg: 2, scope: !5, file: !15, line: 1, type: !13)
!18 = !DILocation(line: 100, column: 44, scope: !5)
!19 = !DILocation(line: 100, column: 51, scope: !5)
!20 = !DILocation(line: 100, column: 58, scope: !5)
!21 = distinct !DISubprogram(name: "rem", linkageName: "_ZN47_$LT$isize$u20$as$u20$core..ops..arith..Rem$GT$3rem17hcd48825ab2f2796fE", scope: !7, file: !6, line: 528, type: !11, scopeLine: 528, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !2, retainedNodes: !2)
!22 = !DILocalVariable(name: "self", arg: 1, scope: !21, file: !15, line: 1, type: !13)
!23 = !DILocation(line: 1, scope: !21)
!24 = !DILocalVariable(name: "other", arg: 2, scope: !21, file: !15, line: 1, type: !13)
!25 = !DILocation(line: 528, column: 44, scope: !21)
!26 = !DILocation(line: 528, column: 51, scope: !21)
!27 = !DILocation(line: 528, column: 58, scope: !21)
!28 = distinct !DISubprogram(name: "add_usize", linkageName: "_ZN49_$LT$usize$u20$as$u20$core..iter..range..Step$GT$9add_usize17h9709d2abb99d1f02E", scope: !30, file: !29, line: 88, type: !33, scopeLine: 88, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !2, retainedNodes: !2)
!29 = !DIFile(filename: "/rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/iter/range.rs", directory: "")
!30 = !DINamespace(name: "{{impl}}", scope: !31)
!31 = !DINamespace(name: "range", scope: !32)
!32 = !DINamespace(name: "iter", scope: !10)
!33 = !DISubroutineType(types: !34)
!34 = !{!35, !52, !45}
!35 = !DICompositeType(tag: DW_TAG_structure_type, name: "Option<usize>", scope: !37, file: !36, size: 128, align: 64, elements: !38, identifier: "ed1f2fd40dea8205ebd5d57eaedc002")
!36 = !DIFile(filename: "<unknown>", directory: "")
!37 = !DINamespace(name: "option", scope: !10)
!38 = !{!39}
!39 = !DICompositeType(tag: DW_TAG_variant_part, scope: !37, file: !36, size: 128, align: 64, elements: !40, templateParams: !43, identifier: "ed1f2fd40dea8205ebd5d57eaedc002_variant_part", discriminator: !50)
!40 = !{!41, !46}
!41 = !DIDerivedType(tag: DW_TAG_member, name: "None", scope: !39, file: !36, baseType: !42, size: 128, align: 64, extraData: i64 0)
!42 = !DICompositeType(tag: DW_TAG_structure_type, name: "None", scope: !35, file: !36, size: 128, align: 64, elements: !2, templateParams: !43, identifier: "ed1f2fd40dea8205ebd5d57eaedc002::None")
!43 = !{!44}
!44 = !DITemplateTypeParameter(name: "T", type: !45)
!45 = !DIBasicType(name: "usize", size: 64, encoding: DW_ATE_unsigned)
!46 = !DIDerivedType(tag: DW_TAG_member, name: "Some", scope: !39, file: !36, baseType: !47, size: 128, align: 64, extraData: i64 1)
!47 = !DICompositeType(tag: DW_TAG_structure_type, name: "Some", scope: !35, file: !36, size: 128, align: 64, elements: !48, templateParams: !43, identifier: "ed1f2fd40dea8205ebd5d57eaedc002::Some")
!48 = !{!49}
!49 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !47, file: !36, baseType: !45, size: 64, align: 64, offset: 64)
!50 = !DIDerivedType(tag: DW_TAG_member, scope: !37, file: !36, baseType: !51, size: 64, align: 64, flags: DIFlagArtificial)
!51 = !DIBasicType(name: "u64", size: 64, encoding: DW_ATE_unsigned)
!52 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&usize", baseType: !45, size: 64, align: 64)
!53 = !DILocalVariable(name: "self", arg: 1, scope: !28, file: !15, line: 1, type: !52)
!54 = !DILocation(line: 1, scope: !28)
!55 = !DILocalVariable(name: "n", arg: 2, scope: !28, file: !15, line: 1, type: !45)
!56 = !DILocalVariable(name: "n_as_t", scope: !57, file: !29, line: 90, type: !45, align: 8)
!57 = distinct !DILexicalBlock(scope: !28, file: !29, line: 90, column: 20)
!58 = !DILocation(line: 90, column: 23, scope: !57)
!59 = !DILocation(line: 89, column: 37, scope: !28)
!60 = !DILocation(line: 89, column: 22, scope: !28)
!61 = !DILocation(line: 90, column: 23, scope: !28)
!62 = !DILocation(line: 90, column: 34, scope: !57)
!63 = !DILocation(line: 90, column: 51, scope: !57)
!64 = !DILocation(line: 93, column: 13, scope: !28)
!65 = distinct !DISubprogram(name: "copy_nonoverlapping<usize>", linkageName: "_ZN4core10intrinsics19copy_nonoverlapping17h6fe3ca3ba4278673E", scope: !67, file: !66, line: 1419, type: !68, scopeLine: 1419, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !43, retainedNodes: !2)
!66 = !DIFile(filename: "/rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/intrinsics.rs", directory: "")
!67 = !DINamespace(name: "intrinsics", scope: !10)
!68 = !DISubroutineType(types: !69)
!69 = !{null, !70, !71, !45}
!70 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const usize", baseType: !45, size: 64, align: 64)
!71 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*mut usize", baseType: !45, size: 64, align: 64)
!72 = !DILocalVariable(name: "src", arg: 1, scope: !65, file: !15, line: 1, type: !70)
!73 = !DILocation(line: 1, scope: !65)
!74 = !DILocalVariable(name: "dst", arg: 2, scope: !65, file: !15, line: 1, type: !71)
!75 = !DILocalVariable(name: "count", arg: 3, scope: !65, file: !15, line: 1, type: !45)
!76 = !DILocation(line: 1423, column: 24, scope: !65)
!77 = !DILocation(line: 1423, column: 29, scope: !65)
!78 = !DILocation(line: 1423, column: 34, scope: !65)
!79 = !DILocation(line: 1423, column: 4, scope: !65)
!80 = !DILocation(line: 1424, column: 1, scope: !65)
!81 = distinct !DISubprogram(name: "copy_nonoverlapping<u8>", linkageName: "_ZN4core10intrinsics19copy_nonoverlapping17he1b9af375418f5b7E", scope: !67, file: !66, line: 1419, type: !82, scopeLine: 1419, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !87, retainedNodes: !2)
!82 = !DISubroutineType(types: !83)
!83 = !{null, !84, !86, !45}
!84 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const u8", baseType: !85, size: 64, align: 64)
!85 = !DIBasicType(name: "u8", size: 8, encoding: DW_ATE_unsigned)
!86 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*mut u8", baseType: !85, size: 64, align: 64)
!87 = !{!88}
!88 = !DITemplateTypeParameter(name: "T", type: !85)
!89 = !DILocalVariable(name: "src", arg: 1, scope: !81, file: !15, line: 1, type: !84)
!90 = !DILocation(line: 1, scope: !81)
!91 = !DILocalVariable(name: "dst", arg: 2, scope: !81, file: !15, line: 1, type: !86)
!92 = !DILocalVariable(name: "count", arg: 3, scope: !81, file: !15, line: 1, type: !45)
!93 = !DILocation(line: 1423, column: 24, scope: !81)
!94 = !DILocation(line: 1423, column: 29, scope: !81)
!95 = !DILocation(line: 1423, column: 34, scope: !81)
!96 = !DILocation(line: 1423, column: 4, scope: !81)
!97 = !DILocation(line: 1424, column: 1, scope: !81)
!98 = distinct !DISubprogram(name: "lt", linkageName: "_ZN4core3cmp5impls57_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$usize$GT$2lt17hd1f31b451aec6da1E", scope: !100, file: !99, line: 974, type: !103, scopeLine: 974, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !2, retainedNodes: !2)
!99 = !DIFile(filename: "/rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/cmp.rs", directory: "")
!100 = !DINamespace(name: "{{impl}}", scope: !101)
!101 = !DINamespace(name: "impls", scope: !102)
!102 = !DINamespace(name: "cmp", scope: !10)
!103 = !DISubroutineType(types: !104)
!104 = !{!105, !52, !52}
!105 = !DIBasicType(name: "bool", size: 8, encoding: DW_ATE_boolean)
!106 = !DILocalVariable(name: "self", arg: 1, scope: !98, file: !15, line: 1, type: !52)
!107 = !DILocation(line: 1, scope: !98)
!108 = !DILocalVariable(name: "other", arg: 2, scope: !98, file: !15, line: 1, type: !52)
!109 = !DILocation(line: 974, column: 51, scope: !98)
!110 = !DILocation(line: 974, column: 61, scope: !98)
!111 = !DILocation(line: 974, column: 71, scope: !98)
!112 = distinct !DISubprogram(name: "swap<usize>", linkageName: "_ZN4core3mem4swap17h8ad51cb2c514cb30E", scope: !114, file: !113, line: 500, type: !115, scopeLine: 500, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !43, retainedNodes: !2)
!113 = !DIFile(filename: "/rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/mem/mod.rs", directory: "")
!114 = !DINamespace(name: "mem", scope: !10)
!115 = !DISubroutineType(types: !116)
!116 = !{null, !117, !117}
!117 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut usize", baseType: !45, size: 64, align: 64)
!118 = !DILocalVariable(name: "x", arg: 1, scope: !112, file: !15, line: 1, type: !117)
!119 = !DILocation(line: 1, scope: !112)
!120 = !DILocalVariable(name: "y", arg: 2, scope: !112, file: !15, line: 1, type: !117)
!121 = !DILocation(line: 502, column: 37, scope: !122)
!122 = distinct !DILexicalBlock(scope: !112, file: !113, line: 501, column: 4)
!123 = !DILocation(line: 502, column: 40, scope: !122)
!124 = !DILocation(line: 502, column: 8, scope: !122)
!125 = !DILocation(line: 504, column: 1, scope: !112)
!126 = distinct !DISubprogram(name: "size_of<usize>", linkageName: "_ZN4core3mem7size_of17h62169596611dd2e0E", scope: !114, file: !113, line: 242, type: !127, scopeLine: 242, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !43, retainedNodes: !2)
!127 = !DISubroutineType(types: !128)
!128 = !{!45}
!129 = !DILocation(line: 243, column: 4, scope: !126)
!130 = !DILocation(line: 244, column: 1, scope: !126)
!131 = distinct !DISubprogram(name: "size_of<core::ptr::swap_nonoverlapping_bytes::Block>", linkageName: "_ZN4core3mem7size_of17h68d991970122feb2E", scope: !114, file: !113, line: 242, type: !127, scopeLine: 242, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !132, retainedNodes: !2)
!132 = !{!133}
!133 = !DITemplateTypeParameter(name: "T", type: !134)
!134 = !DICompositeType(tag: DW_TAG_structure_type, name: "Block", scope: !135, file: !36, size: 256, align: 256, elements: !137, templateParams: !2, identifier: "dbf71fbbca8bc32e3bf5316cb78321f2")
!135 = !DINamespace(name: "swap_nonoverlapping_bytes", scope: !136)
!136 = !DINamespace(name: "ptr", scope: !10)
!137 = !{!138, !139, !140, !141}
!138 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !134, file: !36, baseType: !51, size: 64, align: 64)
!139 = !DIDerivedType(tag: DW_TAG_member, name: "__1", scope: !134, file: !36, baseType: !51, size: 64, align: 64, offset: 64)
!140 = !DIDerivedType(tag: DW_TAG_member, name: "__2", scope: !134, file: !36, baseType: !51, size: 64, align: 64, offset: 128)
!141 = !DIDerivedType(tag: DW_TAG_member, name: "__3", scope: !134, file: !36, baseType: !51, size: 64, align: 64, offset: 192)
!142 = !DILocation(line: 243, column: 4, scope: !131)
!143 = !DILocation(line: 244, column: 1, scope: !131)
!144 = distinct !DISubprogram(name: "size_of<isize>", linkageName: "_ZN4core3mem7size_of17hd7e5cfcb791a5d1fE", scope: !114, file: !113, line: 242, type: !127, scopeLine: 242, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !145, retainedNodes: !2)
!145 = !{!146}
!146 = !DITemplateTypeParameter(name: "T", type: !13)
!147 = !DILocation(line: 243, column: 4, scope: !144)
!148 = !DILocation(line: 244, column: 1, scope: !144)
!149 = distinct !DISubprogram(name: "align_of<isize>", linkageName: "_ZN4core3mem8align_of17h7f293d7f1cd07ba4E", scope: !114, file: !113, line: 334, type: !127, scopeLine: 334, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !145, retainedNodes: !2)
!150 = !DILocation(line: 335, column: 4, scope: !149)
!151 = !DILocation(line: 336, column: 1, scope: !149)
!152 = distinct !DISubprogram(name: "checked_add", linkageName: "_ZN4core3num23_$LT$impl$u20$usize$GT$11checked_add17h9d0539ad7ca701ccE", scope: !154, file: !153, line: 2673, type: !156, scopeLine: 2673, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !2, retainedNodes: !2)
!153 = !DIFile(filename: "/rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/num/mod.rs", directory: "")
!154 = !DINamespace(name: "{{impl}}", scope: !155)
!155 = !DINamespace(name: "num", scope: !10)
!156 = !DISubroutineType(types: !157)
!157 = !{!35, !45, !45}
!158 = !DILocalVariable(name: "self", arg: 1, scope: !152, file: !15, line: 1, type: !45)
!159 = !DILocation(line: 1, scope: !152)
!160 = !DILocalVariable(name: "rhs", arg: 2, scope: !152, file: !15, line: 1, type: !45)
!161 = !DILocalVariable(name: "a", scope: !162, file: !153, line: 2674, type: !45, align: 8)
!162 = distinct !DILexicalBlock(scope: !152, file: !153, line: 2674, column: 16)
!163 = !DILocation(line: 2674, column: 21, scope: !162)
!164 = !DILocalVariable(name: "b", scope: !162, file: !153, line: 2674, type: !105, align: 1)
!165 = !DILocation(line: 2674, column: 24, scope: !162)
!166 = !DILocation(line: 2674, column: 29, scope: !152)
!167 = !DILocation(line: 2674, column: 50, scope: !152)
!168 = !DILocation(line: 2674, column: 21, scope: !152)
!169 = !DILocation(line: 2674, column: 24, scope: !152)
!170 = !DILocation(line: 2675, column: 19, scope: !162)
!171 = !{i8 0, i8 2}
!172 = !DILocation(line: 2675, column: 16, scope: !162)
!173 = !DILocation(line: 2675, column: 39, scope: !162)
!174 = !DILocation(line: 2675, column: 34, scope: !162)
!175 = !DILocation(line: 2675, column: 22, scope: !162)
!176 = !DILocation(line: 2676, column: 13, scope: !152)
!177 = !{i64 0, i64 2}
!178 = distinct !DISubprogram(name: "checked_mul", linkageName: "_ZN4core3num23_$LT$impl$u20$usize$GT$11checked_mul17h806479b1ea86b354E", scope: !154, file: !153, line: 2717, type: !156, scopeLine: 2717, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !2, retainedNodes: !2)
!179 = !DILocalVariable(name: "self", arg: 1, scope: !178, file: !15, line: 1, type: !45)
!180 = !DILocation(line: 1, scope: !178)
!181 = !DILocalVariable(name: "rhs", arg: 2, scope: !178, file: !15, line: 1, type: !45)
!182 = !DILocalVariable(name: "a", scope: !183, file: !153, line: 2718, type: !45, align: 8)
!183 = distinct !DILexicalBlock(scope: !178, file: !153, line: 2718, column: 16)
!184 = !DILocation(line: 2718, column: 21, scope: !183)
!185 = !DILocalVariable(name: "b", scope: !183, file: !153, line: 2718, type: !105, align: 1)
!186 = !DILocation(line: 2718, column: 24, scope: !183)
!187 = !DILocation(line: 2718, column: 29, scope: !178)
!188 = !DILocation(line: 2718, column: 50, scope: !178)
!189 = !DILocation(line: 2718, column: 21, scope: !178)
!190 = !DILocation(line: 2718, column: 24, scope: !178)
!191 = !DILocation(line: 2719, column: 19, scope: !183)
!192 = !DILocation(line: 2719, column: 16, scope: !183)
!193 = !DILocation(line: 2719, column: 39, scope: !183)
!194 = !DILocation(line: 2719, column: 34, scope: !183)
!195 = !DILocation(line: 2719, column: 22, scope: !183)
!196 = !DILocation(line: 2720, column: 13, scope: !178)
!197 = distinct !DISubprogram(name: "saturating_mul", linkageName: "_ZN4core3num23_$LT$impl$u20$usize$GT$14saturating_mul17hb7b5c8bd037e7bc6E", scope: !154, file: !153, line: 2994, type: !198, scopeLine: 2994, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !2, retainedNodes: !2)
!198 = !DISubroutineType(types: !199)
!199 = !{!45, !45, !45}
!200 = !DILocalVariable(name: "self", arg: 1, scope: !197, file: !15, line: 1, type: !45)
!201 = !DILocation(line: 1, scope: !197)
!202 = !DILocalVariable(name: "rhs", arg: 2, scope: !197, file: !15, line: 1, type: !45)
!203 = !DILocation(line: 2995, column: 16, scope: !197)
!204 = !DILocation(line: 2995, column: 33, scope: !197)
!205 = !DILocation(line: 2995, column: 48, scope: !197)
!206 = !DILocation(line: 2996, column: 13, scope: !197)
!207 = distinct !DISubprogram(name: "overflowing_add", linkageName: "_ZN4core3num23_$LT$impl$u20$usize$GT$15overflowing_add17h154f19bc24a86072E", scope: !154, file: !153, line: 3343, type: !208, scopeLine: 3343, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !2, retainedNodes: !2)
!208 = !DISubroutineType(types: !209)
!209 = !{!210, !45, !45}
!210 = !DICompositeType(tag: DW_TAG_structure_type, name: "(usize, bool)", file: !36, size: 128, align: 64, elements: !211, templateParams: !2, identifier: "532fa6618cdb3964411c84139beb9950")
!211 = !{!212, !213}
!212 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !210, file: !36, baseType: !45, size: 64, align: 64)
!213 = !DIDerivedType(tag: DW_TAG_member, name: "__1", scope: !210, file: !36, baseType: !105, size: 8, align: 8, offset: 64)
!214 = !DILocalVariable(name: "self", arg: 1, scope: !207, file: !15, line: 1, type: !45)
!215 = !DILocation(line: 1, scope: !207)
!216 = !DILocalVariable(name: "rhs", arg: 2, scope: !207, file: !15, line: 1, type: !45)
!217 = !DILocalVariable(name: "a", scope: !218, file: !153, line: 3344, type: !51, align: 8)
!218 = distinct !DILexicalBlock(scope: !207, file: !153, line: 3344, column: 16)
!219 = !DILocation(line: 3344, column: 21, scope: !218)
!220 = !DILocalVariable(name: "b", scope: !218, file: !153, line: 3344, type: !105, align: 1)
!221 = !DILocation(line: 3344, column: 24, scope: !218)
!222 = !DILocation(line: 3344, column: 59, scope: !207)
!223 = !DILocation(line: 3344, column: 77, scope: !207)
!224 = !DILocation(line: 3344, column: 29, scope: !207)
!225 = !DILocation(line: 3344, column: 21, scope: !207)
!226 = !DILocation(line: 3344, column: 24, scope: !207)
!227 = !DILocation(line: 3345, column: 17, scope: !218)
!228 = !DILocation(line: 3345, column: 28, scope: !218)
!229 = !DILocation(line: 3345, column: 16, scope: !218)
!230 = !DILocation(line: 3346, column: 13, scope: !207)
!231 = distinct !DISubprogram(name: "overflowing_mul", linkageName: "_ZN4core3num23_$LT$impl$u20$usize$GT$15overflowing_mul17hc6ec270855067cfeE", scope: !154, file: !153, line: 3398, type: !208, scopeLine: 3398, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !2, retainedNodes: !2)
!232 = !DILocalVariable(name: "self", arg: 1, scope: !231, file: !15, line: 1, type: !45)
!233 = !DILocation(line: 1, scope: !231)
!234 = !DILocalVariable(name: "rhs", arg: 2, scope: !231, file: !15, line: 1, type: !45)
!235 = !DILocalVariable(name: "a", scope: !236, file: !153, line: 3399, type: !51, align: 8)
!236 = distinct !DILexicalBlock(scope: !231, file: !153, line: 3399, column: 12)
!237 = !DILocation(line: 3399, column: 17, scope: !236)
!238 = !DILocalVariable(name: "b", scope: !236, file: !153, line: 3399, type: !105, align: 1)
!239 = !DILocation(line: 3399, column: 20, scope: !236)
!240 = !DILocation(line: 3399, column: 55, scope: !231)
!241 = !DILocation(line: 3399, column: 73, scope: !231)
!242 = !DILocation(line: 3399, column: 25, scope: !231)
!243 = !DILocation(line: 3399, column: 17, scope: !231)
!244 = !DILocation(line: 3399, column: 20, scope: !231)
!245 = !DILocation(line: 3400, column: 13, scope: !236)
!246 = !DILocation(line: 3400, column: 24, scope: !236)
!247 = !DILocation(line: 3400, column: 12, scope: !236)
!248 = !DILocation(line: 3401, column: 9, scope: !231)
!249 = distinct !DISubprogram(name: "max_value", linkageName: "_ZN4core3num23_$LT$impl$u20$usize$GT$9max_value17h9054e781c42925f6E", scope: !154, file: !153, line: 2323, type: !127, scopeLine: 2323, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !2, retainedNodes: !2)
!250 = !DILocation(line: 2323, column: 51, scope: !249)
!251 = distinct !DISubprogram(name: "swap_nonoverlapping<usize>", linkageName: "_ZN4core3ptr19swap_nonoverlapping17h8775c1adf9b15317E", scope: !136, file: !252, line: 398, type: !253, scopeLine: 398, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !43, retainedNodes: !2)
!252 = !DIFile(filename: "/rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/ptr/mod.rs", directory: "")
!253 = !DISubroutineType(types: !254)
!254 = !{null, !71, !71, !45}
!255 = !DILocalVariable(name: "x", arg: 1, scope: !251, file: !15, line: 1, type: !71)
!256 = !DILocation(line: 1, scope: !251)
!257 = !DILocalVariable(name: "y", arg: 2, scope: !251, file: !15, line: 1, type: !71)
!258 = !DILocalVariable(name: "count", arg: 3, scope: !251, file: !15, line: 1, type: !45)
!259 = !DILocalVariable(name: "x", scope: !260, file: !252, line: 399, type: !86, align: 8)
!260 = distinct !DILexicalBlock(scope: !251, file: !252, line: 399, column: 4)
!261 = !DILocation(line: 399, column: 8, scope: !260)
!262 = !DILocalVariable(name: "y", scope: !263, file: !252, line: 400, type: !86, align: 8)
!263 = distinct !DILexicalBlock(scope: !260, file: !252, line: 400, column: 4)
!264 = !DILocation(line: 400, column: 8, scope: !263)
!265 = !DILocalVariable(name: "len", scope: !266, file: !252, line: 401, type: !45, align: 8)
!266 = distinct !DILexicalBlock(scope: !263, file: !252, line: 401, column: 4)
!267 = !DILocation(line: 401, column: 8, scope: !266)
!268 = !DILocation(line: 399, column: 12, scope: !251)
!269 = !DILocation(line: 400, column: 12, scope: !260)
!270 = !DILocation(line: 401, column: 14, scope: !263)
!271 = !DILocation(line: 401, column: 36, scope: !263)
!272 = !DILocation(line: 402, column: 30, scope: !266)
!273 = !DILocation(line: 402, column: 33, scope: !266)
!274 = !DILocation(line: 402, column: 36, scope: !266)
!275 = !DILocation(line: 402, column: 4, scope: !266)
!276 = !DILocation(line: 403, column: 1, scope: !251)
!277 = distinct !DISubprogram(name: "slice_from_raw_parts<isize>", linkageName: "_ZN4core3ptr20slice_from_raw_parts17hceeedbdd3a01887eE", scope: !136, file: !252, line: 264, type: !278, scopeLine: 264, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !145, retainedNodes: !2)
!278 = !DISubroutineType(types: !279)
!279 = !{!280, !283, !45}
!280 = !DICompositeType(tag: DW_TAG_structure_type, name: "*const [isize]", file: !36, size: 128, align: 64, elements: !281, templateParams: !2, identifier: "ee08c022eadad4bd6fb888efc6798df5")
!281 = !{!282, !284}
!282 = !DIDerivedType(tag: DW_TAG_member, name: "data_ptr", scope: !280, file: !36, baseType: !283, size: 64, align: 64)
!283 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const isize", baseType: !13, size: 64, align: 64)
!284 = !DIDerivedType(tag: DW_TAG_member, name: "length", scope: !280, file: !36, baseType: !45, size: 64, align: 64, offset: 64)
!285 = !DILocalVariable(name: "data", arg: 1, scope: !277, file: !15, line: 1, type: !283)
!286 = !DILocation(line: 1, scope: !277)
!287 = !DILocalVariable(name: "len", arg: 2, scope: !277, file: !15, line: 1, type: !45)
!288 = !DILocation(line: 265, column: 34, scope: !289)
!289 = distinct !DILexicalBlock(scope: !277, file: !252, line: 265, column: 4)
!290 = !DILocation(line: 265, column: 40, scope: !289)
!291 = !DILocation(line: 265, column: 25, scope: !289)
!292 = !DILocation(line: 265, column: 13, scope: !289)
!293 = !DILocation(line: 266, column: 1, scope: !277)
!294 = distinct !DISubprogram(name: "swap_nonoverlapping_one<usize>", linkageName: "_ZN4core3ptr23swap_nonoverlapping_one17h12c8b2d352680437E", scope: !136, file: !252, line: 406, type: !295, scopeLine: 406, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !43, retainedNodes: !2)
!295 = !DISubroutineType(types: !296)
!296 = !{null, !71, !71}
!297 = !DILocalVariable(name: "x", arg: 1, scope: !294, file: !15, line: 1, type: !71)
!298 = !DILocation(line: 1, scope: !294)
!299 = !DILocalVariable(name: "y", arg: 2, scope: !294, file: !15, line: 1, type: !71)
!300 = !DILocalVariable(name: "z", scope: !301, file: !252, line: 410, type: !45, align: 8)
!301 = distinct !DILexicalBlock(scope: !294, file: !252, line: 410, column: 8)
!302 = !DILocation(line: 410, column: 12, scope: !301)
!303 = !DILocation(line: 409, column: 7, scope: !294)
!304 = !DILocation(line: 406, scope: !294)
!305 = !DILocation(line: 409, column: 4, scope: !294)
!306 = !DILocation(line: 414, column: 28, scope: !294)
!307 = !DILocation(line: 414, column: 31, scope: !294)
!308 = !DILocation(line: 414, column: 8, scope: !294)
!309 = !DILocation(line: 410, column: 21, scope: !294)
!310 = !DILocation(line: 410, column: 16, scope: !294)
!311 = !DILocation(line: 411, column: 28, scope: !301)
!312 = !DILocation(line: 411, column: 31, scope: !301)
!313 = !DILocation(line: 411, column: 8, scope: !301)
!314 = !DILocation(line: 412, column: 14, scope: !301)
!315 = !DILocation(line: 412, column: 17, scope: !301)
!316 = !DILocation(line: 412, column: 8, scope: !301)
!317 = !DILocation(line: 413, column: 4, scope: !294)
!318 = !DILocation(line: 416, column: 1, scope: !294)
!319 = distinct !DISubprogram(name: "slice_from_raw_parts_mut<isize>", linkageName: "_ZN4core3ptr24slice_from_raw_parts_mut17h94ce74124d6a8a85E", scope: !136, file: !252, line: 276, type: !320, scopeLine: 276, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !145, retainedNodes: !2)
!320 = !DISubroutineType(types: !321)
!321 = !{!322, !326, !45}
!322 = !DICompositeType(tag: DW_TAG_structure_type, name: "*mut [isize]", file: !36, size: 128, align: 64, elements: !323, templateParams: !2, identifier: "27f184c27b4a80bb5bc187fd9e537049")
!323 = !{!324, !325}
!324 = !DIDerivedType(tag: DW_TAG_member, name: "data_ptr", scope: !322, file: !36, baseType: !283, size: 64, align: 64)
!325 = !DIDerivedType(tag: DW_TAG_member, name: "length", scope: !322, file: !36, baseType: !45, size: 64, align: 64, offset: 64)
!326 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*mut isize", baseType: !13, size: 64, align: 64)
!327 = !DILocalVariable(name: "data", arg: 1, scope: !319, file: !15, line: 1, type: !326)
!328 = !DILocation(line: 1, scope: !319)
!329 = !DILocalVariable(name: "len", arg: 2, scope: !319, file: !15, line: 1, type: !45)
!330 = !DILocation(line: 277, column: 34, scope: !331)
!331 = distinct !DILexicalBlock(scope: !319, file: !252, line: 277, column: 4)
!332 = !DILocation(line: 277, column: 40, scope: !331)
!333 = !DILocation(line: 277, column: 25, scope: !331)
!334 = !DILocation(line: 277, column: 13, scope: !331)
!335 = !DILocation(line: 278, column: 1, scope: !319)
!336 = distinct !DISubprogram(name: "swap_nonoverlapping_bytes", linkageName: "_ZN4core3ptr25swap_nonoverlapping_bytes17h0231428c44134a09E", scope: !136, file: !252, line: 419, type: !337, scopeLine: 419, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !2, retainedNodes: !2)
!337 = !DISubroutineType(types: !338)
!338 = !{null, !86, !86, !45}
!339 = !DILocalVariable(name: "self", arg: 1, scope: !340, file: !15, line: 1, type: !353)
!340 = distinct !DISubprogram(name: "deref_mut<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>", linkageName: "_ZN94_$LT$core..mem..manually_drop..ManuallyDrop$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$9deref_mut17h0647e029409931acE", scope: !342, file: !341, line: 143, type: !344, scopeLine: 143, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !357, retainedNodes: !2)
!341 = !DIFile(filename: "/rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/mem/manually_drop.rs", directory: "")
!342 = !DINamespace(name: "{{impl}}", scope: !343)
!343 = !DINamespace(name: "manually_drop", scope: !114)
!344 = !DISubroutineType(types: !345)
!345 = !{!346, !353}
!346 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::ptr::swap_nonoverlapping_bytes::UnalignedBlock", baseType: !347, size: 64, align: 64)
!347 = !DICompositeType(tag: DW_TAG_structure_type, name: "UnalignedBlock", scope: !135, file: !36, size: 256, align: 64, elements: !348, templateParams: !2, identifier: "5f719ec97b2bbd3fe7a32ae14e0715e2")
!348 = !{!349, !350, !351, !352}
!349 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !347, file: !36, baseType: !51, size: 64, align: 64)
!350 = !DIDerivedType(tag: DW_TAG_member, name: "__1", scope: !347, file: !36, baseType: !51, size: 64, align: 64, offset: 64)
!351 = !DIDerivedType(tag: DW_TAG_member, name: "__2", scope: !347, file: !36, baseType: !51, size: 64, align: 64, offset: 128)
!352 = !DIDerivedType(tag: DW_TAG_member, name: "__3", scope: !347, file: !36, baseType: !51, size: 64, align: 64, offset: 192)
!353 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::mem::manually_drop::ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>", baseType: !354, size: 64, align: 64)
!354 = !DICompositeType(tag: DW_TAG_structure_type, name: "ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>", scope: !343, file: !36, size: 256, align: 64, elements: !355, templateParams: !357, identifier: "d8a83afee5fc44d38e19a8a50ba5f04f")
!355 = !{!356}
!356 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !354, file: !36, baseType: !347, size: 256, align: 64)
!357 = !{!358}
!358 = !DITemplateTypeParameter(name: "T", type: !347)
!359 = !DILocation(line: 1, scope: !340, inlinedAt: !360)
!360 = distinct !DILocation(line: 382, column: 22, scope: !361, inlinedAt: !374)
!361 = distinct !DILexicalBlock(scope: !363, file: !362, line: 382, column: 8)
!362 = !DIFile(filename: "/rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/mem/maybe_uninit.rs", directory: "")
!363 = distinct !DISubprogram(name: "as_mut_ptr<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>", linkageName: "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$10as_mut_ptr17h6c986136f5c7db59E", scope: !364, file: !362, line: 381, type: !370, scopeLine: 381, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !357, retainedNodes: !2)
!364 = !DICompositeType(tag: DW_TAG_union_type, name: "MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>", scope: !365, file: !36, size: 256, align: 64, elements: !366, templateParams: !357, identifier: "36711419e8ac00832882487667ee0667")
!365 = !DINamespace(name: "maybe_uninit", scope: !114)
!366 = !{!367, !369}
!367 = !DIDerivedType(tag: DW_TAG_member, name: "uninit", scope: !364, file: !36, baseType: !368, align: 8)
!368 = !DIBasicType(name: "()", encoding: DW_ATE_unsigned)
!369 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !364, file: !36, baseType: !354, size: 256, align: 64)
!370 = !DISubroutineType(types: !371)
!371 = !{!372, !373}
!372 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*mut core::ptr::swap_nonoverlapping_bytes::UnalignedBlock", baseType: !347, size: 64, align: 64)
!373 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>", baseType: !364, size: 64, align: 64)
!374 = distinct !DILocation(line: 457, column: 16, scope: !375)
!375 = distinct !DILexicalBlock(scope: !376, file: !252, line: 455, column: 8)
!376 = distinct !DILexicalBlock(scope: !377, file: !252, line: 454, column: 8)
!377 = distinct !DILexicalBlock(scope: !378, file: !252, line: 435, column: 4)
!378 = distinct !DILexicalBlock(scope: !336, file: !252, line: 430, column: 4)
!379 = !DILocalVariable(name: "self", arg: 1, scope: !363, file: !15, line: 1, type: !373)
!380 = !DILocation(line: 1, scope: !363, inlinedAt: !374)
!381 = !DILocalVariable(name: "self", arg: 1, scope: !382, file: !15, line: 1, type: !386)
!382 = distinct !DISubprogram(name: "deref_mut<core::ptr::swap_nonoverlapping_bytes::Block>", linkageName: "_ZN94_$LT$core..mem..manually_drop..ManuallyDrop$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$9deref_mut17hd43f28ea4fef4eb8E", scope: !342, file: !341, line: 143, type: !383, scopeLine: 143, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !132, retainedNodes: !2)
!383 = !DISubroutineType(types: !384)
!384 = !{!385, !386}
!385 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::ptr::swap_nonoverlapping_bytes::Block", baseType: !134, size: 64, align: 64)
!386 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::mem::manually_drop::ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::Block>", baseType: !387, size: 64, align: 64)
!387 = !DICompositeType(tag: DW_TAG_structure_type, name: "ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::Block>", scope: !343, file: !36, size: 256, align: 256, elements: !388, templateParams: !132, identifier: "2467ea6c2a732fb5142da591fe67b1c1")
!388 = !{!389}
!389 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !387, file: !36, baseType: !134, size: 256, align: 256)
!390 = !DILocation(line: 1, scope: !382, inlinedAt: !391)
!391 = distinct !DILocation(line: 382, column: 22, scope: !392, inlinedAt: !402)
!392 = distinct !DILexicalBlock(scope: !393, file: !362, line: 382, column: 8)
!393 = distinct !DISubprogram(name: "as_mut_ptr<core::ptr::swap_nonoverlapping_bytes::Block>", linkageName: "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$10as_mut_ptr17h98b1e84633c95509E", scope: !394, file: !362, line: 381, type: !398, scopeLine: 381, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !132, retainedNodes: !2)
!394 = !DICompositeType(tag: DW_TAG_union_type, name: "MaybeUninit<core::ptr::swap_nonoverlapping_bytes::Block>", scope: !365, file: !36, size: 256, align: 256, elements: !395, templateParams: !132, identifier: "ec19e8014336c2a8a2191783c6ca79e3")
!395 = !{!396, !397}
!396 = !DIDerivedType(tag: DW_TAG_member, name: "uninit", scope: !394, file: !36, baseType: !368, align: 8)
!397 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !394, file: !36, baseType: !387, size: 256, align: 256)
!398 = !DISubroutineType(types: !399)
!399 = !{!400, !401}
!400 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*mut core::ptr::swap_nonoverlapping_bytes::Block", baseType: !134, size: 64, align: 64)
!401 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::Block>", baseType: !394, size: 64, align: 64)
!402 = distinct !DILocation(line: 440, column: 16, scope: !403)
!403 = distinct !DILexicalBlock(scope: !377, file: !252, line: 439, column: 8)
!404 = !DILocalVariable(name: "self", arg: 1, scope: !393, file: !15, line: 1, type: !401)
!405 = !DILocation(line: 1, scope: !393, inlinedAt: !402)
!406 = !DILocalVariable(name: "x", arg: 1, scope: !336, file: !15, line: 1, type: !86)
!407 = !DILocation(line: 1, scope: !336)
!408 = !DILocalVariable(name: "y", arg: 2, scope: !336, file: !15, line: 1, type: !86)
!409 = !DILocalVariable(name: "len", arg: 3, scope: !336, file: !15, line: 1, type: !45)
!410 = !DILocalVariable(name: "block_size", scope: !378, file: !252, line: 430, type: !45, align: 8)
!411 = !DILocation(line: 430, column: 8, scope: !378)
!412 = !DILocalVariable(name: "i", scope: !377, file: !252, line: 435, type: !45, align: 8)
!413 = !DILocation(line: 435, column: 8, scope: !377)
!414 = !DILocalVariable(name: "t", scope: !403, file: !252, line: 439, type: !394, align: 32)
!415 = !DILocation(line: 439, column: 12, scope: !403)
!416 = !DILocalVariable(name: "t", scope: !417, file: !252, line: 440, type: !86, align: 8)
!417 = distinct !DILexicalBlock(scope: !403, file: !252, line: 440, column: 8)
!418 = !DILocation(line: 440, column: 12, scope: !417)
!419 = !DILocalVariable(name: "x", scope: !420, file: !252, line: 441, type: !86, align: 8)
!420 = distinct !DILexicalBlock(scope: !417, file: !252, line: 441, column: 8)
!421 = !DILocation(line: 441, column: 12, scope: !420)
!422 = !DILocalVariable(name: "y", scope: !423, file: !252, line: 442, type: !86, align: 8)
!423 = distinct !DILexicalBlock(scope: !420, file: !252, line: 442, column: 8)
!424 = !DILocation(line: 442, column: 12, scope: !423)
!425 = !DILocalVariable(name: "t", scope: !376, file: !252, line: 454, type: !364, align: 8)
!426 = !DILocation(line: 454, column: 12, scope: !376)
!427 = !DILocalVariable(name: "rem", scope: !375, file: !252, line: 455, type: !45, align: 8)
!428 = !DILocation(line: 455, column: 12, scope: !375)
!429 = !DILocalVariable(name: "t", scope: !430, file: !252, line: 457, type: !86, align: 8)
!430 = distinct !DILexicalBlock(scope: !375, file: !252, line: 457, column: 8)
!431 = !DILocation(line: 457, column: 12, scope: !430)
!432 = !DILocalVariable(name: "x", scope: !433, file: !252, line: 458, type: !86, align: 8)
!433 = distinct !DILexicalBlock(scope: !430, file: !252, line: 458, column: 8)
!434 = !DILocation(line: 458, column: 12, scope: !433)
!435 = !DILocalVariable(name: "y", scope: !436, file: !252, line: 459, type: !86, align: 8)
!436 = distinct !DILexicalBlock(scope: !433, file: !252, line: 459, column: 8)
!437 = !DILocation(line: 459, column: 12, scope: !436)
!438 = !DILocation(line: 430, column: 21, scope: !336)
!439 = !DILocation(line: 435, column: 16, scope: !378)
!440 = !DILocation(line: 436, column: 4, scope: !377)
!441 = !DILocation(line: 436, column: 10, scope: !377)
!442 = !DILocation(line: 436, column: 14, scope: !377)
!443 = !DILocation(line: 436, column: 28, scope: !377)
!444 = !DILocation(line: 250, column: 8, scope: !445, inlinedAt: !448)
!445 = distinct !DISubprogram(name: "uninit<core::ptr::swap_nonoverlapping_bytes::Block>", linkageName: "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$6uninit17h38150187a5815917E", scope: !394, file: !362, line: 249, type: !446, scopeLine: 249, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !132, retainedNodes: !2)
!446 = !DISubroutineType(types: !447)
!447 = !{!394}
!448 = distinct !DILocation(line: 439, column: 20, scope: !377)
!449 = !DILocation(line: 439, column: 20, scope: !377)
!450 = !DILocation(line: 452, column: 7, scope: !377)
!451 = !DILocation(line: 452, column: 11, scope: !377)
!452 = !DILocation(line: 452, column: 4, scope: !377)
!453 = !DILocation(line: 382, column: 23, scope: !392, inlinedAt: !402)
!454 = !DILocation(line: 144, column: 8, scope: !382, inlinedAt: !391)
!455 = !DILocation(line: 440, column: 16, scope: !403)
!456 = !DILocation(line: 441, column: 16, scope: !417)
!457 = !DILocation(line: 441, column: 22, scope: !417)
!458 = !DILocation(line: 442, column: 16, scope: !420)
!459 = !DILocation(line: 442, column: 22, scope: !420)
!460 = !DILocation(line: 446, column: 28, scope: !423)
!461 = !DILocation(line: 446, column: 31, scope: !423)
!462 = !DILocation(line: 446, column: 34, scope: !423)
!463 = !DILocation(line: 446, column: 8, scope: !423)
!464 = !DILocation(line: 447, column: 28, scope: !423)
!465 = !DILocation(line: 447, column: 31, scope: !423)
!466 = !DILocation(line: 447, column: 34, scope: !423)
!467 = !DILocation(line: 447, column: 8, scope: !423)
!468 = !DILocation(line: 448, column: 28, scope: !423)
!469 = !DILocation(line: 448, column: 31, scope: !423)
!470 = !DILocation(line: 448, column: 34, scope: !423)
!471 = !DILocation(line: 448, column: 8, scope: !423)
!472 = !DILocation(line: 449, column: 13, scope: !423)
!473 = !DILocation(line: 449, column: 8, scope: !423)
!474 = !DILocation(line: 250, column: 8, scope: !475, inlinedAt: !478)
!475 = distinct !DISubprogram(name: "uninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>", linkageName: "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$6uninit17h07cd7fb11865ee8eE", scope: !364, file: !362, line: 249, type: !476, scopeLine: 249, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !357, retainedNodes: !2)
!476 = !DISubroutineType(types: !477)
!477 = !{!364}
!478 = distinct !DILocation(line: 454, column: 20, scope: !377)
!479 = !DILocation(line: 454, column: 20, scope: !377)
!480 = !DILocation(line: 455, column: 18, scope: !376)
!481 = !DILocation(line: 455, column: 24, scope: !376)
!482 = !DILocation(line: 382, column: 23, scope: !361, inlinedAt: !374)
!483 = !DILocation(line: 144, column: 8, scope: !340, inlinedAt: !360)
!484 = !DILocation(line: 457, column: 16, scope: !375)
!485 = !DILocation(line: 458, column: 16, scope: !430)
!486 = !DILocation(line: 458, column: 22, scope: !430)
!487 = !DILocation(line: 459, column: 16, scope: !433)
!488 = !DILocation(line: 459, column: 22, scope: !433)
!489 = !DILocation(line: 461, column: 28, scope: !436)
!490 = !DILocation(line: 461, column: 31, scope: !436)
!491 = !DILocation(line: 461, column: 34, scope: !436)
!492 = !DILocation(line: 461, column: 8, scope: !436)
!493 = !DILocation(line: 462, column: 28, scope: !436)
!494 = !DILocation(line: 462, column: 31, scope: !436)
!495 = !DILocation(line: 462, column: 34, scope: !436)
!496 = !DILocation(line: 462, column: 8, scope: !436)
!497 = !DILocation(line: 463, column: 28, scope: !436)
!498 = !DILocation(line: 463, column: 31, scope: !436)
!499 = !DILocation(line: 463, column: 34, scope: !436)
!500 = !DILocation(line: 463, column: 8, scope: !436)
!501 = !DILocation(line: 465, column: 1, scope: !336)
!502 = distinct !DISubprogram(name: "add<u8>", linkageName: "_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$3add17h0420c0e37e430bfcE", scope: !503, file: !252, line: 2019, type: !504, scopeLine: 2019, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !87, retainedNodes: !2)
!503 = !DINamespace(name: "{{impl}}", scope: !136)
!504 = !DISubroutineType(types: !505)
!505 = !{!86, !86, !45}
!506 = !DILocalVariable(name: "self", arg: 1, scope: !502, file: !15, line: 1, type: !86)
!507 = !DILocation(line: 1, scope: !502)
!508 = !DILocalVariable(name: "count", arg: 2, scope: !502, file: !15, line: 1, type: !45)
!509 = !DILocation(line: 2022, column: 8, scope: !502)
!510 = !DILocation(line: 2022, column: 20, scope: !502)
!511 = !DILocation(line: 2023, column: 5, scope: !502)
!512 = distinct !DISubprogram(name: "offset<u8>", linkageName: "_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$6offset17h59fdf5f61cd3626bE", scope: !503, file: !252, line: 1769, type: !513, scopeLine: 1769, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !87, retainedNodes: !2)
!513 = !DISubroutineType(types: !514)
!514 = !{!86, !86, !13}
!515 = !DILocalVariable(name: "self", arg: 1, scope: !512, file: !15, line: 1, type: !86)
!516 = !DILocation(line: 1, scope: !512)
!517 = !DILocalVariable(name: "count", arg: 2, scope: !512, file: !15, line: 1, type: !13)
!518 = !DILocation(line: 1770, column: 27, scope: !512)
!519 = !DILocation(line: 1770, column: 33, scope: !512)
!520 = !DILocation(line: 1770, column: 8, scope: !512)
!521 = !DILocation(line: 1771, column: 5, scope: !512)
!522 = distinct !DISubprogram(name: "is_null<isize>", linkageName: "_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17ha979f8c7c468a2b4E", scope: !503, file: !252, line: 1646, type: !523, scopeLine: 1646, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !145, retainedNodes: !2)
!523 = !DISubroutineType(types: !524)
!524 = !{!105, !326}
!525 = !DILocalVariable(name: "self", arg: 1, scope: !522, file: !15, line: 1, type: !326)
!526 = !DILocation(line: 1, scope: !522)
!527 = !DILocation(line: 1649, column: 9, scope: !522)
!528 = !DILocation(line: 1649, column: 8, scope: !522)
!529 = !DILocation(line: 1649, column: 29, scope: !522)
!530 = !DILocation(line: 1650, column: 5, scope: !522)
!531 = distinct !DISubprogram(name: "wrapping_add<u8>", linkageName: "_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$12wrapping_add17h796bc2d3568076dbE", scope: !503, file: !252, line: 1450, type: !532, scopeLine: 1450, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !87, retainedNodes: !2)
!532 = !DISubroutineType(types: !533)
!533 = !{!84, !84, !45}
!534 = !DILocalVariable(name: "self", arg: 1, scope: !531, file: !15, line: 1, type: !84)
!535 = !DILocation(line: 1, scope: !531)
!536 = !DILocalVariable(name: "count", arg: 2, scope: !531, file: !15, line: 1, type: !45)
!537 = !DILocation(line: 1453, column: 8, scope: !531)
!538 = !DILocation(line: 1453, column: 29, scope: !531)
!539 = !DILocation(line: 1454, column: 5, scope: !531)
!540 = distinct !DISubprogram(name: "wrapping_offset<u8>", linkageName: "_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$15wrapping_offset17h45b3ac03c2a8679dE", scope: !503, file: !252, line: 1178, type: !541, scopeLine: 1178, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !87, retainedNodes: !2)
!541 = !DISubroutineType(types: !542)
!542 = !{!84, !84, !13}
!543 = !DILocalVariable(name: "self", arg: 1, scope: !540, file: !15, line: 1, type: !84)
!544 = !DILocation(line: 1, scope: !540)
!545 = !DILocalVariable(name: "count", arg: 2, scope: !540, file: !15, line: 1, type: !13)
!546 = !DILocation(line: 1180, column: 37, scope: !547)
!547 = distinct !DILexicalBlock(scope: !540, file: !252, line: 1179, column: 8)
!548 = !DILocation(line: 1180, column: 43, scope: !547)
!549 = !DILocation(line: 1180, column: 12, scope: !547)
!550 = !DILocation(line: 1182, column: 5, scope: !540)
!551 = distinct !DISubprogram(name: "add<isize>", linkageName: "_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$3add17hca3a566798bffda1E", scope: !503, file: !252, line: 1352, type: !552, scopeLine: 1352, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !145, retainedNodes: !2)
!552 = !DISubroutineType(types: !553)
!553 = !{!283, !283, !45}
!554 = !DILocalVariable(name: "self", arg: 1, scope: !551, file: !15, line: 1, type: !283)
!555 = !DILocation(line: 1, scope: !551)
!556 = !DILocalVariable(name: "count", arg: 2, scope: !551, file: !15, line: 1, type: !45)
!557 = !DILocation(line: 1355, column: 8, scope: !551)
!558 = !DILocation(line: 1355, column: 20, scope: !551)
!559 = !DILocation(line: 1356, column: 5, scope: !551)
!560 = distinct !DISubprogram(name: "offset<isize>", linkageName: "_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$6offset17h66d880d9e1cefb86E", scope: !503, file: !252, line: 1134, type: !561, scopeLine: 1134, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !145, retainedNodes: !2)
!561 = !DISubroutineType(types: !562)
!562 = !{!283, !283, !13}
!563 = !DILocalVariable(name: "self", arg: 1, scope: !560, file: !15, line: 1, type: !283)
!564 = !DILocation(line: 1, scope: !560)
!565 = !DILocalVariable(name: "count", arg: 2, scope: !560, file: !15, line: 1, type: !13)
!566 = !DILocation(line: 1135, column: 27, scope: !560)
!567 = !DILocation(line: 1135, column: 33, scope: !560)
!568 = !DILocation(line: 1135, column: 8, scope: !560)
!569 = !DILocation(line: 1136, column: 5, scope: !560)
!570 = distinct !DISubprogram(name: "is_null<isize>", linkageName: "_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$7is_null17h2cb5e5d9be44649cE", scope: !503, file: !252, line: 1011, type: !571, scopeLine: 1011, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !145, retainedNodes: !2)
!571 = !DISubroutineType(types: !572)
!572 = !{!105, !283}
!573 = !DILocalVariable(name: "self", arg: 1, scope: !570, file: !15, line: 1, type: !283)
!574 = !DILocation(line: 1, scope: !570)
!575 = !DILocation(line: 1014, column: 9, scope: !570)
!576 = !DILocation(line: 1014, column: 8, scope: !570)
!577 = !DILocation(line: 1014, column: 31, scope: !570)
!578 = !DILocation(line: 1015, column: 5, scope: !570)
!579 = distinct !DISubprogram(name: "null<u8>", linkageName: "_ZN4core3ptr4null17h6f7f1f48fb5b772cE", scope: !136, file: !252, line: 216, type: !580, scopeLine: 216, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !87, retainedNodes: !2)
!580 = !DISubroutineType(types: !581)
!581 = !{!84}
!582 = !DILocation(line: 216, column: 52, scope: !579)
!583 = distinct !DISubprogram(name: "read<usize>", linkageName: "_ZN4core3ptr4read17h6c5ac2ebfe0041f6E", scope: !136, file: !252, line: 621, type: !584, scopeLine: 621, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !43, retainedNodes: !2)
!584 = !DISubroutineType(types: !585)
!585 = !{!45, !70}
!586 = !DILocalVariable(name: "self", arg: 1, scope: !587, file: !15, line: 1, type: !590)
!587 = distinct !DISubprogram(name: "deref_mut<usize>", linkageName: "_ZN94_$LT$core..mem..manually_drop..ManuallyDrop$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$9deref_mut17h92bdebd810e5c738E", scope: !342, file: !341, line: 143, type: !588, scopeLine: 143, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !43, retainedNodes: !2)
!588 = !DISubroutineType(types: !589)
!589 = !{!117, !590}
!590 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::mem::manually_drop::ManuallyDrop<usize>", baseType: !591, size: 64, align: 64)
!591 = !DICompositeType(tag: DW_TAG_structure_type, name: "ManuallyDrop<usize>", scope: !343, file: !36, size: 64, align: 64, elements: !592, templateParams: !43, identifier: "b5d81df9be348964c6bc4e48c65083a9")
!592 = !{!593}
!593 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !591, file: !36, baseType: !45, size: 64, align: 64)
!594 = !DILocation(line: 1, scope: !587, inlinedAt: !595)
!595 = distinct !DILocation(line: 382, column: 22, scope: !596, inlinedAt: !605)
!596 = distinct !DILexicalBlock(scope: !597, file: !362, line: 382, column: 8)
!597 = distinct !DISubprogram(name: "as_mut_ptr<usize>", linkageName: "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$10as_mut_ptr17h8f78b3c9ead76a8fE", scope: !598, file: !362, line: 381, type: !602, scopeLine: 381, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !43, retainedNodes: !2)
!598 = !DICompositeType(tag: DW_TAG_union_type, name: "MaybeUninit<usize>", scope: !365, file: !36, size: 64, align: 64, elements: !599, templateParams: !43, identifier: "723cb54a29a7c430b78f00ee139c4d18")
!599 = !{!600, !601}
!600 = !DIDerivedType(tag: DW_TAG_member, name: "uninit", scope: !598, file: !36, baseType: !368, align: 8)
!601 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !598, file: !36, baseType: !591, size: 64, align: 64)
!602 = !DISubroutineType(types: !603)
!603 = !{!71, !604}
!604 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::mem::maybe_uninit::MaybeUninit<usize>", baseType: !598, size: 64, align: 64)
!605 = distinct !DILocation(line: 623, column: 29, scope: !606)
!606 = distinct !DILexicalBlock(scope: !583, file: !252, line: 622, column: 4)
!607 = !DILocalVariable(name: "self", arg: 1, scope: !597, file: !15, line: 1, type: !604)
!608 = !DILocation(line: 1, scope: !597, inlinedAt: !605)
!609 = !DILocalVariable(name: "slot", arg: 1, scope: !610, file: !15, line: 1, type: !591)
!610 = distinct !DISubprogram(name: "into_inner<usize>", linkageName: "_ZN4core3mem13manually_drop21ManuallyDrop$LT$T$GT$10into_inner17ha849fab1a444f491E", scope: !591, file: !341, line: 84, type: !611, scopeLine: 84, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !43, retainedNodes: !2)
!611 = !DISubroutineType(types: !612)
!612 = !{!45, !591}
!613 = !DILocation(line: 1, scope: !610, inlinedAt: !614)
!614 = distinct !DILocation(line: 424, column: 8, scope: !615, inlinedAt: !618)
!615 = distinct !DISubprogram(name: "assume_init<usize>", linkageName: "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$11assume_init17h56bfdb90eabc5baeE", scope: !598, file: !362, line: 422, type: !616, scopeLine: 422, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !43, retainedNodes: !2)
!616 = !DISubroutineType(types: !617)
!617 = !{!45, !598}
!618 = distinct !DILocation(line: 624, column: 4, scope: !606)
!619 = !DILocalVariable(name: "self", arg: 1, scope: !615, file: !15, line: 1, type: !598)
!620 = !DILocation(line: 1, scope: !615, inlinedAt: !618)
!621 = !DILocalVariable(name: "src", arg: 1, scope: !583, file: !15, line: 1, type: !70)
!622 = !DILocation(line: 1, scope: !583)
!623 = !DILocalVariable(name: "tmp", scope: !606, file: !252, line: 622, type: !598, align: 8)
!624 = !DILocation(line: 622, column: 8, scope: !606)
!625 = !DILocation(line: 250, column: 8, scope: !626, inlinedAt: !629)
!626 = distinct !DISubprogram(name: "uninit<usize>", linkageName: "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$6uninit17hd5f5856260807159E", scope: !598, file: !362, line: 249, type: !627, scopeLine: 249, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !43, retainedNodes: !2)
!627 = !DISubroutineType(types: !628)
!628 = !{!598}
!629 = distinct !DILocation(line: 622, column: 18, scope: !583)
!630 = !DILocation(line: 251, column: 5, scope: !626, inlinedAt: !629)
!631 = !DILocation(line: 622, column: 18, scope: !583)
!632 = !DILocation(line: 623, column: 24, scope: !606)
!633 = !DILocation(line: 382, column: 23, scope: !596, inlinedAt: !605)
!634 = !DILocation(line: 144, column: 8, scope: !587, inlinedAt: !595)
!635 = !DILocation(line: 623, column: 29, scope: !606)
!636 = !DILocation(line: 623, column: 4, scope: !606)
!637 = !DILocation(line: 624, column: 4, scope: !606)
!638 = !DILocation(line: 424, column: 33, scope: !615, inlinedAt: !618)
!639 = !DILocation(line: 85, column: 8, scope: !610, inlinedAt: !614)
!640 = !DILocation(line: 625, column: 1, scope: !583)
!641 = distinct !DISubprogram(name: "write<usize>", linkageName: "_ZN4core3ptr5write17h4aea043b48e6b795E", scope: !136, file: !252, line: 782, type: !642, scopeLine: 782, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !43, retainedNodes: !2)
!642 = !DISubroutineType(types: !643)
!643 = !{null, !71, !45}
!644 = !DILocalVariable(name: "dst", arg: 1, scope: !641, file: !15, line: 1, type: !71)
!645 = !DILocation(line: 1, scope: !641)
!646 = !DILocalVariable(name: "src", arg: 2, scope: !641, file: !15, line: 1, type: !45)
!647 = !DILocation(line: 783, column: 30, scope: !641)
!648 = !DILocation(line: 783, column: 41, scope: !641)
!649 = !DILocation(line: 784, column: 1, scope: !641)
!650 = distinct !DISubprogram(name: "as_ptr<isize>", linkageName: "_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ptr17haf927ead46b1fb4dE", scope: !652, file: !651, line: 102, type: !659, scopeLine: 102, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !145, retainedNodes: !2)
!651 = !DIFile(filename: "/rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/ptr/unique.rs", directory: "")
!652 = !DICompositeType(tag: DW_TAG_structure_type, name: "Unique<isize>", scope: !653, file: !36, size: 64, align: 64, elements: !654, templateParams: !145, identifier: "b57cf515fbdd2fcf2651ce34ad427f20")
!653 = !DINamespace(name: "unique", scope: !136)
!654 = !{!655, !656}
!655 = !DIDerivedType(tag: DW_TAG_member, name: "pointer", scope: !652, file: !36, baseType: !283, size: 64, align: 64)
!656 = !DIDerivedType(tag: DW_TAG_member, name: "_marker", scope: !652, file: !36, baseType: !657, align: 8)
!657 = !DICompositeType(tag: DW_TAG_structure_type, name: "PhantomData<isize>", scope: !658, file: !36, align: 8, elements: !2, templateParams: !145, identifier: "ca7442f3f28061386adf6f99f4c3564a")
!658 = !DINamespace(name: "marker", scope: !10)
!659 = !DISubroutineType(types: !660)
!660 = !{!326, !652}
!661 = !DILocalVariable(name: "self", arg: 1, scope: !650, file: !15, line: 1, type: !652)
!662 = !DILocation(line: 1, scope: !650)
!663 = !DILocation(line: 103, column: 8, scope: !650)
!664 = !DILocation(line: 104, column: 5, scope: !650)
!665 = distinct !DISubprogram(name: "null_mut<u8>", linkageName: "_ZN4core3ptr8null_mut17had996423b354d73cE", scope: !136, file: !252, line: 231, type: !666, scopeLine: 231, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !87, retainedNodes: !2)
!666 = !DISubroutineType(types: !667)
!667 = !{!86}
!668 = !DILocation(line: 231, column: 52, scope: !665)
!669 = distinct !DISubprogram(name: "next<usize>", linkageName: "_ZN4core4iter5range101_$LT$impl$u20$core..iter..traits..iterator..Iterator$u20$for$u20$core..ops..range..Range$LT$A$GT$$GT$4next17h28f5ccce6734b660E", scope: !30, file: !29, line: 205, type: !670, scopeLine: 205, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !680, retainedNodes: !2)
!670 = !DISubroutineType(types: !671)
!671 = !{!35, !672}
!672 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::ops::range::Range<usize>", baseType: !673, size: 64, align: 64)
!673 = !DICompositeType(tag: DW_TAG_structure_type, name: "Range<usize>", scope: !674, file: !36, size: 128, align: 64, elements: !675, templateParams: !678, identifier: "aab9ddc110ec2f2ed9f357021b2a6586")
!674 = !DINamespace(name: "range", scope: !9)
!675 = !{!676, !677}
!676 = !DIDerivedType(tag: DW_TAG_member, name: "start", scope: !673, file: !36, baseType: !45, size: 64, align: 64)
!677 = !DIDerivedType(tag: DW_TAG_member, name: "end", scope: !673, file: !36, baseType: !45, size: 64, align: 64, offset: 64)
!678 = !{!679}
!679 = !DITemplateTypeParameter(name: "Idx", type: !45)
!680 = !{!681}
!681 = !DITemplateTypeParameter(name: "A", type: !45)
!682 = !DILocalVariable(name: "self", arg: 1, scope: !669, file: !15, line: 1, type: !672)
!683 = !DILocation(line: 1, scope: !669)
!684 = !DILocalVariable(name: "n", scope: !685, file: !29, line: 211, type: !45, align: 8)
!685 = distinct !DILexicalBlock(scope: !669, file: !29, line: 211, column: 57)
!686 = !DILocation(line: 211, column: 24, scope: !685)
!687 = !DILocation(line: 206, column: 11, scope: !669)
!688 = !DILocation(line: 206, column: 24, scope: !669)
!689 = !DILocation(line: 205, column: 4, scope: !669)
!690 = !DILocation(line: 206, column: 8, scope: !669)
!691 = !DILocation(line: 218, column: 12, scope: !669)
!692 = !DILocation(line: 211, column: 33, scope: !669)
!693 = !DILocation(line: 211, column: 19, scope: !669)
!694 = !DILocation(line: 215, column: 16, scope: !669)
!695 = !DILocation(line: 211, column: 12, scope: !669)
!696 = !DILocation(line: 211, column: 24, scope: !669)
!697 = !DILocation(line: 212, column: 34, scope: !685)
!698 = !DILocation(line: 212, column: 16, scope: !685)
!699 = !DILocation(line: 213, column: 21, scope: !685)
!700 = !DILocation(line: 213, column: 16, scope: !685)
!701 = !DILocation(line: 217, column: 8, scope: !669)
!702 = !DILocation(line: 214, column: 12, scope: !669)
!703 = !DILocation(line: 220, column: 5, scope: !669)
!704 = distinct !DISubprogram(name: "from_raw_parts<isize>", linkageName: "_ZN4core5slice14from_raw_parts17h35540e84de7ba669E", scope: !706, file: !705, line: 5215, type: !707, scopeLine: 5215, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !145, retainedNodes: !2)
!705 = !DIFile(filename: "/rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/slice/mod.rs", directory: "")
!706 = !DINamespace(name: "slice", scope: !10)
!707 = !DISubroutineType(types: !708)
!708 = !{!709, !283, !45}
!709 = !DICompositeType(tag: DW_TAG_structure_type, name: "&[isize]", file: !36, size: 128, align: 64, elements: !710, templateParams: !2, identifier: "a0d06f1a4b92cec69874c18898f82a10")
!710 = !{!711, !712}
!711 = !DIDerivedType(tag: DW_TAG_member, name: "data_ptr", scope: !709, file: !36, baseType: !283, size: 64, align: 64)
!712 = !DIDerivedType(tag: DW_TAG_member, name: "length", scope: !709, file: !36, baseType: !45, size: 64, align: 64, offset: 64)
!713 = !DILocalVariable(name: "data", arg: 1, scope: !704, file: !15, line: 1, type: !283)
!714 = !DILocation(line: 1, scope: !704)
!715 = !DILocalVariable(name: "len", arg: 2, scope: !704, file: !15, line: 1, type: !45)
!716 = !DILocation(line: 184, column: 22, scope: !717)
!717 = !DILexicalBlockFile(scope: !704, file: !718, discriminator: 0)
!718 = !DIFile(filename: "/rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/macros.rs", directory: "")
!719 = !DILocation(line: 5216, column: 18, scope: !704)
!720 = !DILocation(line: 5216, column: 34, scope: !704)
!721 = !DILocation(line: 184, column: 50, scope: !717)
!722 = !DILocation(line: 12, column: 8, scope: !717)
!723 = !DILocation(line: 5217, column: 18, scope: !704)
!724 = !DILocation(line: 5217, column: 53, scope: !704)
!725 = !DILocation(line: 5219, column: 32, scope: !704)
!726 = !DILocation(line: 5219, column: 38, scope: !704)
!727 = !DILocation(line: 5219, column: 6, scope: !704)
!728 = !DILocation(line: 5220, column: 1, scope: !704)
!729 = distinct !DISubprogram(name: "from_raw_parts_mut<isize>", linkageName: "_ZN4core5slice18from_raw_parts_mut17hedc6f5a5b623fa49E", scope: !706, file: !705, line: 5236, type: !730, scopeLine: 5236, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !145, retainedNodes: !2)
!730 = !DISubroutineType(types: !731)
!731 = !{!732, !326, !45}
!732 = !DICompositeType(tag: DW_TAG_structure_type, name: "&mut [isize]", file: !36, size: 128, align: 64, elements: !733, templateParams: !2, identifier: "ec82ca3c1a48a483bc923a192d9cec99")
!733 = !{!734, !735}
!734 = !DIDerivedType(tag: DW_TAG_member, name: "data_ptr", scope: !732, file: !36, baseType: !283, size: 64, align: 64)
!735 = !DIDerivedType(tag: DW_TAG_member, name: "length", scope: !732, file: !36, baseType: !45, size: 64, align: 64, offset: 64)
!736 = !DILocalVariable(name: "data", arg: 1, scope: !729, file: !15, line: 1, type: !326)
!737 = !DILocation(line: 1, scope: !729)
!738 = !DILocalVariable(name: "len", arg: 2, scope: !729, file: !15, line: 1, type: !45)
!739 = !DILocation(line: 184, column: 22, scope: !740)
!740 = !DILexicalBlockFile(scope: !729, file: !718, discriminator: 0)
!741 = !DILocation(line: 5237, column: 18, scope: !729)
!742 = !DILocation(line: 5237, column: 34, scope: !729)
!743 = !DILocation(line: 184, column: 50, scope: !740)
!744 = !DILocation(line: 12, column: 8, scope: !740)
!745 = !DILocation(line: 5238, column: 18, scope: !729)
!746 = !DILocation(line: 5238, column: 53, scope: !729)
!747 = !DILocation(line: 5240, column: 40, scope: !729)
!748 = !DILocation(line: 5240, column: 46, scope: !729)
!749 = !DILocation(line: 5240, column: 10, scope: !729)
!750 = !DILocation(line: 5241, column: 1, scope: !729)
!751 = distinct !DISubprogram(name: "len<isize>", linkageName: "_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$3len17hd2800026b116b3aeE", scope: !752, file: !705, line: 66, type: !753, scopeLine: 66, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !145, retainedNodes: !2)
!752 = !DINamespace(name: "{{impl}}", scope: !706)
!753 = !DISubroutineType(types: !754)
!754 = !{!45, !709}
!755 = !DILocalVariable(name: "self", arg: 1, scope: !751, file: !15, line: 1, type: !709)
!756 = !DILocation(line: 1, scope: !751)
!757 = !DILocation(line: 68, column: 37, scope: !758)
!758 = distinct !DILexicalBlock(scope: !751, file: !705, line: 67, column: 8)
!759 = !DILocation(line: 68, column: 12, scope: !758)
!760 = !DILocation(line: 70, column: 5, scope: !751)
!761 = distinct !DISubprogram(name: "iter<isize>", linkageName: "_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$4iter17h0f94ceb2d99e4dddE", scope: !752, file: !705, line: 522, type: !762, scopeLine: 522, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !145, retainedNodes: !2)
!762 = !DISubroutineType(types: !763)
!763 = !{!764, !709}
!764 = !DICompositeType(tag: DW_TAG_structure_type, name: "Iter<isize>", scope: !706, file: !36, size: 128, align: 64, elements: !765, templateParams: !145, identifier: "7099cb943064e54a732860c31ef1f9c7")
!765 = !{!766, !767, !768}
!766 = !DIDerivedType(tag: DW_TAG_member, name: "ptr", scope: !764, file: !36, baseType: !283, size: 64, align: 64)
!767 = !DIDerivedType(tag: DW_TAG_member, name: "end", scope: !764, file: !36, baseType: !283, size: 64, align: 64, offset: 64)
!768 = !DIDerivedType(tag: DW_TAG_member, name: "_marker", scope: !764, file: !36, baseType: !769, align: 8)
!769 = !DICompositeType(tag: DW_TAG_structure_type, name: "PhantomData<&isize>", scope: !658, file: !36, align: 8, elements: !2, templateParams: !770, identifier: "8a29e10fd7e1cc3f10417af103203983")
!770 = !{!771}
!771 = !DITemplateTypeParameter(name: "T", type: !772)
!772 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&isize", baseType: !13, size: 64, align: 64)
!773 = !DILocalVariable(name: "self", arg: 1, scope: !761, file: !15, line: 1, type: !709)
!774 = !DILocation(line: 1, scope: !761)
!775 = !DILocalVariable(name: "ptr", scope: !776, file: !705, line: 524, type: !283, align: 8)
!776 = distinct !DILexicalBlock(scope: !777, file: !705, line: 524, column: 12)
!777 = distinct !DILexicalBlock(scope: !761, file: !705, line: 523, column: 8)
!778 = !DILocation(line: 524, column: 16, scope: !776)
!779 = !DILocalVariable(name: "end", scope: !780, file: !705, line: 527, type: !283, align: 8)
!780 = distinct !DILexicalBlock(scope: !776, file: !705, line: 527, column: 12)
!781 = !DILocation(line: 527, column: 16, scope: !780)
!782 = !DILocation(line: 524, column: 22, scope: !777)
!783 = !DILocation(line: 525, column: 20, scope: !776)
!784 = !DILocation(line: 525, column: 19, scope: !776)
!785 = !DILocation(line: 525, column: 12, scope: !776)
!786 = !DILocation(line: 527, column: 25, scope: !776)
!787 = !DILocation(line: 527, column: 22, scope: !776)
!788 = !DILocation(line: 530, column: 16, scope: !776)
!789 = !DILocation(line: 530, column: 24, scope: !776)
!790 = !DILocation(line: 528, column: 17, scope: !776)
!791 = !DILocation(line: 528, column: 16, scope: !776)
!792 = !DILocation(line: 528, column: 48, scope: !776)
!793 = !DILocation(line: 534, column: 16, scope: !780)
!794 = !DILocation(line: 535, column: 16, scope: !780)
!795 = !DILocation(line: 533, column: 12, scope: !780)
!796 = !DILocation(line: 539, column: 5, scope: !761)
!797 = distinct !DISubprogram(name: "as_ptr<isize>", linkageName: "_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$6as_ptr17h889bd891d50bb3bfE", scope: !752, file: !705, line: 372, type: !798, scopeLine: 372, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !145, retainedNodes: !2)
!798 = !DISubroutineType(types: !799)
!799 = !{!283, !709}
!800 = !DILocalVariable(name: "self", arg: 1, scope: !797, file: !15, line: 1, type: !709)
!801 = !DILocation(line: 1, scope: !797)
!802 = !DILocation(line: 373, column: 8, scope: !797)
!803 = !DILocation(line: 374, column: 5, scope: !797)
!804 = distinct !DISubprogram(name: "index_mut<isize,usize>", linkageName: "_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17hae2665d649d0961bE", scope: !752, file: !705, line: 2547, type: !805, scopeLine: 2547, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !808, retainedNodes: !2)
!805 = !DISubroutineType(types: !806)
!806 = !{!807, !732, !45}
!807 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut isize", baseType: !13, size: 64, align: 64)
!808 = !{!146, !809}
!809 = !DITemplateTypeParameter(name: "I", type: !45)
!810 = !DILocalVariable(name: "self", arg: 1, scope: !804, file: !15, line: 1, type: !732)
!811 = !DILocation(line: 1, scope: !804)
!812 = !DILocalVariable(name: "index", arg: 2, scope: !804, file: !15, line: 1, type: !45)
!813 = !DILocation(line: 2548, column: 8, scope: !804)
!814 = !DILocation(line: 2548, column: 24, scope: !804)
!815 = !DILocation(line: 2549, column: 5, scope: !804)
!816 = distinct !DISubprogram(name: "unwrap_or<usize>", linkageName: "_ZN4core6option15Option$LT$T$GT$9unwrap_or17h716b96369b915d77E", scope: !35, file: !817, line: 367, type: !818, scopeLine: 367, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !43, retainedNodes: !2)
!817 = !DIFile(filename: "/rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/option.rs", directory: "")
!818 = !DISubroutineType(types: !819)
!819 = !{!45, !35, !45}
!820 = !DILocalVariable(name: "self", arg: 1, scope: !816, file: !15, line: 1, type: !35)
!821 = !DILocation(line: 1, scope: !816)
!822 = !DILocalVariable(name: "def", arg: 2, scope: !816, file: !15, line: 1, type: !45)
!823 = !DILocalVariable(name: "x", scope: !824, file: !817, line: 369, type: !45, align: 8)
!824 = distinct !DILexicalBlock(scope: !816, file: !817, line: 369, column: 12)
!825 = !DILocation(line: 369, column: 17, scope: !824)
!826 = !DILocation(line: 369, column: 12, scope: !816)
!827 = !DILocation(line: 367, column: 4, scope: !816)
!828 = !DILocation(line: 370, column: 20, scope: !816)
!829 = !DILocation(line: 368, column: 8, scope: !816)
!830 = !DILocation(line: 368, column: 14, scope: !816)
!831 = !DILocation(line: 369, column: 17, scope: !816)
!832 = !DILocation(line: 369, column: 23, scope: !824)
!833 = !DILocation(line: 372, column: 4, scope: !816)
!834 = !DILocation(line: 372, column: 5, scope: !816)
!835 = distinct !DISubprogram(name: "from<usize>", linkageName: "_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17hf819fa74a5f891eeE", scope: !837, file: !836, line: 547, type: !839, scopeLine: 547, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !43, retainedNodes: !2)
!836 = !DIFile(filename: "/rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/convert.rs", directory: "")
!837 = !DINamespace(name: "{{impl}}", scope: !838)
!838 = !DINamespace(name: "convert", scope: !10)
!839 = !DISubroutineType(types: !840)
!840 = !{!45, !45}
!841 = !DILocalVariable(name: "t", arg: 1, scope: !835, file: !15, line: 1, type: !45)
!842 = !DILocation(line: 1, scope: !835)
!843 = !DILocation(line: 547, column: 25, scope: !835)
!844 = !DILocation(line: 547, column: 28, scope: !835)
!845 = distinct !DISubprogram(name: "into<usize,usize>", linkageName: "_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17hab5a7b5d22211336E", scope: !837, file: !836, line: 539, type: !839, scopeLine: 539, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !846, retainedNodes: !2)
!846 = !{!44, !847}
!847 = !DITemplateTypeParameter(name: "U", type: !45)
!848 = !DILocalVariable(name: "self", arg: 1, scope: !845, file: !15, line: 1, type: !45)
!849 = !DILocation(line: 1, scope: !845)
!850 = !DILocation(line: 540, column: 16, scope: !845)
!851 = !DILocation(line: 540, column: 8, scope: !845)
!852 = !DILocation(line: 541, column: 5, scope: !845)
!853 = distinct !DISubprogram(name: "try_from<usize,usize>", linkageName: "_ZN53_$LT$T$u20$as$u20$core..convert..TryFrom$LT$U$GT$$GT$8try_from17h8206762129109ef0E", scope: !837, file: !836, line: 568, type: !854, scopeLine: 568, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !846, retainedNodes: !2)
!854 = !DISubroutineType(types: !855)
!855 = !{!856, !45}
!856 = !DICompositeType(tag: DW_TAG_structure_type, name: "Result<usize, core::convert::Infallible>", scope: !857, file: !36, size: 64, align: 64, elements: !858, identifier: "d66fd43dbc7be3ef4e7a303ea221a13c")
!857 = !DINamespace(name: "result", scope: !10)
!858 = !{!859}
!859 = !DICompositeType(tag: DW_TAG_variant_part, scope: !857, file: !36, size: 64, align: 64, elements: !860, templateParams: !865, identifier: "d66fd43dbc7be3ef4e7a303ea221a13c_variant_part")
!860 = !{!861}
!861 = !DIDerivedType(tag: DW_TAG_member, name: "Ok", scope: !859, file: !36, baseType: !862, size: 64, align: 64)
!862 = !DICompositeType(tag: DW_TAG_structure_type, name: "Ok", scope: !856, file: !36, size: 64, align: 64, elements: !863, templateParams: !865, identifier: "d66fd43dbc7be3ef4e7a303ea221a13c::Ok")
!863 = !{!864}
!864 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !862, file: !36, baseType: !45, size: 64, align: 64)
!865 = !{!44, !866}
!866 = !DITemplateTypeParameter(name: "E", type: !867)
!867 = !DICompositeType(tag: DW_TAG_structure_type, name: "Infallible", scope: !838, file: !36, align: 8, elements: !868, identifier: "469f8da19de261953faf80d86404132b")
!868 = !{!869}
!869 = !DICompositeType(tag: DW_TAG_variant_part, scope: !838, file: !36, align: 8, elements: !2, templateParams: !2, identifier: "469f8da19de261953faf80d86404132b_variant_part")
!870 = !DILocalVariable(name: "value", arg: 1, scope: !853, file: !15, line: 1, type: !45)
!871 = !DILocation(line: 1, scope: !853)
!872 = !DILocation(line: 569, column: 19, scope: !853)
!873 = !DILocation(line: 569, column: 11, scope: !853)
!874 = !DILocation(line: 569, column: 8, scope: !853)
!875 = !DILocation(line: 570, column: 5, scope: !853)
!876 = distinct !DISubprogram(name: "as_mut_ptr<isize>", linkageName: "_ZN5alloc3vec12Vec$LT$T$GT$10as_mut_ptr17h7db90383f1af03efE", scope: !878, file: !877, line: 799, type: !894, scopeLine: 799, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !145, retainedNodes: !2)
!877 = !DIFile(filename: "/rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/liballoc/vec.rs", directory: "")
!878 = !DICompositeType(tag: DW_TAG_structure_type, name: "Vec<isize>", scope: !879, file: !36, size: 192, align: 64, elements: !881, templateParams: !145, identifier: "2a1818e6043aa714ee1b4398596b9831")
!879 = !DINamespace(name: "vec", scope: !880)
!880 = !DINamespace(name: "alloc", scope: null)
!881 = !{!882, !893}
!882 = !DIDerivedType(tag: DW_TAG_member, name: "buf", scope: !878, file: !36, baseType: !883, size: 128, align: 64)
!883 = !DICompositeType(tag: DW_TAG_structure_type, name: "RawVec<isize, alloc::alloc::Global>", scope: !884, file: !36, size: 128, align: 64, elements: !885, templateParams: !891, identifier: "4972c3f9343889f2c5cd39ebb1be7f81")
!884 = !DINamespace(name: "raw_vec", scope: !880)
!885 = !{!886, !887, !888}
!886 = !DIDerivedType(tag: DW_TAG_member, name: "ptr", scope: !883, file: !36, baseType: !652, size: 64, align: 64)
!887 = !DIDerivedType(tag: DW_TAG_member, name: "cap", scope: !883, file: !36, baseType: !45, size: 64, align: 64, offset: 64)
!888 = !DIDerivedType(tag: DW_TAG_member, name: "a", scope: !883, file: !36, baseType: !889, align: 8)
!889 = !DICompositeType(tag: DW_TAG_structure_type, name: "Global", scope: !890, file: !36, align: 8, elements: !2, templateParams: !2, identifier: "1e7023f979b1de6217a5f281fa4b4ca2")
!890 = !DINamespace(name: "alloc", scope: !880)
!891 = !{!146, !892}
!892 = !DITemplateTypeParameter(name: "A", type: !889)
!893 = !DIDerivedType(tag: DW_TAG_member, name: "len", scope: !878, file: !36, baseType: !45, size: 64, align: 64, offset: 128)
!894 = !DISubroutineType(types: !895)
!895 = !{!326, !896}
!896 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut alloc::vec::Vec<isize>", baseType: !878, size: 64, align: 64)
!897 = !DILocalVariable(name: "self", arg: 1, scope: !876, file: !15, line: 1, type: !896)
!898 = !DILocation(line: 1, scope: !876)
!899 = !DILocalVariable(name: "ptr", scope: !900, file: !877, line: 802, type: !326, align: 8)
!900 = distinct !DILexicalBlock(scope: !876, file: !877, line: 802, column: 8)
!901 = !DILocation(line: 802, column: 12, scope: !900)
!902 = !DILocation(line: 802, column: 18, scope: !876)
!903 = !DILocation(line: 803, column: 25, scope: !900)
!904 = !DILocation(line: 803, column: 24, scope: !900)
!905 = !DILocation(line: 803, column: 17, scope: !900)
!906 = !DILocation(line: 804, column: 8, scope: !900)
!907 = !DILocation(line: 805, column: 5, scope: !876)
!908 = distinct !DISubprogram(name: "as_ptr<isize>", linkageName: "_ZN5alloc3vec12Vec$LT$T$GT$6as_ptr17h6f8c42ce0d643832E", scope: !878, file: !877, line: 765, type: !909, scopeLine: 765, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !145, retainedNodes: !2)
!909 = !DISubroutineType(types: !910)
!910 = !{!283, !911}
!911 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&alloc::vec::Vec<isize>", baseType: !878, size: 64, align: 64)
!912 = !DILocalVariable(name: "self", arg: 1, scope: !908, file: !15, line: 1, type: !911)
!913 = !DILocation(line: 1, scope: !908)
!914 = !DILocalVariable(name: "ptr", scope: !915, file: !877, line: 768, type: !326, align: 8)
!915 = distinct !DILexicalBlock(scope: !908, file: !877, line: 768, column: 8)
!916 = !DILocation(line: 768, column: 12, scope: !915)
!917 = !DILocation(line: 768, column: 18, scope: !908)
!918 = !DILocation(line: 769, column: 25, scope: !915)
!919 = !DILocation(line: 769, column: 24, scope: !915)
!920 = !DILocation(line: 769, column: 17, scope: !915)
!921 = !DILocation(line: 770, column: 8, scope: !915)
!922 = !DILocation(line: 771, column: 5, scope: !908)
!923 = distinct !DISubprogram(name: "ptr<isize,alloc::alloc::Global>", linkageName: "_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$3ptr17h14cfb4671224e24dE", scope: !883, file: !924, line: 196, type: !925, scopeLine: 196, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !891, retainedNodes: !2)
!924 = !DIFile(filename: "/rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/liballoc/raw_vec.rs", directory: "")
!925 = !DISubroutineType(types: !926)
!926 = !{!326, !927}
!927 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&alloc::raw_vec::RawVec<isize, alloc::alloc::Global>", baseType: !883, size: 64, align: 64)
!928 = !DILocalVariable(name: "self", arg: 1, scope: !923, file: !15, line: 1, type: !927)
!929 = !DILocation(line: 1, scope: !923)
!930 = !DILocation(line: 197, column: 8, scope: !923)
!931 = !DILocation(line: 198, column: 5, scope: !923)
!932 = distinct !DISubprogram(name: "into_iter<core::slice::Iter<isize>>", linkageName: "_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h063b82e0a27c293dE", scope: !934, file: !933, line: 245, type: !937, scopeLine: 245, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !939, retainedNodes: !2)
!933 = !DIFile(filename: "/rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/iter/traits/collect.rs", directory: "")
!934 = !DINamespace(name: "{{impl}}", scope: !935)
!935 = !DINamespace(name: "collect", scope: !936)
!936 = !DINamespace(name: "traits", scope: !32)
!937 = !DISubroutineType(types: !938)
!938 = !{!764, !764}
!939 = !{!940}
!940 = !DITemplateTypeParameter(name: "I", type: !764)
!941 = !DILocalVariable(name: "self", arg: 1, scope: !932, file: !15, line: 1, type: !764)
!942 = !DILocation(line: 1, scope: !932)
!943 = !DILocation(line: 246, column: 8, scope: !932)
!944 = !DILocation(line: 247, column: 5, scope: !932)
!945 = distinct !DISubprogram(name: "into_iter<core::ops::range::Range<usize>>", linkageName: "_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17hf5b8ef5eff0c64c1E", scope: !934, file: !933, line: 245, type: !946, scopeLine: 245, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !948, retainedNodes: !2)
!946 = !DISubroutineType(types: !947)
!947 = !{!673, !673}
!948 = !{!949}
!949 = !DITemplateTypeParameter(name: "I", type: !673)
!950 = !DILocalVariable(name: "self", arg: 1, scope: !945, file: !15, line: 1, type: !673)
!951 = !DILocation(line: 1, scope: !945)
!952 = !DILocation(line: 246, column: 8, scope: !945)
!953 = !DILocation(line: 247, column: 5, scope: !945)
!954 = distinct !DISubprogram(name: "add", linkageName: "_ZN64_$LT$$RF$isize$u20$as$u20$core..ops..arith..Add$LT$isize$GT$$GT$3add17haae222d643ffa60fE", scope: !7, file: !955, line: 34, type: !956, scopeLine: 34, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !2, retainedNodes: !2)
!955 = !DIFile(filename: "/rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/internal_macros.rs", directory: "")
!956 = !DISubroutineType(types: !957)
!957 = !{!13, !772, !13}
!958 = !DILocalVariable(name: "self", arg: 1, scope: !954, file: !15, line: 1, type: !772)
!959 = !DILocation(line: 1, scope: !954)
!960 = !DILocalVariable(name: "other", arg: 2, scope: !954, file: !15, line: 1, type: !13)
!961 = !DILocation(line: 35, column: 30, scope: !954)
!962 = !DILocation(line: 35, column: 37, scope: !954)
!963 = !DILocation(line: 1, scope: !964)
!964 = !DILexicalBlockFile(scope: !954, file: !15, discriminator: 0)
!965 = !DILocation(line: 36, column: 13, scope: !954)
!966 = distinct !DISubprogram(name: "rem", linkageName: "_ZN64_$LT$$RF$isize$u20$as$u20$core..ops..arith..Rem$LT$isize$GT$$GT$3rem17h56b516efd6f0069bE", scope: !7, file: !955, line: 34, type: !956, scopeLine: 34, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !2, retainedNodes: !2)
!967 = !DILocalVariable(name: "self", arg: 1, scope: !966, file: !15, line: 1, type: !772)
!968 = !DILocation(line: 1, scope: !966)
!969 = !DILocalVariable(name: "other", arg: 2, scope: !966, file: !15, line: 1, type: !13)
!970 = !DILocation(line: 35, column: 30, scope: !966)
!971 = !DILocation(line: 35, column: 37, scope: !966)
!972 = !DILocation(line: 1, scope: !973)
!973 = !DILexicalBlockFile(scope: !966, file: !15, discriminator: 0)
!974 = !DILocation(line: 36, column: 13, scope: !966)
!975 = distinct !DISubprogram(name: "deref<isize>", linkageName: "_ZN68_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17h378128d7d9378466E", scope: !976, file: !877, line: 1776, type: !977, scopeLine: 1776, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !145, retainedNodes: !2)
!976 = !DINamespace(name: "{{impl}}", scope: !879)
!977 = !DISubroutineType(types: !978)
!978 = !{!709, !911}
!979 = !DILocalVariable(name: "self", arg: 1, scope: !975, file: !15, line: 1, type: !911)
!980 = !DILocation(line: 1, scope: !975)
!981 = !DILocation(line: 1778, column: 34, scope: !982)
!982 = distinct !DILexicalBlock(scope: !975, file: !877, line: 1777, column: 8)
!983 = !DILocation(line: 1778, column: 49, scope: !982)
!984 = !DILocation(line: 1778, column: 12, scope: !982)
!985 = !DILocation(line: 1780, column: 5, scope: !975)
!986 = distinct !DISubprogram(name: "index_mut<isize>", linkageName: "_ZN68_$LT$usize$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hd852e2f14eb0bd1dE", scope: !752, file: !705, line: 2685, type: !987, scopeLine: 2685, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !145, retainedNodes: !2)
!987 = !DISubroutineType(types: !988)
!988 = !{!807, !45, !732}
!989 = !DILocalVariable(name: "self", arg: 1, scope: !986, file: !15, line: 1, type: !45)
!990 = !DILocation(line: 1, scope: !986)
!991 = !DILocalVariable(name: "slice", arg: 2, scope: !986, file: !15, line: 1, type: !732)
!992 = !DILocation(line: 2687, column: 22, scope: !986)
!993 = !DILocation(line: 2687, column: 13, scope: !986)
!994 = !DILocation(line: 2687, column: 8, scope: !986)
!995 = !DILocation(line: 2688, column: 5, scope: !986)
!996 = distinct !DISubprogram(name: "deref_mut<isize>", linkageName: "_ZN71_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$9deref_mut17h599a33f1d75b3f9cE", scope: !976, file: !877, line: 1785, type: !997, scopeLine: 1785, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !145, retainedNodes: !2)
!997 = !DISubroutineType(types: !998)
!998 = !{!732, !896}
!999 = !DILocalVariable(name: "self", arg: 1, scope: !996, file: !15, line: 1, type: !896)
!1000 = !DILocation(line: 1, scope: !996)
!1001 = !DILocation(line: 1787, column: 38, scope: !1002)
!1002 = distinct !DILexicalBlock(scope: !996, file: !877, line: 1786, column: 8)
!1003 = !DILocation(line: 1787, column: 57, scope: !1002)
!1004 = !DILocation(line: 1787, column: 12, scope: !1002)
!1005 = !DILocation(line: 1789, column: 5, scope: !996)
!1006 = distinct !DISubprogram(name: "index_mut<isize,usize>", linkageName: "_ZN80_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17h034d16c396055127E", scope: !976, file: !877, line: 1767, type: !1007, scopeLine: 1767, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !808, retainedNodes: !2)
!1007 = !DISubroutineType(types: !1008)
!1008 = !{!807, !896, !45}
!1009 = !DILocalVariable(name: "self", arg: 1, scope: !1006, file: !15, line: 1, type: !896)
!1010 = !DILocation(line: 1, scope: !1006)
!1011 = !DILocalVariable(name: "index", arg: 2, scope: !1006, file: !15, line: 1, type: !45)
!1012 = !DILocation(line: 1768, column: 8, scope: !1006)
!1013 = !DILocation(line: 1768, column: 34, scope: !1006)
!1014 = !DILocation(line: 1768, column: 33, scope: !1006)
!1015 = !DILocation(line: 1767, column: 4, scope: !1006)
!1016 = !DILocation(line: 1768, column: 41, scope: !1006)
!1017 = !DILocation(line: 1769, column: 5, scope: !1006)
!1018 = !DILocation(line: 1769, column: 4, scope: !1006)
!1019 = distinct !DISubprogram(name: "next<isize>", linkageName: "_ZN85_$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha91bd2d222d31b6cE", scope: !752, file: !705, line: 3099, type: !1020, scopeLine: 3099, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !145, retainedNodes: !2)
!1020 = !DISubroutineType(types: !1021)
!1021 = !{!1022, !1032}
!1022 = !DICompositeType(tag: DW_TAG_structure_type, name: "Option<&isize>", scope: !37, file: !36, size: 64, align: 64, elements: !1023, identifier: "a76f305370a5fad525dc4f83872d9b")
!1023 = !{!1024}
!1024 = !DICompositeType(tag: DW_TAG_variant_part, scope: !37, file: !36, size: 64, align: 64, elements: !1025, templateParams: !770, identifier: "a76f305370a5fad525dc4f83872d9b_variant_part", discriminator: !50)
!1025 = !{!1026, !1028}
!1026 = !DIDerivedType(tag: DW_TAG_member, name: "None", scope: !1024, file: !36, baseType: !1027, size: 64, align: 64, extraData: i64 0)
!1027 = !DICompositeType(tag: DW_TAG_structure_type, name: "None", scope: !1022, file: !36, size: 64, align: 64, elements: !2, templateParams: !770, identifier: "a76f305370a5fad525dc4f83872d9b::None")
!1028 = !DIDerivedType(tag: DW_TAG_member, name: "Some", scope: !1024, file: !36, baseType: !1029, size: 64, align: 64)
!1029 = !DICompositeType(tag: DW_TAG_structure_type, name: "Some", scope: !1022, file: !36, size: 64, align: 64, elements: !1030, templateParams: !770, identifier: "a76f305370a5fad525dc4f83872d9b::Some")
!1030 = !{!1031}
!1031 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !1029, file: !36, baseType: !772, size: 64, align: 64)
!1032 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::slice::Iter<isize>", baseType: !764, size: 64, align: 64)
!1033 = !DILocalVariable(name: "old", scope: !1034, file: !705, line: 3060, type: !283, align: 8)
!1034 = distinct !DILexicalBlock(scope: !1035, file: !705, line: 3060, column: 20)
!1035 = distinct !DISubprogram(name: "post_inc_start<isize>", linkageName: "_ZN4core5slice13Iter$LT$T$GT$14post_inc_start17h8479de9ec9ee8a6eE", scope: !764, file: !705, line: 3055, type: !1036, scopeLine: 3055, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, templateParams: !145, retainedNodes: !2)
!1036 = !DISubroutineType(types: !1037)
!1037 = !{!283, !1032, !13}
!1038 = !DILocation(line: 3060, column: 24, scope: !1034, inlinedAt: !1039)
!1039 = distinct !DILocation(line: 3026, column: 46, scope: !1040)
!1040 = distinct !DILexicalBlock(scope: !1019, file: !705, line: 3101, column: 16)
!1041 = !DILocalVariable(name: "offset", arg: 2, scope: !1035, file: !15, line: 1, type: !13)
!1042 = !DILocation(line: 1, scope: !1035, inlinedAt: !1039)
!1043 = !DILocalVariable(name: "self", arg: 1, scope: !1035, file: !15, line: 1, type: !1032)
!1044 = !DILocalVariable(name: "self", arg: 1, scope: !1019, file: !15, line: 1, type: !1032)
!1045 = !DILocation(line: 1, scope: !1019)
!1046 = !DILocation(line: 3102, column: 28, scope: !1040)
!1047 = !DILocation(line: 3102, column: 27, scope: !1040)
!1048 = !DILocation(line: 3102, column: 20, scope: !1040)
!1049 = !DILocation(line: 3103, column: 23, scope: !1040)
!1050 = !DILocation(line: 3103, column: 20, scope: !1040)
!1051 = !DILocation(line: 3104, column: 32, scope: !1040)
!1052 = !DILocation(line: 3104, column: 31, scope: !1040)
!1053 = !DILocation(line: 3104, column: 24, scope: !1040)
!1054 = !DILocation(line: 2982, column: 23, scope: !1040)
!1055 = !DILocation(line: 2982, column: 36, scope: !1040)
!1056 = !DILocation(line: 3106, column: 20, scope: !1040)
!1057 = !DILocation(line: 3026, column: 46, scope: !1040)
!1058 = !DILocation(line: 3056, column: 19, scope: !1035, inlinedAt: !1039)
!1059 = !DILocation(line: 3056, column: 16, scope: !1035, inlinedAt: !1039)
!1060 = !DILocation(line: 3060, column: 30, scope: !1035, inlinedAt: !1039)
!1061 = !DILocation(line: 3061, column: 31, scope: !1034, inlinedAt: !1039)
!1062 = !DILocation(line: 3061, column: 47, scope: !1034, inlinedAt: !1039)
!1063 = !DILocation(line: 3061, column: 20, scope: !1034, inlinedAt: !1039)
!1064 = !DILocation(line: 3062, column: 20, scope: !1034, inlinedAt: !1039)
!1065 = !DILocation(line: 3040, column: 29, scope: !1035, inlinedAt: !1039)
!1066 = !DILocation(line: 3040, column: 74, scope: !1035, inlinedAt: !1039)
!1067 = !DILocation(line: 3040, column: 73, scope: !1035, inlinedAt: !1039)
!1068 = !DILocation(line: 3040, column: 28, scope: !1035, inlinedAt: !1039)
!1069 = !DILocation(line: 3040, column: 22, scope: !1035, inlinedAt: !1039)
!1070 = !DILocation(line: 3058, column: 20, scope: !1035, inlinedAt: !1039)
!1071 = !DILocation(line: 3064, column: 13, scope: !1035, inlinedAt: !1039)
!1072 = !DILocation(line: 3107, column: 24, scope: !1040)
!1073 = !DILocation(line: 3109, column: 24, scope: !1040)
!1074 = !DILocation(line: 3112, column: 13, scope: !1019)
!1075 = distinct !DISubprogram(name: "rust_loop", linkageName: "_ZN4rust9rust_loop17h3ed0672b8cf44eb1E", scope: !1077, file: !1076, line: 3, type: !1078, scopeLine: 3, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, templateParams: !2, retainedNodes: !2)
!1076 = !DIFile(filename: "rust.rs", directory: "/Users/craig/llvm-ir/tests/basic_bc")
!1077 = !DINamespace(name: "rust", scope: null)
!1078 = !DISubroutineType(types: !1079)
!1079 = !{!13, !13, !13, !896}
!1080 = !DILocalVariable(name: "a", arg: 1, scope: !1075, file: !1076, line: 1, type: !13)
!1081 = !DILocation(line: 1, scope: !1075)
!1082 = !DILocalVariable(name: "b", arg: 2, scope: !1075, file: !1076, line: 1, type: !13)
!1083 = !DILocalVariable(name: "v", arg: 3, scope: !1075, file: !1076, line: 1, type: !896)
!1084 = !DILocalVariable(name: "sum", scope: !1085, file: !1076, line: 4, type: !13, align: 8)
!1085 = distinct !DILexicalBlock(scope: !1075, file: !1076, line: 4, column: 4)
!1086 = !DILocation(line: 4, column: 8, scope: !1085)
!1087 = !DILocalVariable(name: "iter", scope: !1088, file: !1076, line: 5, type: !764, align: 8)
!1088 = distinct !DILexicalBlock(scope: !1085, file: !1076, line: 5, column: 4)
!1089 = !DILocation(line: 5, column: 13, scope: !1088)
!1090 = !DILocalVariable(name: "__next", scope: !1091, file: !1076, line: 5, type: !772, align: 8)
!1091 = distinct !DILexicalBlock(scope: !1088, file: !1076, line: 5, column: 13)
!1092 = !DILocation(line: 5, column: 13, scope: !1091)
!1093 = !DILocalVariable(name: "val", scope: !1094, file: !1076, line: 5, type: !772, align: 8)
!1094 = distinct !DILexicalBlock(scope: !1091, file: !1076, line: 5, column: 8)
!1095 = !DILocation(line: 5, column: 8, scope: !1094)
!1096 = !DILocalVariable(name: "i", scope: !1097, file: !1076, line: 5, type: !772, align: 8)
!1097 = distinct !DILexicalBlock(scope: !1091, file: !1076, line: 5, column: 13)
!1098 = !DILocation(line: 5, column: 8, scope: !1097)
!1099 = !DILocalVariable(name: "iter", scope: !1100, file: !1076, line: 8, type: !673, align: 8)
!1100 = distinct !DILexicalBlock(scope: !1085, file: !1076, line: 8, column: 4)
!1101 = !DILocation(line: 8, column: 13, scope: !1100)
!1102 = !DILocalVariable(name: "__next", scope: !1103, file: !1076, line: 8, type: !45, align: 8)
!1103 = distinct !DILexicalBlock(scope: !1100, file: !1076, line: 8, column: 13)
!1104 = !DILocation(line: 8, column: 13, scope: !1103)
!1105 = !DILocalVariable(name: "val", scope: !1106, file: !1076, line: 8, type: !45, align: 8)
!1106 = distinct !DILexicalBlock(scope: !1103, file: !1076, line: 8, column: 8)
!1107 = !DILocation(line: 8, column: 8, scope: !1106)
!1108 = !DILocalVariable(name: "i", scope: !1109, file: !1076, line: 8, type: !45, align: 8)
!1109 = distinct !DILexicalBlock(scope: !1103, file: !1076, line: 8, column: 13)
!1110 = !DILocation(line: 8, column: 8, scope: !1109)
!1111 = !DILocation(line: 4, column: 18, scope: !1075)
!1112 = !DILocation(line: 5, column: 13, scope: !1085)
!1113 = !DILocation(line: 5, column: 4, scope: !1088)
!1114 = !DILocation(line: 5, column: 8, scope: !1091)
!1115 = !DILocation(line: 8, column: 13, scope: !1085)
!1116 = !DILocation(line: 6, column: 18, scope: !1097)
!1117 = !DILocation(line: 6, column: 15, scope: !1097)
!1118 = !DILocation(line: 6, column: 46, scope: !1097)
!1119 = !DILocation(line: 6, column: 50, scope: !1097)
!1120 = !DILocation(line: 6, column: 31, scope: !1097)
!1121 = !DILocation(line: 6, column: 35, scope: !1097)
!1122 = !DILocation(line: 6, column: 8, scope: !1097)
!1123 = !DILocation(line: 8, column: 4, scope: !1100)
!1124 = !DILocation(line: 8, column: 8, scope: !1103)
!1125 = !DILocation(line: 11, column: 4, scope: !1085)
!1126 = !DILocation(line: 12, column: 1, scope: !1075)
!1127 = !DILocation(line: 9, column: 16, scope: !1109)
!1128 = !DILocation(line: 9, column: 15, scope: !1109)
!1129 = !DILocation(line: 9, column: 8, scope: !1109)
!1130 = !DILocation(line: 9, column: 10, scope: !1109)