Old high school files. Lessson notes/codes/projects etc.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

762 lines
38 KiB

; ModuleID = 'probe1.49aa193e-cgu.0'
source_filename = "probe1.49aa193e-cgu.0"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%"alloc::string::String" = type { %"alloc::vec::Vec<u8>" }
%"alloc::vec::Vec<u8>" = type { { i8*, i64 }, i64 }
%"core::fmt::Arguments" = type { { [0 x { [0 x i8]*, i64 }]*, i64 }, { i64*, i64 }, { [0 x { i8*, i64* }]*, i64 } }
%"core::option::Option<(core::ptr::non_null::NonNull<u8>, core::alloc::layout::Layout)>" = type { {}*, [2 x i64] }
%"core::option::Option<(core::ptr::non_null::NonNull<u8>, core::alloc::layout::Layout)>::Some" = type { { i8*, { i64, i64 } } }
%"alloc::alloc::Global" = type {}
%"core::ptr::metadata::PtrRepr<[u8]>" = type { [2 x i64] }
%"core::fmt::Formatter" = type { { i64, i64 }, { i64, i64 }, { {}*, [3 x i64]* }, i32, i32, i8, [7 x i8] }
%"core::fmt::Opaque" = type {}
%"core::panic::location::Location" = type { { [0 x i8]*, i64 }, i32, i32 }
%"unwind::libunwind::_Unwind_Exception" = type { i64, void (i32, %"unwind::libunwind::_Unwind_Exception"*)*, [6 x i64] }
%"unwind::libunwind::_Unwind_Context" = type { [0 x i8] }
@alloc10 = private unnamed_addr constant <{ [0 x i8] }> zeroinitializer, align 8
@alloc3 = private unnamed_addr constant <{ i8*, [8 x i8] }> <{ i8* getelementptr inbounds (<{ [0 x i8] }>, <{ [0 x i8] }>* @alloc10, i32 0, i32 0, i32 0), [8 x i8] zeroinitializer }>, align 8
@alloc5 = private unnamed_addr constant <{ [8 x i8] }> zeroinitializer, align 8
@alloc7 = private unnamed_addr constant <{ [12 x i8] }> <{ [12 x i8] c"invalid args" }>, align 1
@alloc8 = private unnamed_addr constant <{ i8*, [8 x i8] }> <{ i8* getelementptr inbounds (<{ [12 x i8] }>, <{ [12 x i8] }>* @alloc7, i32 0, i32 0, i32 0), [8 x i8] c"\0C\00\00\00\00\00\00\00" }>, align 8
@alloc28 = private unnamed_addr constant <{ [75 x i8] }> <{ [75 x i8] c"/rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/fmt/mod.rs" }>, align 1
@alloc29 = private unnamed_addr constant <{ i8*, [16 x i8] }> <{ i8* getelementptr inbounds (<{ [75 x i8] }>, <{ [75 x i8] }>* @alloc28, i32 0, i32 0, i32 0), [16 x i8] c"K\00\00\00\00\00\00\00\81\01\00\00\0D\00\00\00" }>, align 8
; core::ptr::drop_in_place<alloc::string::String>
; Function Attrs: nonlazybind uwtable
define void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he7c0ec0b771eba18E"(%"alloc::string::String"* %_1) unnamed_addr #0 {
start:
%0 = bitcast %"alloc::string::String"* %_1 to %"alloc::vec::Vec<u8>"*
; call core::ptr::drop_in_place<alloc::vec::Vec<u8>>
call void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hd5791445be336d62E"(%"alloc::vec::Vec<u8>"* %0)
br label %bb1
bb1: ; preds = %start
ret void
}
; core::ptr::drop_in_place<alloc::vec::Vec<u8>>
; Function Attrs: nonlazybind uwtable
define void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hd5791445be336d62E"(%"alloc::vec::Vec<u8>"* %_1) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
start:
%0 = alloca { i8*, i32 }, align 8
; invoke <alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop
invoke void @"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd43910c9dbb2a10dE"(%"alloc::vec::Vec<u8>"* noundef align 8 dereferenceable(24) %_1)
to label %bb4 unwind label %cleanup
bb4: ; preds = %start
%1 = bitcast %"alloc::vec::Vec<u8>"* %_1 to { i8*, i64 }*
; call core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>>
call void @"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17h4ca2a4d8568aa25bE"({ i8*, i64 }* %1)
br label %bb2
bb3: ; preds = %cleanup
%2 = bitcast %"alloc::vec::Vec<u8>"* %_1 to { i8*, i64 }*
; call core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>>
call void @"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17h4ca2a4d8568aa25bE"({ i8*, i64 }* %2) #6
br label %bb1
cleanup: ; preds = %start
%3 = landingpad { i8*, i32 }
cleanup
%4 = extractvalue { i8*, i32 } %3, 0
%5 = extractvalue { i8*, i32 } %3, 1
%6 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %0, i32 0, i32 0
store i8* %4, i8** %6, align 8
%7 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %0, i32 0, i32 1
store i32 %5, i32* %7, align 8
br label %bb3
bb1: ; preds = %bb3
%8 = bitcast { i8*, i32 }* %0 to i8**
%9 = load i8*, i8** %8, align 8
%10 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %0, i32 0, i32 1
%11 = load i32, i32* %10, align 8
%12 = insertvalue { i8*, i32 } undef, i8* %9, 0
%13 = insertvalue { i8*, i32 } %12, i32 %11, 1
resume { i8*, i32 } %13
bb2: ; preds = %bb4
ret void
}
; core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>>
; Function Attrs: nonlazybind uwtable
define void @"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17h4ca2a4d8568aa25bE"({ i8*, i64 }* %_1) unnamed_addr #0 {
start:
; call <alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop
call void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6032a867d8e708f4E"({ i8*, i64 }* noundef align 8 dereferenceable(16) %_1)
br label %bb1
bb1: ; preds = %start
ret void
}
; probe1::probe
; Function Attrs: nonlazybind uwtable
define void @_ZN6probe15probe17h88659a1cd765b415E() unnamed_addr #0 {
start:
%_10 = alloca [1 x { i8*, i64* }], align 8
%_3 = alloca %"core::fmt::Arguments", align 8
%res = alloca %"alloc::string::String", align 8
%_1 = alloca %"alloc::string::String", align 8
; call core::fmt::ArgumentV1::new_lower_exp
%0 = call { i8*, i64* } @_ZN4core3fmt10ArgumentV113new_lower_exp17h042822b93991e3adE(i64* noundef align 8 dereferenceable(8) bitcast (<{ [8 x i8] }>* @alloc5 to i64*))
%_11.0 = extractvalue { i8*, i64* } %0, 0
%_11.1 = extractvalue { i8*, i64* } %0, 1
br label %bb1
bb1: ; preds = %start
%1 = bitcast [1 x { i8*, i64* }]* %_10 to { i8*, i64* }*
%2 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %1, i32 0, i32 0
store i8* %_11.0, i8** %2, align 8
%3 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %1, i32 0, i32 1
store i64* %_11.1, i64** %3, align 8
%_7.0 = bitcast [1 x { i8*, i64* }]* %_10 to [0 x { i8*, i64* }]*
; call core::fmt::Arguments::new_v1
call void @_ZN4core3fmt9Arguments6new_v117h99eeafbdfca9bd9eE(%"core::fmt::Arguments"* noalias nocapture noundef sret(%"core::fmt::Arguments") dereferenceable(48) %_3, [0 x { [0 x i8]*, i64 }]* noundef nonnull align 8 bitcast (<{ i8*, [8 x i8] }>* @alloc3 to [0 x { [0 x i8]*, i64 }]*), i64 1, [0 x { i8*, i64* }]* noundef nonnull align 8 %_7.0, i64 1)
br label %bb2
bb2: ; preds = %bb1
; call alloc::fmt::format
call void @_ZN5alloc3fmt6format17h4141264adb528c54E(%"alloc::string::String"* noalias nocapture noundef sret(%"alloc::string::String") dereferenceable(24) %res, %"core::fmt::Arguments"* noalias nocapture noundef dereferenceable(48) %_3)
br label %bb3
bb3: ; preds = %bb2
%4 = bitcast %"alloc::string::String"* %_1 to i8*
%5 = bitcast %"alloc::string::String"* %res to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %4, i8* align 8 %5, i64 24, i1 false)
; call core::ptr::drop_in_place<alloc::string::String>
call void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he7c0ec0b771eba18E"(%"alloc::string::String"* %_1)
br label %bb4
bb4: ; preds = %bb3
ret void
}
; alloc::raw_vec::RawVec<T,A>::ptr
; Function Attrs: inlinehint nonlazybind uwtable
define i8* @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$3ptr17he983e2961a636d31E"({ i8*, i64 }* noundef align 8 dereferenceable(16) %self) unnamed_addr #1 {
start:
%0 = bitcast { i8*, i64 }* %self to i8**
%_2 = load i8*, i8** %0, align 8, !nonnull !2
; call core::ptr::unique::Unique<T>::as_ptr
%1 = call i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ptr17h0f937f3d437bd21aE"(i8* nonnull %_2)
br label %bb1
bb1: ; preds = %start
ret i8* %1
}
; alloc::raw_vec::RawVec<T,A>::current_memory
; Function Attrs: nonlazybind uwtable
define void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hd0d6759410affc6fE"(%"core::option::Option<(core::ptr::non_null::NonNull<u8>, core::alloc::layout::Layout)>"* noalias nocapture noundef sret(%"core::option::Option<(core::ptr::non_null::NonNull<u8>, core::alloc::layout::Layout)>") dereferenceable(24) %0, { i8*, i64 }* noundef align 8 dereferenceable(16) %self) unnamed_addr #0 {
start:
%_13 = alloca { i8*, { i64, i64 } }, align 8
%_2 = alloca i8, align 1
br label %bb4
bb4: ; preds = %start
%1 = icmp eq i64 1, 0
br i1 %1, label %bb1, label %bb2
bb1: ; preds = %bb4
store i8 1, i8* %_2, align 1
br label %bb3
bb2: ; preds = %bb4
%2 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
%_5 = load i64, i64* %2, align 8
%_4 = icmp eq i64 %_5, 0
%3 = zext i1 %_4 to i8
store i8 %3, i8* %_2, align 1
br label %bb3
bb3: ; preds = %bb1, %bb2
%4 = load i8, i8* %_2, align 1, !range !3
%5 = trunc i8 %4 to i1
br i1 %5, label %bb5, label %bb6
bb6: ; preds = %bb3
br label %bb7
bb5: ; preds = %bb3
%6 = bitcast %"core::option::Option<(core::ptr::non_null::NonNull<u8>, core::alloc::layout::Layout)>"* %0 to {}**
store {}* null, {}** %6, align 8
br label %bb12
bb12: ; preds = %bb11, %bb5
ret void
bb7: ; preds = %bb6
br label %bb8
bb8: ; preds = %bb7
%7 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
%_9 = load i64, i64* %7, align 8
%size = mul i64 1, %_9
; call core::alloc::layout::Layout::from_size_align_unchecked
%8 = call { i64, i64 } @_ZN4core5alloc6layout6Layout25from_size_align_unchecked17h0c8b8b1d0606c792E(i64 %size, i64 1)
%layout.0 = extractvalue { i64, i64 } %8, 0
%layout.1 = extractvalue { i64, i64 } %8, 1
br label %bb9
bb9: ; preds = %bb8
%9 = bitcast { i8*, i64 }* %self to i8**
%_16 = load i8*, i8** %9, align 8, !nonnull !2
; call core::ptr::unique::Unique<T>::cast
%_15 = call nonnull i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$4cast17hcd57d05492947191E"(i8* nonnull %_16)
br label %bb10
bb10: ; preds = %bb9
; call <T as core::convert::Into<U>>::into
%_14 = call nonnull i8* @"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17hefc6668450c84db4E"(i8* nonnull %_15)
br label %bb11
bb11: ; preds = %bb10
%10 = bitcast { i8*, { i64, i64 } }* %_13 to i8**
store i8* %_14, i8** %10, align 8
%11 = getelementptr inbounds { i8*, { i64, i64 } }, { i8*, { i64, i64 } }* %_13, i32 0, i32 1
%12 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %11, i32 0, i32 0
store i64 %layout.0, i64* %12, align 8
%13 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %11, i32 0, i32 1
store i64 %layout.1, i64* %13, align 8
%14 = bitcast %"core::option::Option<(core::ptr::non_null::NonNull<u8>, core::alloc::layout::Layout)>"* %0 to %"core::option::Option<(core::ptr::non_null::NonNull<u8>, core::alloc::layout::Layout)>::Some"*
%15 = bitcast %"core::option::Option<(core::ptr::non_null::NonNull<u8>, core::alloc::layout::Layout)>::Some"* %14 to { i8*, { i64, i64 } }*
%16 = bitcast { i8*, { i64, i64 } }* %15 to i8*
%17 = bitcast { i8*, { i64, i64 } }* %_13 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %16, i8* align 8 %17, i64 24, i1 false)
br label %bb12
}
; <alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop
; Function Attrs: nonlazybind uwtable
define void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6032a867d8e708f4E"({ i8*, i64 }* noundef align 8 dereferenceable(16) %self) unnamed_addr #0 {
start:
%_2 = alloca %"core::option::Option<(core::ptr::non_null::NonNull<u8>, core::alloc::layout::Layout)>", align 8
; call alloc::raw_vec::RawVec<T,A>::current_memory
call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hd0d6759410affc6fE"(%"core::option::Option<(core::ptr::non_null::NonNull<u8>, core::alloc::layout::Layout)>"* noalias nocapture noundef sret(%"core::option::Option<(core::ptr::non_null::NonNull<u8>, core::alloc::layout::Layout)>") dereferenceable(24) %_2, { i8*, i64 }* noundef align 8 dereferenceable(16) %self)
br label %bb1
bb1: ; preds = %start
%0 = bitcast %"core::option::Option<(core::ptr::non_null::NonNull<u8>, core::alloc::layout::Layout)>"* %_2 to {}**
%1 = load {}*, {}** %0, align 8
%2 = icmp eq {}* %1, null
%_4 = select i1 %2, i64 0, i64 1
%3 = icmp eq i64 %_4, 1
br i1 %3, label %bb2, label %bb4
bb2: ; preds = %bb1
%4 = bitcast %"core::option::Option<(core::ptr::non_null::NonNull<u8>, core::alloc::layout::Layout)>"* %_2 to %"core::option::Option<(core::ptr::non_null::NonNull<u8>, core::alloc::layout::Layout)>::Some"*
%5 = bitcast %"core::option::Option<(core::ptr::non_null::NonNull<u8>, core::alloc::layout::Layout)>::Some"* %4 to { i8*, { i64, i64 } }*
%6 = bitcast { i8*, { i64, i64 } }* %5 to i8**
%ptr = load i8*, i8** %6, align 8, !nonnull !2
%7 = bitcast %"core::option::Option<(core::ptr::non_null::NonNull<u8>, core::alloc::layout::Layout)>"* %_2 to %"core::option::Option<(core::ptr::non_null::NonNull<u8>, core::alloc::layout::Layout)>::Some"*
%8 = bitcast %"core::option::Option<(core::ptr::non_null::NonNull<u8>, core::alloc::layout::Layout)>::Some"* %7 to { i8*, { i64, i64 } }*
%9 = getelementptr inbounds { i8*, { i64, i64 } }, { i8*, { i64, i64 } }* %8, i32 0, i32 1
%10 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %9, i32 0, i32 0
%layout.0 = load i64, i64* %10, align 8
%11 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %9, i32 0, i32 1
%layout.1 = load i64, i64* %11, align 8, !range !4
%_7 = bitcast { i8*, i64 }* %self to %"alloc::alloc::Global"*
; call <alloc::alloc::Global as core::alloc::Allocator>::deallocate
call void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h040112264cdb3e0aE"(%"alloc::alloc::Global"* noundef nonnull align 1 %_7, i8* nonnull %ptr, i64 %layout.0, i64 %layout.1)
br label %bb3
bb4: ; preds = %bb3, %bb1
ret void
bb3: ; preds = %bb2
br label %bb4
}
; alloc::alloc::dealloc
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @_ZN5alloc5alloc7dealloc17h4ebba9b12b65a00aE(i8* %ptr, i64 %0, i64 %1) unnamed_addr #1 {
start:
%layout = alloca { i64, i64 }, align 8
%2 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %layout, i32 0, i32 0
store i64 %0, i64* %2, align 8
%3 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %layout, i32 0, i32 1
store i64 %1, i64* %3, align 8
; call core::alloc::layout::Layout::size
%_4 = call i64 @_ZN4core5alloc6layout6Layout4size17hfb2138d70cbfcbfcE({ i64, i64 }* noundef align 8 dereferenceable(16) %layout)
br label %bb1
bb1: ; preds = %start
; call core::alloc::layout::Layout::align
%_6 = call i64 @_ZN4core5alloc6layout6Layout5align17h7741f2ecfd4af4ecE({ i64, i64 }* noundef align 8 dereferenceable(16) %layout)
br label %bb2
bb2: ; preds = %bb1
call void @__rust_dealloc(i8* %ptr, i64 %_4, i64 %_6) #7
br label %bb3
bb3: ; preds = %bb2
ret void
}
; <alloc::alloc::Global as core::alloc::Allocator>::deallocate
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h040112264cdb3e0aE"(%"alloc::alloc::Global"* noundef nonnull align 1 %self, i8* nonnull %ptr, i64 %0, i64 %1) unnamed_addr #1 {
start:
%layout = alloca { i64, i64 }, align 8
%2 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %layout, i32 0, i32 0
store i64 %0, i64* %2, align 8
%3 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %layout, i32 0, i32 1
store i64 %1, i64* %3, align 8
; call core::alloc::layout::Layout::size
%_4 = call i64 @_ZN4core5alloc6layout6Layout4size17hfb2138d70cbfcbfcE({ i64, i64 }* noundef align 8 dereferenceable(16) %layout)
br label %bb1
bb1: ; preds = %start
%4 = icmp eq i64 %_4, 0
br i1 %4, label %bb5, label %bb2
bb5: ; preds = %bb1
br label %bb6
bb2: ; preds = %bb1
; call core::ptr::non_null::NonNull<T>::as_ptr
%_6 = call i8* @"_ZN4core3ptr8non_null16NonNull$LT$T$GT$6as_ptr17h752dc894c13efd04E"(i8* nonnull %ptr)
br label %bb3
bb3: ; preds = %bb2
%5 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %layout, i32 0, i32 0
%_8.0 = load i64, i64* %5, align 8
%6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %layout, i32 0, i32 1
%_8.1 = load i64, i64* %6, align 8, !range !4
; call alloc::alloc::dealloc
call void @_ZN5alloc5alloc7dealloc17h4ebba9b12b65a00aE(i8* %_6, i64 %_8.0, i64 %_8.1)
br label %bb4
bb4: ; preds = %bb3
br label %bb6
bb6: ; preds = %bb5, %bb4
ret void
}
; core::ptr::metadata::from_raw_parts_mut
; Function Attrs: inlinehint nonlazybind uwtable
define { [0 x i8]*, i64 } @_ZN4core3ptr8metadata18from_raw_parts_mut17hd909bd99f18a5853E({}* %data_address, i64 %metadata) unnamed_addr #1 {
start:
%_4 = alloca { i8*, i64 }, align 8
%_3 = alloca %"core::ptr::metadata::PtrRepr<[u8]>", align 8
%0 = bitcast { i8*, i64 }* %_4 to {}**
store {}* %data_address, {}** %0, align 8
%1 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %_4, i32 0, i32 1
store i64 %metadata, i64* %1, align 8
%2 = bitcast %"core::ptr::metadata::PtrRepr<[u8]>"* %_3 to { i8*, i64 }*
%3 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %_4, i32 0, i32 0
%4 = load i8*, i8** %3, align 8
%5 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %_4, i32 0, i32 1
%6 = load i64, i64* %5, align 8
%7 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %2, i32 0, i32 0
store i8* %4, i8** %7, align 8
%8 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %2, i32 0, i32 1
store i64 %6, i64* %8, align 8
%9 = bitcast %"core::ptr::metadata::PtrRepr<[u8]>"* %_3 to { [0 x i8]*, i64 }*
%10 = getelementptr inbounds { [0 x i8]*, i64 }, { [0 x i8]*, i64 }* %9, i32 0, i32 0
%11 = load [0 x i8]*, [0 x i8]** %10, align 8
%12 = getelementptr inbounds { [0 x i8]*, i64 }, { [0 x i8]*, i64 }* %9, i32 0, i32 1
%13 = load i64, i64* %12, align 8
%14 = insertvalue { [0 x i8]*, i64 } undef, [0 x i8]* %11, 0
%15 = insertvalue { [0 x i8]*, i64 } %14, i64 %13, 1
ret { [0 x i8]*, i64 } %15
}
; core::ptr::non_null::NonNull<T>::new_unchecked
; Function Attrs: inlinehint nonlazybind uwtable
define nonnull i8* @"_ZN4core3ptr8non_null16NonNull$LT$T$GT$13new_unchecked17h3002bb9d16274afbE"(i8* %ptr) unnamed_addr #1 {
start:
%0 = alloca i8*, align 8
store i8* %ptr, i8** %0, align 8
%1 = load i8*, i8** %0, align 8, !nonnull !2
ret i8* %1
}
; core::ptr::non_null::NonNull<T>::as_ptr
; Function Attrs: inlinehint nonlazybind uwtable
define i8* @"_ZN4core3ptr8non_null16NonNull$LT$T$GT$6as_ptr17h752dc894c13efd04E"(i8* nonnull %self) unnamed_addr #1 {
start:
ret i8* %self
}
; <core::ptr::non_null::NonNull<T> as core::convert::From<core::ptr::unique::Unique<T>>>::from
; Function Attrs: inlinehint nonlazybind uwtable
define nonnull i8* @"_ZN119_$LT$core..ptr..non_null..NonNull$LT$T$GT$$u20$as$u20$core..convert..From$LT$core..ptr..unique..Unique$LT$T$GT$$GT$$GT$4from17h7ad682d0cd401239E"(i8* nonnull %unique) unnamed_addr #1 {
start:
; call core::ptr::unique::Unique<T>::as_ptr
%_2 = call i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ptr17h0f937f3d437bd21aE"(i8* nonnull %unique)
br label %bb1
bb1: ; preds = %start
; call core::ptr::non_null::NonNull<T>::new_unchecked
%0 = call nonnull i8* @"_ZN4core3ptr8non_null16NonNull$LT$T$GT$13new_unchecked17h3002bb9d16274afbE"(i8* %_2)
br label %bb2
bb2: ; preds = %bb1
ret i8* %0
}
; core::ptr::unique::Unique<T>::new_unchecked
; Function Attrs: inlinehint nonlazybind uwtable
define nonnull i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$13new_unchecked17h1eba88c7a540e879E"(i8* %ptr) unnamed_addr #1 {
start:
%0 = alloca i8*, align 8
store i8* %ptr, i8** %0, align 8
%1 = load i8*, i8** %0, align 8, !nonnull !2
ret i8* %1
}
; core::ptr::unique::Unique<T>::as_ptr
; Function Attrs: inlinehint nonlazybind uwtable
define i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ptr17h0f937f3d437bd21aE"(i8* nonnull %self) unnamed_addr #1 {
start:
ret i8* %self
}
; core::ptr::unique::Unique<T>::cast
; Function Attrs: inlinehint nonlazybind uwtable
define nonnull i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$4cast17hcd57d05492947191E"(i8* nonnull %self) unnamed_addr #1 {
start:
; call core::ptr::unique::Unique<T>::as_ptr
%_3 = call i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ptr17h0f937f3d437bd21aE"(i8* nonnull %self)
br label %bb1
bb1: ; preds = %start
; call core::ptr::unique::Unique<T>::new_unchecked
%0 = call nonnull i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$13new_unchecked17h1eba88c7a540e879E"(i8* %_3)
br label %bb2
bb2: ; preds = %bb1
ret i8* %0
}
; core::ptr::mut_ptr::<impl *mut T>::is_null
; Function Attrs: inlinehint nonlazybind uwtable
define noundef zeroext i1 @"_ZN4core3ptr7mut_ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17hda23e669c89ca927E"(i8* %self) unnamed_addr #1 {
start:
br label %bb1
bb1: ; preds = %start
; call core::ptr::mut_ptr::<impl *mut T>::guaranteed_eq
%0 = call noundef zeroext i1 @"_ZN4core3ptr7mut_ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$13guaranteed_eq17hc1e0d6984a79c873E"(i8* %self, i8* null)
br label %bb2
bb2: ; preds = %bb1
ret i1 %0
}
; core::ptr::mut_ptr::<impl *mut T>::guaranteed_eq
; Function Attrs: inlinehint nonlazybind uwtable
define noundef zeroext i1 @"_ZN4core3ptr7mut_ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$13guaranteed_eq17hc1e0d6984a79c873E"(i8* %self, i8* %other) unnamed_addr #1 {
start:
%0 = alloca i8, align 1
%1 = icmp eq i8* %self, %other
%2 = zext i1 %1 to i8
store i8 %2, i8* %0, align 1
%3 = load i8, i8* %0, align 1, !range !3
%4 = trunc i8 %3 to i1
br label %bb1
bb1: ; preds = %start
ret i1 %4
}
; core::ptr::slice_from_raw_parts_mut
; Function Attrs: inlinehint nonlazybind uwtable
define { [0 x i8]*, i64 } @_ZN4core3ptr24slice_from_raw_parts_mut17h9fd93bd0298a3d49E(i8* %data, i64 %len) unnamed_addr #1 {
start:
%0 = bitcast i8* %data to {}*
br label %bb1
bb1: ; preds = %start
; call core::ptr::metadata::from_raw_parts_mut
%1 = call { [0 x i8]*, i64 } @_ZN4core3ptr8metadata18from_raw_parts_mut17hd909bd99f18a5853E({}* %0, i64 %len)
%2 = extractvalue { [0 x i8]*, i64 } %1, 0
%3 = extractvalue { [0 x i8]*, i64 } %1, 1
br label %bb2
bb2: ; preds = %bb1
%4 = insertvalue { [0 x i8]*, i64 } undef, [0 x i8]* %2, 0
%5 = insertvalue { [0 x i8]*, i64 } %4, i64 %3, 1
ret { [0 x i8]*, i64 } %5
}
; <T as core::convert::Into<U>>::into
; Function Attrs: nonlazybind uwtable
define nonnull i8* @"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17hefc6668450c84db4E"(i8* nonnull %self) unnamed_addr #0 {
start:
; call <core::ptr::non_null::NonNull<T> as core::convert::From<core::ptr::unique::Unique<T>>>::from
%0 = call nonnull i8* @"_ZN119_$LT$core..ptr..non_null..NonNull$LT$T$GT$$u20$as$u20$core..convert..From$LT$core..ptr..unique..Unique$LT$T$GT$$GT$$GT$4from17h7ad682d0cd401239E"(i8* nonnull %self)
br label %bb1
bb1: ; preds = %start
ret i8* %0
}
; alloc::vec::Vec<T,A>::as_mut_ptr
; Function Attrs: inlinehint nonlazybind uwtable
define i8* @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$10as_mut_ptr17h74f8f655d2920920E"(%"alloc::vec::Vec<u8>"* noundef align 8 dereferenceable(24) %self) unnamed_addr #1 {
start:
%_2 = bitcast %"alloc::vec::Vec<u8>"* %self to { i8*, i64 }*
; call alloc::raw_vec::RawVec<T,A>::ptr
%ptr = call i8* @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$3ptr17he983e2961a636d31E"({ i8*, i64 }* noundef align 8 dereferenceable(16) %_2)
br label %bb1
bb1: ; preds = %start
; call core::ptr::mut_ptr::<impl *mut T>::is_null
%_5 = call noundef zeroext i1 @"_ZN4core3ptr7mut_ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17hda23e669c89ca927E"(i8* %ptr)
br label %bb2
bb2: ; preds = %bb1
%_4 = xor i1 %_5, true
call void @llvm.assume(i1 %_4)
br label %bb3
bb3: ; preds = %bb2
ret i8* %ptr
}
; <alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop
; Function Attrs: nonlazybind uwtable
define void @"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd43910c9dbb2a10dE"(%"alloc::vec::Vec<u8>"* noundef align 8 dereferenceable(24) %self) unnamed_addr #0 {
start:
; call alloc::vec::Vec<T,A>::as_mut_ptr
%_3 = call i8* @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$10as_mut_ptr17h74f8f655d2920920E"(%"alloc::vec::Vec<u8>"* noundef align 8 dereferenceable(24) %self)
br label %bb1
bb1: ; preds = %start
%0 = getelementptr inbounds %"alloc::vec::Vec<u8>", %"alloc::vec::Vec<u8>"* %self, i32 0, i32 1
%_5 = load i64, i64* %0, align 8
; call core::ptr::slice_from_raw_parts_mut
%1 = call { [0 x i8]*, i64 } @_ZN4core3ptr24slice_from_raw_parts_mut17h9fd93bd0298a3d49E(i8* %_3, i64 %_5)
%_2.0 = extractvalue { [0 x i8]*, i64 } %1, 0
%_2.1 = extractvalue { [0 x i8]*, i64 } %1, 1
br label %bb2
bb2: ; preds = %bb1
br label %bb3
bb3: ; preds = %bb2
ret void
}
; core::fmt::ArgumentV1::new
; Function Attrs: inlinehint nonlazybind uwtable
define { i8*, i64* } @_ZN4core3fmt10ArgumentV13new17h8a003a007113b3e6E(i64* noundef align 8 dereferenceable(8) %x, i1 (i64*, %"core::fmt::Formatter"*)* nonnull %f) unnamed_addr #1 {
start:
%0 = alloca %"core::fmt::Opaque"*, align 8
%1 = alloca i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)*, align 8
%2 = alloca { i8*, i64* }, align 8
%3 = bitcast i1 (i64*, %"core::fmt::Formatter"*)* %f to i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)*
store i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)* %3, i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)** %1, align 8
%_3 = load i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)*, i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)** %1, align 8, !nonnull !2
br label %bb1
bb1: ; preds = %start
%4 = bitcast i64* %x to %"core::fmt::Opaque"*
store %"core::fmt::Opaque"* %4, %"core::fmt::Opaque"** %0, align 8
%_5 = load %"core::fmt::Opaque"*, %"core::fmt::Opaque"** %0, align 8, !nonnull !2
br label %bb2
bb2: ; preds = %bb1
%5 = bitcast { i8*, i64* }* %2 to %"core::fmt::Opaque"**
store %"core::fmt::Opaque"* %_5, %"core::fmt::Opaque"** %5, align 8
%6 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %2, i32 0, i32 1
%7 = bitcast i64** %6 to i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)**
store i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)* %_3, i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)** %7, align 8
%8 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %2, i32 0, i32 0
%9 = load i8*, i8** %8, align 8, !nonnull !2
%10 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %2, i32 0, i32 1
%11 = load i64*, i64** %10, align 8, !nonnull !2
%12 = insertvalue { i8*, i64* } undef, i8* %9, 0
%13 = insertvalue { i8*, i64* } %12, i64* %11, 1
ret { i8*, i64* } %13
}
; core::fmt::Arguments::new_v1
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @_ZN4core3fmt9Arguments6new_v117h99eeafbdfca9bd9eE(%"core::fmt::Arguments"* noalias nocapture noundef sret(%"core::fmt::Arguments") dereferenceable(48) %0, [0 x { [0 x i8]*, i64 }]* noundef nonnull align 8 %pieces.0, i64 %pieces.1, [0 x { i8*, i64* }]* noundef nonnull align 8 %args.0, i64 %args.1) unnamed_addr #1 {
start:
%_23 = alloca { i64*, i64 }, align 8
%_15 = alloca %"core::fmt::Arguments", align 8
%_3 = alloca i8, align 1
%_4 = icmp ult i64 %pieces.1, %args.1
br i1 %_4, label %bb1, label %bb2
bb2: ; preds = %start
%_12 = add i64 %args.1, 1
%_9 = icmp ugt i64 %pieces.1, %_12
%1 = zext i1 %_9 to i8
store i8 %1, i8* %_3, align 1
br label %bb3
bb1: ; preds = %start
store i8 1, i8* %_3, align 1
br label %bb3
bb3: ; preds = %bb2, %bb1
%2 = load i8, i8* %_3, align 1, !range !3
%3 = trunc i8 %2 to i1
br i1 %3, label %bb4, label %bb6
bb6: ; preds = %bb3
%4 = bitcast { i64*, i64 }* %_23 to {}**
store {}* null, {}** %4, align 8
%5 = bitcast %"core::fmt::Arguments"* %0 to { [0 x { [0 x i8]*, i64 }]*, i64 }*
%6 = getelementptr inbounds { [0 x { [0 x i8]*, i64 }]*, i64 }, { [0 x { [0 x i8]*, i64 }]*, i64 }* %5, i32 0, i32 0
store [0 x { [0 x i8]*, i64 }]* %pieces.0, [0 x { [0 x i8]*, i64 }]** %6, align 8
%7 = getelementptr inbounds { [0 x { [0 x i8]*, i64 }]*, i64 }, { [0 x { [0 x i8]*, i64 }]*, i64 }* %5, i32 0, i32 1
store i64 %pieces.1, i64* %7, align 8
%8 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %0, i32 0, i32 1
%9 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %_23, i32 0, i32 0
%10 = load i64*, i64** %9, align 8
%11 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %_23, i32 0, i32 1
%12 = load i64, i64* %11, align 8
%13 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %8, i32 0, i32 0
store i64* %10, i64** %13, align 8
%14 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %8, i32 0, i32 1
store i64 %12, i64* %14, align 8
%15 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %0, i32 0, i32 2
%16 = getelementptr inbounds { [0 x { i8*, i64* }]*, i64 }, { [0 x { i8*, i64* }]*, i64 }* %15, i32 0, i32 0
store [0 x { i8*, i64* }]* %args.0, [0 x { i8*, i64* }]** %16, align 8
%17 = getelementptr inbounds { [0 x { i8*, i64* }]*, i64 }, { [0 x { i8*, i64* }]*, i64 }* %15, i32 0, i32 1
store i64 %args.1, i64* %17, align 8
ret void
bb4: ; preds = %bb3
; call core::fmt::Arguments::new_v1
call void @_ZN4core3fmt9Arguments6new_v117h99eeafbdfca9bd9eE(%"core::fmt::Arguments"* noalias nocapture noundef sret(%"core::fmt::Arguments") dereferenceable(48) %_15, [0 x { [0 x i8]*, i64 }]* noundef nonnull align 8 bitcast (<{ i8*, [8 x i8] }>* @alloc8 to [0 x { [0 x i8]*, i64 }]*), i64 1, [0 x { i8*, i64* }]* noundef nonnull align 8 bitcast (<{ [0 x i8] }>* @alloc10 to [0 x { i8*, i64* }]*), i64 0)
br label %bb5
bb5: ; preds = %bb4
; call core::panicking::panic_fmt
call void @_ZN4core9panicking9panic_fmt17he1bbc7336d49a357E(%"core::fmt::Arguments"* noalias nocapture noundef dereferenceable(48) %_15, %"core::panic::location::Location"* noundef align 8 dereferenceable(24) bitcast (<{ i8*, [16 x i8] }>* @alloc29 to %"core::panic::location::Location"*)) #8
unreachable
}
; core::alloc::layout::Layout::from_size_align_unchecked
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i64, i64 } @_ZN4core5alloc6layout6Layout25from_size_align_unchecked17h0c8b8b1d0606c792E(i64 %size, i64 %align) unnamed_addr #1 {
start:
%0 = alloca { i64, i64 }, align 8
; call core::num::nonzero::NonZeroUsize::new_unchecked
%_4 = call i64 @_ZN4core3num7nonzero12NonZeroUsize13new_unchecked17h9ff490317470fb8dE(i64 %align), !range !4
br label %bb1
bb1: ; preds = %start
%1 = bitcast { i64, i64 }* %0 to i64*
store i64 %size, i64* %1, align 8
%2 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %0, i32 0, i32 1
store i64 %_4, i64* %2, align 8
%3 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %0, i32 0, i32 0
%4 = load i64, i64* %3, align 8
%5 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %0, i32 0, i32 1
%6 = load i64, i64* %5, align 8, !range !4
%7 = insertvalue { i64, i64 } undef, i64 %4, 0
%8 = insertvalue { i64, i64 } %7, i64 %6, 1
ret { i64, i64 } %8
}
; core::alloc::layout::Layout::size
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64 @_ZN4core5alloc6layout6Layout4size17hfb2138d70cbfcbfcE({ i64, i64 }* noundef align 8 dereferenceable(16) %self) unnamed_addr #1 {
start:
%0 = bitcast { i64, i64 }* %self to i64*
%1 = load i64, i64* %0, align 8
ret i64 %1
}
; core::alloc::layout::Layout::align
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64 @_ZN4core5alloc6layout6Layout5align17h7741f2ecfd4af4ecE({ i64, i64 }* noundef align 8 dereferenceable(16) %self) unnamed_addr #1 {
start:
%0 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %self, i32 0, i32 1
%_2 = load i64, i64* %0, align 8, !range !4
; call core::num::nonzero::NonZeroUsize::get
%1 = call i64 @_ZN4core3num7nonzero12NonZeroUsize3get17h1930f18810009377E(i64 %_2)
br label %bb1
bb1: ; preds = %start
ret i64 %1
}
; core::num::nonzero::NonZeroUsize::new_unchecked
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64 @_ZN4core3num7nonzero12NonZeroUsize13new_unchecked17h9ff490317470fb8dE(i64 %n) unnamed_addr #1 {
start:
%0 = alloca i64, align 8
store i64 %n, i64* %0, align 8
%1 = load i64, i64* %0, align 8, !range !4
ret i64 %1
}
; core::num::nonzero::NonZeroUsize::get
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64 @_ZN4core3num7nonzero12NonZeroUsize3get17h1930f18810009377E(i64 %self) unnamed_addr #1 {
start:
ret i64 %self
}
; core::fmt::ArgumentV1::new_lower_exp
; Function Attrs: inlinehint nonlazybind uwtable
define { i8*, i64* } @_ZN4core3fmt10ArgumentV113new_lower_exp17h042822b93991e3adE(i64* noundef align 8 dereferenceable(8) %x) unnamed_addr #1 {
start:
; call core::fmt::ArgumentV1::new
%0 = call { i8*, i64* } @_ZN4core3fmt10ArgumentV13new17h8a003a007113b3e6E(i64* noundef align 8 dereferenceable(8) %x, i1 (i64*, %"core::fmt::Formatter"*)* nonnull @"_ZN4core3fmt3num3imp55_$LT$impl$u20$core..fmt..LowerExp$u20$for$u20$isize$GT$3fmt17hbab51f9862c59e16E")
%1 = extractvalue { i8*, i64* } %0, 0
%2 = extractvalue { i8*, i64* } %0, 1
br label %bb1
bb1: ; preds = %start
%3 = insertvalue { i8*, i64* } undef, i8* %1, 0
%4 = insertvalue { i8*, i64* } %3, i64* %2, 1
ret { i8*, i64* } %4
}
; Function Attrs: nonlazybind uwtable
declare i32 @rust_eh_personality(i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*) unnamed_addr #0
; alloc::fmt::format
; Function Attrs: nonlazybind uwtable
declare void @_ZN5alloc3fmt6format17h4141264adb528c54E(%"alloc::string::String"* noalias nocapture noundef sret(%"alloc::string::String") dereferenceable(24), %"core::fmt::Arguments"* noalias nocapture noundef dereferenceable(48)) unnamed_addr #0
; Function Attrs: argmemonly nofree nounwind willreturn
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #2
; Function Attrs: nounwind nonlazybind uwtable
declare void @__rust_dealloc(i8*, i64, i64) unnamed_addr #3
; Function Attrs: inaccessiblememonly nofree nosync nounwind willreturn
declare void @llvm.assume(i1 noundef) #4
; core::panicking::panic_fmt
; Function Attrs: cold noinline noreturn nonlazybind uwtable
declare void @_ZN4core9panicking9panic_fmt17he1bbc7336d49a357E(%"core::fmt::Arguments"* noalias nocapture noundef dereferenceable(48), %"core::panic::location::Location"* noundef align 8 dereferenceable(24)) unnamed_addr #5
; core::fmt::num::imp::<impl core::fmt::LowerExp for isize>::fmt
; Function Attrs: nonlazybind uwtable
declare noundef zeroext i1 @"_ZN4core3fmt3num3imp55_$LT$impl$u20$core..fmt..LowerExp$u20$for$u20$isize$GT$3fmt17hbab51f9862c59e16E"(i64* noundef align 8 dereferenceable(8), %"core::fmt::Formatter"* noundef align 8 dereferenceable(64)) unnamed_addr #0
attributes #0 = { nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #1 = { inlinehint nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #2 = { argmemonly nofree nounwind willreturn }
attributes #3 = { nounwind nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #4 = { inaccessiblememonly nofree nosync nounwind willreturn }
attributes #5 = { cold noinline noreturn nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #6 = { cold }
attributes #7 = { nounwind }
attributes #8 = { noreturn }
!llvm.module.flags = !{!0, !1}
!0 = !{i32 7, !"PIC Level", i32 2}
!1 = !{i32 2, !"RtLibUseGOT", i32 1}
!2 = !{}
!3 = !{i8 0, i8 2}
!4 = !{i64 1, i64 0}