Skip to content

Instantly share code, notes, and snippets.

@arielb1
Created February 15, 2016 18:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arielb1/14cdf1154e0937f84b52 to your computer and use it in GitHub Desktop.
Save arielb1/14cdf1154e0937f84b52 to your computer and use it in GitHub Desktop.
; ModuleID = 'spawn_example.0.rs'
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%str_slice = type { i8*, i64 }
%"1.core::marker::PhantomData<&'static mut u8>" = type {}
%"1.core::fmt::Formatter" = type { i32, i32, i8, %"1.core::option::Option<usize>", %"1.core::option::Option<usize>", { i8*, void (i8*)** }, %"1.core::slice::Iter<core::fmt::ArgumentV1>", { %"1.core::fmt::ArgumentV1"*, i64 } }
%"1.core::option::Option<usize>" = type { i64, [0 x i64], [1 x i64] }
%"1.core::slice::Iter<core::fmt::ArgumentV1>" = type { %"1.core::fmt::ArgumentV1"*, %"1.core::fmt::ArgumentV1"*, %"1.core::marker::PhantomData<&'static core::fmt::ArgumentV1>" }
%"1.core::fmt::ArgumentV1" = type { %"1.core::fmt::Void"*, i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)* }
%"1.core::fmt::Void" = type {}
%"1.core::marker::PhantomData<&'static core::fmt::ArgumentV1>" = type {}
%"2.std::io::error::Error" = type { %"2.std::io::error::Repr" }
%"2.std::io::error::Repr" = type { i8, [7 x i8], [1 x i64] }
%"1.core::marker::PhantomData<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" = type {}
%closure = type {}
%"2.std::thread::JoinHandle<i32>" = type { %"2.std::thread::JoinInner<i32>" }
%"2.std::thread::JoinInner<i32>" = type { %"1.core::option::Option<std::sys::thread::Thread>", %"2.std::thread::Thread", %"2.std::thread::Packet<i32>" }
%"1.core::option::Option<std::sys::thread::Thread>" = type { i64, [0 x i64], [2 x i64] }
%"2.std::thread::Thread" = type { %"5.alloc::arc::Arc<std::thread::Inner>" }
%"5.alloc::arc::Arc<std::thread::Inner>" = type { %"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>" }
%"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>" = type { %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>", %"1.core::marker::PhantomData<alloc::arc::ArcInner<std::thread::Inner>>" }
%"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>" = type { %"5.alloc::arc::ArcInner<std::thread::Inner>"* }
%"5.alloc::arc::ArcInner<std::thread::Inner>" = type { %"1.core::sync::atomic::AtomicUsize", %"1.core::sync::atomic::AtomicUsize", %"2.std::thread::Inner" }
%"1.core::sync::atomic::AtomicUsize" = type { %"1.core::cell::UnsafeCell<usize>" }
%"1.core::cell::UnsafeCell<usize>" = type { i64 }
%"2.std::thread::Inner" = type { %"1.core::option::Option<collections::string::String>", %"2.std::sync::mutex::Mutex<bool>", %"2.std::sync::condvar::Condvar" }
%"1.core::option::Option<collections::string::String>" = type { %"3.collections::string::String" }
%"3.collections::string::String" = type { %"3.collections::vec::Vec<u8>" }
%"3.collections::vec::Vec<u8>" = type { %"5.alloc::raw_vec::RawVec<u8>", i64 }
%"5.alloc::raw_vec::RawVec<u8>" = type { %"1.core::ptr::Unique<u8>", i64 }
%"1.core::ptr::Unique<u8>" = type { %"1.core::nonzero::NonZero<*const u8>", %"1.core::marker::PhantomData<u8>" }
%"1.core::nonzero::NonZero<*const u8>" = type { i8* }
%"1.core::marker::PhantomData<u8>" = type {}
%"2.std::sync::mutex::Mutex<bool>" = type { %"2.std::sync::mutex::StaticMutex"*, %"1.core::cell::UnsafeCell<bool>", i8 }
%"2.std::sync::mutex::StaticMutex" = type { %"2.std::sys_common::mutex::Mutex", %"2.std::sys_common::poison::Flag" }
%"2.std::sys_common::mutex::Mutex" = type { %"2.std::sys::mutex::Mutex" }
%"2.std::sys::mutex::Mutex" = type { %"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>" }
%"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>" = type { %"7.libc::unix::notbsd::linux::pthread_mutex_t" }
%"7.libc::unix::notbsd::linux::pthread_mutex_t" = type { [0 x i64], [40 x i8] }
%"2.std::sys_common::poison::Flag" = type { %"1.core::cell::Cell<bool>" }
%"1.core::cell::Cell<bool>" = type { %"1.core::cell::UnsafeCell<bool>" }
%"1.core::cell::UnsafeCell<bool>" = type { i8 }
%"2.std::sync::condvar::Condvar" = type { %"2.std::sync::condvar::StaticCondvar"*, i8 }
%"2.std::sync::condvar::StaticCondvar" = type { %"2.std::sys_common::condvar::Condvar", %"1.core::sync::atomic::AtomicUsize" }
%"2.std::sys_common::condvar::Condvar" = type { %"2.std::sys::condvar::Condvar" }
%"2.std::sys::condvar::Condvar" = type { %"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_cond_t>" }
%"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_cond_t>" = type { %"7.libc::unix::notbsd::linux::pthread_cond_t" }
%"7.libc::unix::notbsd::linux::pthread_cond_t" = type { [0 x i64], [48 x i8] }
%"1.core::marker::PhantomData<alloc::arc::ArcInner<std::thread::Inner>>" = type {}
%"2.std::thread::Packet<i32>" = type { %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" }
%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" = type { %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" }
%"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" = type { %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"1.core::marker::PhantomData<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" }
%"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" = type { %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* }
%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" = type { %"1.core::sync::atomic::AtomicUsize", %"1.core::sync::atomic::AtomicUsize", %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>" }
%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>" = type { %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>" }
%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>" = type { i64, [0 x i64], [3 x i64] }
%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" = type { i8, [7 x i8], [2 x i64] }
%"1.core::fmt::Arguments" = type { { %str_slice*, i64 }, %"1.core::option::Option<&'static [core::fmt::rt::v1::Argument]>", { %"1.core::fmt::ArgumentV1"*, i64 } }
%"1.core::option::Option<&'static [core::fmt::rt::v1::Argument]>" = type { { %"1.core::fmt::rt::v1::Argument"*, i64 } }
%"1.core::fmt::rt::v1::Argument" = type { %"1.core::fmt::rt::v1::Position", %"1.core::fmt::rt::v1::FormatSpec" }
%"1.core::fmt::rt::v1::Position" = type { i64, [0 x i64], [1 x i64] }
%"1.core::fmt::rt::v1::FormatSpec" = type { i32, i8, i32, %"1.core::fmt::rt::v1::Count", %"1.core::fmt::rt::v1::Count" }
%"1.core::fmt::rt::v1::Count" = type { i64, [0 x i64], [1 x i64] }
%"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>" = type { i64, [0 x i64], [5 x i64] }
%"2.std::thread::Builder" = type { %"1.core::option::Option<collections::string::String>", %"1.core::option::Option<usize>" }
%"2.std::sys::thread::Thread" = type { i64, i8 }
%"2.std::sys_common::libunwind::_Unwind_Exception" = type { i64, void (i32, %"2.std::sys_common::libunwind::_Unwind_Exception"*)*, [6 x i64] }
%"2.std::sys_common::libunwind::_Unwind_Context" = type {}
%"1.core::slice::IterMut<u8>" = type { i8*, i8*, %"1.core::marker::PhantomData<&'static mut u8>" }
%"1.core::raw::Slice<u8>" = type { i8*, i64 }
%"1.core::result::Result<(), core::fmt::Error>" = type { i8, [0 x i8], [0 x i8] }
%"2.std::io::error::Custom" = type { i8, { i8*, void (i8*)** } }
%closure.0 = type { %"2.std::thread::Thread", %closure, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" }
%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>" = type { i64, [0 x i64], [2 x i64] }
%"1.core::option::Option<&'static str>" = type { %str_slice }
%"1.core::option::Option<i32>" = type { i32, [0 x i32], [1 x i32] }
%"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>" = type { { i8*, void (i8*)** } }
%closure.1 = type { %closure, %"1.core::option::Option<i32>"* }
%closure.2 = type { %"1.core::option::Option<i32>" }
%"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" = type { %closure.1 }
%"2.std::sys::stack_overflow::Handler" = type { i8*, i8 }
@const4376 = internal unnamed_addr constant i8 29, align 1
@const4377 = internal unnamed_addr constant i64 2097865012304223517, align 8
@const4396 = internal unnamed_addr constant i64 1, align 8
@const4397 = internal unnamed_addr constant i8 1, align 1
@_ZN4sync6atomic5fence14_MSG_FILE_LINE20h9e0bce6065acf43cSdLE = external global { %str_slice, %str_slice, i32 }
@const4417 = internal unnamed_addr constant i8 2, align 1
@const4479 = internal unnamed_addr constant i64 0, align 8
@const4480 = internal unnamed_addr constant i8* inttoptr (i64 1 to i8*), align 8
@const4599 = internal unnamed_addr constant i8* null, align 8
@const4618 = internal unnamed_addr constant %"1.core::marker::PhantomData<&'static mut u8>" zeroinitializer, align 1
@str4644 = internal constant [31 x i8] c"arithmetic operation overflowed"
@str4646 = internal constant [26 x i8] c"../src/liballoc/raw_vec.rs"
@panic_loc4647 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @str4644, i32 0, i32 0), i64 31 }, %str_slice { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @str4646, i32 0, i32 0), i64 26 }, i32 565 }, align 8
@ref4667 = internal unnamed_addr constant i32 0, align 4
@const4668 = internal unnamed_addr constant i32* @ref4667, align 8
@const4678 = internal unnamed_addr constant { { i8*, i8* } } zeroinitializer, align 8
@_ZN3sys5mutex5Mutex7destroy15__STATIC_FMTSTR20hb7403b0de171f7deLawE = external global { %str_slice*, i64 }
@const4680 = internal unnamed_addr constant i8 (i32**, %"1.core::fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt21h13815583691212233211E", align 8
@_ZN3sys5mutex5Mutex7destroy10_FILE_LINE20hdceb746dfe68fc84kbwE = external global { %str_slice, i32 }
@_ZN6result13unwrap_failed15__STATIC_FMTSTR20hf92ae00c19516543Q5OE = external global { %str_slice*, i64 }
@const4726 = internal unnamed_addr constant i8 (%str_slice*, %"1.core::fmt::Formatter"*)* @"_ZN3fmt25_$RF$$u27$a$u20$T.Display3fmt20h1949050574023800080E", align 8
@const4746 = internal unnamed_addr constant i8 (%"2.std::io::error::Error"*, %"1.core::fmt::Formatter"*)* @_ZN2io5error24Error...core..fmt..Debug3fmt20h60fd01dad14aa91fkhgE, align 8
@_ZN6result13unwrap_failed10_FILE_LINE20h4a56c969ed2d4d85A5OE = external global { %str_slice, i32 }
@str4747 = internal constant [43 x i8] c"called `Result::unwrap()` on an `Err` value"
@const4748 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str4747, i32 0, i32 0), i64 43 }, align 8
@const4791 = internal unnamed_addr constant i8 0, align 1
@const4794 = internal unnamed_addr constant i64 -9223372036854775808, align 8
@const4795 = internal unnamed_addr constant i64 9223372036854775807, align 8
@const4806 = internal unnamed_addr constant {}* inttoptr (i64 1 to {}*), align 8
@const4823 = internal unnamed_addr constant { { i64 } } { { i64 } { i64 1 } }, align 8
@const4830 = internal unnamed_addr constant %"1.core::marker::PhantomData<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" zeroinitializer, align 1
@const4848 = internal unnamed_addr constant { { i64, [24 x i8] } } { { i64, [24 x i8] } { i64 0, [24 x i8] undef } }, align 8
@const4855 = internal unnamed_addr constant { i32, [4 x i8] } { i32 0, [4 x i8] undef }, align 4
@"_ZN6option15Option$LT$T$GT$6unwrap14_MSG_FILE_LINE20h9e0bce6065acf43cknOE" = external global { %str_slice, %str_slice, i32 }
@const4968 = internal unnamed_addr constant { { {}, i8* } } zeroinitializer, align 8
@const4969 = internal unnamed_addr constant void (i8*)* @_ZN10sys_common6unwind3try6try_fn20h4135255088861083478E, align 8
@const5014 = internal unnamed_addr constant i8* (i8*)* @_ZN3sys6thread6Thread3new12thread_start20h6675635106069454745E, align 8
@const5021 = internal unnamed_addr constant i32 2, align 4
@const5022 = internal unnamed_addr constant %closure zeroinitializer, align 1
@const5026 = internal unnamed_addr constant { i64, [16 x i8] } { i64 0, [16 x i8] undef }, align 8
@const5027 = internal unnamed_addr constant { i64, [24 x i8] } { i64 0, [24 x i8] undef }, align 8
@_ZN4main15__STATIC_FMTSTR20h8a1bdb3cb755457aEaaE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref5034, i32 0, i32 0), i64 2 }, align 8
@const5031 = internal unnamed_addr constant i8 (i32*, %"1.core::fmt::Formatter"*)* @_ZN3fmt3num16i32.fmt..Display3fmt20hc117e0f17c173be6gIVE, align 8
@str5032 = internal constant [0 x i8] zeroinitializer
@str5033 = internal constant [1 x i8] c"\0A"
@ref5034 = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str5032, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str5033, i32 0, i32 0), i64 1 }], align 8
; Function Attrs: uwtable
define internal void @_ZN4main20h789cd5288c0f40dafaaE() unnamed_addr #0 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%dropflag_hint_10 = alloca i8
%x = alloca %"2.std::thread::JoinHandle<i32>"
%0 = alloca %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"
%arg = alloca %"2.std::thread::JoinHandle<i32>"
%1 = alloca { i8*, i32 }
%__llmatch = alloca i32*
%e = alloca i32
%2 = alloca %"1.core::fmt::Arguments"
%3 = alloca { %str_slice*, i64 }
%4 = alloca [1 x %"1.core::fmt::ArgumentV1"]
%5 = alloca { i32* }
%match = alloca { i32* }
%6 = bitcast { i32* }* %match to i8*
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 8, i32 8, i1 false)
%__llmatch4 = alloca i32**
%__arg0 = alloca i32*
%__coerce_target = alloca { %"1.core::fmt::ArgumentV1"*, i64 }
store i8 61, i8* %dropflag_hint_10
call void @_ZN6thread5spawn20h9708455906512300109E(%"2.std::thread::JoinHandle<i32>"* noalias nocapture sret dereferenceable(40) %x, %closure undef)
%7 = bitcast %"2.std::thread::JoinHandle<i32>"* %x to i8*
%8 = bitcast %"2.std::thread::JoinHandle<i32>"* %arg to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %8, i8* %7, i64 40, i32 8, i1 false)
%9 = bitcast %"2.std::thread::JoinHandle<i32>"* %x to i8*
call void @llvm.memset.p0i8.i64(i8* %9, i8 29, i64 40, i32 8, i1 false)
invoke void @"_ZN6thread19JoinHandle$LT$T$GT$4join21h17144207033677885488E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24) %0, %"2.std::thread::JoinHandle<i32>"* noalias nocapture dereferenceable(40) %arg)
to label %normal-return unwind label %unwind_ast_7_
normal-return: ; preds = %entry-block
%10 = getelementptr inbounds %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>", %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0
%11 = load i8, i8* %10, !range !0
switch i8 %11, label %match_else [
i8 0, label %match_case
i8 1, label %match_case2
]
unwind_ast_7_: ; preds = %entry-block
%12 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %12, { i8*, i32 }* %1
br label %clean_ast_7_
resume: ; preds = %clean_ast_7_
%13 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %13
clean_ast_7_: ; preds = %clean_ast_7_7, %unwind_ast_7_
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.432517h7f68f48c9da6347cE"(%"2.std::thread::JoinHandle<i32>"* %x)
br label %resume
case_body: ; preds = %match_case
%14 = load i32*, i32** %__llmatch
%15 = load i32, i32* %14, align 4
store i32 %15, i32* %e, align 4
%16 = bitcast { %str_slice*, i64 }* %3 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %16, i8* bitcast ({ %str_slice*, i64 }* @_ZN4main15__STATIC_FMTSTR20h8a1bdb3cb755457aEaaE to i8*), i64 16, i32 8, i1 false)
%17 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %3, i32 0, i32 0
%18 = load %str_slice*, %str_slice** %17
%19 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %3, i32 0, i32 1
%20 = load i64, i64* %19
%21 = getelementptr inbounds { i32* }, { i32* }* %5, i32 0, i32 0
store i32* %e, i32** %21, align 8
%22 = bitcast { i32* }* %5 to i64*
%23 = load i64, i64* %22, align 8
%24 = bitcast { i32* }* %match to i64*
store i64 %23, i64* %24, align 8
%25 = getelementptr inbounds { i32* }, { i32* }* %match, i32 0, i32 0
store i32** %25, i32*** %__llmatch4
br label %case_body3
case_body1: ; preds = %match_case2
br label %join10
match_else: ; preds = %normal-return
unreachable
match_case: ; preds = %normal-return
%26 = bitcast %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, i32 }*
%27 = getelementptr inbounds { i8, i32 }, { i8, i32 }* %26, i32 0, i32 1
store i32* %27, i32** %__llmatch
br label %case_body
match_case2: ; preds = %normal-return
%28 = bitcast %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, { i8*, void (i8*)** } }*
%29 = getelementptr inbounds { i8, { i8*, void (i8*)** } }, { i8, { i8*, void (i8*)** } }* %28, i32 0, i32 1
br label %case_body1
case_body3: ; preds = %case_body
%30 = load i32**, i32*** %__llmatch4
%31 = load i32*, i32** %30, align 8, !nonnull !1
store i32* %31, i32** %__arg0, align 8
%32 = getelementptr inbounds [1 x %"1.core::fmt::ArgumentV1"], [1 x %"1.core::fmt::ArgumentV1"]* %4, i32 0, i32 0
%33 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %32, i32 0
%34 = load i32*, i32** %__arg0, align 8, !nonnull !1
invoke void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new21h18080889046923876904E"(%"1.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16) %33, i32* noalias readonly dereferenceable(4) %34, i8 (i32*, %"1.core::fmt::Formatter"*)* @_ZN3fmt3num16i32.fmt..Display3fmt20hc117e0f17c173be6gIVE)
to label %normal-return5 unwind label %unwind_ast_7_6
normal-return5: ; preds = %case_body3
br label %join
unwind_ast_7_6: ; preds = %normal-return8, %join, %case_body3
%35 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %35, { i8*, i32 }* %1
br label %clean_ast_7_7
clean_ast_7_7: ; preds = %unwind_ast_7_6
call void @"_ZN109core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.471617h59b33c617b2df913E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0)
br label %clean_ast_7_
join: ; preds = %normal-return5
%36 = bitcast [1 x %"1.core::fmt::ArgumentV1"]* %4 to %"1.core::fmt::ArgumentV1"*
%37 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0
store %"1.core::fmt::ArgumentV1"* %36, %"1.core::fmt::ArgumentV1"** %37
%38 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1
store i64 1, i64* %38
%39 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0
%40 = load %"1.core::fmt::ArgumentV1"*, %"1.core::fmt::ArgumentV1"** %39
%41 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1
%42 = load i64, i64* %41
invoke void @"_ZN3fmt23Arguments$LT$$u27$a$GT$6new_v120he832f0357fe73cd4nLWE"(%"1.core::fmt::Arguments"* noalias nocapture sret dereferenceable(48) %2, %str_slice* noalias nonnull readonly %18, i64 %20, %"1.core::fmt::ArgumentV1"* noalias nonnull readonly %40, i64 %42)
to label %normal-return8 unwind label %unwind_ast_7_6
normal-return8: ; preds = %join
invoke void @_ZN2io5stdio6_print20h9c517a1f8695e043RghE(%"1.core::fmt::Arguments"* noalias nocapture dereferenceable(48) %2)
to label %normal-return9 unwind label %unwind_ast_7_6
normal-return9: ; preds = %normal-return8
br label %join10
join10: ; preds = %case_body1, %normal-return9
call void @"_ZN109core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.471617h59b33c617b2df913E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0)
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.432517h7f68f48c9da6347cE"(%"2.std::thread::JoinHandle<i32>"* %x)
ret void
}
; Function Attrs: uwtable
define internal void @_ZN6thread5spawn20h9708455906512300109E(%"2.std::thread::JoinHandle<i32>"* noalias nocapture sret dereferenceable(40), %closure) unnamed_addr #0 {
entry-block:
%f = alloca %closure
%2 = alloca %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"
%3 = alloca %"2.std::thread::Builder"
call void @_ZN6thread7Builder3new20hd61460f72f72a351ezbE(%"2.std::thread::Builder"* noalias nocapture sret dereferenceable(40) %3)
call void @_ZN6thread7Builder5spawn21h10742646647574140955E(%"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* noalias nocapture sret dereferenceable(48) %2, %"2.std::thread::Builder"* noalias nocapture dereferenceable(40) %3, %closure undef)
call void @"_ZN6result24Result$LT$T$C$$u20$E$GT$6unwrap20h9085768988248029081E"(%"2.std::thread::JoinHandle<i32>"* noalias nocapture sret dereferenceable(40) %0, %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* noalias nocapture dereferenceable(48) %2)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN6result24Result$LT$T$C$$u20$E$GT$6unwrap20h9085768988248029081E"(%"2.std::thread::JoinHandle<i32>"* noalias nocapture sret dereferenceable(40), %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* noalias nocapture dereferenceable(48) %self) unnamed_addr #1 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%t = alloca %"2.std::thread::JoinHandle<i32>"*
%e = alloca %"2.std::io::error::Error"*
%arg = alloca %"2.std::io::error::Error"
%1 = alloca { i8*, i32 }
%2 = getelementptr inbounds %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>", %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %self, i32 0, i32 0
%3 = load i64, i64* %2, !range !2
switch i64 %3, label %match_else [
i64 0, label %match_case
i64 1, label %match_case2
]
case_body: ; preds = %match_case
%4 = load %"2.std::thread::JoinHandle<i32>"*, %"2.std::thread::JoinHandle<i32>"** %t
%5 = bitcast %"2.std::thread::JoinHandle<i32>"* %4 to i8*
%6 = bitcast %"2.std::thread::JoinHandle<i32>"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %6, i8* %5, i64 40, i32 8, i1 false)
%7 = bitcast %"2.std::thread::JoinHandle<i32>"* %4 to i8*
call void @llvm.memset.p0i8.i64(i8* %7, i8 29, i64 40, i32 8, i1 false)
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.432517h7f68f48c9da6347cE"(%"2.std::thread::JoinHandle<i32>"* %4)
%8 = bitcast %"2.std::thread::JoinHandle<i32>"* %4 to i8*
call void @llvm.memset.p0i8.i64(i8* %8, i8 29, i64 40, i32 8, i1 false)
br label %join
case_body1: ; preds = %match_case2
%9 = load %"2.std::io::error::Error"*, %"2.std::io::error::Error"** %e
%10 = load i8*, i8** getelementptr inbounds (%str_slice, %str_slice* @const4748, i32 0, i32 0)
%11 = load i64, i64* getelementptr inbounds (%str_slice, %str_slice* @const4748, i32 0, i32 1)
%12 = bitcast %"2.std::io::error::Error"* %9 to i8*
%13 = bitcast %"2.std::io::error::Error"* %arg to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %13, i8* %12, i64 16, i32 8, i1 false)
%14 = bitcast %"2.std::io::error::Error"* %9 to i8*
call void @llvm.memset.p0i8.i64(i8* %14, i8 29, i64 16, i32 8, i1 false)
invoke void @_ZN6result13unwrap_failed20h1876135566383573108E(i8* noalias nonnull readonly %10, i64 %11, %"2.std::io::error::Error"* noalias nocapture dereferenceable(16) %arg)
to label %normal-return unwind label %unwind_custom_
match_else: ; preds = %entry-block
unreachable
match_case: ; preds = %entry-block
%15 = bitcast %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %self to { i64, %"2.std::thread::JoinHandle<i32>" }*
%16 = getelementptr inbounds { i64, %"2.std::thread::JoinHandle<i32>" }, { i64, %"2.std::thread::JoinHandle<i32>" }* %15, i32 0, i32 1
store %"2.std::thread::JoinHandle<i32>"* %16, %"2.std::thread::JoinHandle<i32>"** %t
br label %case_body
match_case2: ; preds = %entry-block
%17 = bitcast %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %self to { i64, %"2.std::io::error::Error" }*
%18 = getelementptr inbounds { i64, %"2.std::io::error::Error" }, { i64, %"2.std::io::error::Error" }* %17, i32 0, i32 1
store %"2.std::io::error::Error"* %18, %"2.std::io::error::Error"** %e
br label %case_body1
normal-return: ; preds = %case_body1
unreachable
unwind_custom_: ; preds = %case_body1
%19 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %19, { i8*, i32 }* %1
br label %clean_custom_3
resume: ; preds = %clean_custom_
%20 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %20
clean_custom_: ; preds = %clean_custom_3
call void @"_ZN91core..result..Result$LT$std..thread..JoinHandle$LT$i32$GT$$C$$u20$std..io..error..Error$GT$9drop.475017hc4174e44d68d042eE"(%"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %self)
br label %resume
clean_custom_3: ; preds = %unwind_custom_
call void @_ZN21std..io..error..Error9drop.472817hb777fe86563aa27aE(%"2.std::io::error::Error"* %9)
%21 = bitcast %"2.std::io::error::Error"* %9 to i8*
call void @llvm.memset.p0i8.i64(i8* %21, i8 29, i64 16, i32 8, i1 false)
br label %clean_custom_
join: ; preds = %case_body
call void @"_ZN91core..result..Result$LT$std..thread..JoinHandle$LT$i32$GT$$C$$u20$std..io..error..Error$GT$9drop.475017hc4174e44d68d042eE"(%"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %self)
ret void
}
; Function Attrs: argmemonly nounwind
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1) #2
; Function Attrs: argmemonly nounwind
declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) #2
define internal void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.432517h7f68f48c9da6347cE"(%"2.std::thread::JoinHandle<i32>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"2.std::thread::JoinHandle<i32>", %"2.std::thread::JoinHandle<i32>"* %0, i32 0, i32 0
call void @"_ZN33std..thread..JoinInner$LT$i32$GT$9drop.432817h53b2419658d037c6E"(%"2.std::thread::JoinInner<i32>"* %1)
ret void
}
define internal void @"_ZN33std..thread..JoinInner$LT$i32$GT$9drop.432817h53b2419658d037c6E"(%"2.std::thread::JoinInner<i32>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"2.std::thread::JoinInner<i32>", %"2.std::thread::JoinInner<i32>"* %0, i32 0, i32 0
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.433117h39fed133f93a1204E"(%"1.core::option::Option<std::sys::thread::Thread>"* %1)
%2 = getelementptr inbounds %"2.std::thread::JoinInner<i32>", %"2.std::thread::JoinInner<i32>"* %0, i32 0, i32 1
call void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"* %2)
%3 = getelementptr inbounds %"2.std::thread::JoinInner<i32>", %"2.std::thread::JoinInner<i32>"* %0, i32 0, i32 2
call void @"_ZN30std..thread..Packet$LT$i32$GT$9drop.470417h235834151b0d3859E"(%"2.std::thread::Packet<i32>"* %3)
ret void
}
define internal void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.433117h39fed133f93a1204E"(%"1.core::option::Option<std::sys::thread::Thread>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"1.core::option::Option<std::sys::thread::Thread>", %"1.core::option::Option<std::sys::thread::Thread>"* %0, i32 0, i32 0
%2 = load i64, i64* %1
switch i64 %2, label %enum-iter-ret-void [
i64 0, label %enum-iter-variant-0
i64 1, label %enum-iter-variant-1
]
enum-iter-ret-void: ; preds = %entry-block
ret void
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0
ret void
enum-iter-variant-0: ; preds = %entry-block
br label %enum-iter-next
enum-iter-variant-1: ; preds = %entry-block
%3 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %0 to { i64, %"2.std::sys::thread::Thread" }*
%4 = getelementptr inbounds { i64, %"2.std::sys::thread::Thread" }, { i64, %"2.std::sys::thread::Thread" }* %3, i32 0, i32 1
call void @_ZN24std..sys..thread..Thread9drop.433417hcbc9fc29160ac810E(%"2.std::sys::thread::Thread"* %4)
br label %enum-iter-next
}
define internal void @_ZN24std..sys..thread..Thread9drop.433417hcbc9fc29160ac810E(%"2.std::sys::thread::Thread"*) unnamed_addr personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%1 = alloca { i8*, i32 }
%2 = getelementptr inbounds %"2.std::sys::thread::Thread", %"2.std::sys::thread::Thread"* %0, i32 0, i32 1
%3 = load i8, i8* %2, align 1
%4 = icmp ne i8 %3, -44
%5 = icmp ne i8 %3, 29
%6 = and i1 %4, %5
br i1 %6, label %cond, label %next
next: ; preds = %cond, %entry-block
%7 = icmp eq i8 %3, -44
br i1 %7, label %cond2, label %next1
cond: ; preds = %entry-block
call void @llvm.debugtrap()
br label %next
next1: ; preds = %normal-return, %next
ret void
cond2: ; preds = %next
invoke void @_ZN3sys6thread11Thread.Drop4drop20h2b66f79133f5602207xE(%"2.std::sys::thread::Thread"* dereferenceable(16) %0)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %cond2
call void @_ZN24std..sys..thread..Thread9drop.435117hcbc9fc29160ac810E(%"2.std::sys::thread::Thread"* %0)
br label %next1
unwind_custom_: ; preds = %cond2
%8 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %8, { i8*, i32 }* %1
br label %clean_custom_
resume: ; preds = %clean_custom_
%9 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %9
clean_custom_: ; preds = %unwind_custom_
call void @_ZN24std..sys..thread..Thread9drop.435117hcbc9fc29160ac810E(%"2.std::sys::thread::Thread"* %0)
br label %resume
}
; Function Attrs: nounwind
declare void @llvm.debugtrap() #3
declare void @_ZN3sys6thread11Thread.Drop4drop20h2b66f79133f5602207xE(%"2.std::sys::thread::Thread"* dereferenceable(16)) unnamed_addr
; Function Attrs: nounwind
declare i32 @rust_eh_personality(i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*) unnamed_addr #3
define internal void @_ZN24std..sys..thread..Thread9drop.435117hcbc9fc29160ac810E(%"2.std::sys::thread::Thread"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"2.std::sys::thread::Thread", %"2.std::sys::thread::Thread"* %0, i32 0, i32 0
ret void
}
define internal void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"2.std::thread::Thread", %"2.std::thread::Thread"* %0, i32 0, i32 0
call void @"_ZN41alloc..arc..Arc$LT$std..thread..Inner$GT$9drop.435717h3485f6880df67204E"(%"5.alloc::arc::Arc<std::thread::Inner>"* %1)
ret void
}
define internal void @"_ZN41alloc..arc..Arc$LT$std..thread..Inner$GT$9drop.435717h3485f6880df67204E"(%"5.alloc::arc::Arc<std::thread::Inner>"*) unnamed_addr personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%1 = alloca { i8*, i32 }
invoke void @"_ZN3arc17Arc$LT$T$GT$.Drop4drop21h16039937915765706980E"(%"5.alloc::arc::Arc<std::thread::Inner>"* dereferenceable(8) %0)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %entry-block
call void @"_ZN41alloc..arc..Arc$LT$std..thread..Inner$GT$9drop.470117h3485f6880df67204E"(%"5.alloc::arc::Arc<std::thread::Inner>"* %0)
ret void
unwind_custom_: ; preds = %entry-block
%2 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %2, { i8*, i32 }* %1
br label %clean_custom_
resume: ; preds = %clean_custom_
%3 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %3
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN41alloc..arc..Arc$LT$std..thread..Inner$GT$9drop.470117h3485f6880df67204E"(%"5.alloc::arc::Arc<std::thread::Inner>"* %0)
br label %resume
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN3arc17Arc$LT$T$GT$.Drop4drop21h16039937915765706980E"(%"5.alloc::arc::Arc<std::thread::Inner>"* dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"5.alloc::arc::Arc<std::thread::Inner>"*
%thin = alloca {}*
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"**
%1 = alloca i64
%2 = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"*
%auto_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"*
%3 = bitcast %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref to i8*
call void @llvm.memset.p0i8.i64(i8* %3, i8 29, i64 8, i32 8, i1 false)
store %"5.alloc::arc::Arc<std::thread::Inner>"* %0, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8
%4 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1
%5 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %4, i32 0, i32 0
%6 = call dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref20h3527880663500656115E"(%"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8) %5)
store %"5.alloc::arc::ArcInner<std::thread::Inner>"** %6, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8
%7 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"**, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8, !nonnull !1
%8 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %7, align 8
%9 = bitcast %"5.alloc::arc::ArcInner<std::thread::Inner>"* %8 to {}*
store {}* %9, {}** %thin, align 8
%10 = load {}*, {}** %thin, align 8
%11 = ptrtoint {}* %10 to i64
%12 = icmp eq i64 %11, 2097865012304223517
br i1 %12, label %then-block-123-, label %next-block
then-block-123-: ; preds = %entry-block
br label %clean_ast_106_
clean_ast_106_: ; preds = %clean_ast_106_1, %then-block-123-
br label %return
next-block: ; preds = %entry-block
%13 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1
%14 = call dereferenceable(72) %"5.alloc::arc::ArcInner<std::thread::Inner>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h18288450237844670917E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8) %13)
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %14, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %2, align 8
%15 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %2, align 8, !nonnull !1
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %15, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8
%16 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8, !nonnull !1
%17 = getelementptr inbounds %"5.alloc::arc::ArcInner<std::thread::Inner>", %"5.alloc::arc::ArcInner<std::thread::Inner>"* %16, i32 0, i32 0
%18 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_sub20h8772de3cc84a5649T1KE(%"1.core::sync::atomic::AtomicUsize"* dereferenceable(8) %17, i64 1, i8 1)
store i64 %18, i64* %1, align 8
%19 = load i64, i64* %1, align 8
%20 = icmp ne i64 %19, 1
br i1 %20, label %then-block-136-, label %next-block2
then-block-136-: ; preds = %next-block
br label %clean_ast_106_1
clean_ast_106_1: ; preds = %then-block-136-
br label %clean_ast_106_
next-block2: ; preds = %next-block
call void @_ZN4sync6atomic5fence20hfb767f14e632fab6sdLE(i8 2)
%21 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1
call void @"_ZN3arc12Arc$LT$T$GT$9drop_slow20h1977331813102813224E"(%"5.alloc::arc::Arc<std::thread::Inner>"* dereferenceable(8) %21)
br label %return
return: ; preds = %next-block2, %clean_ast_106_
ret void
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref20h3527880663500656115E"(%"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"*
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"**
store %"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* %0, %"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"** %self, align 8
%1 = load %"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"*, %"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>", %"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* %1, i32 0, i32 0
%3 = call dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref21h14871923730271077745E"(%"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8) %2)
store %"5.alloc::arc::ArcInner<std::thread::Inner>"** %3, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8
%4 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"**, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8, !nonnull !1
ret %"5.alloc::arc::ArcInner<std::thread::Inner>"** %4
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref21h14871923730271077745E"(%"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"*
%inner = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"**
store %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"* %0, %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"** %self, align 8
%1 = load %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"*, %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>", %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"* %1, i32 0, i32 0
store %"5.alloc::arc::ArcInner<std::thread::Inner>"** %2, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %inner
%3 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"**, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %inner, align 8, !nonnull !1
ret %"5.alloc::arc::ArcInner<std::thread::Inner>"** %3
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN4sync6atomic11AtomicUsize9fetch_sub20h8772de3cc84a5649T1KE(%"1.core::sync::atomic::AtomicUsize"* dereferenceable(8), i64, i8) unnamed_addr #1 {
entry-block:
%self = alloca %"1.core::sync::atomic::AtomicUsize"*
%val = alloca i64
%order = alloca i8
%3 = alloca i64*
store %"1.core::sync::atomic::AtomicUsize"* %0, %"1.core::sync::atomic::AtomicUsize"** %self, align 8
store i64 %1, i64* %val, align 8
store i8 %2, i8* %order, align 1
%4 = load %"1.core::sync::atomic::AtomicUsize"*, %"1.core::sync::atomic::AtomicUsize"** %self, align 8, !nonnull !1
%5 = getelementptr inbounds %"1.core::sync::atomic::AtomicUsize", %"1.core::sync::atomic::AtomicUsize"* %4, i32 0, i32 0
%6 = call i64* @"_ZN4cell19UnsafeCell$LT$T$GT$3get21h10481443535072462739E"(%"1.core::cell::UnsafeCell<usize>"* dereferenceable(8) %5)
store i64* %6, i64** %3, align 8
%7 = load i64*, i64** %3, align 8
%8 = load i64, i64* %val, align 8
%9 = load i8, i8* %order, align 1
%10 = call i64 @_ZN4sync6atomic10atomic_sub21h11115807970469476791E(i64* %7, i64 %8, i8 %9)
ret i64 %10
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN4sync6atomic10atomic_sub21h11115807970469476791E(i64*, i64, i8) unnamed_addr #1 {
entry-block:
%sret_slot = alloca i64
%dst = alloca i64*
%val = alloca i64
%order = alloca i8
store i64* %0, i64** %dst, align 8
store i64 %1, i64* %val, align 8
store i8 %2, i8* %order, align 1
%3 = load i8, i8* %order, !range !3
switch i8 %3, label %match_else [
i8 2, label %match_case
i8 1, label %match_case5
i8 3, label %match_case6
i8 0, label %match_case7
i8 4, label %match_case8
]
case_body: ; preds = %match_case
%4 = load i64*, i64** %dst, align 8
%5 = load i64, i64* %val, align 8
%6 = atomicrmw sub i64* %4, i64 %5 acquire
store i64 %6, i64* %sret_slot, align 8
br label %join
case_body1: ; preds = %match_case5
%7 = load i64*, i64** %dst, align 8
%8 = load i64, i64* %val, align 8
%9 = atomicrmw sub i64* %7, i64 %8 release
store i64 %9, i64* %sret_slot, align 8
br label %join
case_body2: ; preds = %match_case6
%10 = load i64*, i64** %dst, align 8
%11 = load i64, i64* %val, align 8
%12 = atomicrmw sub i64* %10, i64 %11 acq_rel
store i64 %12, i64* %sret_slot, align 8
br label %join
case_body3: ; preds = %match_case7
%13 = load i64*, i64** %dst, align 8
%14 = load i64, i64* %val, align 8
%15 = atomicrmw sub i64* %13, i64 %14 monotonic
store i64 %15, i64* %sret_slot, align 8
br label %join
case_body4: ; preds = %match_case8
%16 = load i64*, i64** %dst, align 8
%17 = load i64, i64* %val, align 8
%18 = atomicrmw sub i64* %16, i64 %17 seq_cst
store i64 %18, i64* %sret_slot, align 8
br label %join
match_else: ; preds = %entry-block
unreachable
match_case: ; preds = %entry-block
br label %case_body
match_case5: ; preds = %entry-block
br label %case_body1
match_case6: ; preds = %entry-block
br label %case_body2
match_case7: ; preds = %entry-block
br label %case_body3
match_case8: ; preds = %entry-block
br label %case_body4
join: ; preds = %case_body4, %case_body3, %case_body2, %case_body1, %case_body
%19 = load i64, i64* %sret_slot, align 8
ret i64 %19
}
; Function Attrs: inlinehint uwtable
define internal i64* @"_ZN4cell19UnsafeCell$LT$T$GT$3get21h10481443535072462739E"(%"1.core::cell::UnsafeCell<usize>"* dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"1.core::cell::UnsafeCell<usize>"*
store %"1.core::cell::UnsafeCell<usize>"* %0, %"1.core::cell::UnsafeCell<usize>"** %self, align 8
%1 = load %"1.core::cell::UnsafeCell<usize>"*, %"1.core::cell::UnsafeCell<usize>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"1.core::cell::UnsafeCell<usize>", %"1.core::cell::UnsafeCell<usize>"* %1, i32 0, i32 0
ret i64* %2
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(72) %"5.alloc::arc::ArcInner<std::thread::Inner>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h18288450237844670917E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"5.alloc::arc::Arc<std::thread::Inner>"*
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"**
store %"5.alloc::arc::Arc<std::thread::Inner>"* %0, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8
%1 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %1, i32 0, i32 0
%3 = call dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref20h3527880663500656115E"(%"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8) %2)
store %"5.alloc::arc::ArcInner<std::thread::Inner>"** %3, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8
%4 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"**, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8, !nonnull !1
%5 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %4, align 8
ret %"5.alloc::arc::ArcInner<std::thread::Inner>"* %5
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN4sync6atomic5fence20hfb767f14e632fab6sdLE(i8) unnamed_addr #1 {
entry-block:
%order = alloca i8
store i8 %0, i8* %order, align 1
%1 = load i8, i8* %order, !range !3
switch i8 %1, label %match_else [
i8 2, label %match_case
i8 1, label %match_case5
i8 3, label %match_case6
i8 4, label %match_case7
i8 0, label %match_case8
]
case_body: ; preds = %match_case
fence acquire
br label %join
case_body1: ; preds = %match_case5
fence release
br label %join
case_body2: ; preds = %match_case6
fence acq_rel
br label %join
case_body3: ; preds = %match_case7
fence seq_cst
br label %join
case_body4: ; preds = %match_case8
call void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @_ZN4sync6atomic5fence14_MSG_FILE_LINE20h9e0bce6065acf43cSdLE)
unreachable
match_else: ; preds = %entry-block
unreachable
match_case: ; preds = %entry-block
br label %case_body
match_case5: ; preds = %entry-block
br label %case_body1
match_case6: ; preds = %entry-block
br label %case_body2
match_case7: ; preds = %entry-block
br label %case_body3
match_case8: ; preds = %entry-block
br label %case_body4
join: ; preds = %case_body3, %case_body2, %case_body1, %case_body
ret void
}
; Function Attrs: cold noinline noreturn
declare void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40)) unnamed_addr #4
; Function Attrs: noinline uwtable
define internal void @"_ZN3arc12Arc$LT$T$GT$9drop_slow20h1977331813102813224E"(%"5.alloc::arc::Arc<std::thread::Inner>"* dereferenceable(8)) unnamed_addr #5 {
entry-block:
%self = alloca %"5.alloc::arc::Arc<std::thread::Inner>"*
%ptr = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"*
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"**
%1 = alloca i64
%2 = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"*
%auto_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"*
%3 = bitcast %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref to i8*
call void @llvm.memset.p0i8.i64(i8* %3, i8 29, i64 8, i32 8, i1 false)
%4 = alloca i64
%5 = alloca i64
store %"5.alloc::arc::Arc<std::thread::Inner>"* %0, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8
%6 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1
%7 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %6, i32 0, i32 0
%8 = call dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref20h3527880663500656115E"(%"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8) %7)
store %"5.alloc::arc::ArcInner<std::thread::Inner>"** %8, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8
%9 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"**, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8, !nonnull !1
%10 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %9, align 8
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %10, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %ptr, align 8
%11 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %ptr, align 8
%12 = getelementptr inbounds %"5.alloc::arc::ArcInner<std::thread::Inner>", %"5.alloc::arc::ArcInner<std::thread::Inner>"* %11, i32 0, i32 2
call void @_ZN18std..thread..Inner9drop.443717he8f8771f8d3004a2E(%"2.std::thread::Inner"* %12)
%13 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1
%14 = call dereferenceable(72) %"5.alloc::arc::ArcInner<std::thread::Inner>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h18288450237844670917E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8) %13)
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %14, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %2, align 8
%15 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %2, align 8, !nonnull !1
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %15, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8
%16 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8, !nonnull !1
%17 = getelementptr inbounds %"5.alloc::arc::ArcInner<std::thread::Inner>", %"5.alloc::arc::ArcInner<std::thread::Inner>"* %16, i32 0, i32 1
%18 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_sub20h8772de3cc84a5649T1KE(%"1.core::sync::atomic::AtomicUsize"* dereferenceable(8) %17, i64 1, i8 1)
store i64 %18, i64* %1, align 8
%19 = load i64, i64* %1, align 8
%20 = icmp eq i64 %19, 1
br i1 %20, label %then-block-503-, label %next-block
then-block-503-: ; preds = %entry-block
call void @_ZN4sync6atomic5fence20hfb767f14e632fab6sdLE(i8 2)
%21 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %ptr, align 8
%22 = bitcast %"5.alloc::arc::ArcInner<std::thread::Inner>"* %21 to i8*
%23 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %ptr, align 8
%24 = call i64 @_ZN3mem11size_of_val20h5634690238456108449E(%"5.alloc::arc::ArcInner<std::thread::Inner>"* dereferenceable(72) %23)
store i64 %24, i64* %4, align 8
%25 = load i64, i64* %4, align 8
%26 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %ptr, align 8
%27 = call i64 @_ZN3mem12align_of_val20h9868654142309481359E(%"5.alloc::arc::ArcInner<std::thread::Inner>"* dereferenceable(72) %26)
store i64 %27, i64* %5, align 8
%28 = load i64, i64* %5, align 8
call void @_ZN4heap10deallocate20hb6b00bc54f0213287eaE(i8* %22, i64 %25, i64 %28)
br label %next-block
next-block: ; preds = %entry-block, %then-block-503-
ret void
}
define internal void @_ZN18std..thread..Inner9drop.443717he8f8771f8d3004a2E(%"2.std::thread::Inner"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"2.std::thread::Inner", %"2.std::thread::Inner"* %0, i32 0, i32 0
call void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.444017he0121e2e024daed1E"(%"1.core::option::Option<collections::string::String>"* %1)
%2 = getelementptr inbounds %"2.std::thread::Inner", %"2.std::thread::Inner"* %0, i32 0, i32 1
call void @"_ZN35std..sync..mutex..Mutex$LT$bool$GT$9drop.465717h1416a2e66c6d4d99E"(%"2.std::sync::mutex::Mutex<bool>"* %2)
%3 = getelementptr inbounds %"2.std::thread::Inner", %"2.std::thread::Inner"* %0, i32 0, i32 2
call void @_ZN27std..sync..condvar..Condvar9drop.468817h91d50e4f9124550bE(%"2.std::sync::condvar::Condvar"* %3)
ret void
}
define internal void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.444017he0121e2e024daed1E"(%"1.core::option::Option<collections::string::String>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"1.core::option::Option<collections::string::String>", %"1.core::option::Option<collections::string::String>"* %0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0
%2 = load i8*, i8** %1
%3 = icmp ne i8* %2, null
switch i1 %3, label %enum-iter-ret-void [
i1 false, label %enum-iter-variant-0
i1 true, label %enum-iter-variant-1
]
enum-iter-ret-void: ; preds = %entry-block
ret void
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0
ret void
enum-iter-variant-0: ; preds = %entry-block
br label %enum-iter-next
enum-iter-variant-1: ; preds = %entry-block
%4 = getelementptr inbounds %"1.core::option::Option<collections::string::String>", %"1.core::option::Option<collections::string::String>"* %0, i32 0, i32 0
call void @_ZN27collections..string..String9drop.444317h3bf5ae538aa88112E(%"3.collections::string::String"* %4)
br label %enum-iter-next
}
define internal void @_ZN27collections..string..String9drop.444317h3bf5ae538aa88112E(%"3.collections::string::String"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"3.collections::string::String", %"3.collections::string::String"* %0, i32 0, i32 0
call void @"_ZN31collections..vec..Vec$LT$u8$GT$9drop.444617h14454e5f3598600cE"(%"3.collections::vec::Vec<u8>"* %1)
ret void
}
define internal void @"_ZN31collections..vec..Vec$LT$u8$GT$9drop.444617h14454e5f3598600cE"(%"3.collections::vec::Vec<u8>"*) unnamed_addr personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%1 = alloca { i8*, i32 }
invoke void @"_ZN3vec17Vec$LT$T$GT$.Drop4drop21h13964674616635877281E"(%"3.collections::vec::Vec<u8>"* dereferenceable(24) %0)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %entry-block
call void @"_ZN31collections..vec..Vec$LT$u8$GT$9drop.463217h14454e5f3598600cE"(%"3.collections::vec::Vec<u8>"* %0)
ret void
unwind_custom_: ; preds = %entry-block
%2 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %2, { i8*, i32 }* %1
br label %clean_custom_
resume: ; preds = %clean_custom_
%3 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %3
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN31collections..vec..Vec$LT$u8$GT$9drop.463217h14454e5f3598600cE"(%"3.collections::vec::Vec<u8>"* %0)
br label %resume
}
; Function Attrs: uwtable
define internal void @"_ZN3vec17Vec$LT$T$GT$.Drop4drop21h13964674616635877281E"(%"3.collections::vec::Vec<u8>"* dereferenceable(24)) unnamed_addr #0 {
entry-block:
%self = alloca %"3.collections::vec::Vec<u8>"*
%1 = alloca i8
%2 = alloca i8
%_result = alloca {}
%3 = alloca %"1.core::slice::IterMut<u8>"
%4 = alloca %"1.core::slice::IterMut<u8>"
%overloaded_deref = alloca { i8*, i64 }
%iter = alloca %"1.core::slice::IterMut<u8>"*
%5 = alloca i8*
%match = alloca i8*
%6 = bitcast i8** %match to i8*
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 8, i32 8, i1 false)
%x = alloca i8**
store %"3.collections::vec::Vec<u8>"* %0, %"3.collections::vec::Vec<u8>"** %self, align 8
%7 = load %"3.collections::vec::Vec<u8>"*, %"3.collections::vec::Vec<u8>"** %self, align 8, !nonnull !1
%8 = getelementptr inbounds %"3.collections::vec::Vec<u8>", %"3.collections::vec::Vec<u8>"* %7, i32 0, i32 0
%9 = call zeroext i1 @"_ZN7raw_vec15RawVec$LT$T$GT$30unsafe_no_drop_flag_needs_drop21h15024409836838868505E"(%"5.alloc::raw_vec::RawVec<u8>"* noalias readonly dereferenceable(16) %8)
%10 = zext i1 %9 to i8
store i8 %10, i8* %1, align 1
%11 = load i8, i8* %1, align 1, !range !0
%12 = trunc i8 %11 to i1
br i1 %12, label %then-block-543-, label %next-block5
then-block-543-: ; preds = %entry-block
store i8 0, i8* %2, align 1
%13 = load i8, i8* %2, align 1, !range !0
%14 = trunc i8 %13 to i1
br i1 %14, label %then-block-550-, label %next-block
then-block-550-: ; preds = %then-block-543-
%15 = load %"3.collections::vec::Vec<u8>"*, %"3.collections::vec::Vec<u8>"** %self, align 8, !nonnull !1
%16 = call { i8*, i64 } @"_ZN3vec26Vec$LT$T$GT$.ops..DerefMut9deref_mut20h9616926189477611975E"(%"3.collections::vec::Vec<u8>"* dereferenceable(24) %15)
%17 = extractvalue { i8*, i64 } %16, 0
%18 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %overloaded_deref, i32 0, i32 0
store i8* %17, i8** %18
%19 = extractvalue { i8*, i64 } %16, 1
%20 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %overloaded_deref, i32 0, i32 1
store i64 %19, i64* %20
%21 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %overloaded_deref, i32 0, i32 0
%22 = load i8*, i8** %21
%23 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %overloaded_deref, i32 0, i32 1
%24 = load i64, i64* %23
call void @"_ZN5slice12_$u5b$T$u5d$8iter_mut20h5556108270792489116E"(%"1.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16) %4, i8* nonnull %22, i64 %24)
call void @_ZN4iter14I.IntoIterator9into_iter21h17646240830877900482E(%"1.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16) %3, %"1.core::slice::IterMut<u8>"* noalias nocapture dereferenceable(16) %4)
store %"1.core::slice::IterMut<u8>"* %3, %"1.core::slice::IterMut<u8>"** %iter
br label %case_body
case_body: ; preds = %then-block-550-
%25 = load %"1.core::slice::IterMut<u8>"*, %"1.core::slice::IterMut<u8>"** %iter
br label %loop_body
loop_exit: ; preds = %clean_ast_8179_
br label %join4
loop_body: ; preds = %join, %case_body
%26 = call i8* @"_ZN5slice39IterMut$LT$$u27$a$C$$u20$T$GT$.Iterator4next20h2760443638291090962E"(%"1.core::slice::IterMut<u8>"* dereferenceable(16) %25)
store i8* %26, i8** %5, align 8
%27 = load i8*, i8** %5, align 8
store i8* %27, i8** %match, align 8
%28 = load i8*, i8** %match
%29 = icmp ne i8* %28, null
switch i1 %29, label %match_else [
i1 true, label %match_case
i1 false, label %match_case3
]
case_body1: ; preds = %match_case
%30 = load i8**, i8*** %x
%31 = load i8*, i8** %30, align 8, !nonnull !1
br label %join
case_body2: ; preds = %match_case3
br label %clean_ast_8179_
match_else: ; preds = %loop_body
unreachable
match_case: ; preds = %loop_body
store i8** %match, i8*** %x
br label %case_body1
match_case3: ; preds = %loop_body
br label %case_body2
clean_ast_8179_: ; preds = %case_body2
br label %loop_exit
join: ; preds = %case_body1
br label %loop_body
join4: ; preds = %loop_exit
br label %next-block
next-block: ; preds = %then-block-543-, %join4
br label %next-block5
next-block5: ; preds = %entry-block, %next-block
ret void
}
; Function Attrs: uwtable
define internal zeroext i1 @"_ZN7raw_vec15RawVec$LT$T$GT$30unsafe_no_drop_flag_needs_drop21h15024409836838868505E"(%"5.alloc::raw_vec::RawVec<u8>"* noalias readonly dereferenceable(16)) unnamed_addr #0 {
entry-block:
%self = alloca %"5.alloc::raw_vec::RawVec<u8>"*
store %"5.alloc::raw_vec::RawVec<u8>"* %0, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8
%1 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %1, i32 0, i32 1
%3 = load i64, i64* %2, align 8
%4 = icmp ne i64 %3, 2097865012304223517
%5 = zext i1 %4 to i8
%6 = trunc i8 %5 to i1
ret i1 %6
}
; Function Attrs: uwtable
define internal void @_ZN4iter14I.IntoIterator9into_iter21h17646240830877900482E(%"1.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16), %"1.core::slice::IterMut<u8>"* noalias nocapture dereferenceable(16) %self) unnamed_addr #0 {
entry-block:
%1 = bitcast %"1.core::slice::IterMut<u8>"* %self to i8*
%2 = bitcast %"1.core::slice::IterMut<u8>"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %2, i8* %1, i64 16, i32 8, i1 false)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN5slice12_$u5b$T$u5d$8iter_mut20h5556108270792489116E"(%"1.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16), i8* nonnull, i64) unnamed_addr #1 {
entry-block:
%self = alloca { i8*, i64 }
%3 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
store i8* %1, i8** %3
%4 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
store i64 %2, i64* %4
%5 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
%6 = load i8*, i8** %5
%7 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
%8 = load i64, i64* %7
call void @"_ZN5slice21_$u5b$T$u5d$.SliceExt8iter_mut20h1171788439959852010E"(%"1.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16) %0, i8* nonnull %6, i64 %8)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN5slice21_$u5b$T$u5d$.SliceExt8iter_mut20h1171788439959852010E"(%"1.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16), i8* nonnull, i64) unnamed_addr #1 {
entry-block:
%3 = alloca i8*
%self = alloca { i8*, i64 }
%p = alloca i8*
%4 = alloca i64
%p1 = alloca i8*
%5 = alloca i8
%ptr = alloca i8*
%6 = alloca i64
%7 = alloca i8*
%8 = alloca i64
%9 = alloca i64
%10 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
store i8* %1, i8** %10
%11 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
store i64 %2, i64* %11
%12 = call i64 @_ZN3mem7size_of20h8276612659399150484E()
store i64 %12, i64* %4, align 8
%13 = load i64, i64* %4, align 8
%14 = icmp eq i64 %13, 0
br i1 %14, label %then-block-8248-, label %else-block
then-block-8248-: ; preds = %entry-block
store i8* inttoptr (i64 1 to i8*), i8** %p, align 8
br label %join
else-block: ; preds = %entry-block
%15 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
%16 = load i8*, i8** %15
%17 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
%18 = load i64, i64* %17
%19 = call i8* @"_ZN5slice21_$u5b$T$u5d$.SliceExt10as_mut_ptr20h8543889870955801687E"(i8* nonnull %16, i64 %18)
store i8* %19, i8** %p1, align 8
%20 = load i8*, i8** %p1, align 8
%21 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null21h14484011124458446728E"(i8* %20)
%22 = zext i1 %21 to i8
store i8 %22, i8* %5, align 1
%23 = load i8, i8* %5, align 1, !range !0
%24 = trunc i8 %23 to i1
%25 = xor i1 %24, true
call void @llvm.assume(i1 %25)
%26 = load i8*, i8** %p1, align 8
store i8* %26, i8** %p, align 8
br label %join
join: ; preds = %else-block, %then-block-8248-
%27 = getelementptr inbounds %"1.core::slice::IterMut<u8>", %"1.core::slice::IterMut<u8>"* %0, i32 0, i32 0
%28 = load i8*, i8** %p, align 8
store i8* %28, i8** %27, align 8
%29 = getelementptr inbounds %"1.core::slice::IterMut<u8>", %"1.core::slice::IterMut<u8>"* %0, i32 0, i32 1
%30 = load i8*, i8** %p, align 8
store i8* %30, i8** %ptr, align 8
%31 = load i8*, i8** %ptr, align 8
store i8* %31, i8** %3, align 8
%32 = call i64 @_ZN3mem7size_of20h8276612659399150484E()
store i64 %32, i64* %6, align 8
%33 = load i64, i64* %6, align 8
%34 = icmp eq i64 %33, 0
br i1 %34, label %then-block-8281-, label %else-block2
then-block-8281-: ; preds = %join
%35 = load i8*, i8** %ptr, align 8
%36 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
%37 = load i8*, i8** %36
%38 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
%39 = load i64, i64* %38
%40 = call i64 @"_ZN5slice21_$u5b$T$u5d$.SliceExt3len20h3499358034102167329E"(i8* noalias nonnull readonly %37, i64 %39)
store i64 %40, i64* %8, align 8
%41 = load i64, i64* %8, align 8
%42 = getelementptr i8, i8* %35, i64 %41
store i8* %42, i8** %7, align 8
%43 = load i8*, i8** %7, align 8
store i8* %43, i8** %29, align 8
br label %join3
else-block2: ; preds = %join
%44 = load i8*, i8** %ptr, align 8
%45 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
%46 = load i8*, i8** %45
%47 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
%48 = load i64, i64* %47
%49 = call i64 @"_ZN5slice21_$u5b$T$u5d$.SliceExt3len20h3499358034102167329E"(i8* noalias nonnull readonly %46, i64 %48)
store i64 %49, i64* %9, align 8
%50 = load i64, i64* %9, align 8
%51 = call i8* @"_ZN3ptr14_$BP$mut$u20$T6offset20h2409022817876756992E"(i8* %44, i64 %50)
store i8* %51, i8** %29, align 8
br label %join3
join3: ; preds = %else-block2, %then-block-8281-
%52 = getelementptr inbounds %"1.core::slice::IterMut<u8>", %"1.core::slice::IterMut<u8>"* %0, i32 0, i32 2
ret void
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN3mem7size_of20h8276612659399150484E() unnamed_addr #1 {
entry-block:
ret i64 1
}
; Function Attrs: inlinehint uwtable
define internal i8* @"_ZN5slice21_$u5b$T$u5d$.SliceExt10as_mut_ptr20h8543889870955801687E"(i8* nonnull, i64) unnamed_addr #1 {
entry-block:
%self = alloca { i8*, i64 }
%2 = alloca %"1.core::raw::Slice<u8>"
%3 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
store i8* %0, i8** %3
%4 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
store i64 %1, i64* %4
%5 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
%6 = load i8*, i8** %5
%7 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
%8 = load i64, i64* %7
call void @_ZN3raw4Repr4repr21h15857245524079927975E(%"1.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16) %2, i8* noalias nonnull readonly %6, i64 %8)
%9 = getelementptr inbounds %"1.core::raw::Slice<u8>", %"1.core::raw::Slice<u8>"* %2, i32 0, i32 0
%10 = load i8*, i8** %9, align 8
ret i8* %10
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3raw4Repr4repr21h15857245524079927975E(%"1.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16), i8* noalias nonnull readonly, i64) unnamed_addr #1 {
entry-block:
%self = alloca { i8*, i64 }
%3 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
store i8* %1, i8** %3
%4 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
store i64 %2, i64* %4
call void @_ZN3mem14transmute_copy21h17103967338476420395E(%"1.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16) %0, { i8*, i64 }* noalias readonly dereferenceable(16) %self)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3mem14transmute_copy21h17103967338476420395E(%"1.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16), { i8*, i64 }* noalias readonly dereferenceable(16)) unnamed_addr #1 {
entry-block:
%src.i = alloca %"1.core::raw::Slice<u8>"*
%tmp.i = alloca %"1.core::raw::Slice<u8>"
%src = alloca { i8*, i64 }*
store { i8*, i64 }* %1, { i8*, i64 }** %src, align 8
%2 = load { i8*, i64 }*, { i8*, i64 }** %src, align 8
%3 = bitcast { i8*, i64 }* %2 to %"1.core::raw::Slice<u8>"*
store %"1.core::raw::Slice<u8>"* %3, %"1.core::raw::Slice<u8>"** %src.i, align 8, !noalias !4
call void @_ZN3mem13uninitialized20h5938131619738210979E(%"1.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16) %tmp.i), !noalias !4
%4 = load %"1.core::raw::Slice<u8>"*, %"1.core::raw::Slice<u8>"** %src.i, align 8, !noalias !4
%5 = bitcast %"1.core::raw::Slice<u8>"* %tmp.i to i8*
%6 = bitcast %"1.core::raw::Slice<u8>"* %4 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %6, i64 16, i32 8, i1 false), !noalias !4
%7 = bitcast %"1.core::raw::Slice<u8>"* %tmp.i to i8*
%8 = bitcast %"1.core::raw::Slice<u8>"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %8, i8* %7, i64 16, i32 8, i1 false)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3mem13uninitialized20h5938131619738210979E(%"1.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16)) unnamed_addr #1 {
entry-block:
ret void
}
; Function Attrs: inlinehint uwtable
define internal zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null21h14484011124458446728E"(i8*) unnamed_addr #1 {
entry-block:
%self = alloca i8*
store i8* %0, i8** %self, align 8
%1 = load i8*, i8** %self, align 8
%2 = icmp eq i8* %1, null
%3 = zext i1 %2 to i8
%4 = trunc i8 %3 to i1
ret i1 %4
}
; Function Attrs: nounwind
declare void @llvm.assume(i1) #3
; Function Attrs: inlinehint uwtable
define internal i64 @"_ZN5slice21_$u5b$T$u5d$.SliceExt3len20h3499358034102167329E"(i8* noalias nonnull readonly, i64) unnamed_addr #1 {
entry-block:
%self = alloca { i8*, i64 }
%2 = alloca %"1.core::raw::Slice<u8>"
%3 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
store i8* %0, i8** %3
%4 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
store i64 %1, i64* %4
%5 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
%6 = load i8*, i8** %5
%7 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
%8 = load i64, i64* %7
call void @_ZN3raw4Repr4repr21h15857245524079927975E(%"1.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16) %2, i8* noalias nonnull readonly %6, i64 %8)
%9 = getelementptr inbounds %"1.core::raw::Slice<u8>", %"1.core::raw::Slice<u8>"* %2, i32 0, i32 1
%10 = load i64, i64* %9, align 8
ret i64 %10
}
; Function Attrs: inlinehint uwtable
define internal i8* @"_ZN3ptr14_$BP$mut$u20$T6offset20h2409022817876756992E"(i8*, i64) unnamed_addr #1 {
entry-block:
%self = alloca i8*
%count = alloca i64
%2 = alloca i8*
store i8* %0, i8** %self, align 8
store i64 %1, i64* %count, align 8
%3 = load i8*, i8** %self, align 8
%4 = load i64, i64* %count, align 8
%5 = getelementptr inbounds i8, i8* %3, i64 %4
store i8* %5, i8** %2, align 8
%6 = load i8*, i8** %2, align 8
ret i8* %6
}
; Function Attrs: uwtable
define internal { i8*, i64 } @"_ZN3vec26Vec$LT$T$GT$.ops..DerefMut9deref_mut20h9616926189477611975E"(%"3.collections::vec::Vec<u8>"* dereferenceable(24)) unnamed_addr #0 {
entry-block:
%sret_slot = alloca { i8*, i64 }
%self = alloca %"3.collections::vec::Vec<u8>"*
%ptr = alloca i8*
%1 = alloca i8
store %"3.collections::vec::Vec<u8>"* %0, %"3.collections::vec::Vec<u8>"** %self, align 8
%2 = load %"3.collections::vec::Vec<u8>"*, %"3.collections::vec::Vec<u8>"** %self, align 8, !nonnull !1
%3 = getelementptr inbounds %"3.collections::vec::Vec<u8>", %"3.collections::vec::Vec<u8>"* %2, i32 0, i32 0
%4 = call i8* @"_ZN7raw_vec15RawVec$LT$T$GT$3ptr19h944427464412509304E"(%"5.alloc::raw_vec::RawVec<u8>"* noalias readonly dereferenceable(16) %3)
store i8* %4, i8** %ptr, align 8
%5 = load i8*, i8** %ptr, align 8
%6 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null21h14484011124458446728E"(i8* %5)
%7 = zext i1 %6 to i8
store i8 %7, i8* %1, align 1
%8 = load i8, i8* %1, align 1, !range !0
%9 = trunc i8 %8 to i1
%10 = xor i1 %9, true
call void @llvm.assume(i1 %10)
%11 = load i8*, i8** %ptr, align 8
%12 = load %"3.collections::vec::Vec<u8>"*, %"3.collections::vec::Vec<u8>"** %self, align 8, !nonnull !1
%13 = getelementptr inbounds %"3.collections::vec::Vec<u8>", %"3.collections::vec::Vec<u8>"* %12, i32 0, i32 1
%14 = load i64, i64* %13, align 8
%15 = call { i8*, i64 } @_ZN5slice18from_raw_parts_mut21h18395190216584573106E(i8* %11, i64 %14)
%16 = extractvalue { i8*, i64 } %15, 0
%17 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %sret_slot, i32 0, i32 0
store i8* %16, i8** %17
%18 = extractvalue { i8*, i64 } %15, 1
%19 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %sret_slot, i32 0, i32 1
store i64 %18, i64* %19
%20 = load { i8*, i64 }, { i8*, i64 }* %sret_slot, align 8
ret { i8*, i64 } %20
}
; Function Attrs: uwtable
define internal i8* @"_ZN7raw_vec15RawVec$LT$T$GT$3ptr19h944427464412509304E"(%"5.alloc::raw_vec::RawVec<u8>"* noalias readonly dereferenceable(16)) unnamed_addr #0 {
entry-block:
%self = alloca %"5.alloc::raw_vec::RawVec<u8>"*
%overloaded_deref = alloca i8**
store %"5.alloc::raw_vec::RawVec<u8>"* %0, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8
%1 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %1, i32 0, i32 0
%3 = call dereferenceable(8) i8** @"_ZN3ptr21Unique$LT$T$GT$.Deref5deref20h8509669138907285805E"(%"1.core::ptr::Unique<u8>"* noalias readonly dereferenceable(8) %2)
store i8** %3, i8*** %overloaded_deref, align 8
%4 = load i8**, i8*** %overloaded_deref, align 8, !nonnull !1
%5 = load i8*, i8** %4, align 8
ret i8* %5
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(8) i8** @"_ZN3ptr21Unique$LT$T$GT$.Deref5deref20h8509669138907285805E"(%"1.core::ptr::Unique<u8>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"1.core::ptr::Unique<u8>"*
%overloaded_deref = alloca i8**
store %"1.core::ptr::Unique<u8>"* %0, %"1.core::ptr::Unique<u8>"** %self, align 8
%1 = load %"1.core::ptr::Unique<u8>"*, %"1.core::ptr::Unique<u8>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"1.core::ptr::Unique<u8>", %"1.core::ptr::Unique<u8>"* %1, i32 0, i32 0
%3 = call dereferenceable(8) i8** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref20h3937895913553903092E"(%"1.core::nonzero::NonZero<*const u8>"* noalias readonly dereferenceable(8) %2)
store i8** %3, i8*** %overloaded_deref, align 8
%4 = load i8**, i8*** %overloaded_deref, align 8, !nonnull !1
ret i8** %4
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(8) i8** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref20h3937895913553903092E"(%"1.core::nonzero::NonZero<*const u8>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"1.core::nonzero::NonZero<*const u8>"*
%inner = alloca i8**
store %"1.core::nonzero::NonZero<*const u8>"* %0, %"1.core::nonzero::NonZero<*const u8>"** %self, align 8
%1 = load %"1.core::nonzero::NonZero<*const u8>"*, %"1.core::nonzero::NonZero<*const u8>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"1.core::nonzero::NonZero<*const u8>", %"1.core::nonzero::NonZero<*const u8>"* %1, i32 0, i32 0
store i8** %2, i8*** %inner
%3 = load i8**, i8*** %inner, align 8, !nonnull !1
ret i8** %3
}
; Function Attrs: inlinehint uwtable
define internal { i8*, i64 } @_ZN5slice18from_raw_parts_mut21h18395190216584573106E(i8*, i64) unnamed_addr #1 {
entry-block:
%sret_slot = alloca { i8*, i64 }
%p = alloca i8*
%len = alloca i64
store i8* %0, i8** %p, align 8
store i64 %1, i64* %len, align 8
%2 = bitcast { i8*, i64 }* %sret_slot to %"1.core::raw::Slice<u8>"*
%3 = getelementptr inbounds %"1.core::raw::Slice<u8>", %"1.core::raw::Slice<u8>"* %2, i32 0, i32 0
%4 = load i8*, i8** %p, align 8
store i8* %4, i8** %3, align 8
%5 = getelementptr inbounds %"1.core::raw::Slice<u8>", %"1.core::raw::Slice<u8>"* %2, i32 0, i32 1
%6 = load i64, i64* %len, align 8
store i64 %6, i64* %5, align 8
%7 = load { i8*, i64 }, { i8*, i64 }* %sret_slot, align 8
ret { i8*, i64 } %7
}
; Function Attrs: inlinehint uwtable
define internal i8* @"_ZN5slice39IterMut$LT$$u27$a$C$$u20$T$GT$.Iterator4next20h2760443638291090962E"(%"1.core::slice::IterMut<u8>"* dereferenceable(16)) unnamed_addr #1 {
entry-block:
%1 = alloca i8*
%2 = alloca i8*
%sret_slot = alloca i8*
%self = alloca %"1.core::slice::IterMut<u8>"*
%3 = alloca i64
%4 = alloca i8
%5 = alloca i8
%old = alloca i8*
%6 = alloca i8*
%ptr = alloca i8*
%7 = alloca i64
%8 = alloca i8*
%ptr2 = alloca i8*
%9 = alloca i64
store %"1.core::slice::IterMut<u8>"* %0, %"1.core::slice::IterMut<u8>"** %self, align 8
%10 = call i64 @_ZN3mem7size_of20h8276612659399150484E()
store i64 %10, i64* %3, align 8
%11 = load i64, i64* %3, align 8
%12 = icmp ne i64 %11, 0
br i1 %12, label %then-block-8618-, label %next-block
then-block-8618-: ; preds = %entry-block
%13 = load %"1.core::slice::IterMut<u8>"*, %"1.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1
%14 = getelementptr inbounds %"1.core::slice::IterMut<u8>", %"1.core::slice::IterMut<u8>"* %13, i32 0, i32 0
%15 = load i8*, i8** %14, align 8
%16 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null21h14484011124458446728E"(i8* %15)
%17 = zext i1 %16 to i8
store i8 %17, i8* %4, align 1
%18 = load i8, i8* %4, align 1, !range !0
%19 = trunc i8 %18 to i1
%20 = xor i1 %19, true
call void @llvm.assume(i1 %20)
%21 = load %"1.core::slice::IterMut<u8>"*, %"1.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1
%22 = getelementptr inbounds %"1.core::slice::IterMut<u8>", %"1.core::slice::IterMut<u8>"* %21, i32 0, i32 1
%23 = load i8*, i8** %22, align 8
%24 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null21h14484011124458446728E"(i8* %23)
%25 = zext i1 %24 to i8
store i8 %25, i8* %5, align 1
%26 = load i8, i8* %5, align 1, !range !0
%27 = trunc i8 %26 to i1
%28 = xor i1 %27, true
call void @llvm.assume(i1 %28)
br label %next-block
next-block: ; preds = %entry-block, %then-block-8618-
%29 = load %"1.core::slice::IterMut<u8>"*, %"1.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1
%30 = getelementptr inbounds %"1.core::slice::IterMut<u8>", %"1.core::slice::IterMut<u8>"* %29, i32 0, i32 0
%31 = load i8*, i8** %30, align 8
%32 = load %"1.core::slice::IterMut<u8>"*, %"1.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1
%33 = getelementptr inbounds %"1.core::slice::IterMut<u8>", %"1.core::slice::IterMut<u8>"* %32, i32 0, i32 1
%34 = load i8*, i8** %33, align 8
%35 = icmp eq i8* %31, %34
br i1 %35, label %then-block-8639-, label %else-block
then-block-8639-: ; preds = %next-block
%36 = bitcast i8** %sret_slot to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %36, i8* bitcast (i8** @const4599 to i8*), i64 8, i32 8, i1 false)
br label %join5
else-block: ; preds = %next-block
%37 = load %"1.core::slice::IterMut<u8>"*, %"1.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1
%38 = getelementptr inbounds %"1.core::slice::IterMut<u8>", %"1.core::slice::IterMut<u8>"* %37, i32 0, i32 0
%39 = load i8*, i8** %38, align 8
store i8* %39, i8** %old, align 8
%40 = load %"1.core::slice::IterMut<u8>"*, %"1.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1
%41 = getelementptr inbounds %"1.core::slice::IterMut<u8>", %"1.core::slice::IterMut<u8>"* %40, i32 0, i32 0
%42 = load i8*, i8** %41, align 8
store i8* %42, i8** %ptr, align 8
%43 = load i8*, i8** %ptr, align 8
store i8* %43, i8** %2, align 8
%44 = call i64 @_ZN3mem7size_of20h8276612659399150484E()
store i64 %44, i64* %7, align 8
%45 = load i64, i64* %7, align 8
%46 = icmp eq i64 %45, 0
br i1 %46, label %then-block-8665-, label %else-block1
then-block-8665-: ; preds = %else-block
%47 = load i8*, i8** %ptr, align 8
%48 = getelementptr i8, i8* %47, i64 1
store i8* %48, i8** %8, align 8
%49 = load i8*, i8** %8, align 8
store i8* %49, i8** %6, align 8
br label %join
else-block1: ; preds = %else-block
%50 = load i8*, i8** %ptr, align 8
%51 = call i8* @"_ZN3ptr14_$BP$mut$u20$T6offset20h2409022817876756992E"(i8* %50, i64 1)
store i8* %51, i8** %6, align 8
br label %join
join: ; preds = %else-block1, %then-block-8665-
%52 = load i8*, i8** %6, align 8
%53 = load %"1.core::slice::IterMut<u8>"*, %"1.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1
%54 = getelementptr inbounds %"1.core::slice::IterMut<u8>", %"1.core::slice::IterMut<u8>"* %53, i32 0, i32 0
store i8* %52, i8** %54, align 8
%55 = load i8*, i8** %old, align 8
store i8* %55, i8** %ptr2, align 8
%56 = load i8*, i8** %ptr2, align 8
store i8* %56, i8** %1, align 8
%57 = call i64 @_ZN3mem7size_of20h8276612659399150484E()
store i64 %57, i64* %9, align 8
%58 = load i64, i64* %9, align 8
%59 = icmp eq i64 %58, 0
br i1 %59, label %then-block-8695-, label %else-block3
then-block-8695-: ; preds = %join
store i8* inttoptr (i64 1 to i8*), i8** %sret_slot, align 8
br label %join4
else-block3: ; preds = %join
%60 = load i8*, i8** %ptr2, align 8
store i8* %60, i8** %sret_slot
br label %join4
join4: ; preds = %else-block3, %then-block-8695-
br label %join5
join5: ; preds = %join4, %then-block-8639-
%61 = load i8*, i8** %sret_slot, align 8
ret i8* %61
}
define internal void @"_ZN31collections..vec..Vec$LT$u8$GT$9drop.463217h14454e5f3598600cE"(%"3.collections::vec::Vec<u8>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"3.collections::vec::Vec<u8>", %"3.collections::vec::Vec<u8>"* %0, i32 0, i32 0
call void @"_ZN32alloc..raw_vec..RawVec$LT$u8$GT$9drop.463517h6d2c0031e4e1531dE"(%"5.alloc::raw_vec::RawVec<u8>"* %1)
%2 = getelementptr inbounds %"3.collections::vec::Vec<u8>", %"3.collections::vec::Vec<u8>"* %0, i32 0, i32 1
ret void
}
define internal void @"_ZN32alloc..raw_vec..RawVec$LT$u8$GT$9drop.463517h6d2c0031e4e1531dE"(%"5.alloc::raw_vec::RawVec<u8>"*) unnamed_addr personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%1 = alloca { i8*, i32 }
invoke void @"_ZN7raw_vec20RawVec$LT$T$GT$.Drop4drop20h6208879470178989655E"(%"5.alloc::raw_vec::RawVec<u8>"* dereferenceable(16) %0)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %entry-block
call void @"_ZN32alloc..raw_vec..RawVec$LT$u8$GT$9drop.465417h6d2c0031e4e1531dE"(%"5.alloc::raw_vec::RawVec<u8>"* %0)
ret void
unwind_custom_: ; preds = %entry-block
%2 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %2, { i8*, i32 }* %1
br label %clean_custom_
resume: ; preds = %clean_custom_
%3 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %3
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN32alloc..raw_vec..RawVec$LT$u8$GT$9drop.465417h6d2c0031e4e1531dE"(%"5.alloc::raw_vec::RawVec<u8>"* %0)
br label %resume
}
; Function Attrs: uwtable
define internal void @"_ZN7raw_vec20RawVec$LT$T$GT$.Drop4drop20h6208879470178989655E"(%"5.alloc::raw_vec::RawVec<u8>"* dereferenceable(16)) unnamed_addr #0 {
entry-block:
%self = alloca %"5.alloc::raw_vec::RawVec<u8>"*
%elem_size = alloca i64
%1 = alloca i8
%align = alloca i64
%num_bytes = alloca i64
%overloaded_deref = alloca i8**
store %"5.alloc::raw_vec::RawVec<u8>"* %0, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8
%2 = call i64 @_ZN3mem7size_of20h8276612659399150484E()
store i64 %2, i64* %elem_size, align 8
%3 = load i64, i64* %elem_size, align 8
%4 = icmp ne i64 %3, 0
br i1 %4, label %before_rhs, label %join
join: ; preds = %before_rhs, %entry-block
%5 = phi i1 [ %4, %entry-block ], [ %9, %before_rhs ]
br i1 %5, label %before_rhs2, label %join1
before_rhs: ; preds = %entry-block
%6 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1
%7 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %6, i32 0, i32 1
%8 = load i64, i64* %7, align 8
%9 = icmp ne i64 %8, 0
br label %join
join1: ; preds = %before_rhs2, %join
%10 = phi i1 [ %5, %join ], [ %15, %before_rhs2 ]
br i1 %10, label %then-block-8733-, label %next-block
before_rhs2: ; preds = %join
%11 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1
%12 = call zeroext i1 @"_ZN7raw_vec15RawVec$LT$T$GT$30unsafe_no_drop_flag_needs_drop21h15024409836838868505E"(%"5.alloc::raw_vec::RawVec<u8>"* noalias readonly dereferenceable(16) %11)
%13 = zext i1 %12 to i8
store i8 %13, i8* %1, align 1
%14 = load i8, i8* %1, align 1, !range !0
%15 = trunc i8 %14 to i1
br label %join1
then-block-8733-: ; preds = %join1
%16 = call i64 @_ZN3mem8align_of21h15419131119688532458E()
store i64 %16, i64* %align, align 8
%17 = load i64, i64* %elem_size, align 8
%18 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1
%19 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %18, i32 0, i32 1
%20 = load i64, i64* %19, align 8
%21 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %17, i64 %20)
%22 = extractvalue { i64, i1 } %21, 0
%23 = extractvalue { i64, i1 } %21, 1
%24 = icmp eq i1 %23, true
%25 = call i1 @llvm.expect.i1(i1 %24, i1 false)
br i1 %24, label %cond, label %next
next: ; preds = %then-block-8733-
store i64 %22, i64* %num_bytes, align 8
%26 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1
%27 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %26, i32 0, i32 0
%28 = call dereferenceable(8) i8** @"_ZN3ptr21Unique$LT$T$GT$.Deref5deref20h8509669138907285805E"(%"1.core::ptr::Unique<u8>"* noalias readonly dereferenceable(8) %27)
store i8** %28, i8*** %overloaded_deref, align 8
%29 = load i8**, i8*** %overloaded_deref, align 8, !nonnull !1
%30 = load i8*, i8** %29, align 8
%31 = load i64, i64* %num_bytes, align 8
%32 = load i64, i64* %align, align 8
call void @_ZN4heap10deallocate20hb6b00bc54f0213287eaE(i8* %30, i64 %31, i64 %32)
br label %next-block
cond: ; preds = %then-block-8733-
call void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc4647)
unreachable
next-block: ; preds = %join1, %next
ret void
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN3mem8align_of21h15419131119688532458E() unnamed_addr #1 {
entry-block:
ret i64 1
}
; Function Attrs: nounwind readnone
declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #6
; Function Attrs: nounwind readnone
declare i1 @llvm.expect.i1(i1, i1) #6
; Function Attrs: inlinehint uwtable
define internal void @_ZN4heap10deallocate20hb6b00bc54f0213287eaE(i8*, i64, i64) unnamed_addr #1 {
entry-block:
%ptr = alloca i8*
%old_size = alloca i64
%align = alloca i64
%__arg = alloca i8*
%__arg1 = alloca i64
%__arg2 = alloca i64
store i8* %0, i8** %ptr, align 8
store i64 %1, i64* %old_size, align 8
store i64 %2, i64* %align, align 8
%3 = load i8*, i8** %ptr, align 8
%4 = load i64, i64* %old_size, align 8
%5 = load i64, i64* %align, align 8
store i8* %3, i8** %__arg, align 8
%6 = load i8*, i8** %__arg
store i64 %4, i64* %__arg1, align 8
%7 = load i64, i64* %__arg1
store i64 %5, i64* %__arg2, align 8
%8 = load i64, i64* %__arg2
call void @__rust_deallocate(i8* %6, i64 %7, i64 %8)
ret void
}
; Function Attrs: nounwind
declare void @__rust_deallocate(i8*, i64, i64) unnamed_addr #3
define internal void @"_ZN32alloc..raw_vec..RawVec$LT$u8$GT$9drop.465417h6d2c0031e4e1531dE"(%"5.alloc::raw_vec::RawVec<u8>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %0, i32 0, i32 0
%2 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %0, i32 0, i32 1
ret void
}
define internal void @"_ZN35std..sync..mutex..Mutex$LT$bool$GT$9drop.465717h1416a2e66c6d4d99E"(%"2.std::sync::mutex::Mutex<bool>"*) unnamed_addr personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%1 = alloca { i8*, i32 }
%2 = getelementptr inbounds %"2.std::sync::mutex::Mutex<bool>", %"2.std::sync::mutex::Mutex<bool>"* %0, i32 0, i32 2
%3 = load i8, i8* %2, align 1
%4 = icmp ne i8 %3, -44
%5 = icmp ne i8 %3, 29
%6 = and i1 %4, %5
br i1 %6, label %cond, label %next
next: ; preds = %cond, %entry-block
%7 = icmp eq i8 %3, -44
br i1 %7, label %cond2, label %next1
cond: ; preds = %entry-block
call void @llvm.debugtrap()
br label %next
next1: ; preds = %normal-return, %next
ret void
cond2: ; preds = %next
invoke void @"_ZN4sync5mutex19Mutex$LT$T$GT$.Drop4drop20h6264524338689743634E"(%"2.std::sync::mutex::Mutex<bool>"* dereferenceable(16) %0)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %cond2
call void @"_ZN35std..sync..mutex..Mutex$LT$bool$GT$9drop.468117h1416a2e66c6d4d99E"(%"2.std::sync::mutex::Mutex<bool>"* %0)
br label %next1
unwind_custom_: ; preds = %cond2
%8 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %8, { i8*, i32 }* %1
br label %clean_custom_
resume: ; preds = %clean_custom_
%9 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %9
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN35std..sync..mutex..Mutex$LT$bool$GT$9drop.468117h1416a2e66c6d4d99E"(%"2.std::sync::mutex::Mutex<bool>"* %0)
br label %resume
}
; Function Attrs: uwtable
define internal void @"_ZN4sync5mutex19Mutex$LT$T$GT$.Drop4drop20h6264524338689743634E"(%"2.std::sync::mutex::Mutex<bool>"* dereferenceable(16)) unnamed_addr #0 {
entry-block:
%self = alloca %"2.std::sync::mutex::Mutex<bool>"*
store %"2.std::sync::mutex::Mutex<bool>"* %0, %"2.std::sync::mutex::Mutex<bool>"** %self, align 8
%1 = load %"2.std::sync::mutex::Mutex<bool>"*, %"2.std::sync::mutex::Mutex<bool>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"2.std::sync::mutex::Mutex<bool>", %"2.std::sync::mutex::Mutex<bool>"* %1, i32 0, i32 0
%3 = load %"2.std::sync::mutex::StaticMutex"*, %"2.std::sync::mutex::StaticMutex"** %2, align 8, !nonnull !1
%4 = getelementptr inbounds %"2.std::sync::mutex::StaticMutex", %"2.std::sync::mutex::StaticMutex"* %3, i32 0, i32 0
call void @_ZN10sys_common5mutex5Mutex7destroy20h20afb4475b292ecb2lsE(%"2.std::sys_common::mutex::Mutex"* dereferenceable(40) %4)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN10sys_common5mutex5Mutex7destroy20h20afb4475b292ecb2lsE(%"2.std::sys_common::mutex::Mutex"* dereferenceable(40)) unnamed_addr #1 {
entry-block:
%self = alloca %"2.std::sys_common::mutex::Mutex"*
store %"2.std::sys_common::mutex::Mutex"* %0, %"2.std::sys_common::mutex::Mutex"** %self, align 8
%1 = load %"2.std::sys_common::mutex::Mutex"*, %"2.std::sys_common::mutex::Mutex"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"2.std::sys_common::mutex::Mutex", %"2.std::sys_common::mutex::Mutex"* %1, i32 0, i32 0
call void @_ZN3sys5mutex5Mutex7destroy20he3b31591a41ecc04V9vE(%"2.std::sys::mutex::Mutex"* dereferenceable(40) %2)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3sys5mutex5Mutex7destroy20he3b31591a41ecc04V9vE(%"2.std::sys::mutex::Mutex"* dereferenceable(40)) unnamed_addr #1 {
entry-block:
%self = alloca %"2.std::sys::mutex::Mutex"*
%r = alloca i32
%1 = alloca %"7.libc::unix::notbsd::linux::pthread_mutex_t"*
%__arg = alloca %"7.libc::unix::notbsd::linux::pthread_mutex_t"*
%2 = alloca { i32*, i32* }
%__llmatch = alloca i32**
%left_val = alloca i32*
%__llmatch1 = alloca i32**
%right_val = alloca i32*
%3 = alloca %"1.core::fmt::Arguments"
%4 = alloca { %str_slice*, i64 }
%5 = alloca [2 x %"1.core::fmt::ArgumentV1"]
%6 = alloca { i32**, i32** }
%__llmatch3 = alloca i32***
%__arg0 = alloca i32**
%__llmatch4 = alloca i32***
%__arg1 = alloca i32**
%__coerce_target = alloca { %"1.core::fmt::ArgumentV1"*, i64 }
%7 = alloca { %str_slice, i32 }*
store %"2.std::sys::mutex::Mutex"* %0, %"2.std::sys::mutex::Mutex"** %self, align 8
%8 = load %"2.std::sys::mutex::Mutex"*, %"2.std::sys::mutex::Mutex"** %self, align 8, !nonnull !1
%9 = getelementptr inbounds %"2.std::sys::mutex::Mutex", %"2.std::sys::mutex::Mutex"* %8, i32 0, i32 0
%10 = call %"7.libc::unix::notbsd::linux::pthread_mutex_t"* @"_ZN4cell19UnsafeCell$LT$T$GT$3get20h6257592530890838436E"(%"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"* dereferenceable(40) %9)
store %"7.libc::unix::notbsd::linux::pthread_mutex_t"* %10, %"7.libc::unix::notbsd::linux::pthread_mutex_t"** %1, align 8
%11 = load %"7.libc::unix::notbsd::linux::pthread_mutex_t"*, %"7.libc::unix::notbsd::linux::pthread_mutex_t"** %1, align 8
store %"7.libc::unix::notbsd::linux::pthread_mutex_t"* %11, %"7.libc::unix::notbsd::linux::pthread_mutex_t"** %__arg, align 8
%12 = load %"7.libc::unix::notbsd::linux::pthread_mutex_t"*, %"7.libc::unix::notbsd::linux::pthread_mutex_t"** %__arg
%13 = call i32 @pthread_mutex_destroy(%"7.libc::unix::notbsd::linux::pthread_mutex_t"* %12)
store i32 %13, i32* %r, align 4
%14 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %2, i32 0, i32 0
store i32* %r, i32** %14, align 8
%15 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %2, i32 0, i32 1
store i32* @ref4667, i32** %15, align 8
%16 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %2, i32 0, i32 0
%17 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %2, i32 0, i32 1
store i32** %17, i32*** %__llmatch1
store i32** %16, i32*** %__llmatch
br label %case_body
case_body: ; preds = %entry-block
%18 = load i32**, i32*** %__llmatch1
%19 = load i32*, i32** %18, align 8, !nonnull !1
store i32* %19, i32** %right_val, align 8
%20 = load i32**, i32*** %__llmatch
%21 = load i32*, i32** %20, align 8, !nonnull !1
store i32* %21, i32** %left_val, align 8
%22 = load i32*, i32** %left_val, align 8, !nonnull !1
%23 = load i32, i32* %22, align 4
%24 = load i32*, i32** %right_val, align 8, !nonnull !1
%25 = load i32, i32* %24, align 4
%26 = icmp eq i32 %23, %25
%27 = xor i1 %26, true
br i1 %27, label %then-block-8860-, label %next-block
then-block-8860-: ; preds = %case_body
%28 = bitcast { %str_slice*, i64 }* %4 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %28, i8* bitcast ({ %str_slice*, i64 }* @_ZN3sys5mutex5Mutex7destroy15__STATIC_FMTSTR20hb7403b0de171f7deLawE to i8*), i64 16, i32 8, i1 false)
%29 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %4, i32 0, i32 0
%30 = load %str_slice*, %str_slice** %29
%31 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %4, i32 0, i32 1
%32 = load i64, i64* %31
%33 = getelementptr inbounds { i32**, i32** }, { i32**, i32** }* %6, i32 0, i32 0
store i32** %left_val, i32*** %33, align 8
%34 = getelementptr inbounds { i32**, i32** }, { i32**, i32** }* %6, i32 0, i32 1
store i32** %right_val, i32*** %34, align 8
%35 = getelementptr inbounds { i32**, i32** }, { i32**, i32** }* %6, i32 0, i32 0
%36 = getelementptr inbounds { i32**, i32** }, { i32**, i32** }* %6, i32 0, i32 1
store i32*** %36, i32**** %__llmatch4
store i32*** %35, i32**** %__llmatch3
br label %case_body2
case_body2: ; preds = %then-block-8860-
%37 = load i32***, i32**** %__llmatch3
%38 = load i32**, i32*** %37, align 8, !nonnull !1
store i32** %38, i32*** %__arg0, align 8
%39 = load i32***, i32**** %__llmatch4
%40 = load i32**, i32*** %39, align 8, !nonnull !1
store i32** %40, i32*** %__arg1, align 8
%41 = getelementptr inbounds [2 x %"1.core::fmt::ArgumentV1"], [2 x %"1.core::fmt::ArgumentV1"]* %5, i32 0, i32 0
%42 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %41, i32 0
%43 = load i32**, i32*** %__arg0, align 8, !nonnull !1
call void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new21h12753073406678658813E"(%"1.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16) %42, i32** noalias readonly dereferenceable(8) %43, i8 (i32**, %"1.core::fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt21h13815583691212233211E")
%44 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %41, i32 1
%45 = load i32**, i32*** %__arg1, align 8, !nonnull !1
call void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new21h12753073406678658813E"(%"1.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16) %44, i32** noalias readonly dereferenceable(8) %45, i8 (i32**, %"1.core::fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt21h13815583691212233211E")
br label %join
join: ; preds = %case_body2
%46 = bitcast [2 x %"1.core::fmt::ArgumentV1"]* %5 to %"1.core::fmt::ArgumentV1"*
%47 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0
store %"1.core::fmt::ArgumentV1"* %46, %"1.core::fmt::ArgumentV1"** %47
%48 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1
store i64 2, i64* %48
%49 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0
%50 = load %"1.core::fmt::ArgumentV1"*, %"1.core::fmt::ArgumentV1"** %49
%51 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1
%52 = load i64, i64* %51
call void @"_ZN3fmt23Arguments$LT$$u27$a$GT$6new_v120he832f0357fe73cd4nLWE"(%"1.core::fmt::Arguments"* noalias nocapture sret dereferenceable(48) %3, %str_slice* noalias nonnull readonly %30, i64 %32, %"1.core::fmt::ArgumentV1"* noalias nonnull readonly %50, i64 %52)
store { %str_slice, i32 }* @_ZN3sys5mutex5Mutex7destroy10_FILE_LINE20hdceb746dfe68fc84kbwE, { %str_slice, i32 }** %7, align 8
%53 = load { %str_slice, i32 }*, { %str_slice, i32 }** %7, align 8, !nonnull !1
call void @_ZN10sys_common6unwind16begin_unwind_fmt20hd994f560d3c107d9jktE(%"1.core::fmt::Arguments"* noalias nocapture dereferenceable(48) %3, { %str_slice, i32 }* noalias readonly dereferenceable(24) %53)
unreachable
next-block: ; preds = %case_body
br label %join5
join5: ; preds = %next-block
ret void
}
; Function Attrs: nounwind
declare i32 @pthread_mutex_destroy(%"7.libc::unix::notbsd::linux::pthread_mutex_t"*) unnamed_addr #3
; Function Attrs: inlinehint uwtable
define internal %"7.libc::unix::notbsd::linux::pthread_mutex_t"* @"_ZN4cell19UnsafeCell$LT$T$GT$3get20h6257592530890838436E"(%"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"* dereferenceable(40)) unnamed_addr #1 {
entry-block:
%self = alloca %"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"*
store %"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"* %0, %"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"** %self, align 8
%1 = load %"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"*, %"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>", %"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"* %1, i32 0, i32 0
ret %"7.libc::unix::notbsd::linux::pthread_mutex_t"* %2
}
; Function Attrs: cold noinline noreturn
declare void @_ZN10sys_common6unwind16begin_unwind_fmt20hd994f560d3c107d9jktE(%"1.core::fmt::Arguments"* noalias nocapture dereferenceable(48), { %str_slice, i32 }* noalias readonly dereferenceable(24)) unnamed_addr #4
; Function Attrs: inlinehint uwtable
define internal void @"_ZN3fmt23Arguments$LT$$u27$a$GT$6new_v120he832f0357fe73cd4nLWE"(%"1.core::fmt::Arguments"* noalias nocapture sret dereferenceable(48), %str_slice* noalias nonnull readonly, i64, %"1.core::fmt::ArgumentV1"* noalias nonnull readonly, i64) unnamed_addr #1 {
entry-block:
%pieces = alloca { %str_slice*, i64 }
%args = alloca { %"1.core::fmt::ArgumentV1"*, i64 }
%5 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %pieces, i32 0, i32 0
store %str_slice* %1, %str_slice** %5
%6 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %pieces, i32 0, i32 1
store i64 %2, i64* %6
%7 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %args, i32 0, i32 0
store %"1.core::fmt::ArgumentV1"* %3, %"1.core::fmt::ArgumentV1"** %7
%8 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %args, i32 0, i32 1
store i64 %4, i64* %8
%9 = getelementptr inbounds %"1.core::fmt::Arguments", %"1.core::fmt::Arguments"* %0, i32 0, i32 0
%10 = bitcast { %str_slice*, i64 }* %pieces to i8*
%11 = bitcast { %str_slice*, i64 }* %9 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %11, i8* %10, i64 16, i32 8, i1 false)
%12 = getelementptr inbounds %"1.core::fmt::Arguments", %"1.core::fmt::Arguments"* %0, i32 0, i32 1
%13 = bitcast %"1.core::option::Option<&'static [core::fmt::rt::v1::Argument]>"* %12 to { { i8*, i8* } }*
%14 = bitcast { { i8*, i8* } }* %13 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %14, i8* bitcast ({ { i8*, i8* } }* @const4678 to i8*), i64 16, i32 8, i1 false)
%15 = getelementptr inbounds %"1.core::fmt::Arguments", %"1.core::fmt::Arguments"* %0, i32 0, i32 2
%16 = bitcast { %"1.core::fmt::ArgumentV1"*, i64 }* %args to i8*
%17 = bitcast { %"1.core::fmt::ArgumentV1"*, i64 }* %15 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %17, i8* %16, i64 16, i32 8, i1 false)
ret void
}
; Function Attrs: uwtable
define internal void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new21h12753073406678658813E"(%"1.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16), i32** noalias readonly dereferenceable(8), i8 (i32**, %"1.core::fmt::Formatter"*)*) unnamed_addr #0 {
entry-block:
%x = alloca i32**
%f = alloca i8 (i32**, %"1.core::fmt::Formatter"*)*
store i32** %1, i32*** %x, align 8
store i8 (i32**, %"1.core::fmt::Formatter"*)* %2, i8 (i32**, %"1.core::fmt::Formatter"*)** %f, align 8
%3 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %0, i32 0, i32 1
%4 = load i8 (i32**, %"1.core::fmt::Formatter"*)*, i8 (i32**, %"1.core::fmt::Formatter"*)** %f, align 8
%5 = bitcast i8 (i32**, %"1.core::fmt::Formatter"*)* %4 to i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)*
store i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)* %5, i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)** %3
%6 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %0, i32 0, i32 0
%7 = load i32**, i32*** %x, align 8, !nonnull !1
%8 = bitcast i32** %7 to %"1.core::fmt::Void"*
store %"1.core::fmt::Void"* %8, %"1.core::fmt::Void"** %6
ret void
}
; Function Attrs: uwtable
define internal i8 @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt21h13815583691212233211E"(i32** noalias readonly dereferenceable(8), %"1.core::fmt::Formatter"* dereferenceable(96)) unnamed_addr #0 {
entry-block:
%sret_slot = alloca %"1.core::result::Result<(), core::fmt::Error>"
%self = alloca i32**
%f = alloca %"1.core::fmt::Formatter"*
store i32** %0, i32*** %self, align 8
store %"1.core::fmt::Formatter"* %1, %"1.core::fmt::Formatter"** %f, align 8
%2 = load i32**, i32*** %self, align 8, !nonnull !1
%3 = load i32*, i32** %2, align 8, !nonnull !1
%4 = load %"1.core::fmt::Formatter"*, %"1.core::fmt::Formatter"** %f, align 8, !nonnull !1
%5 = call i8 @_ZN3fmt3num14i32.fmt..Debug3fmt20h36e2d36a9f46a426pkVE(i32* noalias readonly dereferenceable(4) %3, %"1.core::fmt::Formatter"* dereferenceable(96) %4)
%6 = bitcast %"1.core::result::Result<(), core::fmt::Error>"* %sret_slot to i8*
store i8 %5, i8* %6, align 1
%7 = bitcast %"1.core::result::Result<(), core::fmt::Error>"* %sret_slot to i8*
%8 = load i8, i8* %7, align 1
ret i8 %8
}
declare i8 @_ZN3fmt3num14i32.fmt..Debug3fmt20h36e2d36a9f46a426pkVE(i32* noalias readonly dereferenceable(4), %"1.core::fmt::Formatter"* dereferenceable(96)) unnamed_addr
define internal void @"_ZN35std..sync..mutex..Mutex$LT$bool$GT$9drop.468117h1416a2e66c6d4d99E"(%"2.std::sync::mutex::Mutex<bool>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"2.std::sync::mutex::Mutex<bool>", %"2.std::sync::mutex::Mutex<bool>"* %0, i32 0, i32 0
call void @"_ZN40Box$LT$std..sync..mutex..StaticMutex$GT$9drop.468417h67a301f47e00ce8eE"(%"2.std::sync::mutex::StaticMutex"** %1)
%2 = getelementptr inbounds %"2.std::sync::mutex::Mutex<bool>", %"2.std::sync::mutex::Mutex<bool>"* %0, i32 0, i32 1
ret void
}
define internal void @"_ZN40Box$LT$std..sync..mutex..StaticMutex$GT$9drop.468417h67a301f47e00ce8eE"(%"2.std::sync::mutex::StaticMutex"**) unnamed_addr {
entry-block:
%1 = load %"2.std::sync::mutex::StaticMutex"*, %"2.std::sync::mutex::StaticMutex"** %0
%2 = ptrtoint %"2.std::sync::mutex::StaticMutex"* %1 to i64
%3 = icmp ne i64 %2, 2097865012304223517
br i1 %3, label %cond, label %next
next: ; preds = %cond, %entry-block
ret void
cond: ; preds = %entry-block
%4 = bitcast %"2.std::sync::mutex::StaticMutex"* %1 to i8*
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %4, i64 48, i64 8)
br label %next
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8*, i64, i64) unnamed_addr #1 {
entry-block:
%ptr = alloca i8*
%old_size = alloca i64
%align = alloca i64
store i8* %0, i8** %ptr, align 8
store i64 %1, i64* %old_size, align 8
store i64 %2, i64* %align, align 8
%3 = load i8*, i8** %ptr, align 8
%4 = load i64, i64* %old_size, align 8
%5 = load i64, i64* %align, align 8
call void @_ZN4heap10deallocate20hb6b00bc54f0213287eaE(i8* %3, i64 %4, i64 %5)
ret void
}
define internal void @_ZN27std..sync..condvar..Condvar9drop.468817h91d50e4f9124550bE(%"2.std::sync::condvar::Condvar"*) unnamed_addr personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%1 = alloca { i8*, i32 }
%2 = getelementptr inbounds %"2.std::sync::condvar::Condvar", %"2.std::sync::condvar::Condvar"* %0, i32 0, i32 1
%3 = load i8, i8* %2, align 1
%4 = icmp ne i8 %3, -44
%5 = icmp ne i8 %3, 29
%6 = and i1 %4, %5
br i1 %6, label %cond, label %next
next: ; preds = %cond, %entry-block
%7 = icmp eq i8 %3, -44
br i1 %7, label %cond2, label %next1
cond: ; preds = %entry-block
call void @llvm.debugtrap()
br label %next
next1: ; preds = %normal-return, %next
ret void
cond2: ; preds = %next
invoke void @_ZN4sync7condvar12Condvar.Drop4drop20h2714aef0d20e0c548dqE(%"2.std::sync::condvar::Condvar"* dereferenceable(16) %0)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %cond2
call void @_ZN27std..sync..condvar..Condvar9drop.469117h91d50e4f9124550bE(%"2.std::sync::condvar::Condvar"* %0)
br label %next1
unwind_custom_: ; preds = %cond2
%8 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %8, { i8*, i32 }* %1
br label %clean_custom_
resume: ; preds = %clean_custom_
%9 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %9
clean_custom_: ; preds = %unwind_custom_
call void @_ZN27std..sync..condvar..Condvar9drop.469117h91d50e4f9124550bE(%"2.std::sync::condvar::Condvar"* %0)
br label %resume
}
declare void @_ZN4sync7condvar12Condvar.Drop4drop20h2714aef0d20e0c548dqE(%"2.std::sync::condvar::Condvar"* dereferenceable(16)) unnamed_addr
define internal void @_ZN27std..sync..condvar..Condvar9drop.469117h91d50e4f9124550bE(%"2.std::sync::condvar::Condvar"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"2.std::sync::condvar::Condvar", %"2.std::sync::condvar::Condvar"* %0, i32 0, i32 0
call void @"_ZN44Box$LT$std..sync..condvar..StaticCondvar$GT$9drop.469417hacecdddd6f085ee6E"(%"2.std::sync::condvar::StaticCondvar"** %1)
ret void
}
define internal void @"_ZN44Box$LT$std..sync..condvar..StaticCondvar$GT$9drop.469417hacecdddd6f085ee6E"(%"2.std::sync::condvar::StaticCondvar"**) unnamed_addr {
entry-block:
%1 = load %"2.std::sync::condvar::StaticCondvar"*, %"2.std::sync::condvar::StaticCondvar"** %0
%2 = ptrtoint %"2.std::sync::condvar::StaticCondvar"* %1 to i64
%3 = icmp ne i64 %2, 2097865012304223517
br i1 %3, label %cond, label %next
next: ; preds = %cond, %entry-block
ret void
cond: ; preds = %entry-block
%4 = bitcast %"2.std::sync::condvar::StaticCondvar"* %1 to i8*
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %4, i64 56, i64 8)
br label %next
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN3mem11size_of_val20h5634690238456108449E(%"5.alloc::arc::ArcInner<std::thread::Inner>"* dereferenceable(72)) unnamed_addr #1 {
entry-block:
%val = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"*
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %0, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %val, align 8
%1 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %val, align 8, !nonnull !1
ret i64 72
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN3mem12align_of_val20h9868654142309481359E(%"5.alloc::arc::ArcInner<std::thread::Inner>"* dereferenceable(72)) unnamed_addr #1 {
entry-block:
%val = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"*
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %0, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %val, align 8
%1 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %val, align 8, !nonnull !1
ret i64 8
}
define internal void @"_ZN41alloc..arc..Arc$LT$std..thread..Inner$GT$9drop.470117h3485f6880df67204E"(%"5.alloc::arc::Arc<std::thread::Inner>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %0, i32 0, i32 0
ret void
}
define internal void @"_ZN30std..thread..Packet$LT$i32$GT$9drop.470417h235834151b0d3859E"(%"2.std::thread::Packet<i32>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"2.std::thread::Packet<i32>", %"2.std::thread::Packet<i32>"* %0, i32 0, i32 0
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1)
ret void
}
define internal void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*) unnamed_addr personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%1 = alloca { i8*, i32 }
invoke void @"_ZN3arc17Arc$LT$T$GT$.Drop4drop20h9353956432734013393E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(8) %0)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %entry-block
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.472417h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0)
ret void
unwind_custom_: ; preds = %entry-block
%2 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %2, { i8*, i32 }* %1
br label %clean_custom_
resume: ; preds = %clean_custom_
%3 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %3
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.472417h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0)
br label %resume
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN3arc17Arc$LT$T$GT$.Drop4drop20h9353956432734013393E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%thin = alloca {}*
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**
%1 = alloca i64
%2 = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%auto_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%3 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref to i8*
call void @llvm.memset.p0i8.i64(i8* %3, i8 29, i64 8, i32 8, i1 false)
store %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8
%4 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1
%5 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %4, i32 0, i32 0
%6 = call dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref21h10142749499467380776E"(%"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8) %5)
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %6, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8
%7 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8, !nonnull !1
%8 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %7, align 8
%9 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %8 to {}*
store {}* %9, {}** %thin, align 8
%10 = load {}*, {}** %thin, align 8
%11 = ptrtoint {}* %10 to i64
%12 = icmp eq i64 %11, 2097865012304223517
br i1 %12, label %then-block-123-, label %next-block
then-block-123-: ; preds = %entry-block
br label %clean_ast_106_
clean_ast_106_: ; preds = %clean_ast_106_1, %then-block-123-
br label %return
next-block: ; preds = %entry-block
%13 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1
%14 = call dereferenceable(48) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h14200732739658287836E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %13)
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %14, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %2, align 8
%15 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %2, align 8, !nonnull !1
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %15, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8
%16 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8, !nonnull !1
%17 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %16, i32 0, i32 0
%18 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_sub20h8772de3cc84a5649T1KE(%"1.core::sync::atomic::AtomicUsize"* dereferenceable(8) %17, i64 1, i8 1)
store i64 %18, i64* %1, align 8
%19 = load i64, i64* %1, align 8
%20 = icmp ne i64 %19, 1
br i1 %20, label %then-block-136-, label %next-block2
then-block-136-: ; preds = %next-block
br label %clean_ast_106_1
clean_ast_106_1: ; preds = %then-block-136-
br label %clean_ast_106_
next-block2: ; preds = %next-block
call void @_ZN4sync6atomic5fence20hfb767f14e632fab6sdLE(i8 2)
%21 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1
call void @"_ZN3arc12Arc$LT$T$GT$9drop_slow21h13488544945975673059E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(8) %21)
br label %return
return: ; preds = %next-block2, %clean_ast_106_
ret void
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref21h10142749499467380776E"(%"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"*
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**
store %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %0, %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"** %self, align 8
%1 = load %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"*, %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %1, i32 0, i32 0
%3 = call dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref20h5759148841069799584E"(%"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8) %2)
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %3, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8
%4 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8, !nonnull !1
ret %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %4
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref20h5759148841069799584E"(%"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"*
%inner = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**
store %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %0, %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"** %self, align 8
%1 = load %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"*, %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %1, i32 0, i32 0
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %2, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %inner
%3 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %inner, align 8, !nonnull !1
ret %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %3
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(48) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h14200732739658287836E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**
store %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8
%1 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1, i32 0, i32 0
%3 = call dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref21h10142749499467380776E"(%"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8) %2)
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %3, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8
%4 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8, !nonnull !1
%5 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %4, align 8
ret %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %5
}
; Function Attrs: noinline uwtable
define internal void @"_ZN3arc12Arc$LT$T$GT$9drop_slow21h13488544945975673059E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(8)) unnamed_addr #5 {
entry-block:
%self = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%ptr = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**
%1 = alloca i64
%2 = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%auto_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%3 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref to i8*
call void @llvm.memset.p0i8.i64(i8* %3, i8 29, i64 8, i32 8, i1 false)
%4 = alloca i64
%5 = alloca i64
store %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8
%6 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1
%7 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %6, i32 0, i32 0
%8 = call dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref21h10142749499467380776E"(%"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8) %7)
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %8, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8
%9 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8, !nonnull !1
%10 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %9, align 8
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %10, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8
%11 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8
%12 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %11, i32 0, i32 2
call void @"_ZN167core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$9drop.471017h843efe4baa1ac214E"(%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %12)
%13 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1
%14 = call dereferenceable(48) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h14200732739658287836E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %13)
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %14, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %2, align 8
%15 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %2, align 8, !nonnull !1
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %15, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8
%16 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8, !nonnull !1
%17 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %16, i32 0, i32 1
%18 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_sub20h8772de3cc84a5649T1KE(%"1.core::sync::atomic::AtomicUsize"* dereferenceable(8) %17, i64 1, i8 1)
store i64 %18, i64* %1, align 8
%19 = load i64, i64* %1, align 8
%20 = icmp eq i64 %19, 1
br i1 %20, label %then-block-503-, label %next-block
then-block-503-: ; preds = %entry-block
call void @_ZN4sync6atomic5fence20hfb767f14e632fab6sdLE(i8 2)
%21 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8
%22 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %21 to i8*
%23 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8
%24 = call i64 @_ZN3mem11size_of_val20h5454469079723103408E(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(48) %23)
store i64 %24, i64* %4, align 8
%25 = load i64, i64* %4, align 8
%26 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8
%27 = call i64 @_ZN3mem12align_of_val21h11275424338360675050E(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(48) %26)
store i64 %27, i64* %5, align 8
%28 = load i64, i64* %5, align 8
call void @_ZN4heap10deallocate20hb6b00bc54f0213287eaE(i8* %22, i64 %25, i64 %28)
br label %next-block
next-block: ; preds = %entry-block, %then-block-503-
ret void
}
define internal void @"_ZN167core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$9drop.471017h843efe4baa1ac214E"(%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>", %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %0, i32 0, i32 0
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.471317h0c1536054c4667a3E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %1)
ret void
}
define internal void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.471317h0c1536054c4667a3E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>", %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %0, i32 0, i32 0
%2 = load i64, i64* %1
switch i64 %2, label %enum-iter-ret-void [
i64 0, label %enum-iter-variant-0
i64 1, label %enum-iter-variant-1
]
enum-iter-ret-void: ; preds = %entry-block
ret void
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0
ret void
enum-iter-variant-0: ; preds = %entry-block
br label %enum-iter-next
enum-iter-variant-1: ; preds = %entry-block
%3 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %0 to { i64, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }*
%4 = getelementptr inbounds { i64, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }, { i64, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }* %3, i32 0, i32 1
call void @"_ZN109core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.471617h59b33c617b2df913E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %4)
br label %enum-iter-next
}
define internal void @"_ZN109core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.471617h59b33c617b2df913E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>", %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0
%2 = load i8, i8* %1
switch i8 %2, label %enum-iter-ret-void [
i8 0, label %enum-iter-variant-0
i8 1, label %enum-iter-variant-1
]
enum-iter-ret-void: ; preds = %entry-block
ret void
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0
ret void
enum-iter-variant-0: ; preds = %entry-block
%3 = bitcast %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, i32 }*
%4 = getelementptr inbounds { i8, i32 }, { i8, i32 }* %3, i32 0, i32 1
br label %enum-iter-next
enum-iter-variant-1: ; preds = %entry-block
%5 = bitcast %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, { i8*, void (i8*)** } }*
%6 = getelementptr inbounds { i8, { i8*, void (i8*)** } }, { i8, { i8*, void (i8*)** } }* %5, i32 0, i32 1
call void @"_ZN70Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$9drop.471917ha2961773cdf5e193E"({ i8*, void (i8*)** }* %6)
br label %enum-iter-next
}
define internal void @"_ZN70Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$9drop.471917ha2961773cdf5e193E"({ i8*, void (i8*)** }*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 0
%2 = load i8*, i8** %1
%3 = ptrtoint i8* %2 to i64
%4 = icmp ne i64 %3, 2097865012304223517
br i1 %4, label %cond, label %next
next: ; preds = %next1, %entry-block
ret void
cond: ; preds = %entry-block
call void @"_ZN59core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static9drop.472217h60131eca772499a0E"({ i8*, void (i8*)** }* %0)
%5 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 1
%6 = load void (i8*)**, void (i8*)*** %5
%7 = bitcast void (i8*)** %6 to i64*
%8 = getelementptr inbounds i64, i64* %7, i32 1
%9 = getelementptr inbounds i64, i64* %7, i32 2
%10 = load i64, i64* %8
%11 = load i64, i64* %9
%12 = icmp ne i64 %10, 0
br i1 %12, label %cond2, label %next1
next1: ; preds = %cond2, %cond
br label %next
cond2: ; preds = %cond
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %2, i64 %10, i64 %11)
br label %next1
}
define internal void @"_ZN59core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static9drop.472217h60131eca772499a0E"({ i8*, void (i8*)** }*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 0
%2 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 1
%3 = load void (i8*)**, void (i8*)*** %2
%4 = load void (i8*)*, void (i8*)** %3
%5 = load i8*, i8** %1
call void %4(i8* %5)
ret void
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN3mem11size_of_val20h5454469079723103408E(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(48)) unnamed_addr #1 {
entry-block:
%val = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %val, align 8
%1 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %val, align 8, !nonnull !1
ret i64 48
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN3mem12align_of_val21h11275424338360675050E(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(48)) unnamed_addr #1 {
entry-block:
%val = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %val, align 8
%1 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %val, align 8, !nonnull !1
ret i64 8
}
define internal void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.472417h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, i32 0, i32 0
ret void
}
; Function Attrs: cold noinline noreturn uwtable
define internal void @_ZN6result13unwrap_failed20h1876135566383573108E(i8* noalias nonnull readonly, i64, %"2.std::io::error::Error"* noalias nocapture dereferenceable(16) %error) unnamed_addr #7 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%msg = alloca %str_slice
%2 = alloca %"1.core::fmt::Arguments"
%3 = alloca { %str_slice*, i64 }
%4 = alloca [2 x %"1.core::fmt::ArgumentV1"]
%5 = alloca { %str_slice*, %"2.std::io::error::Error"* }
%__llmatch = alloca %str_slice**
%__arg0 = alloca %str_slice*
%__llmatch1 = alloca %"2.std::io::error::Error"**
%__arg1 = alloca %"2.std::io::error::Error"*
%6 = alloca { i8*, i32 }
%__coerce_target = alloca { %"1.core::fmt::ArgumentV1"*, i64 }
%7 = getelementptr inbounds %str_slice, %str_slice* %msg, i32 0, i32 0
store i8* %0, i8** %7
%8 = getelementptr inbounds %str_slice, %str_slice* %msg, i32 0, i32 1
store i64 %1, i64* %8
%9 = bitcast { %str_slice*, i64 }* %3 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* bitcast ({ %str_slice*, i64 }* @_ZN6result13unwrap_failed15__STATIC_FMTSTR20hf92ae00c19516543Q5OE to i8*), i64 16, i32 8, i1 false)
%10 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %3, i32 0, i32 0
%11 = load %str_slice*, %str_slice** %10
%12 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %3, i32 0, i32 1
%13 = load i64, i64* %12
%14 = getelementptr inbounds { %str_slice*, %"2.std::io::error::Error"* }, { %str_slice*, %"2.std::io::error::Error"* }* %5, i32 0, i32 0
store %str_slice* %msg, %str_slice** %14, align 8
%15 = getelementptr inbounds { %str_slice*, %"2.std::io::error::Error"* }, { %str_slice*, %"2.std::io::error::Error"* }* %5, i32 0, i32 1
store %"2.std::io::error::Error"* %error, %"2.std::io::error::Error"** %15, align 8
%16 = getelementptr inbounds { %str_slice*, %"2.std::io::error::Error"* }, { %str_slice*, %"2.std::io::error::Error"* }* %5, i32 0, i32 0
%17 = getelementptr inbounds { %str_slice*, %"2.std::io::error::Error"* }, { %str_slice*, %"2.std::io::error::Error"* }* %5, i32 0, i32 1
store %"2.std::io::error::Error"** %17, %"2.std::io::error::Error"*** %__llmatch1
store %str_slice** %16, %str_slice*** %__llmatch
br label %case_body
case_body: ; preds = %entry-block
%18 = load %str_slice**, %str_slice*** %__llmatch
%19 = load %str_slice*, %str_slice** %18, align 8, !nonnull !1
store %str_slice* %19, %str_slice** %__arg0, align 8
%20 = load %"2.std::io::error::Error"**, %"2.std::io::error::Error"*** %__llmatch1
%21 = load %"2.std::io::error::Error"*, %"2.std::io::error::Error"** %20, align 8, !nonnull !1
store %"2.std::io::error::Error"* %21, %"2.std::io::error::Error"** %__arg1, align 8
%22 = getelementptr inbounds [2 x %"1.core::fmt::ArgumentV1"], [2 x %"1.core::fmt::ArgumentV1"]* %4, i32 0, i32 0
%23 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %22, i32 0
%24 = load %str_slice*, %str_slice** %__arg0, align 8, !nonnull !1
invoke void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new20h3328580461289412312E"(%"1.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16) %23, %str_slice* noalias readonly dereferenceable(16) %24, i8 (%str_slice*, %"1.core::fmt::Formatter"*)* @"_ZN3fmt25_$RF$$u27$a$u20$T.Display3fmt20h1949050574023800080E")
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %case_body
%25 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %22, i32 1
%26 = load %"2.std::io::error::Error"*, %"2.std::io::error::Error"** %__arg1, align 8, !nonnull !1
invoke void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new21h11375164507710303157E"(%"1.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16) %25, %"2.std::io::error::Error"* noalias readonly dereferenceable(16) %26, i8 (%"2.std::io::error::Error"*, %"1.core::fmt::Formatter"*)* @_ZN2io5error24Error...core..fmt..Debug3fmt20h60fd01dad14aa91fkhgE)
to label %normal-return2 unwind label %unwind_custom_
unwind_custom_: ; preds = %normal-return3, %join, %normal-return, %case_body
%27 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %27, { i8*, i32 }* %6
br label %clean_custom_
resume: ; preds = %clean_custom_
%28 = load { i8*, i32 }, { i8*, i32 }* %6
resume { i8*, i32 } %28
clean_custom_: ; preds = %unwind_custom_
call void @_ZN21std..io..error..Error9drop.472817hb777fe86563aa27aE(%"2.std::io::error::Error"* %error)
br label %resume
normal-return2: ; preds = %normal-return
br label %join
join: ; preds = %normal-return2
%29 = bitcast [2 x %"1.core::fmt::ArgumentV1"]* %4 to %"1.core::fmt::ArgumentV1"*
%30 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0
store %"1.core::fmt::ArgumentV1"* %29, %"1.core::fmt::ArgumentV1"** %30
%31 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1
store i64 2, i64* %31
%32 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0
%33 = load %"1.core::fmt::ArgumentV1"*, %"1.core::fmt::ArgumentV1"** %32
%34 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1
%35 = load i64, i64* %34
invoke void @"_ZN3fmt23Arguments$LT$$u27$a$GT$6new_v120he832f0357fe73cd4nLWE"(%"1.core::fmt::Arguments"* noalias nocapture sret dereferenceable(48) %2, %str_slice* noalias nonnull readonly %11, i64 %13, %"1.core::fmt::ArgumentV1"* noalias nonnull readonly %33, i64 %35)
to label %normal-return3 unwind label %unwind_custom_
normal-return3: ; preds = %join
invoke void @_ZN9panicking9panic_fmt20hd3ab350bce4886e96YLE(%"1.core::fmt::Arguments"* noalias nocapture dereferenceable(48) %2, { %str_slice, i32 }* noalias readonly dereferenceable(24) @_ZN6result13unwrap_failed10_FILE_LINE20h4a56c969ed2d4d85A5OE)
to label %normal-return4 unwind label %unwind_custom_
normal-return4: ; preds = %normal-return3
unreachable
}
; Function Attrs: cold noinline noreturn
declare void @_ZN9panicking9panic_fmt20hd3ab350bce4886e96YLE(%"1.core::fmt::Arguments"* noalias nocapture dereferenceable(48), { %str_slice, i32 }* noalias readonly dereferenceable(24)) unnamed_addr #4
; Function Attrs: uwtable
define internal void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new20h3328580461289412312E"(%"1.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16), %str_slice* noalias readonly dereferenceable(16), i8 (%str_slice*, %"1.core::fmt::Formatter"*)*) unnamed_addr #0 {
entry-block:
%x = alloca %str_slice*
%f = alloca i8 (%str_slice*, %"1.core::fmt::Formatter"*)*
store %str_slice* %1, %str_slice** %x, align 8
store i8 (%str_slice*, %"1.core::fmt::Formatter"*)* %2, i8 (%str_slice*, %"1.core::fmt::Formatter"*)** %f, align 8
%3 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %0, i32 0, i32 1
%4 = load i8 (%str_slice*, %"1.core::fmt::Formatter"*)*, i8 (%str_slice*, %"1.core::fmt::Formatter"*)** %f, align 8
%5 = bitcast i8 (%str_slice*, %"1.core::fmt::Formatter"*)* %4 to i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)*
store i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)* %5, i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)** %3
%6 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %0, i32 0, i32 0
%7 = load %str_slice*, %str_slice** %x, align 8, !nonnull !1
%8 = bitcast %str_slice* %7 to %"1.core::fmt::Void"*
store %"1.core::fmt::Void"* %8, %"1.core::fmt::Void"** %6
ret void
}
; Function Attrs: uwtable
define internal i8 @"_ZN3fmt25_$RF$$u27$a$u20$T.Display3fmt20h1949050574023800080E"(%str_slice* noalias readonly dereferenceable(16), %"1.core::fmt::Formatter"* dereferenceable(96)) unnamed_addr #0 {
entry-block:
%sret_slot = alloca %"1.core::result::Result<(), core::fmt::Error>"
%self = alloca %str_slice*
%f = alloca %"1.core::fmt::Formatter"*
store %str_slice* %0, %str_slice** %self, align 8
store %"1.core::fmt::Formatter"* %1, %"1.core::fmt::Formatter"** %f, align 8
%2 = load %str_slice*, %str_slice** %self, align 8, !nonnull !1
%3 = getelementptr inbounds %str_slice, %str_slice* %2, i32 0, i32 0
%4 = load i8*, i8** %3
%5 = getelementptr inbounds %str_slice, %str_slice* %2, i32 0, i32 1
%6 = load i64, i64* %5
%7 = load %"1.core::fmt::Formatter"*, %"1.core::fmt::Formatter"** %f, align 8, !nonnull !1
%8 = call i8 @_ZN3fmt11str.Display3fmt20heb4a20d360344d3ePoXE(i8* noalias nonnull readonly %4, i64 %6, %"1.core::fmt::Formatter"* dereferenceable(96) %7)
%9 = bitcast %"1.core::result::Result<(), core::fmt::Error>"* %sret_slot to i8*
store i8 %8, i8* %9, align 1
%10 = bitcast %"1.core::result::Result<(), core::fmt::Error>"* %sret_slot to i8*
%11 = load i8, i8* %10, align 1
ret i8 %11
}
declare i8 @_ZN3fmt11str.Display3fmt20heb4a20d360344d3ePoXE(i8* noalias nonnull readonly, i64, %"1.core::fmt::Formatter"* dereferenceable(96)) unnamed_addr
define internal void @_ZN21std..io..error..Error9drop.472817hb777fe86563aa27aE(%"2.std::io::error::Error"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"2.std::io::error::Error", %"2.std::io::error::Error"* %0, i32 0, i32 0
call void @_ZN20std..io..error..Repr9drop.473117h2dc9f10a48be79e5E(%"2.std::io::error::Repr"* %1)
ret void
}
define internal void @_ZN20std..io..error..Repr9drop.473117h2dc9f10a48be79e5E(%"2.std::io::error::Repr"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"2.std::io::error::Repr", %"2.std::io::error::Repr"* %0, i32 0, i32 0
%2 = load i8, i8* %1
switch i8 %2, label %enum-iter-ret-void [
i8 0, label %enum-iter-variant-0
i8 1, label %enum-iter-variant-1
]
enum-iter-ret-void: ; preds = %entry-block
ret void
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0
ret void
enum-iter-variant-0: ; preds = %entry-block
%3 = bitcast %"2.std::io::error::Repr"* %0 to { i8, i32 }*
%4 = getelementptr inbounds { i8, i32 }, { i8, i32 }* %3, i32 0, i32 1
br label %enum-iter-next
enum-iter-variant-1: ; preds = %entry-block
%5 = bitcast %"2.std::io::error::Repr"* %0 to { i8, %"2.std::io::error::Custom"* }*
%6 = getelementptr inbounds { i8, %"2.std::io::error::Custom"* }, { i8, %"2.std::io::error::Custom"* }* %5, i32 0, i32 1
call void @"_ZN33Box$LT$std..io..error..Custom$GT$9drop.473417h92994862b3cc7ac5E"(%"2.std::io::error::Custom"** %6)
br label %enum-iter-next
}
define internal void @"_ZN33Box$LT$std..io..error..Custom$GT$9drop.473417h92994862b3cc7ac5E"(%"2.std::io::error::Custom"**) unnamed_addr {
entry-block:
%1 = load %"2.std::io::error::Custom"*, %"2.std::io::error::Custom"** %0
%2 = ptrtoint %"2.std::io::error::Custom"* %1 to i64
%3 = icmp ne i64 %2, 2097865012304223517
br i1 %3, label %cond, label %next
next: ; preds = %cond, %entry-block
ret void
cond: ; preds = %entry-block
call void @_ZN22std..io..error..Custom9drop.473717he111f6ee8acc5729E(%"2.std::io::error::Custom"* %1)
%4 = bitcast %"2.std::io::error::Custom"* %1 to i8*
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %4, i64 24, i64 8)
br label %next
}
define internal void @_ZN22std..io..error..Custom9drop.473717he111f6ee8acc5729E(%"2.std::io::error::Custom"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"2.std::io::error::Custom", %"2.std::io::error::Custom"* %0, i32 0, i32 0
%2 = getelementptr inbounds %"2.std::io::error::Custom", %"2.std::io::error::Custom"* %0, i32 0, i32 1
call void @"_ZN92Box$LT$std..error..Error$u20$$u2b$$u20$Send$u20$$u2b$$u20$Sync$u20$$u2b$$u20$$u27$static$GT$9drop.474017hc1265265655031b0E"({ i8*, void (i8*)** }* %2)
ret void
}
define internal void @"_ZN92Box$LT$std..error..Error$u20$$u2b$$u20$Send$u20$$u2b$$u20$Sync$u20$$u2b$$u20$$u27$static$GT$9drop.474017hc1265265655031b0E"({ i8*, void (i8*)** }*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 0
%2 = load i8*, i8** %1
%3 = ptrtoint i8* %2 to i64
%4 = icmp ne i64 %3, 2097865012304223517
br i1 %4, label %cond, label %next
next: ; preds = %next1, %entry-block
ret void
cond: ; preds = %entry-block
call void @"_ZN81std..error..Error$u20$$u2b$$u20$Send$u20$$u2b$$u20$Sync$u20$$u2b$$u20$$u27$static9drop.474317h5ae6b6e090aaf2f6E"({ i8*, void (i8*)** }* %0)
%5 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 1
%6 = load void (i8*)**, void (i8*)*** %5
%7 = bitcast void (i8*)** %6 to i64*
%8 = getelementptr inbounds i64, i64* %7, i32 1
%9 = getelementptr inbounds i64, i64* %7, i32 2
%10 = load i64, i64* %8
%11 = load i64, i64* %9
%12 = icmp ne i64 %10, 0
br i1 %12, label %cond2, label %next1
next1: ; preds = %cond2, %cond
br label %next
cond2: ; preds = %cond
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %2, i64 %10, i64 %11)
br label %next1
}
define internal void @"_ZN81std..error..Error$u20$$u2b$$u20$Send$u20$$u2b$$u20$Sync$u20$$u2b$$u20$$u27$static9drop.474317h5ae6b6e090aaf2f6E"({ i8*, void (i8*)** }*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 0
%2 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 1
%3 = load void (i8*)**, void (i8*)*** %2
%4 = load void (i8*)*, void (i8*)** %3
%5 = load i8*, i8** %1
call void %4(i8* %5)
ret void
}
; Function Attrs: uwtable
define internal void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new21h11375164507710303157E"(%"1.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16), %"2.std::io::error::Error"* noalias readonly dereferenceable(16), i8 (%"2.std::io::error::Error"*, %"1.core::fmt::Formatter"*)*) unnamed_addr #0 {
entry-block:
%x = alloca %"2.std::io::error::Error"*
%f = alloca i8 (%"2.std::io::error::Error"*, %"1.core::fmt::Formatter"*)*
store %"2.std::io::error::Error"* %1, %"2.std::io::error::Error"** %x, align 8
store i8 (%"2.std::io::error::Error"*, %"1.core::fmt::Formatter"*)* %2, i8 (%"2.std::io::error::Error"*, %"1.core::fmt::Formatter"*)** %f, align 8
%3 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %0, i32 0, i32 1
%4 = load i8 (%"2.std::io::error::Error"*, %"1.core::fmt::Formatter"*)*, i8 (%"2.std::io::error::Error"*, %"1.core::fmt::Formatter"*)** %f, align 8
%5 = bitcast i8 (%"2.std::io::error::Error"*, %"1.core::fmt::Formatter"*)* %4 to i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)*
store i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)* %5, i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)** %3
%6 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %0, i32 0, i32 0
%7 = load %"2.std::io::error::Error"*, %"2.std::io::error::Error"** %x, align 8, !nonnull !1
%8 = bitcast %"2.std::io::error::Error"* %7 to %"1.core::fmt::Void"*
store %"1.core::fmt::Void"* %8, %"1.core::fmt::Void"** %6
ret void
}
declare i8 @_ZN2io5error24Error...core..fmt..Debug3fmt20h60fd01dad14aa91fkhgE(%"2.std::io::error::Error"* noalias readonly dereferenceable(16), %"1.core::fmt::Formatter"* dereferenceable(96)) unnamed_addr
define internal void @"_ZN91core..result..Result$LT$std..thread..JoinHandle$LT$i32$GT$$C$$u20$std..io..error..Error$GT$9drop.475017hc4174e44d68d042eE"(%"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>", %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %0, i32 0, i32 0
%2 = load i64, i64* %1
switch i64 %2, label %enum-iter-ret-void [
i64 0, label %enum-iter-variant-0
i64 1, label %enum-iter-variant-1
]
enum-iter-ret-void: ; preds = %entry-block
ret void
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0
ret void
enum-iter-variant-0: ; preds = %entry-block
%3 = bitcast %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %0 to { i64, %"2.std::thread::JoinHandle<i32>" }*
%4 = getelementptr inbounds { i64, %"2.std::thread::JoinHandle<i32>" }, { i64, %"2.std::thread::JoinHandle<i32>" }* %3, i32 0, i32 1
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.432517h7f68f48c9da6347cE"(%"2.std::thread::JoinHandle<i32>"* %4)
br label %enum-iter-next
enum-iter-variant-1: ; preds = %entry-block
%5 = bitcast %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %0 to { i64, %"2.std::io::error::Error" }*
%6 = getelementptr inbounds { i64, %"2.std::io::error::Error" }, { i64, %"2.std::io::error::Error" }* %5, i32 0, i32 1
call void @_ZN21std..io..error..Error9drop.472817hb777fe86563aa27aE(%"2.std::io::error::Error"* %6)
br label %enum-iter-next
}
; Function Attrs: uwtable
define internal void @_ZN6thread7Builder5spawn21h10742646647574140955E(%"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* noalias nocapture sret dereferenceable(48), %"2.std::thread::Builder"* noalias nocapture dereferenceable(40) %self, %closure) unnamed_addr #0 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%llretslotptr = alloca %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"*
store %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %0, %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"** %llretslotptr
%f = alloca %closure
%iret_slot = alloca %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"
%name = alloca %"1.core::option::Option<collections::string::String>"
%stack_size = alloca %"1.core::option::Option<usize>"
%stack_size1 = alloca i64
%arg = alloca %"1.core::option::Option<usize>"
%2 = alloca i64
%3 = alloca { i8*, i32 }
%my_thread = alloca %"2.std::thread::Thread"
%arg3 = alloca %"1.core::option::Option<collections::string::String>"
%their_thread = alloca %"2.std::thread::Thread"
%my_packet = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"
%const = alloca %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"
%their_packet = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"
%main = alloca %closure.0
%4 = alloca %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"
%arg16 = alloca %closure.0
%val = alloca %"2.std::sys::thread::Thread"*
%err = alloca %"2.std::io::error::Error"*
%ret_slot = alloca %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"
%arg22 = alloca %"2.std::io::error::Error"
%5 = getelementptr inbounds %"2.std::thread::Builder", %"2.std::thread::Builder"* %self, i32 0, i32 0
%6 = bitcast %"1.core::option::Option<collections::string::String>"* %5 to i8*
%7 = bitcast %"1.core::option::Option<collections::string::String>"* %name to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %7, i8* %6, i64 24, i32 8, i1 false)
%8 = bitcast %"1.core::option::Option<collections::string::String>"* %5 to i8*
call void @llvm.memset.p0i8.i64(i8* %8, i8 29, i64 24, i32 8, i1 false)
%9 = getelementptr inbounds %"2.std::thread::Builder", %"2.std::thread::Builder"* %self, i32 0, i32 1
%10 = bitcast %"1.core::option::Option<usize>"* %9 to i8*
%11 = bitcast %"1.core::option::Option<usize>"* %stack_size to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %11, i8* %10, i64 16, i32 8, i1 false)
%12 = bitcast %"1.core::option::Option<usize>"* %stack_size to i8*
%13 = bitcast %"1.core::option::Option<usize>"* %arg to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %13, i8* %12, i64 16, i32 8, i1 false)
%14 = invoke i64 @_ZN10sys_common4util9min_stack20h86ca992492bbcc24YltE()
to label %normal-return unwind label %unwind_ast_9171_
normal-return: ; preds = %entry-block
store i64 %14, i64* %2, align 8
%15 = load i64, i64* %2, align 8
%16 = invoke i64 @"_ZN6option15Option$LT$T$GT$9unwrap_or21h14126731333190218422E"(%"1.core::option::Option<usize>"* noalias nocapture dereferenceable(16) %arg, i64 %15)
to label %normal-return2 unwind label %unwind_ast_9171_
unwind_ast_9171_: ; preds = %normal-return, %entry-block
%17 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %17, { i8*, i32 }* %3
br label %clean_ast_9171_
resume: ; preds = %clean_custom_
%18 = load { i8*, i32 }, { i8*, i32 }* %3
resume { i8*, i32 } %18
clean_custom_: ; preds = %clean_ast_9171_
call void @_ZN20std..thread..Builder9drop.477017h4f26505035c95845E(%"2.std::thread::Builder"* %self)
br label %resume
clean_ast_9171_: ; preds = %clean_ast_9171_6, %unwind_ast_9171_
call void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.444017he0121e2e024daed1E"(%"1.core::option::Option<collections::string::String>"* %name)
br label %clean_custom_
normal-return2: ; preds = %normal-return
store i64 %16, i64* %stack_size1, align 8
%19 = bitcast %"1.core::option::Option<collections::string::String>"* %name to i8*
%20 = bitcast %"1.core::option::Option<collections::string::String>"* %arg3 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %20, i8* %19, i64 24, i32 8, i1 false)
%21 = bitcast %"1.core::option::Option<collections::string::String>"* %name to i8*
call void @llvm.memset.p0i8.i64(i8* %21, i8 29, i64 24, i32 8, i1 false)
%22 = invoke i64 @_ZN6thread6Thread3new20hf1a305e08ff0b35aLGbE(%"1.core::option::Option<collections::string::String>"* noalias nocapture dereferenceable(24) %arg3)
to label %normal-return4 unwind label %unwind_ast_9171_5
normal-return4: ; preds = %normal-return2
%23 = bitcast %"2.std::thread::Thread"* %my_thread to i64*
store i64 %22, i64* %23, align 8
%24 = invoke i64 @_ZN6thread27Thread...core..clone..Clone5clone20h7c83e9af70ae2e26oGbE(%"2.std::thread::Thread"* noalias readonly dereferenceable(8) %my_thread)
to label %normal-return7 unwind label %unwind_ast_9171_8
unwind_ast_9171_5: ; preds = %normal-return2
%25 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %25, { i8*, i32 }* %3
br label %clean_ast_9171_6
clean_ast_9171_6: ; preds = %clean_ast_9171_9, %unwind_ast_9171_5
br label %clean_ast_9171_
normal-return7: ; preds = %normal-return4
%26 = bitcast %"2.std::thread::Thread"* %their_thread to i64*
store i64 %24, i64* %26, align 8
%27 = bitcast %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %const to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %27, i8* bitcast ({ { i64, [24 x i8] } }* @const4848 to i8*), i64 32, i32 8, i1 false)
%28 = invoke i64 @"_ZN3arc12Arc$LT$T$GT$3new21h10152365789534857938E"(%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* noalias nocapture dereferenceable(32) %const)
to label %normal-return10 unwind label %unwind_ast_9171_11
unwind_ast_9171_8: ; preds = %normal-return4
%29 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %29, { i8*, i32 }* %3
br label %clean_ast_9171_9
clean_ast_9171_9: ; preds = %clean_ast_9171_12, %unwind_ast_9171_8
call void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"* %my_thread)
br label %clean_ast_9171_6
normal-return10: ; preds = %normal-return7
%30 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet to i64*
store i64 %28, i64* %30, align 8
%31 = invoke i64 @"_ZN3arc18Arc$LT$T$GT$.Clone5clone20h6788750237553431627E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %my_packet)
to label %normal-return13 unwind label %unwind_ast_9171_14
unwind_ast_9171_11: ; preds = %normal-return7
%32 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %32, { i8*, i32 }* %3
br label %clean_ast_9171_12
clean_ast_9171_12: ; preds = %clean_ast_9171_15, %unwind_ast_9171_11
call void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"* %their_thread)
br label %clean_ast_9171_9
normal-return13: ; preds = %normal-return10
%33 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet to i64*
store i64 %31, i64* %33, align 8
%34 = getelementptr inbounds %closure.0, %closure.0* %main, i32 0, i32 0
%35 = bitcast %"2.std::thread::Thread"* %their_thread to i8*
%36 = bitcast %"2.std::thread::Thread"* %34 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %36, i8* %35, i64 8, i32 8, i1 false)
%37 = bitcast %"2.std::thread::Thread"* %their_thread to i8*
call void @llvm.memset.p0i8.i64(i8* %37, i8 29, i64 8, i32 8, i1 false)
%38 = getelementptr inbounds %closure.0, %closure.0* %main, i32 0, i32 1
%39 = getelementptr inbounds %closure.0, %closure.0* %main, i32 0, i32 2
%40 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet to i8*
%41 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %39 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %41, i8* %40, i64 8, i32 8, i1 false)
%42 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet to i8*
call void @llvm.memset.p0i8.i64(i8* %42, i8 29, i64 8, i32 8, i1 false)
%43 = bitcast %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %iret_slot to { i64, %"2.std::thread::JoinHandle<i32>" }*
%44 = getelementptr inbounds { i64, %"2.std::thread::JoinHandle<i32>" }, { i64, %"2.std::thread::JoinHandle<i32>" }* %43, i32 0, i32 1
%45 = getelementptr inbounds %"2.std::thread::JoinHandle<i32>", %"2.std::thread::JoinHandle<i32>"* %44, i32 0, i32 0
%46 = getelementptr inbounds %"2.std::thread::JoinInner<i32>", %"2.std::thread::JoinInner<i32>"* %45, i32 0, i32 0
%47 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %46 to { i64, %"2.std::sys::thread::Thread" }*
%48 = getelementptr inbounds { i64, %"2.std::sys::thread::Thread" }, { i64, %"2.std::sys::thread::Thread" }* %47, i32 0, i32 1
%49 = load i64, i64* %stack_size1, align 8
%50 = bitcast %closure.0* %main to i8*
%51 = bitcast %closure.0* %arg16 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %51, i8* %50, i64 16, i32 8, i1 false)
%52 = bitcast %closure.0* %main to i8*
call void @llvm.memset.p0i8.i64(i8* %52, i8 29, i64 16, i32 8, i1 false)
invoke void @_ZN3sys6thread6Thread3new21h15728162040669553108E(%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* noalias nocapture sret dereferenceable(24) %4, i64 %49, %closure.0* noalias nocapture dereferenceable(16) %arg16)
to label %normal-return17 unwind label %unwind_ast_9171_18
unwind_ast_9171_14: ; preds = %normal-return10
%53 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %53, { i8*, i32 }* %3
br label %clean_ast_9171_15
clean_ast_9171_15: ; preds = %clean_ast_9171_19, %unwind_ast_9171_14
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet)
br label %clean_ast_9171_12
normal-return17: ; preds = %normal-return13
%54 = getelementptr inbounds %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>", %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %4, i32 0, i32 0
%55 = load i64, i64* %54, !range !2
switch i64 %55, label %match_else [
i64 0, label %match_case
i64 1, label %match_case21
]
unwind_ast_9171_18: ; preds = %normal-return13
%56 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %56, { i8*, i32 }* %3
br label %clean_ast_9171_19
clean_ast_9171_19: ; preds = %clean_ast_9171_24, %unwind_ast_9171_18
call void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.499017h03213aa6cad857e4E"(%closure.0* %main)
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet)
br label %clean_ast_9171_15
case_body: ; preds = %match_case
%57 = load %"2.std::sys::thread::Thread"*, %"2.std::sys::thread::Thread"** %val
%58 = bitcast %"2.std::sys::thread::Thread"* %57 to i8*
%59 = bitcast %"2.std::sys::thread::Thread"* %48 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %59, i8* %58, i64 16, i32 8, i1 false)
%60 = bitcast %"2.std::sys::thread::Thread"* %57 to i8*
call void @llvm.memset.p0i8.i64(i8* %60, i8 29, i64 16, i32 8, i1 false)
call void @_ZN24std..sys..thread..Thread9drop.433417hcbc9fc29160ac810E(%"2.std::sys::thread::Thread"* %57)
%61 = bitcast %"2.std::sys::thread::Thread"* %57 to i8*
call void @llvm.memset.p0i8.i64(i8* %61, i8 29, i64 16, i32 8, i1 false)
br label %join
case_body20: ; preds = %match_case21
%62 = load %"2.std::io::error::Error"*, %"2.std::io::error::Error"** %err
%63 = bitcast %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %ret_slot to { i64, %"2.std::io::error::Error" }*
%64 = getelementptr inbounds { i64, %"2.std::io::error::Error" }, { i64, %"2.std::io::error::Error" }* %63, i32 0, i32 1
%65 = bitcast %"2.std::io::error::Error"* %62 to i8*
%66 = bitcast %"2.std::io::error::Error"* %arg22 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %66, i8* %65, i64 16, i32 8, i1 false)
%67 = bitcast %"2.std::io::error::Error"* %62 to i8*
call void @llvm.memset.p0i8.i64(i8* %67, i8 29, i64 16, i32 8, i1 false)
invoke void @"_ZN7convert15T.From$LT$T$GT$4from20h2997837675504574822E"(%"2.std::io::error::Error"* noalias nocapture sret dereferenceable(16) %64, %"2.std::io::error::Error"* noalias nocapture dereferenceable(16) %arg22)
to label %normal-return23 unwind label %unwind_custom_
match_else: ; preds = %normal-return17
unreachable
match_case: ; preds = %normal-return17
%68 = bitcast %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %4 to { i64, %"2.std::sys::thread::Thread" }*
%69 = getelementptr inbounds { i64, %"2.std::sys::thread::Thread" }, { i64, %"2.std::sys::thread::Thread" }* %68, i32 0, i32 1
store %"2.std::sys::thread::Thread"* %69, %"2.std::sys::thread::Thread"** %val
br label %case_body
match_case21: ; preds = %normal-return17
%70 = bitcast %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %4 to { i64, %"2.std::io::error::Error" }*
%71 = getelementptr inbounds { i64, %"2.std::io::error::Error" }, { i64, %"2.std::io::error::Error" }* %70, i32 0, i32 1
store %"2.std::io::error::Error"* %71, %"2.std::io::error::Error"** %err
br label %case_body20
normal-return23: ; preds = %case_body20
%72 = getelementptr inbounds %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>", %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %ret_slot, i32 0, i32 0
store i64 1, i64* %72
store %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %ret_slot, %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"** %llretslotptr
br label %clean_custom_28
unwind_custom_: ; preds = %case_body20
%73 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %73, { i8*, i32 }* %3
br label %clean_custom_25
clean_ast_9171_24: ; preds = %clean_custom_25
call void @"_ZN81core..result..Result$LT$std..sys..thread..Thread$C$$u20$std..io..error..Error$GT$9drop.501617hdffd08fc3bf06d8fE"(%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %4)
br label %clean_ast_9171_19
clean_custom_25: ; preds = %unwind_custom_
call void @_ZN21std..io..error..Error9drop.472817hb777fe86563aa27aE(%"2.std::io::error::Error"* %62)
%74 = bitcast %"2.std::io::error::Error"* %62 to i8*
call void @llvm.memset.p0i8.i64(i8* %74, i8 29, i64 16, i32 8, i1 false)
br label %clean_ast_9171_24
clean_custom_26: ; preds = %clean_custom_29, %clean_ast_9171_27
call void @_ZN20std..thread..Builder9drop.477017h4f26505035c95845E(%"2.std::thread::Builder"* %self)
br label %return
clean_ast_9171_27: ; preds = %clean_custom_28
call void @"_ZN81core..result..Result$LT$std..sys..thread..Thread$C$$u20$std..io..error..Error$GT$9drop.501617hdffd08fc3bf06d8fE"(%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %4)
call void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.499017h03213aa6cad857e4E"(%closure.0* %main)
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet)
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet)
call void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"* %their_thread)
call void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"* %my_thread)
call void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.444017he0121e2e024daed1E"(%"1.core::option::Option<collections::string::String>"* %name)
br label %clean_custom_26
clean_custom_28: ; preds = %normal-return23
call void @_ZN21std..io..error..Error9drop.472817hb777fe86563aa27aE(%"2.std::io::error::Error"* %62)
%75 = bitcast %"2.std::io::error::Error"* %62 to i8*
call void @llvm.memset.p0i8.i64(i8* %75, i8 29, i64 16, i32 8, i1 false)
br label %clean_ast_9171_27
join: ; preds = %case_body
%76 = getelementptr inbounds %"1.core::option::Option<std::sys::thread::Thread>", %"1.core::option::Option<std::sys::thread::Thread>"* %46, i32 0, i32 0
store i64 1, i64* %76
%77 = getelementptr inbounds %"2.std::thread::JoinInner<i32>", %"2.std::thread::JoinInner<i32>"* %45, i32 0, i32 1
%78 = bitcast %"2.std::thread::Thread"* %my_thread to i8*
%79 = bitcast %"2.std::thread::Thread"* %77 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %79, i8* %78, i64 8, i32 8, i1 false)
%80 = bitcast %"2.std::thread::Thread"* %my_thread to i8*
call void @llvm.memset.p0i8.i64(i8* %80, i8 29, i64 8, i32 8, i1 false)
%81 = getelementptr inbounds %"2.std::thread::JoinInner<i32>", %"2.std::thread::JoinInner<i32>"* %45, i32 0, i32 2
%82 = getelementptr inbounds %"2.std::thread::Packet<i32>", %"2.std::thread::Packet<i32>"* %81, i32 0, i32 0
%83 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet to i8*
%84 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %82 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %84, i8* %83, i64 8, i32 8, i1 false)
%85 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet to i8*
call void @llvm.memset.p0i8.i64(i8* %85, i8 29, i64 8, i32 8, i1 false)
%86 = getelementptr inbounds %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>", %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %iret_slot, i32 0, i32 0
store i64 0, i64* %86
call void @"_ZN81core..result..Result$LT$std..sys..thread..Thread$C$$u20$std..io..error..Error$GT$9drop.501617hdffd08fc3bf06d8fE"(%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %4)
call void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.499017h03213aa6cad857e4E"(%closure.0* %main)
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet)
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet)
call void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"* %their_thread)
call void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"* %my_thread)
call void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.444017he0121e2e024daed1E"(%"1.core::option::Option<collections::string::String>"* %name)
store %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %iret_slot, %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"** %llretslotptr
br label %clean_custom_29
return: ; preds = %clean_custom_26
%87 = load %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"*, %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"** %llretslotptr
%88 = bitcast %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %87 to i8*
%89 = bitcast %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %89, i8* %88, i64 48, i32 8, i1 false)
ret void
clean_custom_29: ; preds = %join
br label %clean_custom_26
}
; Function Attrs: inlinehint uwtable
define internal i64 @"_ZN6option15Option$LT$T$GT$9unwrap_or21h14126731333190218422E"(%"1.core::option::Option<usize>"* noalias nocapture dereferenceable(16) %self, i64) unnamed_addr #1 {
entry-block:
%sret_slot = alloca i64
%def = alloca i64
%__llmatch = alloca i64*
%x = alloca i64
store i64 %0, i64* %def, align 8
%1 = getelementptr inbounds %"1.core::option::Option<usize>", %"1.core::option::Option<usize>"* %self, i32 0, i32 0
%2 = load i64, i64* %1, !range !2
switch i64 %2, label %match_else [
i64 1, label %match_case
i64 0, label %match_case2
]
case_body: ; preds = %match_case
%3 = load i64*, i64** %__llmatch
%4 = load i64, i64* %3, align 8
store i64 %4, i64* %x, align 8
%5 = load i64, i64* %x, align 8
store i64 %5, i64* %sret_slot, align 8
br label %join
case_body1: ; preds = %match_case2
%6 = load i64, i64* %def, align 8
store i64 %6, i64* %sret_slot, align 8
br label %join
match_else: ; preds = %entry-block
unreachable
match_case: ; preds = %entry-block
%7 = bitcast %"1.core::option::Option<usize>"* %self to { i64, i64 }*
%8 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %7, i32 0, i32 1
store i64* %8, i64** %__llmatch
br label %case_body
match_case2: ; preds = %entry-block
br label %case_body1
join: ; preds = %case_body1, %case_body
%9 = load i64, i64* %sret_slot, align 8
ret i64 %9
}
declare i64 @_ZN10sys_common4util9min_stack20h86ca992492bbcc24YltE() unnamed_addr
define internal void @_ZN20std..thread..Builder9drop.477017h4f26505035c95845E(%"2.std::thread::Builder"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"2.std::thread::Builder", %"2.std::thread::Builder"* %0, i32 0, i32 0
call void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.444017he0121e2e024daed1E"(%"1.core::option::Option<collections::string::String>"* %1)
%2 = getelementptr inbounds %"2.std::thread::Builder", %"2.std::thread::Builder"* %0, i32 0, i32 1
ret void
}
declare i64 @_ZN6thread6Thread3new20hf1a305e08ff0b35aLGbE(%"1.core::option::Option<collections::string::String>"* noalias nocapture dereferenceable(24)) unnamed_addr
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN6thread27Thread...core..clone..Clone5clone20h7c83e9af70ae2e26oGbE(%"2.std::thread::Thread"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%sret_slot = alloca %"2.std::thread::Thread"
%self = alloca %"2.std::thread::Thread"*
%__self_0_0 = alloca %"5.alloc::arc::Arc<std::thread::Inner>"*
store %"2.std::thread::Thread"* %0, %"2.std::thread::Thread"** %self, align 8
%1 = load %"2.std::thread::Thread"*, %"2.std::thread::Thread"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"2.std::thread::Thread", %"2.std::thread::Thread"* %1, i32 0, i32 0
store %"5.alloc::arc::Arc<std::thread::Inner>"* %2, %"5.alloc::arc::Arc<std::thread::Inner>"** %__self_0_0
br label %case_body
case_body: ; preds = %entry-block
%3 = getelementptr inbounds %"2.std::thread::Thread", %"2.std::thread::Thread"* %sret_slot, i32 0, i32 0
%4 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %__self_0_0, align 8, !nonnull !1
%5 = call i64 @"_ZN3arc18Arc$LT$T$GT$.Clone5clone20h3462670155656199377E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8) %4)
%6 = bitcast %"5.alloc::arc::Arc<std::thread::Inner>"* %3 to i64*
store i64 %5, i64* %6, align 8
br label %join
join: ; preds = %case_body
%7 = bitcast %"2.std::thread::Thread"* %sret_slot to i64*
%8 = load i64, i64* %7, align 8
ret i64 %8
}
; Function Attrs: inlinehint uwtable
define internal i64 @"_ZN3arc18Arc$LT$T$GT$.Clone5clone20h3462670155656199377E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%sret_slot = alloca %"5.alloc::arc::Arc<std::thread::Inner>"
%self = alloca %"5.alloc::arc::Arc<std::thread::Inner>"*
%old_size = alloca i64
%1 = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"*
%auto_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"*
%2 = bitcast %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref to i8*
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 8, i32 8, i1 false)
store %"5.alloc::arc::Arc<std::thread::Inner>"* %0, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8
%3 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1
%4 = call dereferenceable(72) %"5.alloc::arc::ArcInner<std::thread::Inner>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h18288450237844670917E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8) %3)
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %4, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %1, align 8
%5 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %1, align 8, !nonnull !1
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %5, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8
%6 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8, !nonnull !1
%7 = getelementptr inbounds %"5.alloc::arc::ArcInner<std::thread::Inner>", %"5.alloc::arc::ArcInner<std::thread::Inner>"* %6, i32 0, i32 0
%8 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_add20he94ee3077db7985ax1KE(%"1.core::sync::atomic::AtomicUsize"* dereferenceable(8) %7, i64 1, i8 0)
store i64 %8, i64* %old_size, align 8
%9 = load i64, i64* %old_size, align 8
%10 = icmp ugt i64 %9, 9223372036854775807
br i1 %10, label %then-block-101031-, label %next-block
then-block-101031-: ; preds = %entry-block
call void @llvm.trap()
unreachable
next-block: ; preds = %entry-block
%11 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %sret_slot, i32 0, i32 0
%12 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1
%13 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %12, i32 0, i32 0
%14 = bitcast %"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* %13 to i8*
%15 = bitcast %"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* %11 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %15, i8* %14, i64 8, i32 8, i1 false)
%16 = bitcast %"5.alloc::arc::Arc<std::thread::Inner>"* %sret_slot to i64*
%17 = load i64, i64* %16, align 8
ret i64 %17
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN4sync6atomic11AtomicUsize9fetch_add20he94ee3077db7985ax1KE(%"1.core::sync::atomic::AtomicUsize"* dereferenceable(8), i64, i8) unnamed_addr #1 {
entry-block:
%self = alloca %"1.core::sync::atomic::AtomicUsize"*
%val = alloca i64
%order = alloca i8
%3 = alloca i64*
store %"1.core::sync::atomic::AtomicUsize"* %0, %"1.core::sync::atomic::AtomicUsize"** %self, align 8
store i64 %1, i64* %val, align 8
store i8 %2, i8* %order, align 1
%4 = load %"1.core::sync::atomic::AtomicUsize"*, %"1.core::sync::atomic::AtomicUsize"** %self, align 8, !nonnull !1
%5 = getelementptr inbounds %"1.core::sync::atomic::AtomicUsize", %"1.core::sync::atomic::AtomicUsize"* %4, i32 0, i32 0
%6 = call i64* @"_ZN4cell19UnsafeCell$LT$T$GT$3get21h10481443535072462739E"(%"1.core::cell::UnsafeCell<usize>"* dereferenceable(8) %5)
store i64* %6, i64** %3, align 8
%7 = load i64*, i64** %3, align 8
%8 = load i64, i64* %val, align 8
%9 = load i8, i8* %order, align 1
%10 = call i64 @_ZN4sync6atomic10atomic_add21h10728501060054401269E(i64* %7, i64 %8, i8 %9)
ret i64 %10
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN4sync6atomic10atomic_add21h10728501060054401269E(i64*, i64, i8) unnamed_addr #1 {
entry-block:
%sret_slot = alloca i64
%dst = alloca i64*
%val = alloca i64
%order = alloca i8
store i64* %0, i64** %dst, align 8
store i64 %1, i64* %val, align 8
store i8 %2, i8* %order, align 1
%3 = load i8, i8* %order, !range !3
switch i8 %3, label %match_else [
i8 2, label %match_case
i8 1, label %match_case5
i8 3, label %match_case6
i8 0, label %match_case7
i8 4, label %match_case8
]
case_body: ; preds = %match_case
%4 = load i64*, i64** %dst, align 8
%5 = load i64, i64* %val, align 8
%6 = atomicrmw add i64* %4, i64 %5 acquire
store i64 %6, i64* %sret_slot, align 8
br label %join
case_body1: ; preds = %match_case5
%7 = load i64*, i64** %dst, align 8
%8 = load i64, i64* %val, align 8
%9 = atomicrmw add i64* %7, i64 %8 release
store i64 %9, i64* %sret_slot, align 8
br label %join
case_body2: ; preds = %match_case6
%10 = load i64*, i64** %dst, align 8
%11 = load i64, i64* %val, align 8
%12 = atomicrmw add i64* %10, i64 %11 acq_rel
store i64 %12, i64* %sret_slot, align 8
br label %join
case_body3: ; preds = %match_case7
%13 = load i64*, i64** %dst, align 8
%14 = load i64, i64* %val, align 8
%15 = atomicrmw add i64* %13, i64 %14 monotonic
store i64 %15, i64* %sret_slot, align 8
br label %join
case_body4: ; preds = %match_case8
%16 = load i64*, i64** %dst, align 8
%17 = load i64, i64* %val, align 8
%18 = atomicrmw add i64* %16, i64 %17 seq_cst
store i64 %18, i64* %sret_slot, align 8
br label %join
match_else: ; preds = %entry-block
unreachable
match_case: ; preds = %entry-block
br label %case_body
match_case5: ; preds = %entry-block
br label %case_body1
match_case6: ; preds = %entry-block
br label %case_body2
match_case7: ; preds = %entry-block
br label %case_body3
match_case8: ; preds = %entry-block
br label %case_body4
join: ; preds = %case_body4, %case_body3, %case_body2, %case_body1, %case_body
%19 = load i64, i64* %sret_slot, align 8
ret i64 %19
}
; Function Attrs: noreturn nounwind
declare void @llvm.trap() #8
; Function Attrs: inlinehint uwtable
define internal i64 @"_ZN3arc12Arc$LT$T$GT$3new21h10152365789534857938E"(%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* noalias nocapture dereferenceable(32) %data) unnamed_addr #1 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%sret_slot = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"
%x = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%0 = alloca { i8*, i32 }
%1 = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%2 = invoke i8* @_ZN4heap15exchange_malloc20h295535e6fb0e6dd3MfaE(i64 48, i64 8)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %entry-block
%3 = bitcast i8* %2 to %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%4 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %3, i32 0, i32 0
%5 = bitcast %"1.core::sync::atomic::AtomicUsize"* %4 to { { i64 } }*
%6 = bitcast { { i64 } }* %5 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %6, i8* bitcast ({ { i64 } }* @const4823 to i8*), i64 8, i32 8, i1 false)
%7 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %3, i32 0, i32 1
%8 = bitcast %"1.core::sync::atomic::AtomicUsize"* %7 to { { i64 } }*
%9 = bitcast { { i64 } }* %8 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* bitcast ({ { i64 } }* @const4823 to i8*), i64 8, i32 8, i1 false)
%10 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %3, i32 0, i32 2
%11 = bitcast %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %data to i8*
%12 = bitcast %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %10 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %12, i8* %11, i64 32, i32 8, i1 false)
%13 = bitcast %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %data to i8*
call void @llvm.memset.p0i8.i64(i8* %13, i8 29, i64 32, i32 8, i1 false)
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %3, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %x, align 8
%14 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %sret_slot, i32 0, i32 0
%15 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %x, align 8, !nonnull !1
%16 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %x to i8*
call void @llvm.memset.p0i8.i64(i8* %16, i8 29, i64 8, i32 8, i1 false)
%17 = invoke %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN5boxed12Box$LT$T$GT$8into_raw21h17693910815528260932E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias dereferenceable(48) %15)
to label %normal-return1 unwind label %unwind_ast_101196_
unwind_custom_: ; preds = %entry-block
%18 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %18, { i8*, i32 }* %0
br label %clean_custom_
resume: ; preds = %clean_custom_
%19 = load { i8*, i32 }, { i8*, i32 }* %0
resume { i8*, i32 } %19
clean_custom_: ; preds = %clean_custom_2, %unwind_custom_
call void @"_ZN167core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$9drop.471017h843efe4baa1ac214E"(%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %data)
br label %resume
normal-return1: ; preds = %normal-return
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %17, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8
%20 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8
%21 = invoke i64 @"_ZN3ptr15Shared$LT$T$GT$3new21h14503190406110995924E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %20)
to label %normal-return3 unwind label %unwind_ast_101196_
unwind_ast_101196_: ; preds = %normal-return1, %normal-return
%22 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %22, { i8*, i32 }* %0
br label %clean_ast_101196_
clean_custom_2: ; preds = %clean_ast_101196_
br label %clean_custom_
clean_ast_101196_: ; preds = %unwind_ast_101196_
call void @"_ZN206Box$LT$alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$GT$9drop.484317h3b3a560b61e1a57fE"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %x)
br label %clean_custom_2
normal-return3: ; preds = %normal-return1
%23 = bitcast %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %14 to i64*
store i64 %21, i64* %23, align 8
call void @"_ZN206Box$LT$alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$GT$9drop.484317h3b3a560b61e1a57fE"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %x)
call void @"_ZN167core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$9drop.471017h843efe4baa1ac214E"(%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %data)
%24 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %sret_slot to i64*
%25 = load i64, i64* %24, align 8
ret i64 %25
}
; Function Attrs: inlinehint uwtable
define internal i8* @_ZN4heap15exchange_malloc20h295535e6fb0e6dd3MfaE(i64, i64) unnamed_addr #1 {
entry-block:
%sret_slot = alloca i8*
%size = alloca i64
%align = alloca i64
%ptr = alloca i8*
%2 = alloca i8
store i64 %0, i64* %size, align 8
store i64 %1, i64* %align, align 8
%3 = load i64, i64* %size, align 8
%4 = icmp eq i64 %3, 0
br i1 %4, label %then-block-101235-, label %else-block
then-block-101235-: ; preds = %entry-block
store i8* inttoptr (i64 1 to i8*), i8** %sret_slot, align 8
br label %join
else-block: ; preds = %entry-block
%5 = load i64, i64* %size, align 8
%6 = load i64, i64* %align, align 8
%7 = call i8* @_ZN4heap8allocate20hcda44ecaa4f7dda9SdaE(i64 %5, i64 %6)
store i8* %7, i8** %ptr, align 8
%8 = load i8*, i8** %ptr, align 8
%9 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null21h14484011124458446728E"(i8* %8)
%10 = zext i1 %9 to i8
store i8 %10, i8* %2, align 1
%11 = load i8, i8* %2, align 1, !range !0
%12 = trunc i8 %11 to i1
br i1 %12, label %then-block-101253-, label %next-block
then-block-101253-: ; preds = %else-block
call void @_ZN3oom3oom20h30d8eb252e73102ePzbE()
unreachable
next-block: ; preds = %else-block
%13 = load i8*, i8** %ptr, align 8
store i8* %13, i8** %sret_slot, align 8
br label %join
join: ; preds = %next-block, %then-block-101235-
%14 = load i8*, i8** %sret_slot, align 8
ret i8* %14
}
; Function Attrs: inlinehint uwtable
define internal i8* @_ZN4heap8allocate20hcda44ecaa4f7dda9SdaE(i64, i64) unnamed_addr #1 {
entry-block:
%size.i = alloca i64
%align.i = alloca i64
%size = alloca i64
%align = alloca i64
%__arg = alloca i64
%__arg1 = alloca i64
store i64 %0, i64* %size, align 8
store i64 %1, i64* %align, align 8
%2 = load i64, i64* %size, align 8
%3 = load i64, i64* %align, align 8
store i64 %2, i64* %size.i, align 8
store i64 %3, i64* %align.i, align 8
%4 = load i64, i64* %size, align 8
%5 = load i64, i64* %align, align 8
store i64 %4, i64* %__arg, align 8
%6 = load i64, i64* %__arg
store i64 %5, i64* %__arg1, align 8
%7 = load i64, i64* %__arg1
%8 = call i8* @__rust_allocate(i64 %6, i64 %7)
ret i8* %8
}
; Function Attrs: nounwind
declare noalias i8* @__rust_allocate(i64, i64) unnamed_addr #3
; Function Attrs: cold noinline noreturn
declare void @_ZN3oom3oom20h30d8eb252e73102ePzbE() unnamed_addr #4
; Function Attrs: uwtable
define internal i64 @"_ZN3ptr15Shared$LT$T$GT$3new21h14503190406110995924E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*) unnamed_addr #0 {
entry-block:
%sret_slot.i = alloca %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"
%inner.i = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%sret_slot = alloca %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"
%ptr = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8
%1 = getelementptr inbounds %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %sret_slot, i32 0, i32 0
%2 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %2, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %inner.i, align 8
%3 = getelementptr inbounds %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %sret_slot.i, i32 0, i32 0
%4 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %inner.i, align 8
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %4, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %3, align 8
%5 = bitcast %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %sret_slot.i to i64*
%6 = load i64, i64* %5, align 8
%7 = bitcast %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %1 to i64*
store i64 %6, i64* %7, align 8
%8 = getelementptr inbounds %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %sret_slot, i32 0, i32 1
%9 = bitcast %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %sret_slot to i64*
%10 = load i64, i64* %9, align 8
ret i64 %10
}
; Function Attrs: inlinehint uwtable
define internal %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN5boxed12Box$LT$T$GT$8into_raw21h17693910815528260932E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias dereferenceable(48)) unnamed_addr #1 {
entry-block:
%b = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %b, align 8
%1 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %b, align 8, !nonnull !1
%2 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %b to i8*
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 8, i32 8, i1 false)
call void @"_ZN206Box$LT$alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$GT$9drop.484317h3b3a560b61e1a57fE"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %b)
ret %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1
}
define internal void @"_ZN206Box$LT$alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$GT$9drop.484317h3b3a560b61e1a57fE"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**) unnamed_addr {
entry-block:
%1 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %0
%2 = ptrtoint %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1 to i64
%3 = icmp ne i64 %2, 2097865012304223517
br i1 %3, label %cond, label %next
next: ; preds = %cond, %entry-block
ret void
cond: ; preds = %entry-block
call void @"_ZN195alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.484617h5bf0eb516d1abfecE"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1)
%4 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1 to i8*
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %4, i64 48, i64 8)
br label %next
}
define internal void @"_ZN195alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.484617h5bf0eb516d1abfecE"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, i32 0, i32 0
%2 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, i32 0, i32 1
%3 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, i32 0, i32 2
call void @"_ZN167core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$9drop.471017h843efe4baa1ac214E"(%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %3)
ret void
}
; Function Attrs: inlinehint uwtable
define internal i64 @"_ZN3arc18Arc$LT$T$GT$.Clone5clone20h6788750237553431627E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%sret_slot = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"
%self = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%old_size = alloca i64
%1 = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%auto_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%2 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref to i8*
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 8, i32 8, i1 false)
store %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8
%3 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1
%4 = call dereferenceable(48) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h14200732739658287836E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %3)
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %4, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8
%5 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8, !nonnull !1
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %5, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8
%6 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8, !nonnull !1
%7 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %6, i32 0, i32 0
%8 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_add20he94ee3077db7985ax1KE(%"1.core::sync::atomic::AtomicUsize"* dereferenceable(8) %7, i64 1, i8 0)
store i64 %8, i64* %old_size, align 8
%9 = load i64, i64* %old_size, align 8
%10 = icmp ugt i64 %9, 9223372036854775807
br i1 %10, label %then-block-101031-, label %next-block
then-block-101031-: ; preds = %entry-block
call void @llvm.trap()
unreachable
next-block: ; preds = %entry-block
%11 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %sret_slot, i32 0, i32 0
%12 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1
%13 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %12, i32 0, i32 0
%14 = bitcast %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %13 to i8*
%15 = bitcast %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %11 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %15, i8* %14, i64 8, i32 8, i1 false)
%16 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %sret_slot to i64*
%17 = load i64, i64* %16, align 8
ret i64 %17
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$12closure.4849E"(%closure.0* noalias nocapture dereferenceable(16)) unnamed_addr #1 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%1 = alloca %"1.core::option::Option<&'static str>"
%2 = alloca { i8*, i32 }
%__llmatch = alloca %str_slice*
%name = alloca %str_slice
%temp = alloca {}
%3 = alloca %"1.core::option::Option<usize>"
%output = alloca %"1.core::option::Option<i32>"
%try_result = alloca %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"
%ptr = alloca %"1.core::option::Option<i32>"*
%4 = alloca %closure.1
%5 = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"
%arg = alloca %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"
%6 = alloca %closure.2
%7 = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*
%overloaded_deref = alloca %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*
%8 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 0
%9 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 1
%10 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 2
invoke void @_ZN6thread6Thread4name20he72f73b0a8106544wHbE(%"1.core::option::Option<&'static str>"* noalias nocapture sret dereferenceable(16) %1, %"2.std::thread::Thread"* noalias readonly dereferenceable(8) %8)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %entry-block
%11 = getelementptr inbounds %"1.core::option::Option<&'static str>", %"1.core::option::Option<&'static str>"* %1, i32 0, i32 0, i32 0
%12 = load i8*, i8** %11
%13 = icmp ne i8* %12, null
switch i1 %13, label %match_else [
i1 true, label %match_case
]
unwind_custom_: ; preds = %normal-return4, %normal-return3, %join, %case_body, %entry-block
%14 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %14, { i8*, i32 }* %2
br label %clean_custom_
resume: ; preds = %clean_custom_
%15 = load { i8*, i32 }, { i8*, i32 }* %2
resume { i8*, i32 } %15
clean_custom_: ; preds = %clean_custom_7, %unwind_custom_
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %10)
call void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"* %8)
br label %resume
case_body: ; preds = %match_case
%16 = load %str_slice*, %str_slice** %__llmatch
%17 = bitcast %str_slice* %16 to i8*
%18 = bitcast %str_slice* %name to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %18, i8* %17, i64 16, i32 8, i1 false)
%19 = getelementptr inbounds %str_slice, %str_slice* %name, i32 0, i32 0
%20 = load i8*, i8** %19
%21 = getelementptr inbounds %str_slice, %str_slice* %name, i32 0, i32 1
%22 = load i64, i64* %21
invoke void @_ZN3sys6thread6Thread8set_name20hb7a3fcaf10f6023c72xE(i8* noalias nonnull readonly %20, i64 %22)
to label %normal-return2 unwind label %unwind_custom_
case_body1: ; preds = %match_else
br label %join
match_else: ; preds = %normal-return
br label %case_body1
match_case: ; preds = %normal-return
%23 = getelementptr inbounds %"1.core::option::Option<&'static str>", %"1.core::option::Option<&'static str>"* %1, i32 0, i32 0
store %str_slice* %23, %str_slice** %__llmatch
br label %case_body
normal-return2: ; preds = %case_body
br label %join
join: ; preds = %case_body1, %normal-return2
invoke void @_ZN3sys6thread5guard7current20h684ef0c446b2080dxgyE(%"1.core::option::Option<usize>"* noalias nocapture sret dereferenceable(16) %3)
to label %normal-return3 unwind label %unwind_custom_
normal-return3: ; preds = %join
%24 = bitcast %"2.std::thread::Thread"* %8 to i64*
%25 = load i64, i64* %24, align 8
%26 = bitcast %"2.std::thread::Thread"* %8 to i8*
call void @llvm.memset.p0i8.i64(i8* %26, i8 29, i64 8, i32 8, i1 false)
invoke void @_ZN10sys_common11thread_info3set20hdddfb61845e1e53ea7sE(%"1.core::option::Option<usize>"* noalias nocapture dereferenceable(16) %3, i64 %25)
to label %normal-return4 unwind label %unwind_custom_
normal-return4: ; preds = %normal-return3
%27 = bitcast %"1.core::option::Option<i32>"* %output to { i32, [4 x i8] }*
%28 = bitcast { i32, [4 x i8] }* %27 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %28, i8* bitcast ({ i32, [4 x i8] }* @const4855 to i8*), i64 8, i32 4, i1 false)
store %"1.core::option::Option<i32>"* %output, %"1.core::option::Option<i32>"** %ptr, align 8
%29 = getelementptr inbounds %closure.1, %closure.1* %4, i32 0, i32 0
%30 = getelementptr inbounds %closure.1, %closure.1* %4, i32 0, i32 1
%31 = load %"1.core::option::Option<i32>"*, %"1.core::option::Option<i32>"** %ptr, align 8, !nonnull !1
store %"1.core::option::Option<i32>"* %31, %"1.core::option::Option<i32>"** %30, align 8
%32 = bitcast %closure.1* %4 to i64*
%33 = load i64, i64* %32, align 8
invoke void @_ZN10sys_common6unwind3try21h15109373244732822971E(%"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(16) %try_result, i64 %33)
to label %normal-return5 unwind label %unwind_custom_
normal-return5: ; preds = %normal-return4
%34 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %5 to { i64, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }*
%35 = getelementptr inbounds { i64, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }, { i64, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }* %34, i32 0, i32 1
%36 = bitcast %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %try_result to i8*
%37 = bitcast %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %arg to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %37, i8* %36, i64 16, i32 8, i1 false)
%38 = bitcast %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %try_result to i8*
call void @llvm.memset.p0i8.i64(i8* %38, i8 29, i64 16, i32 8, i1 false)
%39 = getelementptr inbounds %closure.2, %closure.2* %6, i32 0, i32 0
%40 = bitcast %"1.core::option::Option<i32>"* %output to i8*
%41 = bitcast %"1.core::option::Option<i32>"* %39 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %41, i8* %40, i64 8, i32 4, i1 false)
%42 = bitcast %closure.2* %6 to i64*
%43 = load i64, i64* %42, align 4
invoke void @"_ZN6result24Result$LT$T$C$$u20$E$GT$3map20h4606975337958367552E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24) %35, %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture dereferenceable(16) %arg, i64 %43)
to label %normal-return6 unwind label %unwind_ast_9233_
normal-return6: ; preds = %normal-return5
%44 = getelementptr inbounds %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>", %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %5, i32 0, i32 0
store i64 1, i64* %44
%45 = invoke dereferenceable(32) %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* @"_ZN3arc18Arc$LT$T$GT$.Deref5deref20h9911102696180501923E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %10)
to label %normal-return8 unwind label %unwind_ast_9233_
unwind_ast_9233_: ; preds = %normal-return8, %normal-return6, %normal-return5
%46 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %46, { i8*, i32 }* %2
br label %clean_ast_9233_
clean_custom_7: ; preds = %clean_ast_9233_
br label %clean_custom_
clean_ast_9233_: ; preds = %unwind_ast_9233_
call void @"_ZN114core..result..Result$LT$$LP$$RP$$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.498417h206c7a8d816689ebE"(%"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %try_result)
br label %clean_custom_7
normal-return8: ; preds = %normal-return6
store %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %45, %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %overloaded_deref, align 8
%47 = load %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*, %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %overloaded_deref, align 8, !nonnull !1
%48 = invoke %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* @"_ZN4cell19UnsafeCell$LT$T$GT$3get20h2493915857101001862E"(%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* dereferenceable(32) %47)
to label %normal-return9 unwind label %unwind_ast_9233_
normal-return9: ; preds = %normal-return8
store %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %48, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %7, align 8
%49 = load %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %7, align 8
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.471317h0c1536054c4667a3E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %49)
%50 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %5 to i8*
%51 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %49 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %51, i8* %50, i64 32, i32 8, i1 false)
call void @"_ZN114core..result..Result$LT$$LP$$RP$$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.498417h206c7a8d816689ebE"(%"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %try_result)
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %10)
call void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"* %8)
ret void
}
declare void @_ZN6thread6Thread4name20he72f73b0a8106544wHbE(%"1.core::option::Option<&'static str>"* noalias nocapture sret dereferenceable(16), %"2.std::thread::Thread"* noalias readonly dereferenceable(8)) unnamed_addr
declare void @_ZN3sys6thread6Thread8set_name20hb7a3fcaf10f6023c72xE(i8* noalias nonnull readonly, i64) unnamed_addr
declare void @_ZN10sys_common11thread_info3set20hdddfb61845e1e53ea7sE(%"1.core::option::Option<usize>"* noalias nocapture dereferenceable(16), i64) unnamed_addr
declare void @_ZN3sys6thread5guard7current20h684ef0c446b2080dxgyE(%"1.core::option::Option<usize>"* noalias nocapture sret dereferenceable(16)) unnamed_addr
; Function Attrs: uwtable
define internal void @_ZN10sys_common6unwind3try21h15109373244732822971E(%"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(16), i64) unnamed_addr #0 {
entry-block:
%f = alloca %closure.1
%f1 = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"
%2 = bitcast %closure.1* %f to i64*
store i64 %1, i64* %2, align 8
%3 = getelementptr inbounds %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>", %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %f1, i32 0, i32 0
%4 = bitcast %closure.1* %f to i8*
%5 = bitcast %closure.1* %3 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 8, i32 8, i1 false)
%6 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %f1 to i8*
call void @_ZN10sys_common6unwind9inner_try20hd8233908b4ec760dfitE(%"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(16) %0, void (i8*)* @_ZN10sys_common6unwind3try6try_fn20h4135255088861083478E, i8* %6)
br label %clean_ast_101518_
return: ; preds = %clean_ast_101518_
ret void
clean_ast_101518_: ; preds = %entry-block
br label %return
}
declare void @_ZN10sys_common6unwind9inner_try20hd8233908b4ec760dfitE(%"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(16), void (i8*)*, i8*) unnamed_addr
; Function Attrs: uwtable
define internal void @_ZN10sys_common6unwind3try6try_fn20h4135255088861083478E(i8*) unnamed_addr #0 {
entry-block:
%opt_closure = alloca i8*
%opt_closure1 = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*
%1 = alloca %closure.1
%2 = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"
store i8* %0, i8** %opt_closure, align 8
%3 = load i8*, i8** %opt_closure, align 8
%4 = bitcast i8* %3 to %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*
store %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %4, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %opt_closure1, align 8
%5 = load %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %opt_closure1, align 8
%6 = call i64 @"_ZN6option15Option$LT$T$GT$4take20h3230018024677593231E"(%"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8) %5)
%7 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %2 to i64*
store i64 %6, i64* %7, align 8
%8 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %2 to i64*
%9 = load i64, i64* %8, align 8
%10 = call i64 @"_ZN6option15Option$LT$T$GT$6unwrap20h8734346205825086592E"(i64 %9)
%11 = bitcast %closure.1* %1 to i64*
store i64 %10, i64* %11, align 8
%12 = bitcast %closure.1* %1 to i64*
%13 = load i64, i64* %12, align 8
call void @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$12closure.4875E"(i64 %13)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$12closure.4875E"(i64) unnamed_addr #1 {
entry-block:
%closure_env = alloca %closure.1
%1 = alloca %"1.core::option::Option<i32>"
%2 = bitcast %closure.1* %closure_env to i64*
store i64 %0, i64* %2, align 8
%3 = getelementptr inbounds %closure.1, %closure.1* %closure_env, i32 0, i32 0
%4 = getelementptr inbounds %closure.1, %closure.1* %closure_env, i32 0, i32 1
%5 = bitcast %"1.core::option::Option<i32>"* %1 to { i32, i32 }*
%6 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %5, i32 0, i32 1
%7 = call i32 @"_ZN4main28_$u7b$$u7b$closure$u7d$$u7d$12closure.4970E"(%closure undef)
store i32 %7, i32* %6, align 4
%8 = getelementptr inbounds %"1.core::option::Option<i32>", %"1.core::option::Option<i32>"* %1, i32 0, i32 0
store i32 1, i32* %8
%9 = bitcast %"1.core::option::Option<i32>"* %1 to i64*
%10 = load i64, i64* %9, align 4
%11 = load %"1.core::option::Option<i32>"*, %"1.core::option::Option<i32>"** %4, align 8, !nonnull !1
%12 = bitcast %"1.core::option::Option<i32>"* %11 to i64*
store i64 %10, i64* %12, align 4
ret void
}
; Function Attrs: inlinehint uwtable
define internal i64 @"_ZN6option15Option$LT$T$GT$6unwrap20h8734346205825086592E"(i64) unnamed_addr #1 {
entry-block:
%sret_slot = alloca %closure.1
%self = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"
%val = alloca %closure.1*
%1 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %self to i64*
store i64 %0, i64* %1, align 8
%2 = getelementptr inbounds %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>", %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %self, i32 0, i32 0, i32 1
%3 = load %"1.core::option::Option<i32>"*, %"1.core::option::Option<i32>"** %2
%4 = icmp ne %"1.core::option::Option<i32>"* %3, null
switch i1 %4, label %match_else [
i1 true, label %match_case
i1 false, label %match_case2
]
case_body: ; preds = %match_case
%5 = load %closure.1*, %closure.1** %val
%6 = bitcast %closure.1* %5 to i8*
%7 = bitcast %closure.1* %sret_slot to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %7, i8* %6, i64 8, i32 8, i1 false)
br label %join
case_body1: ; preds = %match_case2
call void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @"_ZN6option15Option$LT$T$GT$6unwrap14_MSG_FILE_LINE20h9e0bce6065acf43cknOE")
unreachable
match_else: ; preds = %entry-block
unreachable
match_case: ; preds = %entry-block
%8 = getelementptr inbounds %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>", %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %self, i32 0, i32 0
store %closure.1* %8, %closure.1** %val
br label %case_body
match_case2: ; preds = %entry-block
br label %case_body1
join: ; preds = %case_body
%9 = bitcast %closure.1* %sret_slot to i64*
%10 = load i64, i64* %9, align 8
ret i64 %10
}
; Function Attrs: inlinehint uwtable
define internal i64 @"_ZN6option15Option$LT$T$GT$4take20h3230018024677593231E"(%"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8)) unnamed_addr #1 {
entry-block:
%sret_slot = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"
%self = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*
store %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %0, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %self, align 8
%1 = load %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %self, align 8, !nonnull !1
%2 = load i64, i64* bitcast ({ { {}, i8* } }* @const4968 to i64*), align 8
%3 = call i64 @_ZN3mem7replace20h1633371207595314467E(%"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8) %1, i64 %2)
%4 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %sret_slot to i64*
store i64 %3, i64* %4, align 8
%5 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %sret_slot to i64*
%6 = load i64, i64* %5, align 8
ret i64 %6
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN3mem7replace20h1633371207595314467E(%"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8), i64) unnamed_addr #1 {
entry-block:
%sret_slot = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"
%dest = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*
%src = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"
store %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %0, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %dest, align 8
%2 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %src to i64*
store i64 %1, i64* %2, align 8
%3 = load %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %dest, align 8, !nonnull !1
call void @_ZN3mem4swap21h16999014920217185359E(%"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8) %3, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8) %src)
%4 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %src to i8*
%5 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %sret_slot to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 8, i32 8, i1 false)
%6 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %sret_slot to i64*
%7 = load i64, i64* %6, align 8
ret i64 %7
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3mem4swap21h16999014920217185359E(%"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8), %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8)) unnamed_addr #1 {
entry-block:
%x = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*
%y = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*
%t = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"
store %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %0, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %x, align 8
store %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %1, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %y, align 8
%2 = call i64 @_ZN3mem13uninitialized20h7857326007812661637E()
%3 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i64*
store i64 %2, i64* %3, align 8
%4 = load %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %x, align 8, !nonnull !1
%5 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i8*
%6 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %4 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %6, i64 8, i32 8, i1 false)
%7 = load %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %y, align 8, !nonnull !1
%8 = load %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %x, align 8, !nonnull !1
%9 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %8 to i8*
%10 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %7 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* %10, i64 8, i32 8, i1 false)
%11 = load %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %y, align 8, !nonnull !1
%12 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %11 to i8*
%13 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %12, i8* %13, i64 8, i32 8, i1 false)
%14 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i64*
%15 = load i64, i64* %14, align 8
call void @_ZN3mem6forget21h14460559035904804350E(i64 %15)
ret void
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN3mem13uninitialized20h7857326007812661637E() unnamed_addr #1 {
entry-block:
%sret_slot = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"
%0 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %sret_slot to i64*
%1 = load i64, i64* %0, align 8
ret i64 %1
}
; Function Attrs: uwtable
define internal void @_ZN3mem6forget21h14460559035904804350E(i64) unnamed_addr #0 {
entry-block:
%t = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"
%1 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i64*
store i64 %0, i64* %1, align 8
%2 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i64*
%3 = load i64, i64* %2, align 8
ret void
}
; Function Attrs: inlinehint uwtable
define internal i32 @"_ZN4main28_$u7b$$u7b$closure$u7d$$u7d$12closure.4970E"(%closure) unnamed_addr #1 {
entry-block:
ret i32 2
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN6result24Result$LT$T$C$$u20$E$GT$3map20h4606975337958367552E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24), %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture dereferenceable(16) %self, i64) unnamed_addr #1 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%op = alloca %closure.2
%__llmatch = alloca {}*
%t = alloca {}
%e = alloca { i8*, void (i8*)** }*
%2 = alloca { i8*, i32 }
%3 = bitcast %closure.2* %op to i64*
store i64 %1, i64* %3, align 4
%4 = getelementptr inbounds %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>", %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %self, i32 0, i32 0, i32 0
%5 = load i8*, i8** %4
%6 = icmp ne i8* %5, null
switch i1 %6, label %match_else [
i1 false, label %match_case
i1 true, label %match_case2
]
case_body: ; preds = %match_case
%7 = load {}*, {}** %__llmatch
%8 = bitcast %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, i32 }*
%9 = getelementptr inbounds { i8, i32 }, { i8, i32 }* %8, i32 0, i32 1
%10 = bitcast %closure.2* %op to i64*
%11 = load i64, i64* %10, align 4
%12 = invoke i32 @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$12closure.4981E"(i64 %11, {} undef)
to label %normal-return unwind label %unwind_custom_
case_body1: ; preds = %match_case2
%13 = load { i8*, void (i8*)** }*, { i8*, void (i8*)** }** %e
%14 = bitcast %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, { i8*, void (i8*)** } }*
%15 = getelementptr inbounds { i8, { i8*, void (i8*)** } }, { i8, { i8*, void (i8*)** } }* %14, i32 0, i32 1
%16 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %13, i32 0, i32 0
%17 = load i8*, i8** %16
%18 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %13, i32 0, i32 1
%19 = load void (i8*)**, void (i8*)*** %18
%20 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %15, i32 0, i32 0
store i8* %17, i8** %20
%21 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %15, i32 0, i32 1
store void (i8*)** %19, void (i8*)*** %21
%22 = bitcast { i8*, void (i8*)** }* %13 to i8*
call void @llvm.memset.p0i8.i64(i8* %22, i8 29, i64 16, i32 8, i1 false)
%23 = getelementptr inbounds %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>", %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0
store i8 1, i8* %23
call void @"_ZN70Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$9drop.471917ha2961773cdf5e193E"({ i8*, void (i8*)** }* %13)
%24 = bitcast { i8*, void (i8*)** }* %13 to i8*
call void @llvm.memset.p0i8.i64(i8* %24, i8 29, i64 16, i32 8, i1 false)
br label %join
match_else: ; preds = %entry-block
unreachable
match_case: ; preds = %entry-block
%25 = bitcast %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %self to {}*
store {}* %25, {}** %__llmatch
br label %case_body
match_case2: ; preds = %entry-block
%26 = getelementptr inbounds %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>", %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %self, i32 0, i32 0
store { i8*, void (i8*)** }* %26, { i8*, void (i8*)** }** %e
br label %case_body1
normal-return: ; preds = %case_body
store i32 %12, i32* %9, align 4
%27 = getelementptr inbounds %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>", %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0
store i8 0, i8* %27
br label %join
unwind_custom_: ; preds = %case_body
%28 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %28, { i8*, i32 }* %2
br label %clean_custom_
resume: ; preds = %clean_custom_
%29 = load { i8*, i32 }, { i8*, i32 }* %2
resume { i8*, i32 } %29
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN114core..result..Result$LT$$LP$$RP$$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.498417h206c7a8d816689ebE"(%"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %self)
br label %resume
join: ; preds = %case_body1, %normal-return
call void @"_ZN114core..result..Result$LT$$LP$$RP$$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.498417h206c7a8d816689ebE"(%"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %self)
ret void
}
; Function Attrs: inlinehint uwtable
define internal i32 @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$12closure.4981E"(i64, {}) unnamed_addr #1 {
entry-block:
%2 = alloca {}
%closure_env = alloca %closure.2
%3 = bitcast %closure.2* %closure_env to i64*
store i64 %0, i64* %3, align 4
%4 = getelementptr inbounds %closure.2, %closure.2* %closure_env, i32 0, i32 0
%5 = bitcast %"1.core::option::Option<i32>"* %4 to i64*
%6 = load i64, i64* %5, align 4
%7 = call i32 @"_ZN6option15Option$LT$T$GT$6unwrap21h12674856327031896243E"(i64 %6)
ret i32 %7
}
define internal void @"_ZN114core..result..Result$LT$$LP$$RP$$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.498417h206c7a8d816689ebE"(%"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>", %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0, i32 0
%2 = load i8*, i8** %1
%3 = icmp ne i8* %2, null
switch i1 %3, label %enum-iter-ret-void [
i1 false, label %enum-iter-variant-0
i1 true, label %enum-iter-variant-1
]
enum-iter-ret-void: ; preds = %entry-block
ret void
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0
ret void
enum-iter-variant-0: ; preds = %entry-block
%4 = bitcast %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %0 to {}*
br label %enum-iter-next
enum-iter-variant-1: ; preds = %entry-block
%5 = getelementptr inbounds %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>", %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0
call void @"_ZN70Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$9drop.471917ha2961773cdf5e193E"({ i8*, void (i8*)** }* %5)
br label %enum-iter-next
}
; Function Attrs: inlinehint uwtable
define internal i32 @"_ZN6option15Option$LT$T$GT$6unwrap21h12674856327031896243E"(i64) unnamed_addr #1 {
entry-block:
%self = alloca %"1.core::option::Option<i32>"
%__llmatch = alloca i32*
%val = alloca i32
%1 = bitcast %"1.core::option::Option<i32>"* %self to i64*
store i64 %0, i64* %1, align 4
%2 = getelementptr inbounds %"1.core::option::Option<i32>", %"1.core::option::Option<i32>"* %self, i32 0, i32 0
%3 = load i32, i32* %2, !range !7
switch i32 %3, label %match_else [
i32 1, label %match_case
i32 0, label %match_case2
]
case_body: ; preds = %match_case
%4 = load i32*, i32** %__llmatch
%5 = load i32, i32* %4, align 4
store i32 %5, i32* %val, align 4
%6 = load i32, i32* %val, align 4
br label %join
case_body1: ; preds = %match_case2
call void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @"_ZN6option15Option$LT$T$GT$6unwrap14_MSG_FILE_LINE20h9e0bce6065acf43cknOE")
unreachable
match_else: ; preds = %entry-block
unreachable
match_case: ; preds = %entry-block
%7 = bitcast %"1.core::option::Option<i32>"* %self to { i32, i32 }*
%8 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %7, i32 0, i32 1
store i32* %8, i32** %__llmatch
br label %case_body
match_case2: ; preds = %entry-block
br label %case_body1
join: ; preds = %case_body
ret i32 %6
}
; Function Attrs: inlinehint uwtable
define internal %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* @"_ZN4cell19UnsafeCell$LT$T$GT$3get20h2493915857101001862E"(%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* dereferenceable(32)) unnamed_addr #1 {
entry-block:
%self = alloca %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*
store %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %0, %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %self, align 8
%1 = load %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*, %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>", %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %1, i32 0, i32 0
ret %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %2
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(32) %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* @"_ZN3arc18Arc$LT$T$GT$.Deref5deref20h9911102696180501923E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%1 = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%auto_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%2 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref to i8*
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 8, i32 8, i1 false)
store %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8
%3 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1
%4 = call dereferenceable(48) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h14200732739658287836E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %3)
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %4, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8
%5 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8, !nonnull !1
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %5, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8
%6 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8, !nonnull !1
%7 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %6, i32 0, i32 2
ret %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %7
}
; Function Attrs: uwtable
define internal void @_ZN3sys6thread6Thread3new21h15728162040669553108E(%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* noalias nocapture sret dereferenceable(24), i64, %closure.0* noalias nocapture dereferenceable(16) %p) unnamed_addr #0 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%stack = alloca i64
%p1 = alloca %closure.0*
%2 = alloca { i8*, i32 }
%3 = alloca %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"
%thread = alloca %"2.std::sys::thread::Thread"*
%e = alloca %"2.std::io::error::Error"*
store i64 %1, i64* %stack, align 8
%4 = invoke i8* @_ZN4heap15exchange_malloc20h295535e6fb0e6dd3MfaE(i64 16, i64 8)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %entry-block
%5 = bitcast i8* %4 to %closure.0*
%6 = bitcast %closure.0* %p to i8*
%7 = bitcast %closure.0* %5 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %7, i8* %6, i64 16, i32 8, i1 false)
%8 = bitcast %closure.0* %p to i8*
call void @llvm.memset.p0i8.i64(i8* %8, i8 29, i64 16, i32 8, i1 false)
store %closure.0* %5, %closure.0** %p1, align 8
%9 = load i64, i64* %stack, align 8
%10 = load %closure.0*, %closure.0** %p1, align 8, !nonnull !1
%11 = bitcast %closure.0* %10 to i8*
invoke void @_ZN3sys6thread6Thread10new_thread20h068841bbfb5acc9ejUxE(%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* noalias nocapture sret dereferenceable(24) %3, i64 %9, i8* %11, i8* (i8*)* @_ZN3sys6thread6Thread3new12thread_start20h6675635106069454745E)
to label %normal-return2 unwind label %unwind_ast_101760_
unwind_custom_: ; preds = %entry-block
%12 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %12, { i8*, i32 }* %2
br label %clean_custom_
resume: ; preds = %clean_custom_
%13 = load { i8*, i32 }, { i8*, i32 }* %2
resume { i8*, i32 } %13
clean_custom_: ; preds = %clean_custom_3, %unwind_custom_
call void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.499017h03213aa6cad857e4E"(%closure.0* %p)
br label %resume
normal-return2: ; preds = %normal-return
%14 = getelementptr inbounds %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>", %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %3, i32 0, i32 0
%15 = load i64, i64* %14, !range !2
switch i64 %15, label %match_else [
i64 0, label %match_case
i64 1, label %match_case5
]
unwind_ast_101760_: ; preds = %normal-return
%16 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %16, { i8*, i32 }* %2
br label %clean_ast_101760_
clean_custom_3: ; preds = %clean_ast_101760_
br label %clean_custom_
clean_ast_101760_: ; preds = %clean_ast_101760_8, %unwind_ast_101760_
call void @"_ZN399Box$LT$$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$$GT$9drop.500617h1d275e2afc701128E"(%closure.0** %p1)
br label %clean_custom_3
case_body: ; preds = %match_case
%17 = load %"2.std::sys::thread::Thread"*, %"2.std::sys::thread::Thread"** %thread
%18 = load %closure.0*, %closure.0** %p1, align 8, !nonnull !1
%19 = bitcast %closure.0** %p1 to i8*
call void @llvm.memset.p0i8.i64(i8* %19, i8 29, i64 8, i32 8, i1 false)
invoke void @_ZN3mem6forget21h16281929343866750913E(%closure.0* noalias dereferenceable(16) %18)
to label %normal-return6 unwind label %unwind_custom_7
case_body4: ; preds = %match_case5
%20 = load %"2.std::io::error::Error"*, %"2.std::io::error::Error"** %e
%21 = bitcast %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %0 to { i64, %"2.std::io::error::Error" }*
%22 = getelementptr inbounds { i64, %"2.std::io::error::Error" }, { i64, %"2.std::io::error::Error" }* %21, i32 0, i32 1
%23 = bitcast %"2.std::io::error::Error"* %20 to i8*
%24 = bitcast %"2.std::io::error::Error"* %22 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %24, i8* %23, i64 16, i32 8, i1 false)
%25 = bitcast %"2.std::io::error::Error"* %20 to i8*
call void @llvm.memset.p0i8.i64(i8* %25, i8 29, i64 16, i32 8, i1 false)
%26 = getelementptr inbounds %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>", %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %0, i32 0, i32 0
store i64 1, i64* %26
call void @_ZN21std..io..error..Error9drop.472817hb777fe86563aa27aE(%"2.std::io::error::Error"* %20)
%27 = bitcast %"2.std::io::error::Error"* %20 to i8*
call void @llvm.memset.p0i8.i64(i8* %27, i8 29, i64 16, i32 8, i1 false)
br label %join
match_else: ; preds = %normal-return2
unreachable
match_case: ; preds = %normal-return2
%28 = bitcast %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %3 to { i64, %"2.std::sys::thread::Thread" }*
%29 = getelementptr inbounds { i64, %"2.std::sys::thread::Thread" }, { i64, %"2.std::sys::thread::Thread" }* %28, i32 0, i32 1
store %"2.std::sys::thread::Thread"* %29, %"2.std::sys::thread::Thread"** %thread
br label %case_body
match_case5: ; preds = %normal-return2
%30 = bitcast %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %3 to { i64, %"2.std::io::error::Error" }*
%31 = getelementptr inbounds { i64, %"2.std::io::error::Error" }, { i64, %"2.std::io::error::Error" }* %30, i32 0, i32 1
store %"2.std::io::error::Error"* %31, %"2.std::io::error::Error"** %e
br label %case_body4
normal-return6: ; preds = %case_body
%32 = bitcast %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %0 to { i64, %"2.std::sys::thread::Thread" }*
%33 = getelementptr inbounds { i64, %"2.std::sys::thread::Thread" }, { i64, %"2.std::sys::thread::Thread" }* %32, i32 0, i32 1
%34 = bitcast %"2.std::sys::thread::Thread"* %17 to i8*
%35 = bitcast %"2.std::sys::thread::Thread"* %33 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %35, i8* %34, i64 16, i32 8, i1 false)
%36 = bitcast %"2.std::sys::thread::Thread"* %17 to i8*
call void @llvm.memset.p0i8.i64(i8* %36, i8 29, i64 16, i32 8, i1 false)
%37 = getelementptr inbounds %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>", %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %0, i32 0, i32 0
store i64 0, i64* %37
call void @_ZN24std..sys..thread..Thread9drop.433417hcbc9fc29160ac810E(%"2.std::sys::thread::Thread"* %17)
%38 = bitcast %"2.std::sys::thread::Thread"* %17 to i8*
call void @llvm.memset.p0i8.i64(i8* %38, i8 29, i64 16, i32 8, i1 false)
br label %join
unwind_custom_7: ; preds = %case_body
%39 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %39, { i8*, i32 }* %2
br label %clean_custom_9
clean_ast_101760_8: ; preds = %clean_custom_9
call void @"_ZN81core..result..Result$LT$std..sys..thread..Thread$C$$u20$std..io..error..Error$GT$9drop.501617hdffd08fc3bf06d8fE"(%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %3)
br label %clean_ast_101760_
clean_custom_9: ; preds = %unwind_custom_7
call void @_ZN24std..sys..thread..Thread9drop.433417hcbc9fc29160ac810E(%"2.std::sys::thread::Thread"* %17)
%40 = bitcast %"2.std::sys::thread::Thread"* %17 to i8*
call void @llvm.memset.p0i8.i64(i8* %40, i8 29, i64 16, i32 8, i1 false)
br label %clean_ast_101760_8
join: ; preds = %case_body4, %normal-return6
call void @"_ZN81core..result..Result$LT$std..sys..thread..Thread$C$$u20$std..io..error..Error$GT$9drop.501617hdffd08fc3bf06d8fE"(%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %3)
call void @"_ZN399Box$LT$$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$$GT$9drop.500617h1d275e2afc701128E"(%closure.0** %p1)
call void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.499017h03213aa6cad857e4E"(%closure.0* %p)
ret void
}
define internal void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.499017h03213aa6cad857e4E"(%closure.0*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 0
call void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"* %1)
%2 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 1
%3 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 2
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %3)
ret void
}
declare void @_ZN3sys6thread6Thread10new_thread20h068841bbfb5acc9ejUxE(%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* noalias nocapture sret dereferenceable(24), i64, i8*, i8* (i8*)*) unnamed_addr
define internal i8* @_ZN3sys6thread6Thread3new12thread_start20h6675635106069454745E(i8*) unnamed_addr {
"the block":
%1 = alloca i8*
store i8* %0, i8** %1
%2 = load i8*, i8** %1
%3 = call i8* @_ZN3sys6thread6Thread3new12thread_start10__rust_abi20h6675635106069454745E(i8* %2)
ret i8* %3
}
; Function Attrs: uwtable
define internal i8* @_ZN3sys6thread6Thread3new12thread_start10__rust_abi20h6675635106069454745E(i8*) unnamed_addr #0 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%main = alloca i8*
%main1 = alloca %closure.0*
%_handler = alloca %"2.std::sys::stack_overflow::Handler"
%1 = alloca { i8*, i32 }
%arg = alloca %closure.0
store i8* %0, i8** %main, align 8
%2 = load i8*, i8** %main, align 8
%3 = bitcast i8* %2 to %closure.0*
%4 = call noalias dereferenceable(16) %closure.0* @"_ZN5boxed12Box$LT$T$GT$8from_raw20h3438711441766064213E"(%closure.0* %3)
store %closure.0* %4, %closure.0** %main1, align 8
%5 = invoke i128 @_ZN3sys14stack_overflow7Handler3new20h7ba1468ac6d7adb27MxE()
to label %normal-return unwind label %unwind_ast_101845_
normal-return: ; preds = %entry-block
%6 = bitcast %"2.std::sys::stack_overflow::Handler"* %_handler to i128*
store i128 %5, i128* %6, align 8
%7 = load %closure.0*, %closure.0** %main1, align 8, !nonnull !1
%8 = bitcast %closure.0* %7 to i8*
%9 = bitcast %closure.0* %arg to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* %8, i64 16, i32 8, i1 false)
%10 = bitcast %closure.0* %7 to i8*
call void @llvm.memset.p0i8.i64(i8* %10, i8 29, i64 16, i32 8, i1 false)
invoke void @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$12closure.4849E"(%closure.0* noalias nocapture dereferenceable(16) %arg)
to label %normal-return2 unwind label %unwind_ast_101845_3
unwind_ast_101845_: ; preds = %entry-block
%11 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %11, { i8*, i32 }* %1
br label %clean_ast_101845_
resume: ; preds = %clean_ast_101845_
%12 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %12
clean_ast_101845_: ; preds = %clean_ast_101845_4, %unwind_ast_101845_
call void @"_ZN399Box$LT$$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$$GT$9drop.500617h1d275e2afc701128E"(%closure.0** %main1)
br label %resume
normal-return2: ; preds = %normal-return
call void @_ZN33std..sys..stack_overflow..Handler9drop.500917h2ef79e601f7d60b6E(%"2.std::sys::stack_overflow::Handler"* %_handler)
call void @"_ZN399Box$LT$$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$$GT$9drop.500617h1d275e2afc701128E"(%closure.0** %main1)
ret i8* null
unwind_ast_101845_3: ; preds = %normal-return
%13 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %13, { i8*, i32 }* %1
br label %clean_ast_101845_4
clean_ast_101845_4: ; preds = %unwind_ast_101845_3
call void @_ZN33std..sys..stack_overflow..Handler9drop.500917h2ef79e601f7d60b6E(%"2.std::sys::stack_overflow::Handler"* %_handler)
br label %clean_ast_101845_
}
; Function Attrs: inlinehint uwtable
define internal noalias dereferenceable(16) %closure.0* @"_ZN5boxed12Box$LT$T$GT$8from_raw20h3438711441766064213E"(%closure.0*) unnamed_addr #1 {
entry-block:
%raw = alloca %closure.0*
store %closure.0* %0, %closure.0** %raw, align 8
%1 = load %closure.0*, %closure.0** %raw, align 8
ret %closure.0* %1
}
declare i128 @_ZN3sys14stack_overflow7Handler3new20h7ba1468ac6d7adb27MxE() unnamed_addr
define internal void @"_ZN399Box$LT$$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$$GT$9drop.500617h1d275e2afc701128E"(%closure.0**) unnamed_addr {
entry-block:
%1 = load %closure.0*, %closure.0** %0
%2 = ptrtoint %closure.0* %1 to i64
%3 = icmp ne i64 %2, 2097865012304223517
br i1 %3, label %cond, label %next
next: ; preds = %cond, %entry-block
ret void
cond: ; preds = %entry-block
call void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.499017h03213aa6cad857e4E"(%closure.0* %1)
%4 = bitcast %closure.0* %1 to i8*
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %4, i64 16, i64 8)
br label %next
}
define internal void @_ZN33std..sys..stack_overflow..Handler9drop.500917h2ef79e601f7d60b6E(%"2.std::sys::stack_overflow::Handler"*) unnamed_addr personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%1 = alloca { i8*, i32 }
%2 = getelementptr inbounds %"2.std::sys::stack_overflow::Handler", %"2.std::sys::stack_overflow::Handler"* %0, i32 0, i32 1
%3 = load i8, i8* %2, align 1
%4 = icmp ne i8 %3, -44
%5 = icmp ne i8 %3, 29
%6 = and i1 %4, %5
br i1 %6, label %cond, label %next
next: ; preds = %cond, %entry-block
%7 = icmp eq i8 %3, -44
br i1 %7, label %cond2, label %next1
cond: ; preds = %entry-block
call void @llvm.debugtrap()
br label %next
next1: ; preds = %normal-return, %next
ret void
cond2: ; preds = %next
invoke void @_ZN3sys14stack_overflow12Handler.Drop4drop20h93942a1d7b1d5c78gNxE(%"2.std::sys::stack_overflow::Handler"* dereferenceable(16) %0)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %cond2
call void @_ZN33std..sys..stack_overflow..Handler9drop.501217h2ef79e601f7d60b6E(%"2.std::sys::stack_overflow::Handler"* %0)
br label %next1
unwind_custom_: ; preds = %cond2
%8 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %8, { i8*, i32 }* %1
br label %clean_custom_
resume: ; preds = %clean_custom_
%9 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %9
clean_custom_: ; preds = %unwind_custom_
call void @_ZN33std..sys..stack_overflow..Handler9drop.501217h2ef79e601f7d60b6E(%"2.std::sys::stack_overflow::Handler"* %0)
br label %resume
}
declare void @_ZN3sys14stack_overflow12Handler.Drop4drop20h93942a1d7b1d5c78gNxE(%"2.std::sys::stack_overflow::Handler"* dereferenceable(16)) unnamed_addr
define internal void @_ZN33std..sys..stack_overflow..Handler9drop.501217h2ef79e601f7d60b6E(%"2.std::sys::stack_overflow::Handler"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"2.std::sys::stack_overflow::Handler", %"2.std::sys::stack_overflow::Handler"* %0, i32 0, i32 0
ret void
}
; Function Attrs: uwtable
define internal void @_ZN3mem6forget21h16281929343866750913E(%closure.0* noalias dereferenceable(16)) unnamed_addr #0 {
entry-block:
%t = alloca %closure.0*
store %closure.0* %0, %closure.0** %t, align 8
%1 = load %closure.0*, %closure.0** %t, align 8, !nonnull !1
%2 = bitcast %closure.0** %t to i8*
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 8, i32 8, i1 false)
call void @"_ZN399Box$LT$$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$$GT$9drop.500617h1d275e2afc701128E"(%closure.0** %t)
ret void
}
define internal void @"_ZN81core..result..Result$LT$std..sys..thread..Thread$C$$u20$std..io..error..Error$GT$9drop.501617hdffd08fc3bf06d8fE"(%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>", %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %0, i32 0, i32 0
%2 = load i64, i64* %1
switch i64 %2, label %enum-iter-ret-void [
i64 0, label %enum-iter-variant-0
i64 1, label %enum-iter-variant-1
]
enum-iter-ret-void: ; preds = %entry-block
ret void
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0
ret void
enum-iter-variant-0: ; preds = %entry-block
%3 = bitcast %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %0 to { i64, %"2.std::sys::thread::Thread" }*
%4 = getelementptr inbounds { i64, %"2.std::sys::thread::Thread" }, { i64, %"2.std::sys::thread::Thread" }* %3, i32 0, i32 1
call void @_ZN24std..sys..thread..Thread9drop.433417hcbc9fc29160ac810E(%"2.std::sys::thread::Thread"* %4)
br label %enum-iter-next
enum-iter-variant-1: ; preds = %entry-block
%5 = bitcast %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %0 to { i64, %"2.std::io::error::Error" }*
%6 = getelementptr inbounds { i64, %"2.std::io::error::Error" }, { i64, %"2.std::io::error::Error" }* %5, i32 0, i32 1
call void @_ZN21std..io..error..Error9drop.472817hb777fe86563aa27aE(%"2.std::io::error::Error"* %6)
br label %enum-iter-next
}
; Function Attrs: uwtable
define internal void @"_ZN7convert15T.From$LT$T$GT$4from20h2997837675504574822E"(%"2.std::io::error::Error"* noalias nocapture sret dereferenceable(16), %"2.std::io::error::Error"* noalias nocapture dereferenceable(16) %t) unnamed_addr #0 {
entry-block:
%1 = bitcast %"2.std::io::error::Error"* %t to i8*
%2 = bitcast %"2.std::io::error::Error"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %2, i8* %1, i64 16, i32 8, i1 false)
%3 = bitcast %"2.std::io::error::Error"* %t to i8*
call void @llvm.memset.p0i8.i64(i8* %3, i8 29, i64 16, i32 8, i1 false)
call void @_ZN21std..io..error..Error9drop.472817hb777fe86563aa27aE(%"2.std::io::error::Error"* %t)
ret void
}
declare void @_ZN6thread7Builder3new20hd61460f72f72a351ezbE(%"2.std::thread::Builder"* noalias nocapture sret dereferenceable(40)) unnamed_addr
; Function Attrs: uwtable
define internal void @"_ZN6thread19JoinHandle$LT$T$GT$4join21h17144207033677885488E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24), %"2.std::thread::JoinHandle<i32>"* noalias nocapture dereferenceable(40) %self) unnamed_addr #0 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%1 = alloca { i8*, i32 }
%2 = getelementptr inbounds %"2.std::thread::JoinHandle<i32>", %"2.std::thread::JoinHandle<i32>"* %self, i32 0, i32 0
invoke void @"_ZN6thread18JoinInner$LT$T$GT$4join21h11198257803181207260E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24) %0, %"2.std::thread::JoinInner<i32>"* dereferenceable(40) %2)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %entry-block
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.432517h7f68f48c9da6347cE"(%"2.std::thread::JoinHandle<i32>"* %self)
ret void
unwind_custom_: ; preds = %entry-block
%3 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %3, { i8*, i32 }* %1
br label %clean_custom_
resume: ; preds = %clean_custom_
%4 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %4
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.432517h7f68f48c9da6347cE"(%"2.std::thread::JoinHandle<i32>"* %self)
br label %resume
}
; Function Attrs: uwtable
define internal void @"_ZN6thread18JoinInner$LT$T$GT$4join21h11198257803181207260E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24), %"2.std::thread::JoinInner<i32>"* dereferenceable(40)) unnamed_addr #0 {
entry-block:
%self = alloca %"2.std::thread::JoinInner<i32>"*
%2 = alloca %"2.std::sys::thread::Thread"
%3 = alloca %"1.core::option::Option<std::sys::thread::Thread>"
%4 = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"
%5 = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*
%overloaded_deref = alloca %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*
store %"2.std::thread::JoinInner<i32>"* %1, %"2.std::thread::JoinInner<i32>"** %self, align 8
%6 = load %"2.std::thread::JoinInner<i32>"*, %"2.std::thread::JoinInner<i32>"** %self, align 8, !nonnull !1
%7 = getelementptr inbounds %"2.std::thread::JoinInner<i32>", %"2.std::thread::JoinInner<i32>"* %6, i32 0, i32 0
call void @"_ZN6option15Option$LT$T$GT$4take21h10720485503137548678E"(%"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24) %3, %"1.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24) %7)
%8 = call i128 @"_ZN6option15Option$LT$T$GT$6unwrap20h1038959707559597737E"(%"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %3)
%9 = bitcast %"2.std::sys::thread::Thread"* %2 to i128*
store i128 %8, i128* %9, align 8
%10 = bitcast %"2.std::sys::thread::Thread"* %2 to i128*
%11 = load i128, i128* %10, align 8
call void @_ZN3sys6thread6Thread4join20hc2a4a2c111431794Q5xE(i128 %11)
%12 = load %"2.std::thread::JoinInner<i32>"*, %"2.std::thread::JoinInner<i32>"** %self, align 8, !nonnull !1
%13 = getelementptr inbounds %"2.std::thread::JoinInner<i32>", %"2.std::thread::JoinInner<i32>"* %12, i32 0, i32 2
%14 = getelementptr inbounds %"2.std::thread::Packet<i32>", %"2.std::thread::Packet<i32>"* %13, i32 0, i32 0
%15 = call dereferenceable(32) %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* @"_ZN3arc18Arc$LT$T$GT$.Deref5deref20h9911102696180501923E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %14)
store %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %15, %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %overloaded_deref, align 8
%16 = load %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*, %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %overloaded_deref, align 8, !nonnull !1
%17 = call %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* @"_ZN4cell19UnsafeCell$LT$T$GT$3get20h2493915857101001862E"(%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* dereferenceable(32) %16)
store %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %17, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %5, align 8
%18 = load %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %5, align 8
call void @"_ZN6option15Option$LT$T$GT$4take20h2701260149719641138E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32) %4, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32) %18)
call void @"_ZN6option15Option$LT$T$GT$6unwrap20h8081534536588428311E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24) %0, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %4)
ret void
}
declare void @_ZN3sys6thread6Thread4join20hc2a4a2c111431794Q5xE(i128) unnamed_addr
; Function Attrs: inlinehint uwtable
define internal i128 @"_ZN6option15Option$LT$T$GT$6unwrap20h1038959707559597737E"(%"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %self) unnamed_addr #1 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%sret_slot = alloca %"2.std::sys::thread::Thread"
%val = alloca %"2.std::sys::thread::Thread"*
%0 = alloca { i8*, i32 }
%1 = getelementptr inbounds %"1.core::option::Option<std::sys::thread::Thread>", %"1.core::option::Option<std::sys::thread::Thread>"* %self, i32 0, i32 0
%2 = load i64, i64* %1, !range !2
switch i64 %2, label %match_else [
i64 1, label %match_case
i64 0, label %match_case2
]
case_body: ; preds = %match_case
%3 = load %"2.std::sys::thread::Thread"*, %"2.std::sys::thread::Thread"** %val
%4 = bitcast %"2.std::sys::thread::Thread"* %3 to i8*
%5 = bitcast %"2.std::sys::thread::Thread"* %sret_slot to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 16, i32 8, i1 false)
%6 = bitcast %"2.std::sys::thread::Thread"* %3 to i8*
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 16, i32 8, i1 false)
call void @_ZN24std..sys..thread..Thread9drop.433417hcbc9fc29160ac810E(%"2.std::sys::thread::Thread"* %3)
%7 = bitcast %"2.std::sys::thread::Thread"* %3 to i8*
call void @llvm.memset.p0i8.i64(i8* %7, i8 29, i64 16, i32 8, i1 false)
br label %join
case_body1: ; preds = %match_case2
invoke void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @"_ZN6option15Option$LT$T$GT$6unwrap14_MSG_FILE_LINE20h9e0bce6065acf43cknOE")
to label %normal-return unwind label %unwind_custom_
match_else: ; preds = %entry-block
unreachable
match_case: ; preds = %entry-block
%8 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %self to { i64, %"2.std::sys::thread::Thread" }*
%9 = getelementptr inbounds { i64, %"2.std::sys::thread::Thread" }, { i64, %"2.std::sys::thread::Thread" }* %8, i32 0, i32 1
store %"2.std::sys::thread::Thread"* %9, %"2.std::sys::thread::Thread"** %val
br label %case_body
match_case2: ; preds = %entry-block
br label %case_body1
normal-return: ; preds = %case_body1
unreachable
unwind_custom_: ; preds = %case_body1
%10 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %10, { i8*, i32 }* %0
br label %clean_custom_
resume: ; preds = %clean_custom_
%11 = load { i8*, i32 }, { i8*, i32 }* %0
resume { i8*, i32 } %11
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.433117h39fed133f93a1204E"(%"1.core::option::Option<std::sys::thread::Thread>"* %self)
br label %resume
join: ; preds = %case_body
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.433117h39fed133f93a1204E"(%"1.core::option::Option<std::sys::thread::Thread>"* %self)
%12 = bitcast %"2.std::sys::thread::Thread"* %sret_slot to i128*
%13 = load i128, i128* %12, align 8
ret i128 %13
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN6option15Option$LT$T$GT$4take21h10720485503137548678E"(%"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24), %"1.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24)) unnamed_addr #1 {
entry-block:
%self = alloca %"1.core::option::Option<std::sys::thread::Thread>"*
%const = alloca %"1.core::option::Option<std::sys::thread::Thread>"
store %"1.core::option::Option<std::sys::thread::Thread>"* %1, %"1.core::option::Option<std::sys::thread::Thread>"** %self, align 8
%2 = load %"1.core::option::Option<std::sys::thread::Thread>"*, %"1.core::option::Option<std::sys::thread::Thread>"** %self, align 8, !nonnull !1
%3 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %const to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %3, i8* bitcast ({ i64, [16 x i8] }* @const5026 to i8*), i64 24, i32 8, i1 false)
call void @_ZN3mem7replace20h8821390232188169964E(%"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24) %0, %"1.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24) %2, %"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %const)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3mem7replace20h8821390232188169964E(%"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24), %"1.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24), %"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %src) unnamed_addr #1 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%dest = alloca %"1.core::option::Option<std::sys::thread::Thread>"*
%2 = alloca { i8*, i32 }
store %"1.core::option::Option<std::sys::thread::Thread>"* %1, %"1.core::option::Option<std::sys::thread::Thread>"** %dest, align 8
%3 = load %"1.core::option::Option<std::sys::thread::Thread>"*, %"1.core::option::Option<std::sys::thread::Thread>"** %dest, align 8, !nonnull !1
invoke void @_ZN3mem4swap20h9121132774799370807E(%"1.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24) %3, %"1.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24) %src)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %entry-block
%4 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %src to i8*
%5 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 24, i32 8, i1 false)
%6 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %src to i8*
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 24, i32 8, i1 false)
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.433117h39fed133f93a1204E"(%"1.core::option::Option<std::sys::thread::Thread>"* %src)
ret void
unwind_custom_: ; preds = %entry-block
%7 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %7, { i8*, i32 }* %2
br label %clean_custom_
resume: ; preds = %clean_custom_
%8 = load { i8*, i32 }, { i8*, i32 }* %2
resume { i8*, i32 } %8
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.433117h39fed133f93a1204E"(%"1.core::option::Option<std::sys::thread::Thread>"* %src)
br label %resume
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3mem4swap20h9121132774799370807E(%"1.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24), %"1.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24)) unnamed_addr #1 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%x = alloca %"1.core::option::Option<std::sys::thread::Thread>"*
%y = alloca %"1.core::option::Option<std::sys::thread::Thread>"*
%t = alloca %"1.core::option::Option<std::sys::thread::Thread>"
%arg = alloca %"1.core::option::Option<std::sys::thread::Thread>"
%2 = alloca { i8*, i32 }
store %"1.core::option::Option<std::sys::thread::Thread>"* %0, %"1.core::option::Option<std::sys::thread::Thread>"** %x, align 8
store %"1.core::option::Option<std::sys::thread::Thread>"* %1, %"1.core::option::Option<std::sys::thread::Thread>"** %y, align 8
call void @_ZN3mem13uninitialized20h4833687711301094121E(%"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24) %t)
%3 = load %"1.core::option::Option<std::sys::thread::Thread>"*, %"1.core::option::Option<std::sys::thread::Thread>"** %x, align 8, !nonnull !1
%4 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %t to i8*
%5 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %3 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %4, i8* %5, i64 24, i32 8, i1 false)
%6 = load %"1.core::option::Option<std::sys::thread::Thread>"*, %"1.core::option::Option<std::sys::thread::Thread>"** %y, align 8, !nonnull !1
%7 = load %"1.core::option::Option<std::sys::thread::Thread>"*, %"1.core::option::Option<std::sys::thread::Thread>"** %x, align 8, !nonnull !1
%8 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %7 to i8*
%9 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %6 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %8, i8* %9, i64 24, i32 8, i1 false)
%10 = load %"1.core::option::Option<std::sys::thread::Thread>"*, %"1.core::option::Option<std::sys::thread::Thread>"** %y, align 8, !nonnull !1
%11 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %10 to i8*
%12 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %t to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %11, i8* %12, i64 24, i32 8, i1 false)
%13 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %t to i8*
%14 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %arg to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %14, i8* %13, i64 24, i32 8, i1 false)
%15 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %t to i8*
call void @llvm.memset.p0i8.i64(i8* %15, i8 29, i64 24, i32 8, i1 false)
invoke void @_ZN3mem6forget21h17850473533916954336E(%"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %arg)
to label %normal-return unwind label %unwind_ast_101647_
normal-return: ; preds = %entry-block
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.433117h39fed133f93a1204E"(%"1.core::option::Option<std::sys::thread::Thread>"* %t)
ret void
unwind_ast_101647_: ; preds = %entry-block
%16 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %16, { i8*, i32 }* %2
br label %clean_ast_101647_
resume: ; preds = %clean_ast_101647_
%17 = load { i8*, i32 }, { i8*, i32 }* %2
resume { i8*, i32 } %17
clean_ast_101647_: ; preds = %unwind_ast_101647_
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.433117h39fed133f93a1204E"(%"1.core::option::Option<std::sys::thread::Thread>"* %t)
br label %resume
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3mem13uninitialized20h4833687711301094121E(%"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24)) unnamed_addr #1 {
entry-block:
ret void
}
; Function Attrs: uwtable
define internal void @_ZN3mem6forget21h17850473533916954336E(%"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %t) unnamed_addr #0 {
entry-block:
%arg = alloca %"1.core::option::Option<std::sys::thread::Thread>"
%0 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %t to i8*
%1 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %arg to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* %0, i64 24, i32 8, i1 false)
%2 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %t to i8*
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 24, i32 8, i1 false)
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.433117h39fed133f93a1204E"(%"1.core::option::Option<std::sys::thread::Thread>"* %t)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN6option15Option$LT$T$GT$6unwrap20h8081534536588428311E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24), %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %self) unnamed_addr #1 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%val = alloca %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"*
%1 = alloca { i8*, i32 }
%2 = getelementptr inbounds %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>", %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %self, i32 0, i32 0
%3 = load i64, i64* %2, !range !2
switch i64 %3, label %match_else [
i64 1, label %match_case
i64 0, label %match_case2
]
case_body: ; preds = %match_case
%4 = load %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"*, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"** %val
%5 = bitcast %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %4 to i8*
%6 = bitcast %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %6, i8* %5, i64 24, i32 8, i1 false)
%7 = bitcast %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %4 to i8*
call void @llvm.memset.p0i8.i64(i8* %7, i8 29, i64 24, i32 8, i1 false)
call void @"_ZN109core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.471617h59b33c617b2df913E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %4)
%8 = bitcast %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %4 to i8*
call void @llvm.memset.p0i8.i64(i8* %8, i8 29, i64 24, i32 8, i1 false)
br label %join
case_body1: ; preds = %match_case2
invoke void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @"_ZN6option15Option$LT$T$GT$6unwrap14_MSG_FILE_LINE20h9e0bce6065acf43cknOE")
to label %normal-return unwind label %unwind_custom_
match_else: ; preds = %entry-block
unreachable
match_case: ; preds = %entry-block
%9 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %self to { i64, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }*
%10 = getelementptr inbounds { i64, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }, { i64, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }* %9, i32 0, i32 1
store %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %10, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"** %val
br label %case_body
match_case2: ; preds = %entry-block
br label %case_body1
normal-return: ; preds = %case_body1
unreachable
unwind_custom_: ; preds = %case_body1
%11 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %11, { i8*, i32 }* %1
br label %clean_custom_
resume: ; preds = %clean_custom_
%12 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %12
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.471317h0c1536054c4667a3E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %self)
br label %resume
join: ; preds = %case_body
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.471317h0c1536054c4667a3E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %self)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN6option15Option$LT$T$GT$4take20h2701260149719641138E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32), %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32)) unnamed_addr #1 {
entry-block:
%self = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*
%const = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"
store %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %1, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %self, align 8
%2 = load %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %self, align 8, !nonnull !1
%3 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %const to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %3, i8* bitcast ({ i64, [24 x i8] }* @const5027 to i8*), i64 32, i32 8, i1 false)
call void @_ZN3mem7replace21h14907214768296574916E(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32) %0, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32) %2, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %const)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3mem7replace21h14907214768296574916E(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32), %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32), %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %src) unnamed_addr #1 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%dest = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*
%2 = alloca { i8*, i32 }
store %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %1, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %dest, align 8
%3 = load %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %dest, align 8, !nonnull !1
invoke void @_ZN3mem4swap20h9946490636545126379E(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32) %3, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32) %src)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %entry-block
%4 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %src to i8*
%5 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 32, i32 8, i1 false)
%6 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %src to i8*
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 32, i32 8, i1 false)
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.471317h0c1536054c4667a3E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %src)
ret void
unwind_custom_: ; preds = %entry-block
%7 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %7, { i8*, i32 }* %2
br label %clean_custom_
resume: ; preds = %clean_custom_
%8 = load { i8*, i32 }, { i8*, i32 }* %2
resume { i8*, i32 } %8
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.471317h0c1536054c4667a3E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %src)
br label %resume
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3mem4swap20h9946490636545126379E(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32), %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32)) unnamed_addr #1 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%x = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*
%y = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*
%t = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"
%arg = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"
%2 = alloca { i8*, i32 }
store %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %0, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %x, align 8
store %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %1, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %y, align 8
call void @_ZN3mem13uninitialized20h7835579478381164366E(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32) %t)
%3 = load %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %x, align 8, !nonnull !1
%4 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8*
%5 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %3 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %4, i8* %5, i64 32, i32 8, i1 false)
%6 = load %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %y, align 8, !nonnull !1
%7 = load %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %x, align 8, !nonnull !1
%8 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %7 to i8*
%9 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %6 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %8, i8* %9, i64 32, i32 8, i1 false)
%10 = load %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %y, align 8, !nonnull !1
%11 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %10 to i8*
%12 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %11, i8* %12, i64 32, i32 8, i1 false)
%13 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8*
%14 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %arg to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %14, i8* %13, i64 32, i32 8, i1 false)
%15 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8*
call void @llvm.memset.p0i8.i64(i8* %15, i8 29, i64 32, i32 8, i1 false)
invoke void @_ZN3mem6forget21h11478358543596308909E(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %arg)
to label %normal-return unwind label %unwind_ast_101647_
normal-return: ; preds = %entry-block
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.471317h0c1536054c4667a3E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t)
ret void
unwind_ast_101647_: ; preds = %entry-block
%16 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %16, { i8*, i32 }* %2
br label %clean_ast_101647_
resume: ; preds = %clean_ast_101647_
%17 = load { i8*, i32 }, { i8*, i32 }* %2
resume { i8*, i32 } %17
clean_ast_101647_: ; preds = %unwind_ast_101647_
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.471317h0c1536054c4667a3E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t)
br label %resume
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3mem13uninitialized20h7835579478381164366E(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32)) unnamed_addr #1 {
entry-block:
ret void
}
; Function Attrs: uwtable
define internal void @_ZN3mem6forget21h11478358543596308909E(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %t) unnamed_addr #0 {
entry-block:
%arg = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"
%0 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8*
%1 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %arg to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* %0, i64 32, i32 8, i1 false)
%2 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8*
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 32, i32 8, i1 false)
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.471317h0c1536054c4667a3E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t)
ret void
}
declare void @_ZN2io5stdio6_print20h9c517a1f8695e043RghE(%"1.core::fmt::Arguments"* noalias nocapture dereferenceable(48)) unnamed_addr
; Function Attrs: uwtable
define internal void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new21h18080889046923876904E"(%"1.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16), i32* noalias readonly dereferenceable(4), i8 (i32*, %"1.core::fmt::Formatter"*)*) unnamed_addr #0 {
entry-block:
%x = alloca i32*
%f = alloca i8 (i32*, %"1.core::fmt::Formatter"*)*
store i32* %1, i32** %x, align 8
store i8 (i32*, %"1.core::fmt::Formatter"*)* %2, i8 (i32*, %"1.core::fmt::Formatter"*)** %f, align 8
%3 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %0, i32 0, i32 1
%4 = load i8 (i32*, %"1.core::fmt::Formatter"*)*, i8 (i32*, %"1.core::fmt::Formatter"*)** %f, align 8
%5 = bitcast i8 (i32*, %"1.core::fmt::Formatter"*)* %4 to i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)*
store i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)* %5, i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)** %3
%6 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %0, i32 0, i32 0
%7 = load i32*, i32** %x, align 8, !nonnull !1
%8 = bitcast i32* %7 to %"1.core::fmt::Void"*
store %"1.core::fmt::Void"* %8, %"1.core::fmt::Void"** %6
ret void
}
declare i8 @_ZN3fmt3num16i32.fmt..Display3fmt20hc117e0f17c173be6gIVE(i32* noalias readonly dereferenceable(4), %"1.core::fmt::Formatter"* dereferenceable(96)) unnamed_addr
define i64 @main(i64, i8**) unnamed_addr {
top:
%2 = call i64 @_ZN2rt10lang_start20h4e03f90385699ce85VyE(i8* bitcast (void ()* @_ZN4main20h789cd5288c0f40dafaaE to i8*), i64 %0, i8** %1)
ret i64 %2
}
declare i64 @_ZN2rt10lang_start20h4e03f90385699ce85VyE(i8*, i64, i8**) unnamed_addr
attributes #0 = { uwtable }
attributes #1 = { inlinehint uwtable }
attributes #2 = { argmemonly nounwind }
attributes #3 = { nounwind }
attributes #4 = { cold noinline noreturn }
attributes #5 = { noinline uwtable }
attributes #6 = { nounwind readnone }
attributes #7 = { cold noinline noreturn uwtable }
attributes #8 = { noreturn nounwind }
!0 = !{i8 0, i8 2}
!1 = !{}
!2 = !{i64 0, i64 2}
!3 = !{i8 0, i8 5}
!4 = !{!5}
!5 = distinct !{!5, !6, !"_ZN3ptr4read20h8290095400451058155E: argument 0"}
!6 = distinct !{!6, !"_ZN3ptr4read20h8290095400451058155E"}
!7 = !{i32 0, i32 2}
; ModuleID = 'spawn_example.0.rs'
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%str_slice = type { i8*, i64 }
%"2.core::marker::PhantomData<&'static mut u8>" = type {}
%"2.core::fmt::Formatter" = type { i32, i32, i8, %"2.core::option::Option<usize>", %"2.core::option::Option<usize>", { i8*, void (i8*)** }, %"2.core::slice::Iter<core::fmt::ArgumentV1>", { %"2.core::fmt::ArgumentV1"*, i64 } }
%"2.core::option::Option<usize>" = type { i64, [0 x i64], [1 x i64] }
%"2.core::slice::Iter<core::fmt::ArgumentV1>" = type { %"2.core::fmt::ArgumentV1"*, %"2.core::fmt::ArgumentV1"*, %"2.core::marker::PhantomData<&'static core::fmt::ArgumentV1>" }
%"2.core::fmt::ArgumentV1" = type { %"2.core::fmt::Void"*, i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* }
%"2.core::fmt::Void" = type {}
%"2.core::marker::PhantomData<&'static core::fmt::ArgumentV1>" = type {}
%"1.std::io::error::Error" = type { %"1.std::io::error::Repr" }
%"1.std::io::error::Repr" = type { i8, [7 x i8], [1 x i64] }
%"2.core::marker::PhantomData<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" = type {}
%closure.0 = type { %"1.std::thread::Thread", %closure, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" }
%"1.std::thread::Thread" = type { %"5.alloc::arc::Arc<std::thread::Inner>" }
%"5.alloc::arc::Arc<std::thread::Inner>" = type { %"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>" }
%"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>" = type { %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>", %"2.core::marker::PhantomData<alloc::arc::ArcInner<std::thread::Inner>>" }
%"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>" = type { %"5.alloc::arc::ArcInner<std::thread::Inner>"* }
%"5.alloc::arc::ArcInner<std::thread::Inner>" = type { %"2.core::sync::atomic::AtomicUsize", %"2.core::sync::atomic::AtomicUsize", %"1.std::thread::Inner" }
%"2.core::sync::atomic::AtomicUsize" = type { %"2.core::cell::UnsafeCell<usize>" }
%"2.core::cell::UnsafeCell<usize>" = type { i64 }
%"1.std::thread::Inner" = type { %"2.core::option::Option<collections::string::String>", %"1.std::sync::mutex::Mutex<bool>", %"1.std::sync::condvar::Condvar" }
%"2.core::option::Option<collections::string::String>" = type { %"3.collections::string::String" }
%"3.collections::string::String" = type { %"3.collections::vec::Vec<u8>" }
%"3.collections::vec::Vec<u8>" = type { %"5.alloc::raw_vec::RawVec<u8>", i64 }
%"5.alloc::raw_vec::RawVec<u8>" = type { %"2.core::ptr::Unique<u8>", i64 }
%"2.core::ptr::Unique<u8>" = type { %"2.core::nonzero::NonZero<*const u8>", %"2.core::marker::PhantomData<u8>" }
%"2.core::nonzero::NonZero<*const u8>" = type { i8* }
%"2.core::marker::PhantomData<u8>" = type {}
%"1.std::sync::mutex::Mutex<bool>" = type { %"1.std::sync::mutex::StaticMutex"*, %"2.core::cell::UnsafeCell<bool>", i8 }
%"1.std::sync::mutex::StaticMutex" = type { %"1.std::sys_common::mutex::Mutex", %"1.std::sys_common::poison::Flag" }
%"1.std::sys_common::mutex::Mutex" = type { %"1.std::sys::mutex::Mutex" }
%"1.std::sys::mutex::Mutex" = type { %"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>" }
%"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>" = type { %"7.libc::unix::notbsd::linux::pthread_mutex_t" }
%"7.libc::unix::notbsd::linux::pthread_mutex_t" = type { [0 x i64], [40 x i8] }
%"1.std::sys_common::poison::Flag" = type { %"2.core::cell::Cell<bool>" }
%"2.core::cell::Cell<bool>" = type { %"2.core::cell::UnsafeCell<bool>" }
%"2.core::cell::UnsafeCell<bool>" = type { i8 }
%"1.std::sync::condvar::Condvar" = type { %"1.std::sync::condvar::StaticCondvar"*, i8 }
%"1.std::sync::condvar::StaticCondvar" = type { %"1.std::sys_common::condvar::Condvar", %"2.core::sync::atomic::AtomicUsize" }
%"1.std::sys_common::condvar::Condvar" = type { %"1.std::sys::condvar::Condvar" }
%"1.std::sys::condvar::Condvar" = type { %"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_cond_t>" }
%"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_cond_t>" = type { %"7.libc::unix::notbsd::linux::pthread_cond_t" }
%"7.libc::unix::notbsd::linux::pthread_cond_t" = type { [0 x i64], [48 x i8] }
%"2.core::marker::PhantomData<alloc::arc::ArcInner<std::thread::Inner>>" = type {}
%closure = type {}
%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" = type { %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" }
%"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" = type { %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"2.core::marker::PhantomData<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" }
%"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" = type { %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* }
%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" = type { %"2.core::sync::atomic::AtomicUsize", %"2.core::sync::atomic::AtomicUsize", %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>" }
%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>" = type { %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>" }
%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>" = type { i64, [0 x i64], [3 x i64] }
%"1.std::thread::JoinHandle<i32>" = type { %"1.std::thread::JoinInner<i32>" }
%"1.std::thread::JoinInner<i32>" = type { %"2.core::option::Option<std::sys::thread::Thread>", %"1.std::thread::Thread", %"1.std::thread::Packet<i32>" }
%"2.core::option::Option<std::sys::thread::Thread>" = type { i64, [0 x i64], [2 x i64] }
%"1.std::thread::Packet<i32>" = type { %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" }
%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" = type { i8, [7 x i8], [2 x i64] }
%"2.core::fmt::Arguments" = type { { %str_slice*, i64 }, %"2.core::option::Option<&'static [core::fmt::rt::v1::Argument]>", { %"2.core::fmt::ArgumentV1"*, i64 } }
%"2.core::option::Option<&'static [core::fmt::rt::v1::Argument]>" = type { { %"2.core::fmt::rt::v1::Argument"*, i64 } }
%"2.core::fmt::rt::v1::Argument" = type { %"2.core::fmt::rt::v1::Position", %"2.core::fmt::rt::v1::FormatSpec" }
%"2.core::fmt::rt::v1::Position" = type { i64, [0 x i64], [1 x i64] }
%"2.core::fmt::rt::v1::FormatSpec" = type { i32, i8, i32, %"2.core::fmt::rt::v1::Count", %"2.core::fmt::rt::v1::Count" }
%"2.core::fmt::rt::v1::Count" = type { i64, [0 x i64], [1 x i64] }
%"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>" = type { i64, [0 x i64], [5 x i64] }
%"1.std::thread::Builder" = type { %"2.core::option::Option<collections::string::String>", %"2.core::option::Option<usize>" }
%"1.std::sys::thread::Thread" = type { i64, i8 }
%"1.std::sys_common::libunwind::_Unwind_Exception" = type { i64, void (i32, %"1.std::sys_common::libunwind::_Unwind_Exception"*)*, [6 x i64] }
%"1.std::sys_common::libunwind::_Unwind_Context" = type {}
%"2.core::slice::IterMut<u8>" = type { i8*, i8*, %"2.core::marker::PhantomData<&'static mut u8>" }
%"2.core::raw::Slice<u8>" = type { i8*, i64 }
%"2.core::result::Result<(), core::fmt::Error>" = type { i8, [0 x i8], [0 x i8] }
%"1.std::io::error::Custom" = type { i8, { i8*, void (i8*)** } }
%"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>" = type { i64, [0 x i64], [2 x i64] }
%"2.core::option::Option<&'static str>" = type { %str_slice }
%"2.core::option::Option<i32>" = type { i32, [0 x i32], [1 x i32] }
%"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>" = type { { i8*, void (i8*)** } }
%closure.1 = type { %closure, %"2.core::option::Option<i32>"* }
%closure.2 = type { %"2.core::option::Option<i32>" }
%"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" = type { %closure.1 }
@const4241 = internal unnamed_addr constant i8 29, align 1
@const4242 = internal unnamed_addr constant i64 2097865012304223517, align 8
@const4261 = internal unnamed_addr constant i64 1, align 8
@const4262 = internal unnamed_addr constant i8 1, align 1
@_ZN4sync6atomic5fence14_MSG_FILE_LINE20h9e0bce6065acf43cSdLE = external global { %str_slice, %str_slice, i32 }
@const4283 = internal unnamed_addr constant i8 2, align 1
@const4346 = internal unnamed_addr constant i64 0, align 8
@const4347 = internal unnamed_addr constant i8* inttoptr (i64 1 to i8*), align 8
@const4466 = internal unnamed_addr constant i8* null, align 8
@const4485 = internal unnamed_addr constant %"2.core::marker::PhantomData<&'static mut u8>" zeroinitializer, align 1
@str4511 = internal constant [31 x i8] c"arithmetic operation overflowed"
@str4513 = internal constant [26 x i8] c"../src/liballoc/raw_vec.rs"
@panic_loc4514 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @str4511, i32 0, i32 0), i64 31 }, %str_slice { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @str4513, i32 0, i32 0), i64 26 }, i32 565 }, align 8
@const4534 = internal unnamed_addr constant i8 0, align 1
@const4585 = internal unnamed_addr constant { { i8*, i8* } } zeroinitializer, align 8
@_ZN6result13unwrap_failed15__STATIC_FMTSTR20hf92ae00c19516543Q5OE = external global { %str_slice*, i64 }
@const4589 = internal unnamed_addr constant i8 (%str_slice*, %"2.core::fmt::Formatter"*)* @"_ZN3fmt25_$RF$$u27$a$u20$T.Display3fmt21h14280652299265841549E", align 8
@const4609 = internal unnamed_addr constant i8 (%"1.std::io::error::Error"*, %"2.core::fmt::Formatter"*)* @_ZN2io5error24Error...core..fmt..Debug3fmt20h8da91e579551ef4dmhgE, align 8
@_ZN6result13unwrap_failed10_FILE_LINE20h4a56c969ed2d4d85A5OE = external global { %str_slice, i32 }
@str4610 = internal constant [43 x i8] c"called `Result::unwrap()` on an `Err` value"
@const4611 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str4610, i32 0, i32 0), i64 43 }, align 8
@const4656 = internal unnamed_addr constant i64 -9223372036854775808, align 8
@const4657 = internal unnamed_addr constant i64 9223372036854775807, align 8
@const4668 = internal unnamed_addr constant {}* inttoptr (i64 1 to {}*), align 8
@const4685 = internal unnamed_addr constant { { i64 } } { { i64 } { i64 1 } }, align 8
@const4692 = internal unnamed_addr constant %"2.core::marker::PhantomData<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" zeroinitializer, align 1
@const4710 = internal unnamed_addr constant { { i64, [24 x i8] } } { { i64, [24 x i8] } { i64 0, [24 x i8] undef } }, align 8
@const4717 = internal unnamed_addr constant { i32, [4 x i8] } { i32 0, [4 x i8] undef }, align 4
@"_ZN6option15Option$LT$T$GT$6unwrap14_MSG_FILE_LINE20h9e0bce6065acf43cknOE" = external global { %str_slice, %str_slice, i32 }
@const4830 = internal unnamed_addr constant { { {}, i8* } } zeroinitializer, align 8
@const4831 = internal unnamed_addr constant void (i8*)* @_ZN10sys_common6unwind3try6try_fn20h1306342228717066690E, align 8
@vtable4858 = internal unnamed_addr constant { void (%closure.0*)*, i64, i64, void (%closure.0*, {})* } { void (%closure.0*)* @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.485217h6242f803e6a3193cE", i64 16, i64 8, void (%closure.0*, {})* @"_ZN5boxed16F.FnBox$LT$A$GT$8call_box21h17736015687154337904E" }, align 8
@const4865 = internal unnamed_addr constant i32 2, align 4
@const4866 = internal unnamed_addr constant %closure zeroinitializer, align 1
@const4870 = internal unnamed_addr constant { i64, [16 x i8] } { i64 0, [16 x i8] undef }, align 8
@const4871 = internal unnamed_addr constant { i64, [24 x i8] } { i64 0, [24 x i8] undef }, align 8
@_ZN4main15__STATIC_FMTSTR20h0fc7de54f63d9caaDaaE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref4878, i32 0, i32 0), i64 2 }, align 8
@const4875 = internal unnamed_addr constant i8 (i32*, %"2.core::fmt::Formatter"*)* @_ZN3fmt3num16i32.fmt..Display3fmt20hc117e0f17c173be6gIVE, align 8
@str4876 = internal constant [0 x i8] zeroinitializer
@str4877 = internal constant [1 x i8] c"\0A"
@ref4878 = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str4876, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str4877, i32 0, i32 0), i64 1 }], align 8
; Function Attrs: uwtable
define internal void @_ZN4main20hee0a51470adedc0feaaE() unnamed_addr #0 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%dropflag_hint_9 = alloca i8
%x = alloca %"1.std::thread::JoinHandle<i32>"
%0 = alloca %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"
%arg = alloca %"1.std::thread::JoinHandle<i32>"
%1 = alloca { i8*, i32 }
%__llmatch = alloca i32*
%e = alloca i32
%2 = alloca %"2.core::fmt::Arguments"
%3 = alloca { %str_slice*, i64 }
%4 = alloca [1 x %"2.core::fmt::ArgumentV1"]
%5 = alloca { i32* }
%match = alloca { i32* }
%6 = bitcast { i32* }* %match to i8*
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 8, i32 8, i1 false)
%__llmatch4 = alloca i32**
%__arg0 = alloca i32*
%__coerce_target = alloca { %"2.core::fmt::ArgumentV1"*, i64 }
store i8 61, i8* %dropflag_hint_9
call void @_ZN6thread5spawn20h7696498019398179437E(%"1.std::thread::JoinHandle<i32>"* noalias nocapture sret dereferenceable(40) %x, %closure undef)
%7 = bitcast %"1.std::thread::JoinHandle<i32>"* %x to i8*
%8 = bitcast %"1.std::thread::JoinHandle<i32>"* %arg to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %8, i8* %7, i64 40, i32 8, i1 false)
%9 = bitcast %"1.std::thread::JoinHandle<i32>"* %x to i8*
call void @llvm.memset.p0i8.i64(i8* %9, i8 29, i64 40, i32 8, i1 false)
invoke void @"_ZN6thread19JoinHandle$LT$T$GT$4join21h11682743565137392356E"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24) %0, %"1.std::thread::JoinHandle<i32>"* noalias nocapture dereferenceable(40) %arg)
to label %normal-return unwind label %unwind_ast_6_
normal-return: ; preds = %entry-block
%10 = getelementptr inbounds %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>", %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0
%11 = load i8, i8* %10, !range !0
switch i8 %11, label %match_else [
i8 0, label %match_case
i8 1, label %match_case2
]
unwind_ast_6_: ; preds = %entry-block
%12 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %12, { i8*, i32 }* %1
br label %clean_ast_6_
resume: ; preds = %clean_ast_6_
%13 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %13
clean_ast_6_: ; preds = %clean_ast_6_7, %unwind_ast_6_
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.419017h4035594c4205a9a2E"(%"1.std::thread::JoinHandle<i32>"* %x)
br label %resume
case_body: ; preds = %match_case
%14 = load i32*, i32** %__llmatch
%15 = load i32, i32* %14, align 4
store i32 %15, i32* %e, align 4
%16 = bitcast { %str_slice*, i64 }* %3 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %16, i8* bitcast ({ %str_slice*, i64 }* @_ZN4main15__STATIC_FMTSTR20h0fc7de54f63d9caaDaaE to i8*), i64 16, i32 8, i1 false)
%17 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %3, i32 0, i32 0
%18 = load %str_slice*, %str_slice** %17
%19 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %3, i32 0, i32 1
%20 = load i64, i64* %19
%21 = getelementptr inbounds { i32* }, { i32* }* %5, i32 0, i32 0
store i32* %e, i32** %21, align 8
%22 = bitcast { i32* }* %5 to i64*
%23 = load i64, i64* %22, align 8
%24 = bitcast { i32* }* %match to i64*
store i64 %23, i64* %24, align 8
%25 = getelementptr inbounds { i32* }, { i32* }* %match, i32 0, i32 0
store i32** %25, i32*** %__llmatch4
br label %case_body3
case_body1: ; preds = %match_case2
br label %join10
match_else: ; preds = %normal-return
unreachable
match_case: ; preds = %normal-return
%26 = bitcast %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, i32 }*
%27 = getelementptr inbounds { i8, i32 }, { i8, i32 }* %26, i32 0, i32 1
store i32* %27, i32** %__llmatch
br label %case_body
match_case2: ; preds = %normal-return
%28 = bitcast %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, { i8*, void (i8*)** } }*
%29 = getelementptr inbounds { i8, { i8*, void (i8*)** } }, { i8, { i8*, void (i8*)** } }* %28, i32 0, i32 1
br label %case_body1
case_body3: ; preds = %case_body
%30 = load i32**, i32*** %__llmatch4
%31 = load i32*, i32** %30, align 8, !nonnull !1
store i32* %31, i32** %__arg0, align 8
%32 = getelementptr inbounds [1 x %"2.core::fmt::ArgumentV1"], [1 x %"2.core::fmt::ArgumentV1"]* %4, i32 0, i32 0
%33 = getelementptr inbounds %"2.core::fmt::ArgumentV1", %"2.core::fmt::ArgumentV1"* %32, i32 0
%34 = load i32*, i32** %__arg0, align 8, !nonnull !1
invoke void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new20h7413601074852004310E"(%"2.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16) %33, i32* noalias readonly dereferenceable(4) %34, i8 (i32*, %"2.core::fmt::Formatter"*)* @_ZN3fmt3num16i32.fmt..Display3fmt20hc117e0f17c173be6gIVE)
to label %normal-return5 unwind label %unwind_ast_6_6
normal-return5: ; preds = %case_body3
br label %join
unwind_ast_6_6: ; preds = %normal-return8, %join, %case_body3
%35 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %35, { i8*, i32 }* %1
br label %clean_ast_6_7
clean_ast_6_7: ; preds = %unwind_ast_6_6
call void @"_ZN109core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.457017h65983c191404b38bE"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0)
br label %clean_ast_6_
join: ; preds = %normal-return5
%36 = bitcast [1 x %"2.core::fmt::ArgumentV1"]* %4 to %"2.core::fmt::ArgumentV1"*
%37 = getelementptr inbounds { %"2.core::fmt::ArgumentV1"*, i64 }, { %"2.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0
store %"2.core::fmt::ArgumentV1"* %36, %"2.core::fmt::ArgumentV1"** %37
%38 = getelementptr inbounds { %"2.core::fmt::ArgumentV1"*, i64 }, { %"2.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1
store i64 1, i64* %38
%39 = getelementptr inbounds { %"2.core::fmt::ArgumentV1"*, i64 }, { %"2.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0
%40 = load %"2.core::fmt::ArgumentV1"*, %"2.core::fmt::ArgumentV1"** %39
%41 = getelementptr inbounds { %"2.core::fmt::ArgumentV1"*, i64 }, { %"2.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1
%42 = load i64, i64* %41
invoke void @"_ZN3fmt23Arguments$LT$$u27$a$GT$6new_v120he832f0357fe73cd4nLWE"(%"2.core::fmt::Arguments"* noalias nocapture sret dereferenceable(48) %2, %str_slice* noalias nonnull readonly %18, i64 %20, %"2.core::fmt::ArgumentV1"* noalias nonnull readonly %40, i64 %42)
to label %normal-return8 unwind label %unwind_ast_6_6
normal-return8: ; preds = %join
invoke void @_ZN2io5stdio6_print20h6af5e30262835244TghE(%"2.core::fmt::Arguments"* noalias nocapture dereferenceable(48) %2)
to label %normal-return9 unwind label %unwind_ast_6_6
normal-return9: ; preds = %normal-return8
br label %join10
join10: ; preds = %case_body1, %normal-return9
call void @"_ZN109core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.457017h65983c191404b38bE"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0)
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.419017h4035594c4205a9a2E"(%"1.std::thread::JoinHandle<i32>"* %x)
ret void
}
; Function Attrs: uwtable
define internal void @_ZN6thread5spawn20h7696498019398179437E(%"1.std::thread::JoinHandle<i32>"* noalias nocapture sret dereferenceable(40), %closure) unnamed_addr #0 {
entry-block:
%f = alloca %closure
%2 = alloca %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"
%3 = alloca %"1.std::thread::Builder"
call void @_ZN6thread7Builder3new20hd04be2c79ec19f69ezbE(%"1.std::thread::Builder"* noalias nocapture sret dereferenceable(40) %3)
call void @_ZN6thread7Builder5spawn21h11032278164270506546E(%"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* noalias nocapture sret dereferenceable(48) %2, %"1.std::thread::Builder"* noalias nocapture dereferenceable(40) %3, %closure undef)
call void @"_ZN6result24Result$LT$T$C$$u20$E$GT$6unwrap20h6795052324145421564E"(%"1.std::thread::JoinHandle<i32>"* noalias nocapture sret dereferenceable(40) %0, %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* noalias nocapture dereferenceable(48) %2)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN6result24Result$LT$T$C$$u20$E$GT$6unwrap20h6795052324145421564E"(%"1.std::thread::JoinHandle<i32>"* noalias nocapture sret dereferenceable(40), %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* noalias nocapture dereferenceable(48) %self) unnamed_addr #1 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%t = alloca %"1.std::thread::JoinHandle<i32>"*
%e = alloca %"1.std::io::error::Error"*
%arg = alloca %"1.std::io::error::Error"
%1 = alloca { i8*, i32 }
%2 = getelementptr inbounds %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>", %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %self, i32 0, i32 0
%3 = load i64, i64* %2, !range !2
switch i64 %3, label %match_else [
i64 0, label %match_case
i64 1, label %match_case2
]
case_body: ; preds = %match_case
%4 = load %"1.std::thread::JoinHandle<i32>"*, %"1.std::thread::JoinHandle<i32>"** %t
%5 = bitcast %"1.std::thread::JoinHandle<i32>"* %4 to i8*
%6 = bitcast %"1.std::thread::JoinHandle<i32>"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %6, i8* %5, i64 40, i32 8, i1 false)
%7 = bitcast %"1.std::thread::JoinHandle<i32>"* %4 to i8*
call void @llvm.memset.p0i8.i64(i8* %7, i8 29, i64 40, i32 8, i1 false)
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.419017h4035594c4205a9a2E"(%"1.std::thread::JoinHandle<i32>"* %4)
%8 = bitcast %"1.std::thread::JoinHandle<i32>"* %4 to i8*
call void @llvm.memset.p0i8.i64(i8* %8, i8 29, i64 40, i32 8, i1 false)
br label %join
case_body1: ; preds = %match_case2
%9 = load %"1.std::io::error::Error"*, %"1.std::io::error::Error"** %e
%10 = load i8*, i8** getelementptr inbounds (%str_slice, %str_slice* @const4611, i32 0, i32 0)
%11 = load i64, i64* getelementptr inbounds (%str_slice, %str_slice* @const4611, i32 0, i32 1)
%12 = bitcast %"1.std::io::error::Error"* %9 to i8*
%13 = bitcast %"1.std::io::error::Error"* %arg to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %13, i8* %12, i64 16, i32 8, i1 false)
%14 = bitcast %"1.std::io::error::Error"* %9 to i8*
call void @llvm.memset.p0i8.i64(i8* %14, i8 29, i64 16, i32 8, i1 false)
invoke void @_ZN6result13unwrap_failed19h760605379628351383E(i8* noalias nonnull readonly %10, i64 %11, %"1.std::io::error::Error"* noalias nocapture dereferenceable(16) %arg)
to label %normal-return unwind label %unwind_custom_
match_else: ; preds = %entry-block
unreachable
match_case: ; preds = %entry-block
%15 = bitcast %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %self to { i64, %"1.std::thread::JoinHandle<i32>" }*
%16 = getelementptr inbounds { i64, %"1.std::thread::JoinHandle<i32>" }, { i64, %"1.std::thread::JoinHandle<i32>" }* %15, i32 0, i32 1
store %"1.std::thread::JoinHandle<i32>"* %16, %"1.std::thread::JoinHandle<i32>"** %t
br label %case_body
match_case2: ; preds = %entry-block
%17 = bitcast %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %self to { i64, %"1.std::io::error::Error" }*
%18 = getelementptr inbounds { i64, %"1.std::io::error::Error" }, { i64, %"1.std::io::error::Error" }* %17, i32 0, i32 1
store %"1.std::io::error::Error"* %18, %"1.std::io::error::Error"** %e
br label %case_body1
normal-return: ; preds = %case_body1
unreachable
unwind_custom_: ; preds = %case_body1
%19 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %19, { i8*, i32 }* %1
br label %clean_custom_3
resume: ; preds = %clean_custom_
%20 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %20
clean_custom_: ; preds = %clean_custom_3
call void @"_ZN91core..result..Result$LT$std..thread..JoinHandle$LT$i32$GT$$C$$u20$std..io..error..Error$GT$9drop.461317h34cf5398cb2bde0fE"(%"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %self)
br label %resume
clean_custom_3: ; preds = %unwind_custom_
call void @_ZN21std..io..error..Error9drop.459117h0f4948ead3fac74eE(%"1.std::io::error::Error"* %9)
%21 = bitcast %"1.std::io::error::Error"* %9 to i8*
call void @llvm.memset.p0i8.i64(i8* %21, i8 29, i64 16, i32 8, i1 false)
br label %clean_custom_
join: ; preds = %case_body
call void @"_ZN91core..result..Result$LT$std..thread..JoinHandle$LT$i32$GT$$C$$u20$std..io..error..Error$GT$9drop.461317h34cf5398cb2bde0fE"(%"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %self)
ret void
}
; Function Attrs: argmemonly nounwind
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1) #2
; Function Attrs: argmemonly nounwind
declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) #2
define internal void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.419017h4035594c4205a9a2E"(%"1.std::thread::JoinHandle<i32>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"1.std::thread::JoinHandle<i32>", %"1.std::thread::JoinHandle<i32>"* %0, i32 0, i32 0
call void @"_ZN33std..thread..JoinInner$LT$i32$GT$9drop.419317h70541dc80c0009dfE"(%"1.std::thread::JoinInner<i32>"* %1)
ret void
}
define internal void @"_ZN33std..thread..JoinInner$LT$i32$GT$9drop.419317h70541dc80c0009dfE"(%"1.std::thread::JoinInner<i32>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"1.std::thread::JoinInner<i32>", %"1.std::thread::JoinInner<i32>"* %0, i32 0, i32 0
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.419617h3d14b30167ff51f9E"(%"2.core::option::Option<std::sys::thread::Thread>"* %1)
%2 = getelementptr inbounds %"1.std::thread::JoinInner<i32>", %"1.std::thread::JoinInner<i32>"* %0, i32 0, i32 1
call void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"* %2)
%3 = getelementptr inbounds %"1.std::thread::JoinInner<i32>", %"1.std::thread::JoinInner<i32>"* %0, i32 0, i32 2
call void @"_ZN30std..thread..Packet$LT$i32$GT$9drop.455817h5a9c551b027e0483E"(%"1.std::thread::Packet<i32>"* %3)
ret void
}
define internal void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.419617h3d14b30167ff51f9E"(%"2.core::option::Option<std::sys::thread::Thread>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"2.core::option::Option<std::sys::thread::Thread>", %"2.core::option::Option<std::sys::thread::Thread>"* %0, i32 0, i32 0
%2 = load i64, i64* %1
switch i64 %2, label %enum-iter-ret-void [
i64 0, label %enum-iter-variant-0
i64 1, label %enum-iter-variant-1
]
enum-iter-ret-void: ; preds = %entry-block
ret void
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0
ret void
enum-iter-variant-0: ; preds = %entry-block
br label %enum-iter-next
enum-iter-variant-1: ; preds = %entry-block
%3 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %0 to { i64, %"1.std::sys::thread::Thread" }*
%4 = getelementptr inbounds { i64, %"1.std::sys::thread::Thread" }, { i64, %"1.std::sys::thread::Thread" }* %3, i32 0, i32 1
call void @_ZN24std..sys..thread..Thread9drop.419917h5b8cd2efe3ae67d8E(%"1.std::sys::thread::Thread"* %4)
br label %enum-iter-next
}
define internal void @_ZN24std..sys..thread..Thread9drop.419917h5b8cd2efe3ae67d8E(%"1.std::sys::thread::Thread"*) unnamed_addr personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%1 = alloca { i8*, i32 }
%2 = getelementptr inbounds %"1.std::sys::thread::Thread", %"1.std::sys::thread::Thread"* %0, i32 0, i32 1
%3 = load i8, i8* %2, align 1
%4 = icmp ne i8 %3, -44
%5 = icmp ne i8 %3, 29
%6 = and i1 %4, %5
br i1 %6, label %cond, label %next
next: ; preds = %cond, %entry-block
%7 = icmp eq i8 %3, -44
br i1 %7, label %cond2, label %next1
cond: ; preds = %entry-block
call void @llvm.debugtrap()
br label %next
next1: ; preds = %normal-return, %next
ret void
cond2: ; preds = %next
invoke void @_ZN3sys6thread11Thread.Drop4drop20h17af70ad5bd3e4c0B7xE(%"1.std::sys::thread::Thread"* dereferenceable(16) %0)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %cond2
call void @_ZN24std..sys..thread..Thread9drop.421617h5b8cd2efe3ae67d8E(%"1.std::sys::thread::Thread"* %0)
br label %next1
unwind_custom_: ; preds = %cond2
%8 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %8, { i8*, i32 }* %1
br label %clean_custom_
resume: ; preds = %clean_custom_
%9 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %9
clean_custom_: ; preds = %unwind_custom_
call void @_ZN24std..sys..thread..Thread9drop.421617h5b8cd2efe3ae67d8E(%"1.std::sys::thread::Thread"* %0)
br label %resume
}
; Function Attrs: nounwind
declare void @llvm.debugtrap() #3
declare void @_ZN3sys6thread11Thread.Drop4drop20h17af70ad5bd3e4c0B7xE(%"1.std::sys::thread::Thread"* dereferenceable(16)) unnamed_addr
; Function Attrs: nounwind
declare i32 @rust_eh_personality(i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*) unnamed_addr #3
define internal void @_ZN24std..sys..thread..Thread9drop.421617h5b8cd2efe3ae67d8E(%"1.std::sys::thread::Thread"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"1.std::sys::thread::Thread", %"1.std::sys::thread::Thread"* %0, i32 0, i32 0
ret void
}
define internal void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"1.std::thread::Thread", %"1.std::thread::Thread"* %0, i32 0, i32 0
call void @"_ZN41alloc..arc..Arc$LT$std..thread..Inner$GT$9drop.422217hd05f57c09b6baebcE"(%"5.alloc::arc::Arc<std::thread::Inner>"* %1)
ret void
}
define internal void @"_ZN41alloc..arc..Arc$LT$std..thread..Inner$GT$9drop.422217hd05f57c09b6baebcE"(%"5.alloc::arc::Arc<std::thread::Inner>"*) unnamed_addr personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%1 = alloca { i8*, i32 }
invoke void @"_ZN3arc17Arc$LT$T$GT$.Drop4drop20h2282913797638012531E"(%"5.alloc::arc::Arc<std::thread::Inner>"* dereferenceable(8) %0)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %entry-block
call void @"_ZN41alloc..arc..Arc$LT$std..thread..Inner$GT$9drop.455517hd05f57c09b6baebcE"(%"5.alloc::arc::Arc<std::thread::Inner>"* %0)
ret void
unwind_custom_: ; preds = %entry-block
%2 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %2, { i8*, i32 }* %1
br label %clean_custom_
resume: ; preds = %clean_custom_
%3 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %3
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN41alloc..arc..Arc$LT$std..thread..Inner$GT$9drop.455517hd05f57c09b6baebcE"(%"5.alloc::arc::Arc<std::thread::Inner>"* %0)
br label %resume
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN3arc17Arc$LT$T$GT$.Drop4drop20h2282913797638012531E"(%"5.alloc::arc::Arc<std::thread::Inner>"* dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"5.alloc::arc::Arc<std::thread::Inner>"*
%thin = alloca {}*
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"**
%1 = alloca i64
%2 = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"*
%auto_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"*
%3 = bitcast %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref to i8*
call void @llvm.memset.p0i8.i64(i8* %3, i8 29, i64 8, i32 8, i1 false)
store %"5.alloc::arc::Arc<std::thread::Inner>"* %0, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8
%4 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1
%5 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %4, i32 0, i32 0
%6 = call dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref20h4935991149217615470E"(%"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8) %5)
store %"5.alloc::arc::ArcInner<std::thread::Inner>"** %6, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8
%7 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"**, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8, !nonnull !1
%8 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %7, align 8
%9 = bitcast %"5.alloc::arc::ArcInner<std::thread::Inner>"* %8 to {}*
store {}* %9, {}** %thin, align 8
%10 = load {}*, {}** %thin, align 8
%11 = ptrtoint {}* %10 to i64
%12 = icmp eq i64 %11, 2097865012304223517
br i1 %12, label %then-block-122-, label %next-block
then-block-122-: ; preds = %entry-block
br label %clean_ast_105_
clean_ast_105_: ; preds = %clean_ast_105_1, %then-block-122-
br label %return
next-block: ; preds = %entry-block
%13 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1
%14 = call dereferenceable(72) %"5.alloc::arc::ArcInner<std::thread::Inner>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h18010354011718457137E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8) %13)
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %14, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %2, align 8
%15 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %2, align 8, !nonnull !1
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %15, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8
%16 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8, !nonnull !1
%17 = getelementptr inbounds %"5.alloc::arc::ArcInner<std::thread::Inner>", %"5.alloc::arc::ArcInner<std::thread::Inner>"* %16, i32 0, i32 0
%18 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_sub20h8772de3cc84a5649T1KE(%"2.core::sync::atomic::AtomicUsize"* dereferenceable(8) %17, i64 1, i8 1)
store i64 %18, i64* %1, align 8
%19 = load i64, i64* %1, align 8
%20 = icmp ne i64 %19, 1
br i1 %20, label %then-block-135-, label %next-block2
then-block-135-: ; preds = %next-block
br label %clean_ast_105_1
clean_ast_105_1: ; preds = %then-block-135-
br label %clean_ast_105_
next-block2: ; preds = %next-block
call void @_ZN4sync6atomic5fence20hfb767f14e632fab6sdLE(i8 2)
%21 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1
call void @"_ZN3arc12Arc$LT$T$GT$9drop_slow21h15247882626422542327E"(%"5.alloc::arc::Arc<std::thread::Inner>"* dereferenceable(8) %21)
br label %return
return: ; preds = %next-block2, %clean_ast_105_
ret void
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref20h4935991149217615470E"(%"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"*
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"**
store %"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* %0, %"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"** %self, align 8
%1 = load %"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"*, %"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>", %"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* %1, i32 0, i32 0
%3 = call dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref20h7257595767559344696E"(%"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8) %2)
store %"5.alloc::arc::ArcInner<std::thread::Inner>"** %3, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8
%4 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"**, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8, !nonnull !1
ret %"5.alloc::arc::ArcInner<std::thread::Inner>"** %4
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref20h7257595767559344696E"(%"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"*
%inner = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"**
store %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"* %0, %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"** %self, align 8
%1 = load %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"*, %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>", %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"* %1, i32 0, i32 0
store %"5.alloc::arc::ArcInner<std::thread::Inner>"** %2, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %inner
%3 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"**, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %inner, align 8, !nonnull !1
ret %"5.alloc::arc::ArcInner<std::thread::Inner>"** %3
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN4sync6atomic11AtomicUsize9fetch_sub20h8772de3cc84a5649T1KE(%"2.core::sync::atomic::AtomicUsize"* dereferenceable(8), i64, i8) unnamed_addr #1 {
entry-block:
%self = alloca %"2.core::sync::atomic::AtomicUsize"*
%val = alloca i64
%order = alloca i8
%3 = alloca i64*
store %"2.core::sync::atomic::AtomicUsize"* %0, %"2.core::sync::atomic::AtomicUsize"** %self, align 8
store i64 %1, i64* %val, align 8
store i8 %2, i8* %order, align 1
%4 = load %"2.core::sync::atomic::AtomicUsize"*, %"2.core::sync::atomic::AtomicUsize"** %self, align 8, !nonnull !1
%5 = getelementptr inbounds %"2.core::sync::atomic::AtomicUsize", %"2.core::sync::atomic::AtomicUsize"* %4, i32 0, i32 0
%6 = call i64* @"_ZN4cell19UnsafeCell$LT$T$GT$3get21h11064512342180801429E"(%"2.core::cell::UnsafeCell<usize>"* dereferenceable(8) %5)
store i64* %6, i64** %3, align 8
%7 = load i64*, i64** %3, align 8
%8 = load i64, i64* %val, align 8
%9 = load i8, i8* %order, align 1
%10 = call i64 @_ZN4sync6atomic10atomic_sub20h4499132557994629454E(i64* %7, i64 %8, i8 %9)
ret i64 %10
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN4sync6atomic10atomic_sub20h4499132557994629454E(i64*, i64, i8) unnamed_addr #1 {
entry-block:
%sret_slot = alloca i64
%dst = alloca i64*
%val = alloca i64
%order = alloca i8
store i64* %0, i64** %dst, align 8
store i64 %1, i64* %val, align 8
store i8 %2, i8* %order, align 1
%3 = load i8, i8* %order, !range !3
switch i8 %3, label %match_else [
i8 2, label %match_case
i8 1, label %match_case5
i8 3, label %match_case6
i8 0, label %match_case7
i8 4, label %match_case8
]
case_body: ; preds = %match_case
%4 = load i64*, i64** %dst, align 8
%5 = load i64, i64* %val, align 8
%6 = atomicrmw sub i64* %4, i64 %5 acquire
store i64 %6, i64* %sret_slot, align 8
br label %join
case_body1: ; preds = %match_case5
%7 = load i64*, i64** %dst, align 8
%8 = load i64, i64* %val, align 8
%9 = atomicrmw sub i64* %7, i64 %8 release
store i64 %9, i64* %sret_slot, align 8
br label %join
case_body2: ; preds = %match_case6
%10 = load i64*, i64** %dst, align 8
%11 = load i64, i64* %val, align 8
%12 = atomicrmw sub i64* %10, i64 %11 acq_rel
store i64 %12, i64* %sret_slot, align 8
br label %join
case_body3: ; preds = %match_case7
%13 = load i64*, i64** %dst, align 8
%14 = load i64, i64* %val, align 8
%15 = atomicrmw sub i64* %13, i64 %14 monotonic
store i64 %15, i64* %sret_slot, align 8
br label %join
case_body4: ; preds = %match_case8
%16 = load i64*, i64** %dst, align 8
%17 = load i64, i64* %val, align 8
%18 = atomicrmw sub i64* %16, i64 %17 seq_cst
store i64 %18, i64* %sret_slot, align 8
br label %join
match_else: ; preds = %entry-block
unreachable
match_case: ; preds = %entry-block
br label %case_body
match_case5: ; preds = %entry-block
br label %case_body1
match_case6: ; preds = %entry-block
br label %case_body2
match_case7: ; preds = %entry-block
br label %case_body3
match_case8: ; preds = %entry-block
br label %case_body4
join: ; preds = %case_body4, %case_body3, %case_body2, %case_body1, %case_body
%19 = load i64, i64* %sret_slot, align 8
ret i64 %19
}
; Function Attrs: inlinehint uwtable
define internal i64* @"_ZN4cell19UnsafeCell$LT$T$GT$3get21h11064512342180801429E"(%"2.core::cell::UnsafeCell<usize>"* dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"2.core::cell::UnsafeCell<usize>"*
store %"2.core::cell::UnsafeCell<usize>"* %0, %"2.core::cell::UnsafeCell<usize>"** %self, align 8
%1 = load %"2.core::cell::UnsafeCell<usize>"*, %"2.core::cell::UnsafeCell<usize>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"2.core::cell::UnsafeCell<usize>", %"2.core::cell::UnsafeCell<usize>"* %1, i32 0, i32 0
ret i64* %2
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(72) %"5.alloc::arc::ArcInner<std::thread::Inner>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h18010354011718457137E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"5.alloc::arc::Arc<std::thread::Inner>"*
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"**
store %"5.alloc::arc::Arc<std::thread::Inner>"* %0, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8
%1 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %1, i32 0, i32 0
%3 = call dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref20h4935991149217615470E"(%"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8) %2)
store %"5.alloc::arc::ArcInner<std::thread::Inner>"** %3, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8
%4 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"**, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8, !nonnull !1
%5 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %4, align 8
ret %"5.alloc::arc::ArcInner<std::thread::Inner>"* %5
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN4sync6atomic5fence20hfb767f14e632fab6sdLE(i8) unnamed_addr #1 {
entry-block:
%order = alloca i8
store i8 %0, i8* %order, align 1
%1 = load i8, i8* %order, !range !3
switch i8 %1, label %match_else [
i8 2, label %match_case
i8 1, label %match_case5
i8 3, label %match_case6
i8 4, label %match_case7
i8 0, label %match_case8
]
case_body: ; preds = %match_case
fence acquire
br label %join
case_body1: ; preds = %match_case5
fence release
br label %join
case_body2: ; preds = %match_case6
fence acq_rel
br label %join
case_body3: ; preds = %match_case7
fence seq_cst
br label %join
case_body4: ; preds = %match_case8
call void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @_ZN4sync6atomic5fence14_MSG_FILE_LINE20h9e0bce6065acf43cSdLE)
unreachable
match_else: ; preds = %entry-block
unreachable
match_case: ; preds = %entry-block
br label %case_body
match_case5: ; preds = %entry-block
br label %case_body1
match_case6: ; preds = %entry-block
br label %case_body2
match_case7: ; preds = %entry-block
br label %case_body3
match_case8: ; preds = %entry-block
br label %case_body4
join: ; preds = %case_body3, %case_body2, %case_body1, %case_body
ret void
}
; Function Attrs: cold noinline noreturn
declare void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40)) unnamed_addr #4
; Function Attrs: noinline uwtable
define internal void @"_ZN3arc12Arc$LT$T$GT$9drop_slow21h15247882626422542327E"(%"5.alloc::arc::Arc<std::thread::Inner>"* dereferenceable(8)) unnamed_addr #5 {
entry-block:
%self = alloca %"5.alloc::arc::Arc<std::thread::Inner>"*
%ptr = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"*
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"**
%1 = alloca i64
%2 = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"*
%auto_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"*
%3 = bitcast %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref to i8*
call void @llvm.memset.p0i8.i64(i8* %3, i8 29, i64 8, i32 8, i1 false)
%4 = alloca i64
%5 = alloca i64
store %"5.alloc::arc::Arc<std::thread::Inner>"* %0, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8
%6 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1
%7 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %6, i32 0, i32 0
%8 = call dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref20h4935991149217615470E"(%"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8) %7)
store %"5.alloc::arc::ArcInner<std::thread::Inner>"** %8, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8
%9 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"**, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8, !nonnull !1
%10 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %9, align 8
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %10, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %ptr, align 8
%11 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %ptr, align 8
%12 = getelementptr inbounds %"5.alloc::arc::ArcInner<std::thread::Inner>", %"5.alloc::arc::ArcInner<std::thread::Inner>"* %11, i32 0, i32 2
call void @_ZN18std..thread..Inner9drop.430317hba9f32f35085d175E(%"1.std::thread::Inner"* %12)
%13 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1
%14 = call dereferenceable(72) %"5.alloc::arc::ArcInner<std::thread::Inner>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h18010354011718457137E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8) %13)
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %14, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %2, align 8
%15 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %2, align 8, !nonnull !1
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %15, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8
%16 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8, !nonnull !1
%17 = getelementptr inbounds %"5.alloc::arc::ArcInner<std::thread::Inner>", %"5.alloc::arc::ArcInner<std::thread::Inner>"* %16, i32 0, i32 1
%18 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_sub20h8772de3cc84a5649T1KE(%"2.core::sync::atomic::AtomicUsize"* dereferenceable(8) %17, i64 1, i8 1)
store i64 %18, i64* %1, align 8
%19 = load i64, i64* %1, align 8
%20 = icmp eq i64 %19, 1
br i1 %20, label %then-block-502-, label %next-block
then-block-502-: ; preds = %entry-block
call void @_ZN4sync6atomic5fence20hfb767f14e632fab6sdLE(i8 2)
%21 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %ptr, align 8
%22 = bitcast %"5.alloc::arc::ArcInner<std::thread::Inner>"* %21 to i8*
%23 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %ptr, align 8
%24 = call i64 @_ZN3mem11size_of_val21h13591634141023046622E(%"5.alloc::arc::ArcInner<std::thread::Inner>"* dereferenceable(72) %23)
store i64 %24, i64* %4, align 8
%25 = load i64, i64* %4, align 8
%26 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %ptr, align 8
%27 = call i64 @_ZN3mem12align_of_val20h2104549912459974077E(%"5.alloc::arc::ArcInner<std::thread::Inner>"* dereferenceable(72) %26)
store i64 %27, i64* %5, align 8
%28 = load i64, i64* %5, align 8
call void @_ZN4heap10deallocate20hb6b00bc54f0213287eaE(i8* %22, i64 %25, i64 %28)
br label %next-block
next-block: ; preds = %entry-block, %then-block-502-
ret void
}
define internal void @_ZN18std..thread..Inner9drop.430317hba9f32f35085d175E(%"1.std::thread::Inner"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"1.std::thread::Inner", %"1.std::thread::Inner"* %0, i32 0, i32 0
call void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.430617h195c25966ed6cdf5E"(%"2.core::option::Option<collections::string::String>"* %1)
%2 = getelementptr inbounds %"1.std::thread::Inner", %"1.std::thread::Inner"* %0, i32 0, i32 1
call void @"_ZN35std..sync..mutex..Mutex$LT$bool$GT$9drop.452417h821807e8076fc6d3E"(%"1.std::sync::mutex::Mutex<bool>"* %2)
%3 = getelementptr inbounds %"1.std::thread::Inner", %"1.std::thread::Inner"* %0, i32 0, i32 2
call void @_ZN27std..sync..condvar..Condvar9drop.454217he542d37ffa77616cE(%"1.std::sync::condvar::Condvar"* %3)
ret void
}
define internal void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.430617h195c25966ed6cdf5E"(%"2.core::option::Option<collections::string::String>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"2.core::option::Option<collections::string::String>", %"2.core::option::Option<collections::string::String>"* %0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0
%2 = load i8*, i8** %1
%3 = icmp ne i8* %2, null
switch i1 %3, label %enum-iter-ret-void [
i1 false, label %enum-iter-variant-0
i1 true, label %enum-iter-variant-1
]
enum-iter-ret-void: ; preds = %entry-block
ret void
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0
ret void
enum-iter-variant-0: ; preds = %entry-block
br label %enum-iter-next
enum-iter-variant-1: ; preds = %entry-block
%4 = getelementptr inbounds %"2.core::option::Option<collections::string::String>", %"2.core::option::Option<collections::string::String>"* %0, i32 0, i32 0
call void @_ZN27collections..string..String9drop.430917ha3a1e7547d2bbcd1E(%"3.collections::string::String"* %4)
br label %enum-iter-next
}
define internal void @_ZN27collections..string..String9drop.430917ha3a1e7547d2bbcd1E(%"3.collections::string::String"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"3.collections::string::String", %"3.collections::string::String"* %0, i32 0, i32 0
call void @"_ZN31collections..vec..Vec$LT$u8$GT$9drop.431217hdb14b237572c1b0aE"(%"3.collections::vec::Vec<u8>"* %1)
ret void
}
define internal void @"_ZN31collections..vec..Vec$LT$u8$GT$9drop.431217hdb14b237572c1b0aE"(%"3.collections::vec::Vec<u8>"*) unnamed_addr personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%1 = alloca { i8*, i32 }
invoke void @"_ZN3vec17Vec$LT$T$GT$.Drop4drop20h4234986325229876764E"(%"3.collections::vec::Vec<u8>"* dereferenceable(24) %0)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %entry-block
call void @"_ZN31collections..vec..Vec$LT$u8$GT$9drop.449917hdb14b237572c1b0aE"(%"3.collections::vec::Vec<u8>"* %0)
ret void
unwind_custom_: ; preds = %entry-block
%2 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %2, { i8*, i32 }* %1
br label %clean_custom_
resume: ; preds = %clean_custom_
%3 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %3
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN31collections..vec..Vec$LT$u8$GT$9drop.449917hdb14b237572c1b0aE"(%"3.collections::vec::Vec<u8>"* %0)
br label %resume
}
; Function Attrs: uwtable
define internal void @"_ZN3vec17Vec$LT$T$GT$.Drop4drop20h4234986325229876764E"(%"3.collections::vec::Vec<u8>"* dereferenceable(24)) unnamed_addr #0 {
entry-block:
%self = alloca %"3.collections::vec::Vec<u8>"*
%1 = alloca i8
%2 = alloca i8
%_result = alloca {}
%3 = alloca %"2.core::slice::IterMut<u8>"
%4 = alloca %"2.core::slice::IterMut<u8>"
%overloaded_deref = alloca { i8*, i64 }
%iter = alloca %"2.core::slice::IterMut<u8>"*
%5 = alloca i8*
%match = alloca i8*
%6 = bitcast i8** %match to i8*
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 8, i32 8, i1 false)
%x = alloca i8**
store %"3.collections::vec::Vec<u8>"* %0, %"3.collections::vec::Vec<u8>"** %self, align 8
%7 = load %"3.collections::vec::Vec<u8>"*, %"3.collections::vec::Vec<u8>"** %self, align 8, !nonnull !1
%8 = getelementptr inbounds %"3.collections::vec::Vec<u8>", %"3.collections::vec::Vec<u8>"* %7, i32 0, i32 0
%9 = call zeroext i1 @"_ZN7raw_vec15RawVec$LT$T$GT$30unsafe_no_drop_flag_needs_drop20h1568282680993329028E"(%"5.alloc::raw_vec::RawVec<u8>"* noalias readonly dereferenceable(16) %8)
%10 = zext i1 %9 to i8
store i8 %10, i8* %1, align 1
%11 = load i8, i8* %1, align 1, !range !0
%12 = trunc i8 %11 to i1
br i1 %12, label %then-block-542-, label %next-block5
then-block-542-: ; preds = %entry-block
store i8 0, i8* %2, align 1
%13 = load i8, i8* %2, align 1, !range !0
%14 = trunc i8 %13 to i1
br i1 %14, label %then-block-549-, label %next-block
then-block-549-: ; preds = %then-block-542-
%15 = load %"3.collections::vec::Vec<u8>"*, %"3.collections::vec::Vec<u8>"** %self, align 8, !nonnull !1
%16 = call { i8*, i64 } @"_ZN3vec26Vec$LT$T$GT$.ops..DerefMut9deref_mut20h7319036391409328039E"(%"3.collections::vec::Vec<u8>"* dereferenceable(24) %15)
%17 = extractvalue { i8*, i64 } %16, 0
%18 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %overloaded_deref, i32 0, i32 0
store i8* %17, i8** %18
%19 = extractvalue { i8*, i64 } %16, 1
%20 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %overloaded_deref, i32 0, i32 1
store i64 %19, i64* %20
%21 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %overloaded_deref, i32 0, i32 0
%22 = load i8*, i8** %21
%23 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %overloaded_deref, i32 0, i32 1
%24 = load i64, i64* %23
call void @"_ZN5slice12_$u5b$T$u5d$8iter_mut20h9918793280051803892E"(%"2.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16) %4, i8* nonnull %22, i64 %24)
call void @_ZN4iter14I.IntoIterator9into_iter21h16446865773372775343E(%"2.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16) %3, %"2.core::slice::IterMut<u8>"* noalias nocapture dereferenceable(16) %4)
store %"2.core::slice::IterMut<u8>"* %3, %"2.core::slice::IterMut<u8>"** %iter
br label %case_body
case_body: ; preds = %then-block-549-
%25 = load %"2.core::slice::IterMut<u8>"*, %"2.core::slice::IterMut<u8>"** %iter
br label %loop_body
loop_exit: ; preds = %clean_ast_8178_
br label %join4
loop_body: ; preds = %join, %case_body
%26 = call i8* @"_ZN5slice39IterMut$LT$$u27$a$C$$u20$T$GT$.Iterator4next21h17389304392997668194E"(%"2.core::slice::IterMut<u8>"* dereferenceable(16) %25)
store i8* %26, i8** %5, align 8
%27 = load i8*, i8** %5, align 8
store i8* %27, i8** %match, align 8
%28 = load i8*, i8** %match
%29 = icmp ne i8* %28, null
switch i1 %29, label %match_else [
i1 true, label %match_case
i1 false, label %match_case3
]
case_body1: ; preds = %match_case
%30 = load i8**, i8*** %x
%31 = load i8*, i8** %30, align 8, !nonnull !1
br label %join
case_body2: ; preds = %match_case3
br label %clean_ast_8178_
match_else: ; preds = %loop_body
unreachable
match_case: ; preds = %loop_body
store i8** %match, i8*** %x
br label %case_body1
match_case3: ; preds = %loop_body
br label %case_body2
clean_ast_8178_: ; preds = %case_body2
br label %loop_exit
join: ; preds = %case_body1
br label %loop_body
join4: ; preds = %loop_exit
br label %next-block
next-block: ; preds = %then-block-542-, %join4
br label %next-block5
next-block5: ; preds = %entry-block, %next-block
ret void
}
; Function Attrs: uwtable
define internal zeroext i1 @"_ZN7raw_vec15RawVec$LT$T$GT$30unsafe_no_drop_flag_needs_drop20h1568282680993329028E"(%"5.alloc::raw_vec::RawVec<u8>"* noalias readonly dereferenceable(16)) unnamed_addr #0 {
entry-block:
%self = alloca %"5.alloc::raw_vec::RawVec<u8>"*
store %"5.alloc::raw_vec::RawVec<u8>"* %0, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8
%1 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %1, i32 0, i32 1
%3 = load i64, i64* %2, align 8
%4 = icmp ne i64 %3, 2097865012304223517
%5 = zext i1 %4 to i8
%6 = trunc i8 %5 to i1
ret i1 %6
}
; Function Attrs: uwtable
define internal void @_ZN4iter14I.IntoIterator9into_iter21h16446865773372775343E(%"2.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16), %"2.core::slice::IterMut<u8>"* noalias nocapture dereferenceable(16) %self) unnamed_addr #0 {
entry-block:
%1 = bitcast %"2.core::slice::IterMut<u8>"* %self to i8*
%2 = bitcast %"2.core::slice::IterMut<u8>"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %2, i8* %1, i64 16, i32 8, i1 false)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN5slice12_$u5b$T$u5d$8iter_mut20h9918793280051803892E"(%"2.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16), i8* nonnull, i64) unnamed_addr #1 {
entry-block:
%self = alloca { i8*, i64 }
%3 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
store i8* %1, i8** %3
%4 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
store i64 %2, i64* %4
%5 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
%6 = load i8*, i8** %5
%7 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
%8 = load i64, i64* %7
call void @"_ZN5slice21_$u5b$T$u5d$.SliceExt8iter_mut20h1050215043254540792E"(%"2.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16) %0, i8* nonnull %6, i64 %8)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN5slice21_$u5b$T$u5d$.SliceExt8iter_mut20h1050215043254540792E"(%"2.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16), i8* nonnull, i64) unnamed_addr #1 {
entry-block:
%3 = alloca i8*
%self = alloca { i8*, i64 }
%p = alloca i8*
%4 = alloca i64
%p1 = alloca i8*
%5 = alloca i8
%ptr = alloca i8*
%6 = alloca i64
%7 = alloca i8*
%8 = alloca i64
%9 = alloca i64
%10 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
store i8* %1, i8** %10
%11 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
store i64 %2, i64* %11
%12 = call i64 @_ZN3mem7size_of20h7004008083259366209E()
store i64 %12, i64* %4, align 8
%13 = load i64, i64* %4, align 8
%14 = icmp eq i64 %13, 0
br i1 %14, label %then-block-8247-, label %else-block
then-block-8247-: ; preds = %entry-block
store i8* inttoptr (i64 1 to i8*), i8** %p, align 8
br label %join
else-block: ; preds = %entry-block
%15 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
%16 = load i8*, i8** %15
%17 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
%18 = load i64, i64* %17
%19 = call i8* @"_ZN5slice21_$u5b$T$u5d$.SliceExt10as_mut_ptr21h12411256252346874271E"(i8* nonnull %16, i64 %18)
store i8* %19, i8** %p1, align 8
%20 = load i8*, i8** %p1, align 8
%21 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null20h8484224088030641506E"(i8* %20)
%22 = zext i1 %21 to i8
store i8 %22, i8* %5, align 1
%23 = load i8, i8* %5, align 1, !range !0
%24 = trunc i8 %23 to i1
%25 = xor i1 %24, true
call void @llvm.assume(i1 %25)
%26 = load i8*, i8** %p1, align 8
store i8* %26, i8** %p, align 8
br label %join
join: ; preds = %else-block, %then-block-8247-
%27 = getelementptr inbounds %"2.core::slice::IterMut<u8>", %"2.core::slice::IterMut<u8>"* %0, i32 0, i32 0
%28 = load i8*, i8** %p, align 8
store i8* %28, i8** %27, align 8
%29 = getelementptr inbounds %"2.core::slice::IterMut<u8>", %"2.core::slice::IterMut<u8>"* %0, i32 0, i32 1
%30 = load i8*, i8** %p, align 8
store i8* %30, i8** %ptr, align 8
%31 = load i8*, i8** %ptr, align 8
store i8* %31, i8** %3, align 8
%32 = call i64 @_ZN3mem7size_of20h7004008083259366209E()
store i64 %32, i64* %6, align 8
%33 = load i64, i64* %6, align 8
%34 = icmp eq i64 %33, 0
br i1 %34, label %then-block-8280-, label %else-block2
then-block-8280-: ; preds = %join
%35 = load i8*, i8** %ptr, align 8
%36 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
%37 = load i8*, i8** %36
%38 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
%39 = load i64, i64* %38
%40 = call i64 @"_ZN5slice21_$u5b$T$u5d$.SliceExt3len20h7713958268424903689E"(i8* noalias nonnull readonly %37, i64 %39)
store i64 %40, i64* %8, align 8
%41 = load i64, i64* %8, align 8
%42 = getelementptr i8, i8* %35, i64 %41
store i8* %42, i8** %7, align 8
%43 = load i8*, i8** %7, align 8
store i8* %43, i8** %29, align 8
br label %join3
else-block2: ; preds = %join
%44 = load i8*, i8** %ptr, align 8
%45 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
%46 = load i8*, i8** %45
%47 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
%48 = load i64, i64* %47
%49 = call i64 @"_ZN5slice21_$u5b$T$u5d$.SliceExt3len20h7713958268424903689E"(i8* noalias nonnull readonly %46, i64 %48)
store i64 %49, i64* %9, align 8
%50 = load i64, i64* %9, align 8
%51 = call i8* @"_ZN3ptr14_$BP$mut$u20$T6offset20h9473110157605444283E"(i8* %44, i64 %50)
store i8* %51, i8** %29, align 8
br label %join3
join3: ; preds = %else-block2, %then-block-8280-
%52 = getelementptr inbounds %"2.core::slice::IterMut<u8>", %"2.core::slice::IterMut<u8>"* %0, i32 0, i32 2
ret void
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN3mem7size_of20h7004008083259366209E() unnamed_addr #1 {
entry-block:
ret i64 1
}
; Function Attrs: inlinehint uwtable
define internal i8* @"_ZN5slice21_$u5b$T$u5d$.SliceExt10as_mut_ptr21h12411256252346874271E"(i8* nonnull, i64) unnamed_addr #1 {
entry-block:
%self = alloca { i8*, i64 }
%2 = alloca %"2.core::raw::Slice<u8>"
%3 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
store i8* %0, i8** %3
%4 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
store i64 %1, i64* %4
%5 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
%6 = load i8*, i8** %5
%7 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
%8 = load i64, i64* %7
call void @_ZN3raw4Repr4repr21h14878316445816042776E(%"2.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16) %2, i8* noalias nonnull readonly %6, i64 %8)
%9 = getelementptr inbounds %"2.core::raw::Slice<u8>", %"2.core::raw::Slice<u8>"* %2, i32 0, i32 0
%10 = load i8*, i8** %9, align 8
ret i8* %10
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3raw4Repr4repr21h14878316445816042776E(%"2.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16), i8* noalias nonnull readonly, i64) unnamed_addr #1 {
entry-block:
%self = alloca { i8*, i64 }
%3 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
store i8* %1, i8** %3
%4 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
store i64 %2, i64* %4
call void @_ZN3mem14transmute_copy21h13690883680428017960E(%"2.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16) %0, { i8*, i64 }* noalias readonly dereferenceable(16) %self)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3mem14transmute_copy21h13690883680428017960E(%"2.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16), { i8*, i64 }* noalias readonly dereferenceable(16)) unnamed_addr #1 {
entry-block:
%src.i = alloca %"2.core::raw::Slice<u8>"*
%tmp.i = alloca %"2.core::raw::Slice<u8>"
%src = alloca { i8*, i64 }*
store { i8*, i64 }* %1, { i8*, i64 }** %src, align 8
%2 = load { i8*, i64 }*, { i8*, i64 }** %src, align 8
%3 = bitcast { i8*, i64 }* %2 to %"2.core::raw::Slice<u8>"*
store %"2.core::raw::Slice<u8>"* %3, %"2.core::raw::Slice<u8>"** %src.i, align 8, !noalias !4
call void @_ZN3mem13uninitialized21h16189629033497044643E(%"2.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16) %tmp.i), !noalias !4
%4 = load %"2.core::raw::Slice<u8>"*, %"2.core::raw::Slice<u8>"** %src.i, align 8, !noalias !4
%5 = bitcast %"2.core::raw::Slice<u8>"* %tmp.i to i8*
%6 = bitcast %"2.core::raw::Slice<u8>"* %4 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %6, i64 16, i32 8, i1 false), !noalias !4
%7 = bitcast %"2.core::raw::Slice<u8>"* %tmp.i to i8*
%8 = bitcast %"2.core::raw::Slice<u8>"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %8, i8* %7, i64 16, i32 8, i1 false)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3mem13uninitialized21h16189629033497044643E(%"2.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16)) unnamed_addr #1 {
entry-block:
ret void
}
; Function Attrs: inlinehint uwtable
define internal zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null20h8484224088030641506E"(i8*) unnamed_addr #1 {
entry-block:
%self = alloca i8*
store i8* %0, i8** %self, align 8
%1 = load i8*, i8** %self, align 8
%2 = icmp eq i8* %1, null
%3 = zext i1 %2 to i8
%4 = trunc i8 %3 to i1
ret i1 %4
}
; Function Attrs: nounwind
declare void @llvm.assume(i1) #3
; Function Attrs: inlinehint uwtable
define internal i64 @"_ZN5slice21_$u5b$T$u5d$.SliceExt3len20h7713958268424903689E"(i8* noalias nonnull readonly, i64) unnamed_addr #1 {
entry-block:
%self = alloca { i8*, i64 }
%2 = alloca %"2.core::raw::Slice<u8>"
%3 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
store i8* %0, i8** %3
%4 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
store i64 %1, i64* %4
%5 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0
%6 = load i8*, i8** %5
%7 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1
%8 = load i64, i64* %7
call void @_ZN3raw4Repr4repr21h14878316445816042776E(%"2.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16) %2, i8* noalias nonnull readonly %6, i64 %8)
%9 = getelementptr inbounds %"2.core::raw::Slice<u8>", %"2.core::raw::Slice<u8>"* %2, i32 0, i32 1
%10 = load i64, i64* %9, align 8
ret i64 %10
}
; Function Attrs: inlinehint uwtable
define internal i8* @"_ZN3ptr14_$BP$mut$u20$T6offset20h9473110157605444283E"(i8*, i64) unnamed_addr #1 {
entry-block:
%self = alloca i8*
%count = alloca i64
%2 = alloca i8*
store i8* %0, i8** %self, align 8
store i64 %1, i64* %count, align 8
%3 = load i8*, i8** %self, align 8
%4 = load i64, i64* %count, align 8
%5 = getelementptr inbounds i8, i8* %3, i64 %4
store i8* %5, i8** %2, align 8
%6 = load i8*, i8** %2, align 8
ret i8* %6
}
; Function Attrs: uwtable
define internal { i8*, i64 } @"_ZN3vec26Vec$LT$T$GT$.ops..DerefMut9deref_mut20h7319036391409328039E"(%"3.collections::vec::Vec<u8>"* dereferenceable(24)) unnamed_addr #0 {
entry-block:
%sret_slot = alloca { i8*, i64 }
%self = alloca %"3.collections::vec::Vec<u8>"*
%ptr = alloca i8*
%1 = alloca i8
store %"3.collections::vec::Vec<u8>"* %0, %"3.collections::vec::Vec<u8>"** %self, align 8
%2 = load %"3.collections::vec::Vec<u8>"*, %"3.collections::vec::Vec<u8>"** %self, align 8, !nonnull !1
%3 = getelementptr inbounds %"3.collections::vec::Vec<u8>", %"3.collections::vec::Vec<u8>"* %2, i32 0, i32 0
%4 = call i8* @"_ZN7raw_vec15RawVec$LT$T$GT$3ptr20h4769830990728194068E"(%"5.alloc::raw_vec::RawVec<u8>"* noalias readonly dereferenceable(16) %3)
store i8* %4, i8** %ptr, align 8
%5 = load i8*, i8** %ptr, align 8
%6 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null20h8484224088030641506E"(i8* %5)
%7 = zext i1 %6 to i8
store i8 %7, i8* %1, align 1
%8 = load i8, i8* %1, align 1, !range !0
%9 = trunc i8 %8 to i1
%10 = xor i1 %9, true
call void @llvm.assume(i1 %10)
%11 = load i8*, i8** %ptr, align 8
%12 = load %"3.collections::vec::Vec<u8>"*, %"3.collections::vec::Vec<u8>"** %self, align 8, !nonnull !1
%13 = getelementptr inbounds %"3.collections::vec::Vec<u8>", %"3.collections::vec::Vec<u8>"* %12, i32 0, i32 1
%14 = load i64, i64* %13, align 8
%15 = call { i8*, i64 } @_ZN5slice18from_raw_parts_mut21h12842255859049921022E(i8* %11, i64 %14)
%16 = extractvalue { i8*, i64 } %15, 0
%17 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %sret_slot, i32 0, i32 0
store i8* %16, i8** %17
%18 = extractvalue { i8*, i64 } %15, 1
%19 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %sret_slot, i32 0, i32 1
store i64 %18, i64* %19
%20 = load { i8*, i64 }, { i8*, i64 }* %sret_slot, align 8
ret { i8*, i64 } %20
}
; Function Attrs: uwtable
define internal i8* @"_ZN7raw_vec15RawVec$LT$T$GT$3ptr20h4769830990728194068E"(%"5.alloc::raw_vec::RawVec<u8>"* noalias readonly dereferenceable(16)) unnamed_addr #0 {
entry-block:
%self = alloca %"5.alloc::raw_vec::RawVec<u8>"*
%overloaded_deref = alloca i8**
store %"5.alloc::raw_vec::RawVec<u8>"* %0, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8
%1 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %1, i32 0, i32 0
%3 = call dereferenceable(8) i8** @"_ZN3ptr21Unique$LT$T$GT$.Deref5deref21h13441479279314934585E"(%"2.core::ptr::Unique<u8>"* noalias readonly dereferenceable(8) %2)
store i8** %3, i8*** %overloaded_deref, align 8
%4 = load i8**, i8*** %overloaded_deref, align 8, !nonnull !1
%5 = load i8*, i8** %4, align 8
ret i8* %5
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(8) i8** @"_ZN3ptr21Unique$LT$T$GT$.Deref5deref21h13441479279314934585E"(%"2.core::ptr::Unique<u8>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"2.core::ptr::Unique<u8>"*
%overloaded_deref = alloca i8**
store %"2.core::ptr::Unique<u8>"* %0, %"2.core::ptr::Unique<u8>"** %self, align 8
%1 = load %"2.core::ptr::Unique<u8>"*, %"2.core::ptr::Unique<u8>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"2.core::ptr::Unique<u8>", %"2.core::ptr::Unique<u8>"* %1, i32 0, i32 0
%3 = call dereferenceable(8) i8** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref21h15901083502204048188E"(%"2.core::nonzero::NonZero<*const u8>"* noalias readonly dereferenceable(8) %2)
store i8** %3, i8*** %overloaded_deref, align 8
%4 = load i8**, i8*** %overloaded_deref, align 8, !nonnull !1
ret i8** %4
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(8) i8** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref21h15901083502204048188E"(%"2.core::nonzero::NonZero<*const u8>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"2.core::nonzero::NonZero<*const u8>"*
%inner = alloca i8**
store %"2.core::nonzero::NonZero<*const u8>"* %0, %"2.core::nonzero::NonZero<*const u8>"** %self, align 8
%1 = load %"2.core::nonzero::NonZero<*const u8>"*, %"2.core::nonzero::NonZero<*const u8>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"2.core::nonzero::NonZero<*const u8>", %"2.core::nonzero::NonZero<*const u8>"* %1, i32 0, i32 0
store i8** %2, i8*** %inner
%3 = load i8**, i8*** %inner, align 8, !nonnull !1
ret i8** %3
}
; Function Attrs: inlinehint uwtable
define internal { i8*, i64 } @_ZN5slice18from_raw_parts_mut21h12842255859049921022E(i8*, i64) unnamed_addr #1 {
entry-block:
%sret_slot = alloca { i8*, i64 }
%p = alloca i8*
%len = alloca i64
store i8* %0, i8** %p, align 8
store i64 %1, i64* %len, align 8
%2 = bitcast { i8*, i64 }* %sret_slot to %"2.core::raw::Slice<u8>"*
%3 = getelementptr inbounds %"2.core::raw::Slice<u8>", %"2.core::raw::Slice<u8>"* %2, i32 0, i32 0
%4 = load i8*, i8** %p, align 8
store i8* %4, i8** %3, align 8
%5 = getelementptr inbounds %"2.core::raw::Slice<u8>", %"2.core::raw::Slice<u8>"* %2, i32 0, i32 1
%6 = load i64, i64* %len, align 8
store i64 %6, i64* %5, align 8
%7 = load { i8*, i64 }, { i8*, i64 }* %sret_slot, align 8
ret { i8*, i64 } %7
}
; Function Attrs: inlinehint uwtable
define internal i8* @"_ZN5slice39IterMut$LT$$u27$a$C$$u20$T$GT$.Iterator4next21h17389304392997668194E"(%"2.core::slice::IterMut<u8>"* dereferenceable(16)) unnamed_addr #1 {
entry-block:
%1 = alloca i8*
%2 = alloca i8*
%sret_slot = alloca i8*
%self = alloca %"2.core::slice::IterMut<u8>"*
%3 = alloca i64
%4 = alloca i8
%5 = alloca i8
%old = alloca i8*
%6 = alloca i8*
%ptr = alloca i8*
%7 = alloca i64
%8 = alloca i8*
%ptr2 = alloca i8*
%9 = alloca i64
store %"2.core::slice::IterMut<u8>"* %0, %"2.core::slice::IterMut<u8>"** %self, align 8
%10 = call i64 @_ZN3mem7size_of20h7004008083259366209E()
store i64 %10, i64* %3, align 8
%11 = load i64, i64* %3, align 8
%12 = icmp ne i64 %11, 0
br i1 %12, label %then-block-8617-, label %next-block
then-block-8617-: ; preds = %entry-block
%13 = load %"2.core::slice::IterMut<u8>"*, %"2.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1
%14 = getelementptr inbounds %"2.core::slice::IterMut<u8>", %"2.core::slice::IterMut<u8>"* %13, i32 0, i32 0
%15 = load i8*, i8** %14, align 8
%16 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null20h8484224088030641506E"(i8* %15)
%17 = zext i1 %16 to i8
store i8 %17, i8* %4, align 1
%18 = load i8, i8* %4, align 1, !range !0
%19 = trunc i8 %18 to i1
%20 = xor i1 %19, true
call void @llvm.assume(i1 %20)
%21 = load %"2.core::slice::IterMut<u8>"*, %"2.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1
%22 = getelementptr inbounds %"2.core::slice::IterMut<u8>", %"2.core::slice::IterMut<u8>"* %21, i32 0, i32 1
%23 = load i8*, i8** %22, align 8
%24 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null20h8484224088030641506E"(i8* %23)
%25 = zext i1 %24 to i8
store i8 %25, i8* %5, align 1
%26 = load i8, i8* %5, align 1, !range !0
%27 = trunc i8 %26 to i1
%28 = xor i1 %27, true
call void @llvm.assume(i1 %28)
br label %next-block
next-block: ; preds = %entry-block, %then-block-8617-
%29 = load %"2.core::slice::IterMut<u8>"*, %"2.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1
%30 = getelementptr inbounds %"2.core::slice::IterMut<u8>", %"2.core::slice::IterMut<u8>"* %29, i32 0, i32 0
%31 = load i8*, i8** %30, align 8
%32 = load %"2.core::slice::IterMut<u8>"*, %"2.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1
%33 = getelementptr inbounds %"2.core::slice::IterMut<u8>", %"2.core::slice::IterMut<u8>"* %32, i32 0, i32 1
%34 = load i8*, i8** %33, align 8
%35 = icmp eq i8* %31, %34
br i1 %35, label %then-block-8638-, label %else-block
then-block-8638-: ; preds = %next-block
%36 = bitcast i8** %sret_slot to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %36, i8* bitcast (i8** @const4466 to i8*), i64 8, i32 8, i1 false)
br label %join5
else-block: ; preds = %next-block
%37 = load %"2.core::slice::IterMut<u8>"*, %"2.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1
%38 = getelementptr inbounds %"2.core::slice::IterMut<u8>", %"2.core::slice::IterMut<u8>"* %37, i32 0, i32 0
%39 = load i8*, i8** %38, align 8
store i8* %39, i8** %old, align 8
%40 = load %"2.core::slice::IterMut<u8>"*, %"2.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1
%41 = getelementptr inbounds %"2.core::slice::IterMut<u8>", %"2.core::slice::IterMut<u8>"* %40, i32 0, i32 0
%42 = load i8*, i8** %41, align 8
store i8* %42, i8** %ptr, align 8
%43 = load i8*, i8** %ptr, align 8
store i8* %43, i8** %2, align 8
%44 = call i64 @_ZN3mem7size_of20h7004008083259366209E()
store i64 %44, i64* %7, align 8
%45 = load i64, i64* %7, align 8
%46 = icmp eq i64 %45, 0
br i1 %46, label %then-block-8664-, label %else-block1
then-block-8664-: ; preds = %else-block
%47 = load i8*, i8** %ptr, align 8
%48 = getelementptr i8, i8* %47, i64 1
store i8* %48, i8** %8, align 8
%49 = load i8*, i8** %8, align 8
store i8* %49, i8** %6, align 8
br label %join
else-block1: ; preds = %else-block
%50 = load i8*, i8** %ptr, align 8
%51 = call i8* @"_ZN3ptr14_$BP$mut$u20$T6offset20h9473110157605444283E"(i8* %50, i64 1)
store i8* %51, i8** %6, align 8
br label %join
join: ; preds = %else-block1, %then-block-8664-
%52 = load i8*, i8** %6, align 8
%53 = load %"2.core::slice::IterMut<u8>"*, %"2.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1
%54 = getelementptr inbounds %"2.core::slice::IterMut<u8>", %"2.core::slice::IterMut<u8>"* %53, i32 0, i32 0
store i8* %52, i8** %54, align 8
%55 = load i8*, i8** %old, align 8
store i8* %55, i8** %ptr2, align 8
%56 = load i8*, i8** %ptr2, align 8
store i8* %56, i8** %1, align 8
%57 = call i64 @_ZN3mem7size_of20h7004008083259366209E()
store i64 %57, i64* %9, align 8
%58 = load i64, i64* %9, align 8
%59 = icmp eq i64 %58, 0
br i1 %59, label %then-block-8694-, label %else-block3
then-block-8694-: ; preds = %join
store i8* inttoptr (i64 1 to i8*), i8** %sret_slot, align 8
br label %join4
else-block3: ; preds = %join
%60 = load i8*, i8** %ptr2, align 8
store i8* %60, i8** %sret_slot
br label %join4
join4: ; preds = %else-block3, %then-block-8694-
br label %join5
join5: ; preds = %join4, %then-block-8638-
%61 = load i8*, i8** %sret_slot, align 8
ret i8* %61
}
define internal void @"_ZN31collections..vec..Vec$LT$u8$GT$9drop.449917hdb14b237572c1b0aE"(%"3.collections::vec::Vec<u8>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"3.collections::vec::Vec<u8>", %"3.collections::vec::Vec<u8>"* %0, i32 0, i32 0
call void @"_ZN32alloc..raw_vec..RawVec$LT$u8$GT$9drop.450217h754be52ea55354abE"(%"5.alloc::raw_vec::RawVec<u8>"* %1)
%2 = getelementptr inbounds %"3.collections::vec::Vec<u8>", %"3.collections::vec::Vec<u8>"* %0, i32 0, i32 1
ret void
}
define internal void @"_ZN32alloc..raw_vec..RawVec$LT$u8$GT$9drop.450217h754be52ea55354abE"(%"5.alloc::raw_vec::RawVec<u8>"*) unnamed_addr personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%1 = alloca { i8*, i32 }
invoke void @"_ZN7raw_vec20RawVec$LT$T$GT$.Drop4drop20h5439572633047560433E"(%"5.alloc::raw_vec::RawVec<u8>"* dereferenceable(16) %0)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %entry-block
call void @"_ZN32alloc..raw_vec..RawVec$LT$u8$GT$9drop.452117h754be52ea55354abE"(%"5.alloc::raw_vec::RawVec<u8>"* %0)
ret void
unwind_custom_: ; preds = %entry-block
%2 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %2, { i8*, i32 }* %1
br label %clean_custom_
resume: ; preds = %clean_custom_
%3 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %3
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN32alloc..raw_vec..RawVec$LT$u8$GT$9drop.452117h754be52ea55354abE"(%"5.alloc::raw_vec::RawVec<u8>"* %0)
br label %resume
}
; Function Attrs: uwtable
define internal void @"_ZN7raw_vec20RawVec$LT$T$GT$.Drop4drop20h5439572633047560433E"(%"5.alloc::raw_vec::RawVec<u8>"* dereferenceable(16)) unnamed_addr #0 {
entry-block:
%self = alloca %"5.alloc::raw_vec::RawVec<u8>"*
%elem_size = alloca i64
%1 = alloca i8
%align = alloca i64
%num_bytes = alloca i64
%overloaded_deref = alloca i8**
store %"5.alloc::raw_vec::RawVec<u8>"* %0, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8
%2 = call i64 @_ZN3mem7size_of20h7004008083259366209E()
store i64 %2, i64* %elem_size, align 8
%3 = load i64, i64* %elem_size, align 8
%4 = icmp ne i64 %3, 0
br i1 %4, label %before_rhs, label %join
join: ; preds = %before_rhs, %entry-block
%5 = phi i1 [ %4, %entry-block ], [ %9, %before_rhs ]
br i1 %5, label %before_rhs2, label %join1
before_rhs: ; preds = %entry-block
%6 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1
%7 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %6, i32 0, i32 1
%8 = load i64, i64* %7, align 8
%9 = icmp ne i64 %8, 0
br label %join
join1: ; preds = %before_rhs2, %join
%10 = phi i1 [ %5, %join ], [ %15, %before_rhs2 ]
br i1 %10, label %then-block-8732-, label %next-block
before_rhs2: ; preds = %join
%11 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1
%12 = call zeroext i1 @"_ZN7raw_vec15RawVec$LT$T$GT$30unsafe_no_drop_flag_needs_drop20h1568282680993329028E"(%"5.alloc::raw_vec::RawVec<u8>"* noalias readonly dereferenceable(16) %11)
%13 = zext i1 %12 to i8
store i8 %13, i8* %1, align 1
%14 = load i8, i8* %1, align 1, !range !0
%15 = trunc i8 %14 to i1
br label %join1
then-block-8732-: ; preds = %join1
%16 = call i64 @_ZN3mem8align_of20h3537112508284874809E()
store i64 %16, i64* %align, align 8
%17 = load i64, i64* %elem_size, align 8
%18 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1
%19 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %18, i32 0, i32 1
%20 = load i64, i64* %19, align 8
%21 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %17, i64 %20)
%22 = extractvalue { i64, i1 } %21, 0
%23 = extractvalue { i64, i1 } %21, 1
%24 = icmp eq i1 %23, true
%25 = call i1 @llvm.expect.i1(i1 %24, i1 false)
br i1 %24, label %cond, label %next
next: ; preds = %then-block-8732-
store i64 %22, i64* %num_bytes, align 8
%26 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1
%27 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %26, i32 0, i32 0
%28 = call dereferenceable(8) i8** @"_ZN3ptr21Unique$LT$T$GT$.Deref5deref21h13441479279314934585E"(%"2.core::ptr::Unique<u8>"* noalias readonly dereferenceable(8) %27)
store i8** %28, i8*** %overloaded_deref, align 8
%29 = load i8**, i8*** %overloaded_deref, align 8, !nonnull !1
%30 = load i8*, i8** %29, align 8
%31 = load i64, i64* %num_bytes, align 8
%32 = load i64, i64* %align, align 8
call void @_ZN4heap10deallocate20hb6b00bc54f0213287eaE(i8* %30, i64 %31, i64 %32)
br label %next-block
cond: ; preds = %then-block-8732-
call void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc4514)
unreachable
next-block: ; preds = %join1, %next
ret void
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN3mem8align_of20h3537112508284874809E() unnamed_addr #1 {
entry-block:
ret i64 1
}
; Function Attrs: nounwind readnone
declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #6
; Function Attrs: nounwind readnone
declare i1 @llvm.expect.i1(i1, i1) #6
; Function Attrs: inlinehint uwtable
define internal void @_ZN4heap10deallocate20hb6b00bc54f0213287eaE(i8*, i64, i64) unnamed_addr #1 {
entry-block:
%ptr = alloca i8*
%old_size = alloca i64
%align = alloca i64
%__arg = alloca i8*
%__arg1 = alloca i64
%__arg2 = alloca i64
store i8* %0, i8** %ptr, align 8
store i64 %1, i64* %old_size, align 8
store i64 %2, i64* %align, align 8
%3 = load i8*, i8** %ptr, align 8
%4 = load i64, i64* %old_size, align 8
%5 = load i64, i64* %align, align 8
store i8* %3, i8** %__arg, align 8
%6 = load i8*, i8** %__arg
store i64 %4, i64* %__arg1, align 8
%7 = load i64, i64* %__arg1
store i64 %5, i64* %__arg2, align 8
%8 = load i64, i64* %__arg2
call void @__rust_deallocate(i8* %6, i64 %7, i64 %8)
ret void
}
; Function Attrs: nounwind
declare void @__rust_deallocate(i8*, i64, i64) unnamed_addr #3
define internal void @"_ZN32alloc..raw_vec..RawVec$LT$u8$GT$9drop.452117h754be52ea55354abE"(%"5.alloc::raw_vec::RawVec<u8>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %0, i32 0, i32 0
%2 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %0, i32 0, i32 1
ret void
}
define internal void @"_ZN35std..sync..mutex..Mutex$LT$bool$GT$9drop.452417h821807e8076fc6d3E"(%"1.std::sync::mutex::Mutex<bool>"*) unnamed_addr personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%1 = alloca { i8*, i32 }
%2 = getelementptr inbounds %"1.std::sync::mutex::Mutex<bool>", %"1.std::sync::mutex::Mutex<bool>"* %0, i32 0, i32 2
%3 = load i8, i8* %2, align 1
%4 = icmp ne i8 %3, -44
%5 = icmp ne i8 %3, 29
%6 = and i1 %4, %5
br i1 %6, label %cond, label %next
next: ; preds = %cond, %entry-block
%7 = icmp eq i8 %3, -44
br i1 %7, label %cond2, label %next1
cond: ; preds = %entry-block
call void @llvm.debugtrap()
br label %next
next1: ; preds = %normal-return, %next
ret void
cond2: ; preds = %next
invoke void @"_ZN4sync5mutex19Mutex$LT$T$GT$.Drop4drop21h16491459618485717911E"(%"1.std::sync::mutex::Mutex<bool>"* dereferenceable(16) %0)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %cond2
call void @"_ZN35std..sync..mutex..Mutex$LT$bool$GT$9drop.453517h821807e8076fc6d3E"(%"1.std::sync::mutex::Mutex<bool>"* %0)
br label %next1
unwind_custom_: ; preds = %cond2
%8 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %8, { i8*, i32 }* %1
br label %clean_custom_
resume: ; preds = %clean_custom_
%9 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %9
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN35std..sync..mutex..Mutex$LT$bool$GT$9drop.453517h821807e8076fc6d3E"(%"1.std::sync::mutex::Mutex<bool>"* %0)
br label %resume
}
; Function Attrs: uwtable
define internal void @"_ZN4sync5mutex19Mutex$LT$T$GT$.Drop4drop21h16491459618485717911E"(%"1.std::sync::mutex::Mutex<bool>"* dereferenceable(16)) unnamed_addr #0 {
entry-block:
%self = alloca %"1.std::sync::mutex::Mutex<bool>"*
store %"1.std::sync::mutex::Mutex<bool>"* %0, %"1.std::sync::mutex::Mutex<bool>"** %self, align 8
%1 = load %"1.std::sync::mutex::Mutex<bool>"*, %"1.std::sync::mutex::Mutex<bool>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"1.std::sync::mutex::Mutex<bool>", %"1.std::sync::mutex::Mutex<bool>"* %1, i32 0, i32 0
%3 = load %"1.std::sync::mutex::StaticMutex"*, %"1.std::sync::mutex::StaticMutex"** %2, align 8, !nonnull !1
%4 = getelementptr inbounds %"1.std::sync::mutex::StaticMutex", %"1.std::sync::mutex::StaticMutex"* %3, i32 0, i32 0
call void @_ZN10sys_common5mutex5Mutex7destroy20h6cb36dc1c99f94394lsE(%"1.std::sys_common::mutex::Mutex"* dereferenceable(40) %4)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN10sys_common5mutex5Mutex7destroy20h6cb36dc1c99f94394lsE(%"1.std::sys_common::mutex::Mutex"* dereferenceable(40)) unnamed_addr #1 {
entry-block:
%self = alloca %"1.std::sys_common::mutex::Mutex"*
store %"1.std::sys_common::mutex::Mutex"* %0, %"1.std::sys_common::mutex::Mutex"** %self, align 8
%1 = load %"1.std::sys_common::mutex::Mutex"*, %"1.std::sys_common::mutex::Mutex"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"1.std::sys_common::mutex::Mutex", %"1.std::sys_common::mutex::Mutex"* %1, i32 0, i32 0
call void @_ZN3sys5mutex5Mutex7destroy20h6b43088835ab9eccnawE(%"1.std::sys::mutex::Mutex"* dereferenceable(40) %2)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3sys5mutex5Mutex7destroy20h6b43088835ab9eccnawE(%"1.std::sys::mutex::Mutex"* dereferenceable(40)) unnamed_addr #1 {
entry-block:
%self = alloca %"1.std::sys::mutex::Mutex"*
%r = alloca i32
%1 = alloca %"7.libc::unix::notbsd::linux::pthread_mutex_t"*
%__arg = alloca %"7.libc::unix::notbsd::linux::pthread_mutex_t"*
store %"1.std::sys::mutex::Mutex"* %0, %"1.std::sys::mutex::Mutex"** %self, align 8
%2 = load %"1.std::sys::mutex::Mutex"*, %"1.std::sys::mutex::Mutex"** %self, align 8, !nonnull !1
%3 = getelementptr inbounds %"1.std::sys::mutex::Mutex", %"1.std::sys::mutex::Mutex"* %2, i32 0, i32 0
%4 = call %"7.libc::unix::notbsd::linux::pthread_mutex_t"* @"_ZN4cell19UnsafeCell$LT$T$GT$3get20h5704719013770969070E"(%"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"* dereferenceable(40) %3)
store %"7.libc::unix::notbsd::linux::pthread_mutex_t"* %4, %"7.libc::unix::notbsd::linux::pthread_mutex_t"** %1, align 8
%5 = load %"7.libc::unix::notbsd::linux::pthread_mutex_t"*, %"7.libc::unix::notbsd::linux::pthread_mutex_t"** %1, align 8
store %"7.libc::unix::notbsd::linux::pthread_mutex_t"* %5, %"7.libc::unix::notbsd::linux::pthread_mutex_t"** %__arg, align 8
%6 = load %"7.libc::unix::notbsd::linux::pthread_mutex_t"*, %"7.libc::unix::notbsd::linux::pthread_mutex_t"** %__arg
%7 = call i32 @pthread_mutex_destroy(%"7.libc::unix::notbsd::linux::pthread_mutex_t"* %6)
store i32 %7, i32* %r, align 4
ret void
}
; Function Attrs: nounwind
declare i32 @pthread_mutex_destroy(%"7.libc::unix::notbsd::linux::pthread_mutex_t"*) unnamed_addr #3
; Function Attrs: inlinehint uwtable
define internal %"7.libc::unix::notbsd::linux::pthread_mutex_t"* @"_ZN4cell19UnsafeCell$LT$T$GT$3get20h5704719013770969070E"(%"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"* dereferenceable(40)) unnamed_addr #1 {
entry-block:
%self = alloca %"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"*
store %"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"* %0, %"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"** %self, align 8
%1 = load %"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"*, %"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>", %"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"* %1, i32 0, i32 0
ret %"7.libc::unix::notbsd::linux::pthread_mutex_t"* %2
}
define internal void @"_ZN35std..sync..mutex..Mutex$LT$bool$GT$9drop.453517h821807e8076fc6d3E"(%"1.std::sync::mutex::Mutex<bool>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"1.std::sync::mutex::Mutex<bool>", %"1.std::sync::mutex::Mutex<bool>"* %0, i32 0, i32 0
call void @"_ZN40Box$LT$std..sync..mutex..StaticMutex$GT$9drop.453817h31f387d09541dfbfE"(%"1.std::sync::mutex::StaticMutex"** %1)
%2 = getelementptr inbounds %"1.std::sync::mutex::Mutex<bool>", %"1.std::sync::mutex::Mutex<bool>"* %0, i32 0, i32 1
ret void
}
define internal void @"_ZN40Box$LT$std..sync..mutex..StaticMutex$GT$9drop.453817h31f387d09541dfbfE"(%"1.std::sync::mutex::StaticMutex"**) unnamed_addr {
entry-block:
%1 = load %"1.std::sync::mutex::StaticMutex"*, %"1.std::sync::mutex::StaticMutex"** %0
%2 = ptrtoint %"1.std::sync::mutex::StaticMutex"* %1 to i64
%3 = icmp ne i64 %2, 2097865012304223517
br i1 %3, label %cond, label %next
next: ; preds = %cond, %entry-block
ret void
cond: ; preds = %entry-block
%4 = bitcast %"1.std::sync::mutex::StaticMutex"* %1 to i8*
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %4, i64 48, i64 8)
br label %next
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8*, i64, i64) unnamed_addr #1 {
entry-block:
%ptr = alloca i8*
%old_size = alloca i64
%align = alloca i64
store i8* %0, i8** %ptr, align 8
store i64 %1, i64* %old_size, align 8
store i64 %2, i64* %align, align 8
%3 = load i8*, i8** %ptr, align 8
%4 = load i64, i64* %old_size, align 8
%5 = load i64, i64* %align, align 8
call void @_ZN4heap10deallocate20hb6b00bc54f0213287eaE(i8* %3, i64 %4, i64 %5)
ret void
}
define internal void @_ZN27std..sync..condvar..Condvar9drop.454217he542d37ffa77616cE(%"1.std::sync::condvar::Condvar"*) unnamed_addr personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%1 = alloca { i8*, i32 }
%2 = getelementptr inbounds %"1.std::sync::condvar::Condvar", %"1.std::sync::condvar::Condvar"* %0, i32 0, i32 1
%3 = load i8, i8* %2, align 1
%4 = icmp ne i8 %3, -44
%5 = icmp ne i8 %3, 29
%6 = and i1 %4, %5
br i1 %6, label %cond, label %next
next: ; preds = %cond, %entry-block
%7 = icmp eq i8 %3, -44
br i1 %7, label %cond2, label %next1
cond: ; preds = %entry-block
call void @llvm.debugtrap()
br label %next
next1: ; preds = %normal-return, %next
ret void
cond2: ; preds = %next
invoke void @_ZN4sync7condvar12Condvar.Drop4drop20hb084e6639e79e568aeqE(%"1.std::sync::condvar::Condvar"* dereferenceable(16) %0)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %cond2
call void @_ZN27std..sync..condvar..Condvar9drop.454517he542d37ffa77616cE(%"1.std::sync::condvar::Condvar"* %0)
br label %next1
unwind_custom_: ; preds = %cond2
%8 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %8, { i8*, i32 }* %1
br label %clean_custom_
resume: ; preds = %clean_custom_
%9 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %9
clean_custom_: ; preds = %unwind_custom_
call void @_ZN27std..sync..condvar..Condvar9drop.454517he542d37ffa77616cE(%"1.std::sync::condvar::Condvar"* %0)
br label %resume
}
declare void @_ZN4sync7condvar12Condvar.Drop4drop20hb084e6639e79e568aeqE(%"1.std::sync::condvar::Condvar"* dereferenceable(16)) unnamed_addr
define internal void @_ZN27std..sync..condvar..Condvar9drop.454517he542d37ffa77616cE(%"1.std::sync::condvar::Condvar"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"1.std::sync::condvar::Condvar", %"1.std::sync::condvar::Condvar"* %0, i32 0, i32 0
call void @"_ZN44Box$LT$std..sync..condvar..StaticCondvar$GT$9drop.454817h6dfefe4f6c73a730E"(%"1.std::sync::condvar::StaticCondvar"** %1)
ret void
}
define internal void @"_ZN44Box$LT$std..sync..condvar..StaticCondvar$GT$9drop.454817h6dfefe4f6c73a730E"(%"1.std::sync::condvar::StaticCondvar"**) unnamed_addr {
entry-block:
%1 = load %"1.std::sync::condvar::StaticCondvar"*, %"1.std::sync::condvar::StaticCondvar"** %0
%2 = ptrtoint %"1.std::sync::condvar::StaticCondvar"* %1 to i64
%3 = icmp ne i64 %2, 2097865012304223517
br i1 %3, label %cond, label %next
next: ; preds = %cond, %entry-block
ret void
cond: ; preds = %entry-block
%4 = bitcast %"1.std::sync::condvar::StaticCondvar"* %1 to i8*
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %4, i64 56, i64 8)
br label %next
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN3mem11size_of_val21h13591634141023046622E(%"5.alloc::arc::ArcInner<std::thread::Inner>"* dereferenceable(72)) unnamed_addr #1 {
entry-block:
%val = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"*
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %0, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %val, align 8
%1 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %val, align 8, !nonnull !1
ret i64 72
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN3mem12align_of_val20h2104549912459974077E(%"5.alloc::arc::ArcInner<std::thread::Inner>"* dereferenceable(72)) unnamed_addr #1 {
entry-block:
%val = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"*
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %0, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %val, align 8
%1 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %val, align 8, !nonnull !1
ret i64 8
}
define internal void @"_ZN41alloc..arc..Arc$LT$std..thread..Inner$GT$9drop.455517hd05f57c09b6baebcE"(%"5.alloc::arc::Arc<std::thread::Inner>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %0, i32 0, i32 0
ret void
}
define internal void @"_ZN30std..thread..Packet$LT$i32$GT$9drop.455817h5a9c551b027e0483E"(%"1.std::thread::Packet<i32>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"1.std::thread::Packet<i32>", %"1.std::thread::Packet<i32>"* %0, i32 0, i32 0
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1)
ret void
}
define internal void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*) unnamed_addr personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%1 = alloca { i8*, i32 }
invoke void @"_ZN3arc17Arc$LT$T$GT$.Drop4drop20h1317657346980924594E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(8) %0)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %entry-block
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.457817h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0)
ret void
unwind_custom_: ; preds = %entry-block
%2 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %2, { i8*, i32 }* %1
br label %clean_custom_
resume: ; preds = %clean_custom_
%3 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %3
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.457817h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0)
br label %resume
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN3arc17Arc$LT$T$GT$.Drop4drop20h1317657346980924594E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%thin = alloca {}*
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**
%1 = alloca i64
%2 = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%auto_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%3 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref to i8*
call void @llvm.memset.p0i8.i64(i8* %3, i8 29, i64 8, i32 8, i1 false)
store %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8
%4 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1
%5 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %4, i32 0, i32 0
%6 = call dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref21h11781260250671347003E"(%"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8) %5)
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %6, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8
%7 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8, !nonnull !1
%8 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %7, align 8
%9 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %8 to {}*
store {}* %9, {}** %thin, align 8
%10 = load {}*, {}** %thin, align 8
%11 = ptrtoint {}* %10 to i64
%12 = icmp eq i64 %11, 2097865012304223517
br i1 %12, label %then-block-122-, label %next-block
then-block-122-: ; preds = %entry-block
br label %clean_ast_105_
clean_ast_105_: ; preds = %clean_ast_105_1, %then-block-122-
br label %return
next-block: ; preds = %entry-block
%13 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1
%14 = call dereferenceable(48) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h16251209249348122152E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %13)
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %14, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %2, align 8
%15 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %2, align 8, !nonnull !1
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %15, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8
%16 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8, !nonnull !1
%17 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %16, i32 0, i32 0
%18 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_sub20h8772de3cc84a5649T1KE(%"2.core::sync::atomic::AtomicUsize"* dereferenceable(8) %17, i64 1, i8 1)
store i64 %18, i64* %1, align 8
%19 = load i64, i64* %1, align 8
%20 = icmp ne i64 %19, 1
br i1 %20, label %then-block-135-, label %next-block2
then-block-135-: ; preds = %next-block
br label %clean_ast_105_1
clean_ast_105_1: ; preds = %then-block-135-
br label %clean_ast_105_
next-block2: ; preds = %next-block
call void @_ZN4sync6atomic5fence20hfb767f14e632fab6sdLE(i8 2)
%21 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1
call void @"_ZN3arc12Arc$LT$T$GT$9drop_slow21h17142707471852181233E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(8) %21)
br label %return
return: ; preds = %next-block2, %clean_ast_105_
ret void
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref21h11781260250671347003E"(%"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"*
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**
store %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %0, %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"** %self, align 8
%1 = load %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"*, %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %1, i32 0, i32 0
%3 = call dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref20h8515728795812639633E"(%"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8) %2)
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %3, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8
%4 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8, !nonnull !1
ret %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %4
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref20h8515728795812639633E"(%"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"*
%inner = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**
store %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %0, %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"** %self, align 8
%1 = load %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"*, %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %1, i32 0, i32 0
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %2, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %inner
%3 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %inner, align 8, !nonnull !1
ret %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %3
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(48) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h16251209249348122152E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**
store %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8
%1 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1, i32 0, i32 0
%3 = call dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref21h11781260250671347003E"(%"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8) %2)
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %3, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8
%4 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8, !nonnull !1
%5 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %4, align 8
ret %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %5
}
; Function Attrs: noinline uwtable
define internal void @"_ZN3arc12Arc$LT$T$GT$9drop_slow21h17142707471852181233E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(8)) unnamed_addr #5 {
entry-block:
%self = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%ptr = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**
%1 = alloca i64
%2 = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%auto_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%3 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref to i8*
call void @llvm.memset.p0i8.i64(i8* %3, i8 29, i64 8, i32 8, i1 false)
%4 = alloca i64
%5 = alloca i64
store %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8
%6 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1
%7 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %6, i32 0, i32 0
%8 = call dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref21h11781260250671347003E"(%"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8) %7)
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %8, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8
%9 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8, !nonnull !1
%10 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %9, align 8
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %10, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8
%11 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8
%12 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %11, i32 0, i32 2
call void @"_ZN167core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$9drop.456417hd7350c3333b81328E"(%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %12)
%13 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1
%14 = call dereferenceable(48) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h16251209249348122152E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %13)
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %14, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %2, align 8
%15 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %2, align 8, !nonnull !1
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %15, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8
%16 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8, !nonnull !1
%17 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %16, i32 0, i32 1
%18 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_sub20h8772de3cc84a5649T1KE(%"2.core::sync::atomic::AtomicUsize"* dereferenceable(8) %17, i64 1, i8 1)
store i64 %18, i64* %1, align 8
%19 = load i64, i64* %1, align 8
%20 = icmp eq i64 %19, 1
br i1 %20, label %then-block-502-, label %next-block
then-block-502-: ; preds = %entry-block
call void @_ZN4sync6atomic5fence20hfb767f14e632fab6sdLE(i8 2)
%21 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8
%22 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %21 to i8*
%23 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8
%24 = call i64 @_ZN3mem11size_of_val21h11933358947903493358E(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(48) %23)
store i64 %24, i64* %4, align 8
%25 = load i64, i64* %4, align 8
%26 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8
%27 = call i64 @_ZN3mem12align_of_val21h12711680832418996519E(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(48) %26)
store i64 %27, i64* %5, align 8
%28 = load i64, i64* %5, align 8
call void @_ZN4heap10deallocate20hb6b00bc54f0213287eaE(i8* %22, i64 %25, i64 %28)
br label %next-block
next-block: ; preds = %entry-block, %then-block-502-
ret void
}
define internal void @"_ZN167core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$9drop.456417hd7350c3333b81328E"(%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>", %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %0, i32 0, i32 0
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.456717he26f16b5b60edca1E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %1)
ret void
}
define internal void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.456717he26f16b5b60edca1E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>", %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %0, i32 0, i32 0
%2 = load i64, i64* %1
switch i64 %2, label %enum-iter-ret-void [
i64 0, label %enum-iter-variant-0
i64 1, label %enum-iter-variant-1
]
enum-iter-ret-void: ; preds = %entry-block
ret void
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0
ret void
enum-iter-variant-0: ; preds = %entry-block
br label %enum-iter-next
enum-iter-variant-1: ; preds = %entry-block
%3 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %0 to { i64, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }*
%4 = getelementptr inbounds { i64, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }, { i64, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }* %3, i32 0, i32 1
call void @"_ZN109core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.457017h65983c191404b38bE"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %4)
br label %enum-iter-next
}
define internal void @"_ZN109core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.457017h65983c191404b38bE"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>", %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0
%2 = load i8, i8* %1
switch i8 %2, label %enum-iter-ret-void [
i8 0, label %enum-iter-variant-0
i8 1, label %enum-iter-variant-1
]
enum-iter-ret-void: ; preds = %entry-block
ret void
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0
ret void
enum-iter-variant-0: ; preds = %entry-block
%3 = bitcast %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, i32 }*
%4 = getelementptr inbounds { i8, i32 }, { i8, i32 }* %3, i32 0, i32 1
br label %enum-iter-next
enum-iter-variant-1: ; preds = %entry-block
%5 = bitcast %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, { i8*, void (i8*)** } }*
%6 = getelementptr inbounds { i8, { i8*, void (i8*)** } }, { i8, { i8*, void (i8*)** } }* %5, i32 0, i32 1
call void @"_ZN70Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$9drop.457317hf1dc3785f4cd9f40E"({ i8*, void (i8*)** }* %6)
br label %enum-iter-next
}
define internal void @"_ZN70Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$9drop.457317hf1dc3785f4cd9f40E"({ i8*, void (i8*)** }*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 0
%2 = load i8*, i8** %1
%3 = ptrtoint i8* %2 to i64
%4 = icmp ne i64 %3, 2097865012304223517
br i1 %4, label %cond, label %next
next: ; preds = %next1, %entry-block
ret void
cond: ; preds = %entry-block
call void @"_ZN59core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static9drop.457617h048d40956cb2c5a6E"({ i8*, void (i8*)** }* %0)
%5 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 1
%6 = load void (i8*)**, void (i8*)*** %5
%7 = bitcast void (i8*)** %6 to i64*
%8 = getelementptr inbounds i64, i64* %7, i32 1
%9 = getelementptr inbounds i64, i64* %7, i32 2
%10 = load i64, i64* %8
%11 = load i64, i64* %9
%12 = icmp ne i64 %10, 0
br i1 %12, label %cond2, label %next1
next1: ; preds = %cond2, %cond
br label %next
cond2: ; preds = %cond
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %2, i64 %10, i64 %11)
br label %next1
}
define internal void @"_ZN59core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static9drop.457617h048d40956cb2c5a6E"({ i8*, void (i8*)** }*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 0
%2 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 1
%3 = load void (i8*)**, void (i8*)*** %2
%4 = load void (i8*)*, void (i8*)** %3
%5 = load i8*, i8** %1
call void %4(i8* %5)
ret void
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN3mem11size_of_val21h11933358947903493358E(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(48)) unnamed_addr #1 {
entry-block:
%val = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %val, align 8
%1 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %val, align 8, !nonnull !1
ret i64 48
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN3mem12align_of_val21h12711680832418996519E(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(48)) unnamed_addr #1 {
entry-block:
%val = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %val, align 8
%1 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %val, align 8, !nonnull !1
ret i64 8
}
define internal void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.457817h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, i32 0, i32 0
ret void
}
; Function Attrs: cold noinline noreturn uwtable
define internal void @_ZN6result13unwrap_failed19h760605379628351383E(i8* noalias nonnull readonly, i64, %"1.std::io::error::Error"* noalias nocapture dereferenceable(16) %error) unnamed_addr #7 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%msg = alloca %str_slice
%2 = alloca %"2.core::fmt::Arguments"
%3 = alloca { %str_slice*, i64 }
%4 = alloca [2 x %"2.core::fmt::ArgumentV1"]
%5 = alloca { %str_slice*, %"1.std::io::error::Error"* }
%__llmatch = alloca %str_slice**
%__arg0 = alloca %str_slice*
%__llmatch1 = alloca %"1.std::io::error::Error"**
%__arg1 = alloca %"1.std::io::error::Error"*
%6 = alloca { i8*, i32 }
%__coerce_target = alloca { %"2.core::fmt::ArgumentV1"*, i64 }
%7 = getelementptr inbounds %str_slice, %str_slice* %msg, i32 0, i32 0
store i8* %0, i8** %7
%8 = getelementptr inbounds %str_slice, %str_slice* %msg, i32 0, i32 1
store i64 %1, i64* %8
%9 = bitcast { %str_slice*, i64 }* %3 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* bitcast ({ %str_slice*, i64 }* @_ZN6result13unwrap_failed15__STATIC_FMTSTR20hf92ae00c19516543Q5OE to i8*), i64 16, i32 8, i1 false)
%10 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %3, i32 0, i32 0
%11 = load %str_slice*, %str_slice** %10
%12 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %3, i32 0, i32 1
%13 = load i64, i64* %12
%14 = getelementptr inbounds { %str_slice*, %"1.std::io::error::Error"* }, { %str_slice*, %"1.std::io::error::Error"* }* %5, i32 0, i32 0
store %str_slice* %msg, %str_slice** %14, align 8
%15 = getelementptr inbounds { %str_slice*, %"1.std::io::error::Error"* }, { %str_slice*, %"1.std::io::error::Error"* }* %5, i32 0, i32 1
store %"1.std::io::error::Error"* %error, %"1.std::io::error::Error"** %15, align 8
%16 = getelementptr inbounds { %str_slice*, %"1.std::io::error::Error"* }, { %str_slice*, %"1.std::io::error::Error"* }* %5, i32 0, i32 0
%17 = getelementptr inbounds { %str_slice*, %"1.std::io::error::Error"* }, { %str_slice*, %"1.std::io::error::Error"* }* %5, i32 0, i32 1
store %"1.std::io::error::Error"** %17, %"1.std::io::error::Error"*** %__llmatch1
store %str_slice** %16, %str_slice*** %__llmatch
br label %case_body
case_body: ; preds = %entry-block
%18 = load %"1.std::io::error::Error"**, %"1.std::io::error::Error"*** %__llmatch1
%19 = load %"1.std::io::error::Error"*, %"1.std::io::error::Error"** %18, align 8, !nonnull !1
store %"1.std::io::error::Error"* %19, %"1.std::io::error::Error"** %__arg1, align 8
%20 = load %str_slice**, %str_slice*** %__llmatch
%21 = load %str_slice*, %str_slice** %20, align 8, !nonnull !1
store %str_slice* %21, %str_slice** %__arg0, align 8
%22 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %4, i32 0, i32 0
%23 = getelementptr inbounds %"2.core::fmt::ArgumentV1", %"2.core::fmt::ArgumentV1"* %22, i32 0
%24 = load %str_slice*, %str_slice** %__arg0, align 8, !nonnull !1
invoke void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new20h2690282967059376933E"(%"2.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16) %23, %str_slice* noalias readonly dereferenceable(16) %24, i8 (%str_slice*, %"2.core::fmt::Formatter"*)* @"_ZN3fmt25_$RF$$u27$a$u20$T.Display3fmt21h14280652299265841549E")
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %case_body
%25 = getelementptr inbounds %"2.core::fmt::ArgumentV1", %"2.core::fmt::ArgumentV1"* %22, i32 1
%26 = load %"1.std::io::error::Error"*, %"1.std::io::error::Error"** %__arg1, align 8, !nonnull !1
invoke void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new20h3917174831126248797E"(%"2.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16) %25, %"1.std::io::error::Error"* noalias readonly dereferenceable(16) %26, i8 (%"1.std::io::error::Error"*, %"2.core::fmt::Formatter"*)* @_ZN2io5error24Error...core..fmt..Debug3fmt20h8da91e579551ef4dmhgE)
to label %normal-return2 unwind label %unwind_custom_
unwind_custom_: ; preds = %normal-return3, %join, %normal-return, %case_body
%27 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %27, { i8*, i32 }* %6
br label %clean_custom_
resume: ; preds = %clean_custom_
%28 = load { i8*, i32 }, { i8*, i32 }* %6
resume { i8*, i32 } %28
clean_custom_: ; preds = %unwind_custom_
call void @_ZN21std..io..error..Error9drop.459117h0f4948ead3fac74eE(%"1.std::io::error::Error"* %error)
br label %resume
normal-return2: ; preds = %normal-return
br label %join
join: ; preds = %normal-return2
%29 = bitcast [2 x %"2.core::fmt::ArgumentV1"]* %4 to %"2.core::fmt::ArgumentV1"*
%30 = getelementptr inbounds { %"2.core::fmt::ArgumentV1"*, i64 }, { %"2.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0
store %"2.core::fmt::ArgumentV1"* %29, %"2.core::fmt::ArgumentV1"** %30
%31 = getelementptr inbounds { %"2.core::fmt::ArgumentV1"*, i64 }, { %"2.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1
store i64 2, i64* %31
%32 = getelementptr inbounds { %"2.core::fmt::ArgumentV1"*, i64 }, { %"2.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0
%33 = load %"2.core::fmt::ArgumentV1"*, %"2.core::fmt::ArgumentV1"** %32
%34 = getelementptr inbounds { %"2.core::fmt::ArgumentV1"*, i64 }, { %"2.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1
%35 = load i64, i64* %34
invoke void @"_ZN3fmt23Arguments$LT$$u27$a$GT$6new_v120he832f0357fe73cd4nLWE"(%"2.core::fmt::Arguments"* noalias nocapture sret dereferenceable(48) %2, %str_slice* noalias nonnull readonly %11, i64 %13, %"2.core::fmt::ArgumentV1"* noalias nonnull readonly %33, i64 %35)
to label %normal-return3 unwind label %unwind_custom_
normal-return3: ; preds = %join
invoke void @_ZN9panicking9panic_fmt20hd3ab350bce4886e96YLE(%"2.core::fmt::Arguments"* noalias nocapture dereferenceable(48) %2, { %str_slice, i32 }* noalias readonly dereferenceable(24) @_ZN6result13unwrap_failed10_FILE_LINE20h4a56c969ed2d4d85A5OE)
to label %normal-return4 unwind label %unwind_custom_
normal-return4: ; preds = %normal-return3
unreachable
}
; Function Attrs: cold noinline noreturn
declare void @_ZN9panicking9panic_fmt20hd3ab350bce4886e96YLE(%"2.core::fmt::Arguments"* noalias nocapture dereferenceable(48), { %str_slice, i32 }* noalias readonly dereferenceable(24)) unnamed_addr #4
; Function Attrs: inlinehint uwtable
define internal void @"_ZN3fmt23Arguments$LT$$u27$a$GT$6new_v120he832f0357fe73cd4nLWE"(%"2.core::fmt::Arguments"* noalias nocapture sret dereferenceable(48), %str_slice* noalias nonnull readonly, i64, %"2.core::fmt::ArgumentV1"* noalias nonnull readonly, i64) unnamed_addr #1 {
entry-block:
%pieces = alloca { %str_slice*, i64 }
%args = alloca { %"2.core::fmt::ArgumentV1"*, i64 }
%5 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %pieces, i32 0, i32 0
store %str_slice* %1, %str_slice** %5
%6 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %pieces, i32 0, i32 1
store i64 %2, i64* %6
%7 = getelementptr inbounds { %"2.core::fmt::ArgumentV1"*, i64 }, { %"2.core::fmt::ArgumentV1"*, i64 }* %args, i32 0, i32 0
store %"2.core::fmt::ArgumentV1"* %3, %"2.core::fmt::ArgumentV1"** %7
%8 = getelementptr inbounds { %"2.core::fmt::ArgumentV1"*, i64 }, { %"2.core::fmt::ArgumentV1"*, i64 }* %args, i32 0, i32 1
store i64 %4, i64* %8
%9 = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %0, i32 0, i32 0
%10 = bitcast { %str_slice*, i64 }* %pieces to i8*
%11 = bitcast { %str_slice*, i64 }* %9 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %11, i8* %10, i64 16, i32 8, i1 false)
%12 = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %0, i32 0, i32 1
%13 = bitcast %"2.core::option::Option<&'static [core::fmt::rt::v1::Argument]>"* %12 to { { i8*, i8* } }*
%14 = bitcast { { i8*, i8* } }* %13 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %14, i8* bitcast ({ { i8*, i8* } }* @const4585 to i8*), i64 16, i32 8, i1 false)
%15 = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %0, i32 0, i32 2
%16 = bitcast { %"2.core::fmt::ArgumentV1"*, i64 }* %args to i8*
%17 = bitcast { %"2.core::fmt::ArgumentV1"*, i64 }* %15 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %17, i8* %16, i64 16, i32 8, i1 false)
ret void
}
; Function Attrs: uwtable
define internal void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new20h2690282967059376933E"(%"2.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16), %str_slice* noalias readonly dereferenceable(16), i8 (%str_slice*, %"2.core::fmt::Formatter"*)*) unnamed_addr #0 {
entry-block:
%x = alloca %str_slice*
%f = alloca i8 (%str_slice*, %"2.core::fmt::Formatter"*)*
store %str_slice* %1, %str_slice** %x, align 8
store i8 (%str_slice*, %"2.core::fmt::Formatter"*)* %2, i8 (%str_slice*, %"2.core::fmt::Formatter"*)** %f, align 8
%3 = getelementptr inbounds %"2.core::fmt::ArgumentV1", %"2.core::fmt::ArgumentV1"* %0, i32 0, i32 1
%4 = load i8 (%str_slice*, %"2.core::fmt::Formatter"*)*, i8 (%str_slice*, %"2.core::fmt::Formatter"*)** %f, align 8
%5 = bitcast i8 (%str_slice*, %"2.core::fmt::Formatter"*)* %4 to i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)*
store i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* %5, i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)** %3
%6 = getelementptr inbounds %"2.core::fmt::ArgumentV1", %"2.core::fmt::ArgumentV1"* %0, i32 0, i32 0
%7 = load %str_slice*, %str_slice** %x, align 8, !nonnull !1
%8 = bitcast %str_slice* %7 to %"2.core::fmt::Void"*
store %"2.core::fmt::Void"* %8, %"2.core::fmt::Void"** %6
ret void
}
; Function Attrs: uwtable
define internal i8 @"_ZN3fmt25_$RF$$u27$a$u20$T.Display3fmt21h14280652299265841549E"(%str_slice* noalias readonly dereferenceable(16), %"2.core::fmt::Formatter"* dereferenceable(96)) unnamed_addr #0 {
entry-block:
%sret_slot = alloca %"2.core::result::Result<(), core::fmt::Error>"
%self = alloca %str_slice*
%f = alloca %"2.core::fmt::Formatter"*
store %str_slice* %0, %str_slice** %self, align 8
store %"2.core::fmt::Formatter"* %1, %"2.core::fmt::Formatter"** %f, align 8
%2 = load %str_slice*, %str_slice** %self, align 8, !nonnull !1
%3 = getelementptr inbounds %str_slice, %str_slice* %2, i32 0, i32 0
%4 = load i8*, i8** %3
%5 = getelementptr inbounds %str_slice, %str_slice* %2, i32 0, i32 1
%6 = load i64, i64* %5
%7 = load %"2.core::fmt::Formatter"*, %"2.core::fmt::Formatter"** %f, align 8, !nonnull !1
%8 = call i8 @_ZN3fmt11str.Display3fmt20heb4a20d360344d3ePoXE(i8* noalias nonnull readonly %4, i64 %6, %"2.core::fmt::Formatter"* dereferenceable(96) %7)
%9 = bitcast %"2.core::result::Result<(), core::fmt::Error>"* %sret_slot to i8*
store i8 %8, i8* %9, align 1
%10 = bitcast %"2.core::result::Result<(), core::fmt::Error>"* %sret_slot to i8*
%11 = load i8, i8* %10, align 1
ret i8 %11
}
declare i8 @_ZN3fmt11str.Display3fmt20heb4a20d360344d3ePoXE(i8* noalias nonnull readonly, i64, %"2.core::fmt::Formatter"* dereferenceable(96)) unnamed_addr
define internal void @_ZN21std..io..error..Error9drop.459117h0f4948ead3fac74eE(%"1.std::io::error::Error"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"1.std::io::error::Error", %"1.std::io::error::Error"* %0, i32 0, i32 0
call void @_ZN20std..io..error..Repr9drop.459417h73d67303828b8f3aE(%"1.std::io::error::Repr"* %1)
ret void
}
define internal void @_ZN20std..io..error..Repr9drop.459417h73d67303828b8f3aE(%"1.std::io::error::Repr"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"1.std::io::error::Repr", %"1.std::io::error::Repr"* %0, i32 0, i32 0
%2 = load i8, i8* %1
switch i8 %2, label %enum-iter-ret-void [
i8 0, label %enum-iter-variant-0
i8 1, label %enum-iter-variant-1
]
enum-iter-ret-void: ; preds = %entry-block
ret void
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0
ret void
enum-iter-variant-0: ; preds = %entry-block
%3 = bitcast %"1.std::io::error::Repr"* %0 to { i8, i32 }*
%4 = getelementptr inbounds { i8, i32 }, { i8, i32 }* %3, i32 0, i32 1
br label %enum-iter-next
enum-iter-variant-1: ; preds = %entry-block
%5 = bitcast %"1.std::io::error::Repr"* %0 to { i8, %"1.std::io::error::Custom"* }*
%6 = getelementptr inbounds { i8, %"1.std::io::error::Custom"* }, { i8, %"1.std::io::error::Custom"* }* %5, i32 0, i32 1
call void @"_ZN33Box$LT$std..io..error..Custom$GT$9drop.459717h4513d094efaf7431E"(%"1.std::io::error::Custom"** %6)
br label %enum-iter-next
}
define internal void @"_ZN33Box$LT$std..io..error..Custom$GT$9drop.459717h4513d094efaf7431E"(%"1.std::io::error::Custom"**) unnamed_addr {
entry-block:
%1 = load %"1.std::io::error::Custom"*, %"1.std::io::error::Custom"** %0
%2 = ptrtoint %"1.std::io::error::Custom"* %1 to i64
%3 = icmp ne i64 %2, 2097865012304223517
br i1 %3, label %cond, label %next
next: ; preds = %cond, %entry-block
ret void
cond: ; preds = %entry-block
call void @_ZN22std..io..error..Custom9drop.460017h6dc269a32ef32b81E(%"1.std::io::error::Custom"* %1)
%4 = bitcast %"1.std::io::error::Custom"* %1 to i8*
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %4, i64 24, i64 8)
br label %next
}
define internal void @_ZN22std..io..error..Custom9drop.460017h6dc269a32ef32b81E(%"1.std::io::error::Custom"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"1.std::io::error::Custom", %"1.std::io::error::Custom"* %0, i32 0, i32 0
%2 = getelementptr inbounds %"1.std::io::error::Custom", %"1.std::io::error::Custom"* %0, i32 0, i32 1
call void @"_ZN92Box$LT$std..error..Error$u20$$u2b$$u20$Send$u20$$u2b$$u20$Sync$u20$$u2b$$u20$$u27$static$GT$9drop.460317h1624c30c1d24f008E"({ i8*, void (i8*)** }* %2)
ret void
}
define internal void @"_ZN92Box$LT$std..error..Error$u20$$u2b$$u20$Send$u20$$u2b$$u20$Sync$u20$$u2b$$u20$$u27$static$GT$9drop.460317h1624c30c1d24f008E"({ i8*, void (i8*)** }*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 0
%2 = load i8*, i8** %1
%3 = ptrtoint i8* %2 to i64
%4 = icmp ne i64 %3, 2097865012304223517
br i1 %4, label %cond, label %next
next: ; preds = %next1, %entry-block
ret void
cond: ; preds = %entry-block
call void @"_ZN81std..error..Error$u20$$u2b$$u20$Send$u20$$u2b$$u20$Sync$u20$$u2b$$u20$$u27$static9drop.460617hca1bd1bcadc0d2e4E"({ i8*, void (i8*)** }* %0)
%5 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 1
%6 = load void (i8*)**, void (i8*)*** %5
%7 = bitcast void (i8*)** %6 to i64*
%8 = getelementptr inbounds i64, i64* %7, i32 1
%9 = getelementptr inbounds i64, i64* %7, i32 2
%10 = load i64, i64* %8
%11 = load i64, i64* %9
%12 = icmp ne i64 %10, 0
br i1 %12, label %cond2, label %next1
next1: ; preds = %cond2, %cond
br label %next
cond2: ; preds = %cond
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %2, i64 %10, i64 %11)
br label %next1
}
define internal void @"_ZN81std..error..Error$u20$$u2b$$u20$Send$u20$$u2b$$u20$Sync$u20$$u2b$$u20$$u27$static9drop.460617hca1bd1bcadc0d2e4E"({ i8*, void (i8*)** }*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 0
%2 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 1
%3 = load void (i8*)**, void (i8*)*** %2
%4 = load void (i8*)*, void (i8*)** %3
%5 = load i8*, i8** %1
call void %4(i8* %5)
ret void
}
; Function Attrs: uwtable
define internal void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new20h3917174831126248797E"(%"2.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16), %"1.std::io::error::Error"* noalias readonly dereferenceable(16), i8 (%"1.std::io::error::Error"*, %"2.core::fmt::Formatter"*)*) unnamed_addr #0 {
entry-block:
%x = alloca %"1.std::io::error::Error"*
%f = alloca i8 (%"1.std::io::error::Error"*, %"2.core::fmt::Formatter"*)*
store %"1.std::io::error::Error"* %1, %"1.std::io::error::Error"** %x, align 8
store i8 (%"1.std::io::error::Error"*, %"2.core::fmt::Formatter"*)* %2, i8 (%"1.std::io::error::Error"*, %"2.core::fmt::Formatter"*)** %f, align 8
%3 = getelementptr inbounds %"2.core::fmt::ArgumentV1", %"2.core::fmt::ArgumentV1"* %0, i32 0, i32 1
%4 = load i8 (%"1.std::io::error::Error"*, %"2.core::fmt::Formatter"*)*, i8 (%"1.std::io::error::Error"*, %"2.core::fmt::Formatter"*)** %f, align 8
%5 = bitcast i8 (%"1.std::io::error::Error"*, %"2.core::fmt::Formatter"*)* %4 to i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)*
store i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* %5, i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)** %3
%6 = getelementptr inbounds %"2.core::fmt::ArgumentV1", %"2.core::fmt::ArgumentV1"* %0, i32 0, i32 0
%7 = load %"1.std::io::error::Error"*, %"1.std::io::error::Error"** %x, align 8, !nonnull !1
%8 = bitcast %"1.std::io::error::Error"* %7 to %"2.core::fmt::Void"*
store %"2.core::fmt::Void"* %8, %"2.core::fmt::Void"** %6
ret void
}
declare i8 @_ZN2io5error24Error...core..fmt..Debug3fmt20h8da91e579551ef4dmhgE(%"1.std::io::error::Error"* noalias readonly dereferenceable(16), %"2.core::fmt::Formatter"* dereferenceable(96)) unnamed_addr
define internal void @"_ZN91core..result..Result$LT$std..thread..JoinHandle$LT$i32$GT$$C$$u20$std..io..error..Error$GT$9drop.461317h34cf5398cb2bde0fE"(%"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>", %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %0, i32 0, i32 0
%2 = load i64, i64* %1
switch i64 %2, label %enum-iter-ret-void [
i64 0, label %enum-iter-variant-0
i64 1, label %enum-iter-variant-1
]
enum-iter-ret-void: ; preds = %entry-block
ret void
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0
ret void
enum-iter-variant-0: ; preds = %entry-block
%3 = bitcast %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %0 to { i64, %"1.std::thread::JoinHandle<i32>" }*
%4 = getelementptr inbounds { i64, %"1.std::thread::JoinHandle<i32>" }, { i64, %"1.std::thread::JoinHandle<i32>" }* %3, i32 0, i32 1
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.419017h4035594c4205a9a2E"(%"1.std::thread::JoinHandle<i32>"* %4)
br label %enum-iter-next
enum-iter-variant-1: ; preds = %entry-block
%5 = bitcast %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %0 to { i64, %"1.std::io::error::Error" }*
%6 = getelementptr inbounds { i64, %"1.std::io::error::Error" }, { i64, %"1.std::io::error::Error" }* %5, i32 0, i32 1
call void @_ZN21std..io..error..Error9drop.459117h0f4948ead3fac74eE(%"1.std::io::error::Error"* %6)
br label %enum-iter-next
}
; Function Attrs: uwtable
define internal void @_ZN6thread7Builder5spawn21h11032278164270506546E(%"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* noalias nocapture sret dereferenceable(48), %"1.std::thread::Builder"* noalias nocapture dereferenceable(40) %self, %closure) unnamed_addr #0 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%2 = alloca { i8*, i32 }
%llretslotptr = alloca %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"*
store %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %0, %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"** %llretslotptr
%f = alloca %closure
%iret_slot = alloca %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"
%name = alloca %"2.core::option::Option<collections::string::String>"
%stack_size = alloca %"2.core::option::Option<usize>"
%stack_size1 = alloca i64
%arg = alloca %"2.core::option::Option<usize>"
%3 = alloca i64
%4 = alloca { i8*, i32 }
%my_thread = alloca %"1.std::thread::Thread"
%arg3 = alloca %"2.core::option::Option<collections::string::String>"
%their_thread = alloca %"1.std::thread::Thread"
%my_packet = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"
%const = alloca %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"
%their_packet = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"
%main = alloca %closure.0
%5 = alloca %"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"
%6 = alloca %closure.0*
%arg16 = alloca %closure.0
%__coerce_target = alloca { i8*, void (i8*)** }
%val = alloca %"1.std::sys::thread::Thread"*
%err = alloca %"1.std::io::error::Error"*
%ret_slot = alloca %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"
%arg23 = alloca %"1.std::io::error::Error"
%7 = getelementptr inbounds %"1.std::thread::Builder", %"1.std::thread::Builder"* %self, i32 0, i32 0
%8 = bitcast %"2.core::option::Option<collections::string::String>"* %7 to i8*
%9 = bitcast %"2.core::option::Option<collections::string::String>"* %name to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* %8, i64 24, i32 8, i1 false)
%10 = bitcast %"2.core::option::Option<collections::string::String>"* %7 to i8*
call void @llvm.memset.p0i8.i64(i8* %10, i8 29, i64 24, i32 8, i1 false)
%11 = getelementptr inbounds %"1.std::thread::Builder", %"1.std::thread::Builder"* %self, i32 0, i32 1
%12 = bitcast %"2.core::option::Option<usize>"* %11 to i8*
%13 = bitcast %"2.core::option::Option<usize>"* %stack_size to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %13, i8* %12, i64 16, i32 8, i1 false)
%14 = bitcast %"2.core::option::Option<usize>"* %stack_size to i8*
%15 = bitcast %"2.core::option::Option<usize>"* %arg to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %15, i8* %14, i64 16, i32 8, i1 false)
%16 = invoke i64 @_ZN10sys_common4util9min_stack20hb69ce365a8db0869qmtE()
to label %normal-return unwind label %unwind_ast_9151_
normal-return: ; preds = %entry-block
store i64 %16, i64* %3, align 8
%17 = load i64, i64* %3, align 8
%18 = invoke i64 @"_ZN6option15Option$LT$T$GT$9unwrap_or21h13140009158740892166E"(%"2.core::option::Option<usize>"* noalias nocapture dereferenceable(16) %arg, i64 %17)
to label %normal-return2 unwind label %unwind_ast_9151_
unwind_ast_9151_: ; preds = %normal-return, %entry-block
%19 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %19, { i8*, i32 }* %4
br label %clean_ast_9151_
resume: ; preds = %clean_custom_
%20 = load { i8*, i32 }, { i8*, i32 }* %4
resume { i8*, i32 } %20
clean_custom_: ; preds = %clean_ast_9151_
call void @_ZN20std..thread..Builder9drop.463317h032ab18fd448ef39E(%"1.std::thread::Builder"* %self)
br label %resume
clean_ast_9151_: ; preds = %clean_ast_9151_6, %unwind_ast_9151_
call void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.430617h195c25966ed6cdf5E"(%"2.core::option::Option<collections::string::String>"* %name)
br label %clean_custom_
normal-return2: ; preds = %normal-return
store i64 %18, i64* %stack_size1, align 8
%21 = bitcast %"2.core::option::Option<collections::string::String>"* %name to i8*
%22 = bitcast %"2.core::option::Option<collections::string::String>"* %arg3 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %22, i8* %21, i64 24, i32 8, i1 false)
%23 = bitcast %"2.core::option::Option<collections::string::String>"* %name to i8*
call void @llvm.memset.p0i8.i64(i8* %23, i8 29, i64 24, i32 8, i1 false)
%24 = invoke i64 @_ZN6thread6Thread3new20h0619f76e80de11bfNGbE(%"2.core::option::Option<collections::string::String>"* noalias nocapture dereferenceable(24) %arg3)
to label %normal-return4 unwind label %unwind_ast_9151_5
normal-return4: ; preds = %normal-return2
%25 = bitcast %"1.std::thread::Thread"* %my_thread to i64*
store i64 %24, i64* %25, align 8
%26 = invoke i64 @_ZN6thread27Thread...core..clone..Clone5clone20ha0faf72a4ee13167qGbE(%"1.std::thread::Thread"* noalias readonly dereferenceable(8) %my_thread)
to label %normal-return7 unwind label %unwind_ast_9151_8
unwind_ast_9151_5: ; preds = %normal-return2
%27 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %27, { i8*, i32 }* %4
br label %clean_ast_9151_6
clean_ast_9151_6: ; preds = %clean_ast_9151_9, %unwind_ast_9151_5
br label %clean_ast_9151_
normal-return7: ; preds = %normal-return4
%28 = bitcast %"1.std::thread::Thread"* %their_thread to i64*
store i64 %26, i64* %28, align 8
%29 = bitcast %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %const to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %29, i8* bitcast ({ { i64, [24 x i8] } }* @const4710 to i8*), i64 32, i32 8, i1 false)
%30 = invoke i64 @"_ZN3arc12Arc$LT$T$GT$3new21h12253150629752299668E"(%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* noalias nocapture dereferenceable(32) %const)
to label %normal-return10 unwind label %unwind_ast_9151_11
unwind_ast_9151_8: ; preds = %normal-return4
%31 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %31, { i8*, i32 }* %4
br label %clean_ast_9151_9
clean_ast_9151_9: ; preds = %clean_ast_9151_12, %unwind_ast_9151_8
call void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"* %my_thread)
br label %clean_ast_9151_6
normal-return10: ; preds = %normal-return7
%32 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet to i64*
store i64 %30, i64* %32, align 8
%33 = invoke i64 @"_ZN3arc18Arc$LT$T$GT$.Clone5clone21h16193723465726072285E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %my_packet)
to label %normal-return13 unwind label %unwind_ast_9151_14
unwind_ast_9151_11: ; preds = %normal-return7
%34 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %34, { i8*, i32 }* %4
br label %clean_ast_9151_12
clean_ast_9151_12: ; preds = %clean_ast_9151_15, %unwind_ast_9151_11
call void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"* %their_thread)
br label %clean_ast_9151_9
normal-return13: ; preds = %normal-return10
%35 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet to i64*
store i64 %33, i64* %35, align 8
%36 = getelementptr inbounds %closure.0, %closure.0* %main, i32 0, i32 0
%37 = bitcast %"1.std::thread::Thread"* %their_thread to i8*
%38 = bitcast %"1.std::thread::Thread"* %36 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %38, i8* %37, i64 8, i32 8, i1 false)
%39 = bitcast %"1.std::thread::Thread"* %their_thread to i8*
call void @llvm.memset.p0i8.i64(i8* %39, i8 29, i64 8, i32 8, i1 false)
%40 = getelementptr inbounds %closure.0, %closure.0* %main, i32 0, i32 1
%41 = getelementptr inbounds %closure.0, %closure.0* %main, i32 0, i32 2
%42 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet to i8*
%43 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %41 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %43, i8* %42, i64 8, i32 8, i1 false)
%44 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet to i8*
call void @llvm.memset.p0i8.i64(i8* %44, i8 29, i64 8, i32 8, i1 false)
%45 = bitcast %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %iret_slot to { i64, %"1.std::thread::JoinHandle<i32>" }*
%46 = getelementptr inbounds { i64, %"1.std::thread::JoinHandle<i32>" }, { i64, %"1.std::thread::JoinHandle<i32>" }* %45, i32 0, i32 1
%47 = getelementptr inbounds %"1.std::thread::JoinHandle<i32>", %"1.std::thread::JoinHandle<i32>"* %46, i32 0, i32 0
%48 = getelementptr inbounds %"1.std::thread::JoinInner<i32>", %"1.std::thread::JoinInner<i32>"* %47, i32 0, i32 0
%49 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %48 to { i64, %"1.std::sys::thread::Thread" }*
%50 = getelementptr inbounds { i64, %"1.std::sys::thread::Thread" }, { i64, %"1.std::sys::thread::Thread" }* %49, i32 0, i32 1
%51 = load i64, i64* %stack_size1, align 8
%52 = bitcast %closure.0* %main to i8*
%53 = bitcast %closure.0* %arg16 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %53, i8* %52, i64 16, i32 8, i1 false)
%54 = bitcast %closure.0* %main to i8*
call void @llvm.memset.p0i8.i64(i8* %54, i8 29, i64 16, i32 8, i1 false)
%55 = invoke i8* @_ZN4heap15exchange_malloc20h295535e6fb0e6dd3MfaE(i64 16, i64 8)
to label %normal-return.i unwind label %unwind_custom_.i
normal-return.i: ; preds = %normal-return13
%56 = bitcast i8* %55 to %closure.0*
%57 = bitcast %closure.0* %arg16 to i8*
%58 = bitcast %closure.0* %56 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %58, i8* %57, i64 16, i32 8, i1 false)
%59 = bitcast %closure.0* %arg16 to i8*
call void @llvm.memset.p0i8.i64(i8* %59, i8 29, i64 16, i32 8, i1 false), !alias.scope !7
invoke void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.485217h6242f803e6a3193cE"(%closure.0* %arg16)
to label %"_ZN5boxed12Box$LT$T$GT$3new20h9153685487804326652E.exit" unwind label %unwind_ast_9151_18
unwind_custom_.i: ; preds = %normal-return13
%60 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %60, { i8*, i32 }* %2, !noalias !7
invoke void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.485217h6242f803e6a3193cE"(%closure.0* %arg16)
to label %.noexc31 unwind label %unwind_ast_9151_18
.noexc31: ; preds = %unwind_custom_.i
%61 = load { i8*, i32 }, { i8*, i32 }* %2, !noalias !7
br label %unwind_ast_9151_18.body
"_ZN5boxed12Box$LT$T$GT$3new20h9153685487804326652E.exit": ; preds = %normal-return.i
br label %normal-return17
unwind_ast_9151_14: ; preds = %normal-return10
%62 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %62, { i8*, i32 }* %4
br label %clean_ast_9151_15
clean_ast_9151_15: ; preds = %clean_ast_9151_19, %unwind_ast_9151_14
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet)
br label %clean_ast_9151_12
normal-return17: ; preds = %"_ZN5boxed12Box$LT$T$GT$3new20h9153685487804326652E.exit"
store %closure.0* %56, %closure.0** %6, align 8
%63 = load %closure.0*, %closure.0** %6, align 8, !nonnull !1
%64 = bitcast %closure.0* %63 to i8*
%65 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %__coerce_target, i32 0, i32 0
store i8* %64, i8** %65
%66 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %__coerce_target, i32 0, i32 1
store void (i8*)** bitcast ({ void (%closure.0*)*, i64, i64, void (%closure.0*, {})* }* @vtable4858 to void (i8*)**), void (i8*)*** %66
%67 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %__coerce_target, i32 0, i32 0
%68 = load i8*, i8** %67
%69 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %__coerce_target, i32 0, i32 1
%70 = load void (i8*)**, void (i8*)*** %69
invoke void @_ZN3sys6thread6Thread3new20hfd8e70603581a437rTxE(%"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* noalias nocapture sret dereferenceable(24) %5, i64 %51, i8* noalias nonnull %68, void (i8*)** nonnull %70)
to label %normal-return20 unwind label %unwind_ast_9151_18
unwind_ast_9151_18: ; preds = %unwind_custom_.i, %normal-return.i, %normal-return17
%71 = landingpad { i8*, i32 }
cleanup
br label %unwind_ast_9151_18.body
unwind_ast_9151_18.body: ; preds = %.noexc31, %unwind_ast_9151_18
%eh.lpad-body = phi { i8*, i32 } [ %71, %unwind_ast_9151_18 ], [ %61, %.noexc31 ]
store { i8*, i32 } %eh.lpad-body, { i8*, i32 }* %4
br label %clean_ast_9151_19
clean_ast_9151_19: ; preds = %clean_ast_9151_25, %unwind_ast_9151_18.body
call void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.485217h6242f803e6a3193cE"(%closure.0* %main)
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet)
br label %clean_ast_9151_15
normal-return20: ; preds = %normal-return17
%72 = getelementptr inbounds %"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>", %"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %5, i32 0, i32 0
%73 = load i64, i64* %72, !range !2
switch i64 %73, label %match_else [
i64 0, label %match_case
i64 1, label %match_case22
]
case_body: ; preds = %match_case
%74 = load %"1.std::sys::thread::Thread"*, %"1.std::sys::thread::Thread"** %val
%75 = bitcast %"1.std::sys::thread::Thread"* %74 to i8*
%76 = bitcast %"1.std::sys::thread::Thread"* %50 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %76, i8* %75, i64 16, i32 8, i1 false)
%77 = bitcast %"1.std::sys::thread::Thread"* %74 to i8*
call void @llvm.memset.p0i8.i64(i8* %77, i8 29, i64 16, i32 8, i1 false)
call void @_ZN24std..sys..thread..Thread9drop.419917h5b8cd2efe3ae67d8E(%"1.std::sys::thread::Thread"* %74)
%78 = bitcast %"1.std::sys::thread::Thread"* %74 to i8*
call void @llvm.memset.p0i8.i64(i8* %78, i8 29, i64 16, i32 8, i1 false)
br label %join
case_body21: ; preds = %match_case22
%79 = load %"1.std::io::error::Error"*, %"1.std::io::error::Error"** %err
%80 = bitcast %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %ret_slot to { i64, %"1.std::io::error::Error" }*
%81 = getelementptr inbounds { i64, %"1.std::io::error::Error" }, { i64, %"1.std::io::error::Error" }* %80, i32 0, i32 1
%82 = bitcast %"1.std::io::error::Error"* %79 to i8*
%83 = bitcast %"1.std::io::error::Error"* %arg23 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %83, i8* %82, i64 16, i32 8, i1 false)
%84 = bitcast %"1.std::io::error::Error"* %79 to i8*
call void @llvm.memset.p0i8.i64(i8* %84, i8 29, i64 16, i32 8, i1 false)
invoke void @"_ZN7convert15T.From$LT$T$GT$4from21h12668158018310012419E"(%"1.std::io::error::Error"* noalias nocapture sret dereferenceable(16) %81, %"1.std::io::error::Error"* noalias nocapture dereferenceable(16) %arg23)
to label %normal-return24 unwind label %unwind_custom_
match_else: ; preds = %normal-return20
unreachable
match_case: ; preds = %normal-return20
%85 = bitcast %"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %5 to { i64, %"1.std::sys::thread::Thread" }*
%86 = getelementptr inbounds { i64, %"1.std::sys::thread::Thread" }, { i64, %"1.std::sys::thread::Thread" }* %85, i32 0, i32 1
store %"1.std::sys::thread::Thread"* %86, %"1.std::sys::thread::Thread"** %val
br label %case_body
match_case22: ; preds = %normal-return20
%87 = bitcast %"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %5 to { i64, %"1.std::io::error::Error" }*
%88 = getelementptr inbounds { i64, %"1.std::io::error::Error" }, { i64, %"1.std::io::error::Error" }* %87, i32 0, i32 1
store %"1.std::io::error::Error"* %88, %"1.std::io::error::Error"** %err
br label %case_body21
normal-return24: ; preds = %case_body21
%89 = getelementptr inbounds %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>", %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %ret_slot, i32 0, i32 0
store i64 1, i64* %89
store %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %ret_slot, %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"** %llretslotptr
br label %clean_custom_29
unwind_custom_: ; preds = %case_body21
%90 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %90, { i8*, i32 }* %4
br label %clean_custom_26
clean_ast_9151_25: ; preds = %clean_custom_26
call void @"_ZN81core..result..Result$LT$std..sys..thread..Thread$C$$u20$std..io..error..Error$GT$9drop.486117h1f3bc4c9c9e07abcE"(%"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %5)
br label %clean_ast_9151_19
clean_custom_26: ; preds = %unwind_custom_
call void @_ZN21std..io..error..Error9drop.459117h0f4948ead3fac74eE(%"1.std::io::error::Error"* %79)
%91 = bitcast %"1.std::io::error::Error"* %79 to i8*
call void @llvm.memset.p0i8.i64(i8* %91, i8 29, i64 16, i32 8, i1 false)
br label %clean_ast_9151_25
clean_custom_27: ; preds = %clean_custom_30, %clean_ast_9151_28
call void @_ZN20std..thread..Builder9drop.463317h032ab18fd448ef39E(%"1.std::thread::Builder"* %self)
br label %return
clean_ast_9151_28: ; preds = %clean_custom_29
call void @"_ZN81core..result..Result$LT$std..sys..thread..Thread$C$$u20$std..io..error..Error$GT$9drop.486117h1f3bc4c9c9e07abcE"(%"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %5)
call void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.485217h6242f803e6a3193cE"(%closure.0* %main)
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet)
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet)
call void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"* %their_thread)
call void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"* %my_thread)
call void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.430617h195c25966ed6cdf5E"(%"2.core::option::Option<collections::string::String>"* %name)
br label %clean_custom_27
clean_custom_29: ; preds = %normal-return24
call void @_ZN21std..io..error..Error9drop.459117h0f4948ead3fac74eE(%"1.std::io::error::Error"* %79)
%92 = bitcast %"1.std::io::error::Error"* %79 to i8*
call void @llvm.memset.p0i8.i64(i8* %92, i8 29, i64 16, i32 8, i1 false)
br label %clean_ast_9151_28
join: ; preds = %case_body
%93 = getelementptr inbounds %"2.core::option::Option<std::sys::thread::Thread>", %"2.core::option::Option<std::sys::thread::Thread>"* %48, i32 0, i32 0
store i64 1, i64* %93
%94 = getelementptr inbounds %"1.std::thread::JoinInner<i32>", %"1.std::thread::JoinInner<i32>"* %47, i32 0, i32 1
%95 = bitcast %"1.std::thread::Thread"* %my_thread to i8*
%96 = bitcast %"1.std::thread::Thread"* %94 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %96, i8* %95, i64 8, i32 8, i1 false)
%97 = bitcast %"1.std::thread::Thread"* %my_thread to i8*
call void @llvm.memset.p0i8.i64(i8* %97, i8 29, i64 8, i32 8, i1 false)
%98 = getelementptr inbounds %"1.std::thread::JoinInner<i32>", %"1.std::thread::JoinInner<i32>"* %47, i32 0, i32 2
%99 = getelementptr inbounds %"1.std::thread::Packet<i32>", %"1.std::thread::Packet<i32>"* %98, i32 0, i32 0
%100 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet to i8*
%101 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %99 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %101, i8* %100, i64 8, i32 8, i1 false)
%102 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet to i8*
call void @llvm.memset.p0i8.i64(i8* %102, i8 29, i64 8, i32 8, i1 false)
%103 = getelementptr inbounds %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>", %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %iret_slot, i32 0, i32 0
store i64 0, i64* %103
call void @"_ZN81core..result..Result$LT$std..sys..thread..Thread$C$$u20$std..io..error..Error$GT$9drop.486117h1f3bc4c9c9e07abcE"(%"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %5)
call void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.485217h6242f803e6a3193cE"(%closure.0* %main)
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet)
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet)
call void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"* %their_thread)
call void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"* %my_thread)
call void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.430617h195c25966ed6cdf5E"(%"2.core::option::Option<collections::string::String>"* %name)
store %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %iret_slot, %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"** %llretslotptr
br label %clean_custom_30
return: ; preds = %clean_custom_27
%104 = load %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"*, %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"** %llretslotptr
%105 = bitcast %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %104 to i8*
%106 = bitcast %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %106, i8* %105, i64 48, i32 8, i1 false)
ret void
clean_custom_30: ; preds = %join
br label %clean_custom_27
}
; Function Attrs: inlinehint uwtable
define internal i64 @"_ZN6option15Option$LT$T$GT$9unwrap_or21h13140009158740892166E"(%"2.core::option::Option<usize>"* noalias nocapture dereferenceable(16) %self, i64) unnamed_addr #1 {
entry-block:
%sret_slot = alloca i64
%def = alloca i64
%__llmatch = alloca i64*
%x = alloca i64
store i64 %0, i64* %def, align 8
%1 = getelementptr inbounds %"2.core::option::Option<usize>", %"2.core::option::Option<usize>"* %self, i32 0, i32 0
%2 = load i64, i64* %1, !range !2
switch i64 %2, label %match_else [
i64 1, label %match_case
i64 0, label %match_case2
]
case_body: ; preds = %match_case
%3 = load i64*, i64** %__llmatch
%4 = load i64, i64* %3, align 8
store i64 %4, i64* %x, align 8
%5 = load i64, i64* %x, align 8
store i64 %5, i64* %sret_slot, align 8
br label %join
case_body1: ; preds = %match_case2
%6 = load i64, i64* %def, align 8
store i64 %6, i64* %sret_slot, align 8
br label %join
match_else: ; preds = %entry-block
unreachable
match_case: ; preds = %entry-block
%7 = bitcast %"2.core::option::Option<usize>"* %self to { i64, i64 }*
%8 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %7, i32 0, i32 1
store i64* %8, i64** %__llmatch
br label %case_body
match_case2: ; preds = %entry-block
br label %case_body1
join: ; preds = %case_body1, %case_body
%9 = load i64, i64* %sret_slot, align 8
ret i64 %9
}
declare i64 @_ZN10sys_common4util9min_stack20hb69ce365a8db0869qmtE() unnamed_addr
define internal void @_ZN20std..thread..Builder9drop.463317h032ab18fd448ef39E(%"1.std::thread::Builder"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"1.std::thread::Builder", %"1.std::thread::Builder"* %0, i32 0, i32 0
call void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.430617h195c25966ed6cdf5E"(%"2.core::option::Option<collections::string::String>"* %1)
%2 = getelementptr inbounds %"1.std::thread::Builder", %"1.std::thread::Builder"* %0, i32 0, i32 1
ret void
}
declare i64 @_ZN6thread6Thread3new20h0619f76e80de11bfNGbE(%"2.core::option::Option<collections::string::String>"* noalias nocapture dereferenceable(24)) unnamed_addr
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN6thread27Thread...core..clone..Clone5clone20ha0faf72a4ee13167qGbE(%"1.std::thread::Thread"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%sret_slot = alloca %"1.std::thread::Thread"
%self = alloca %"1.std::thread::Thread"*
%__self_0_0 = alloca %"5.alloc::arc::Arc<std::thread::Inner>"*
store %"1.std::thread::Thread"* %0, %"1.std::thread::Thread"** %self, align 8
%1 = load %"1.std::thread::Thread"*, %"1.std::thread::Thread"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"1.std::thread::Thread", %"1.std::thread::Thread"* %1, i32 0, i32 0
store %"5.alloc::arc::Arc<std::thread::Inner>"* %2, %"5.alloc::arc::Arc<std::thread::Inner>"** %__self_0_0
br label %case_body
case_body: ; preds = %entry-block
%3 = getelementptr inbounds %"1.std::thread::Thread", %"1.std::thread::Thread"* %sret_slot, i32 0, i32 0
%4 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %__self_0_0, align 8, !nonnull !1
%5 = call i64 @"_ZN3arc18Arc$LT$T$GT$.Clone5clone21h10827946175687659983E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8) %4)
%6 = bitcast %"5.alloc::arc::Arc<std::thread::Inner>"* %3 to i64*
store i64 %5, i64* %6, align 8
br label %join
join: ; preds = %case_body
%7 = bitcast %"1.std::thread::Thread"* %sret_slot to i64*
%8 = load i64, i64* %7, align 8
ret i64 %8
}
; Function Attrs: inlinehint uwtable
define internal i64 @"_ZN3arc18Arc$LT$T$GT$.Clone5clone21h10827946175687659983E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%sret_slot = alloca %"5.alloc::arc::Arc<std::thread::Inner>"
%self = alloca %"5.alloc::arc::Arc<std::thread::Inner>"*
%old_size = alloca i64
%1 = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"*
%auto_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"*
%2 = bitcast %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref to i8*
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 8, i32 8, i1 false)
store %"5.alloc::arc::Arc<std::thread::Inner>"* %0, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8
%3 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1
%4 = call dereferenceable(72) %"5.alloc::arc::ArcInner<std::thread::Inner>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h18010354011718457137E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8) %3)
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %4, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %1, align 8
%5 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %1, align 8, !nonnull !1
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %5, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8
%6 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8, !nonnull !1
%7 = getelementptr inbounds %"5.alloc::arc::ArcInner<std::thread::Inner>", %"5.alloc::arc::ArcInner<std::thread::Inner>"* %6, i32 0, i32 0
%8 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_add20he94ee3077db7985ax1KE(%"2.core::sync::atomic::AtomicUsize"* dereferenceable(8) %7, i64 1, i8 0)
store i64 %8, i64* %old_size, align 8
%9 = load i64, i64* %old_size, align 8
%10 = icmp ugt i64 %9, 9223372036854775807
br i1 %10, label %then-block-100986-, label %next-block
then-block-100986-: ; preds = %entry-block
call void @llvm.trap()
unreachable
next-block: ; preds = %entry-block
%11 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %sret_slot, i32 0, i32 0
%12 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1
%13 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %12, i32 0, i32 0
%14 = bitcast %"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* %13 to i8*
%15 = bitcast %"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* %11 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %15, i8* %14, i64 8, i32 8, i1 false)
%16 = bitcast %"5.alloc::arc::Arc<std::thread::Inner>"* %sret_slot to i64*
%17 = load i64, i64* %16, align 8
ret i64 %17
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN4sync6atomic11AtomicUsize9fetch_add20he94ee3077db7985ax1KE(%"2.core::sync::atomic::AtomicUsize"* dereferenceable(8), i64, i8) unnamed_addr #1 {
entry-block:
%self = alloca %"2.core::sync::atomic::AtomicUsize"*
%val = alloca i64
%order = alloca i8
%3 = alloca i64*
store %"2.core::sync::atomic::AtomicUsize"* %0, %"2.core::sync::atomic::AtomicUsize"** %self, align 8
store i64 %1, i64* %val, align 8
store i8 %2, i8* %order, align 1
%4 = load %"2.core::sync::atomic::AtomicUsize"*, %"2.core::sync::atomic::AtomicUsize"** %self, align 8, !nonnull !1
%5 = getelementptr inbounds %"2.core::sync::atomic::AtomicUsize", %"2.core::sync::atomic::AtomicUsize"* %4, i32 0, i32 0
%6 = call i64* @"_ZN4cell19UnsafeCell$LT$T$GT$3get21h11064512342180801429E"(%"2.core::cell::UnsafeCell<usize>"* dereferenceable(8) %5)
store i64* %6, i64** %3, align 8
%7 = load i64*, i64** %3, align 8
%8 = load i64, i64* %val, align 8
%9 = load i8, i8* %order, align 1
%10 = call i64 @_ZN4sync6atomic10atomic_add21h11377161173095199033E(i64* %7, i64 %8, i8 %9)
ret i64 %10
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN4sync6atomic10atomic_add21h11377161173095199033E(i64*, i64, i8) unnamed_addr #1 {
entry-block:
%sret_slot = alloca i64
%dst = alloca i64*
%val = alloca i64
%order = alloca i8
store i64* %0, i64** %dst, align 8
store i64 %1, i64* %val, align 8
store i8 %2, i8* %order, align 1
%3 = load i8, i8* %order, !range !3
switch i8 %3, label %match_else [
i8 2, label %match_case
i8 1, label %match_case5
i8 3, label %match_case6
i8 0, label %match_case7
i8 4, label %match_case8
]
case_body: ; preds = %match_case
%4 = load i64*, i64** %dst, align 8
%5 = load i64, i64* %val, align 8
%6 = atomicrmw add i64* %4, i64 %5 acquire
store i64 %6, i64* %sret_slot, align 8
br label %join
case_body1: ; preds = %match_case5
%7 = load i64*, i64** %dst, align 8
%8 = load i64, i64* %val, align 8
%9 = atomicrmw add i64* %7, i64 %8 release
store i64 %9, i64* %sret_slot, align 8
br label %join
case_body2: ; preds = %match_case6
%10 = load i64*, i64** %dst, align 8
%11 = load i64, i64* %val, align 8
%12 = atomicrmw add i64* %10, i64 %11 acq_rel
store i64 %12, i64* %sret_slot, align 8
br label %join
case_body3: ; preds = %match_case7
%13 = load i64*, i64** %dst, align 8
%14 = load i64, i64* %val, align 8
%15 = atomicrmw add i64* %13, i64 %14 monotonic
store i64 %15, i64* %sret_slot, align 8
br label %join
case_body4: ; preds = %match_case8
%16 = load i64*, i64** %dst, align 8
%17 = load i64, i64* %val, align 8
%18 = atomicrmw add i64* %16, i64 %17 seq_cst
store i64 %18, i64* %sret_slot, align 8
br label %join
match_else: ; preds = %entry-block
unreachable
match_case: ; preds = %entry-block
br label %case_body
match_case5: ; preds = %entry-block
br label %case_body1
match_case6: ; preds = %entry-block
br label %case_body2
match_case7: ; preds = %entry-block
br label %case_body3
match_case8: ; preds = %entry-block
br label %case_body4
join: ; preds = %case_body4, %case_body3, %case_body2, %case_body1, %case_body
%19 = load i64, i64* %sret_slot, align 8
ret i64 %19
}
; Function Attrs: noreturn nounwind
declare void @llvm.trap() #8
; Function Attrs: inlinehint uwtable
define internal i64 @"_ZN3arc12Arc$LT$T$GT$3new21h12253150629752299668E"(%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* noalias nocapture dereferenceable(32) %data) unnamed_addr #1 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%sret_slot = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"
%x = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%0 = alloca { i8*, i32 }
%1 = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%2 = invoke i8* @_ZN4heap15exchange_malloc20h295535e6fb0e6dd3MfaE(i64 48, i64 8)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %entry-block
%3 = bitcast i8* %2 to %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%4 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %3, i32 0, i32 0
%5 = bitcast %"2.core::sync::atomic::AtomicUsize"* %4 to { { i64 } }*
%6 = bitcast { { i64 } }* %5 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %6, i8* bitcast ({ { i64 } }* @const4685 to i8*), i64 8, i32 8, i1 false)
%7 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %3, i32 0, i32 1
%8 = bitcast %"2.core::sync::atomic::AtomicUsize"* %7 to { { i64 } }*
%9 = bitcast { { i64 } }* %8 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* bitcast ({ { i64 } }* @const4685 to i8*), i64 8, i32 8, i1 false)
%10 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %3, i32 0, i32 2
%11 = bitcast %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %data to i8*
%12 = bitcast %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %10 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %12, i8* %11, i64 32, i32 8, i1 false)
%13 = bitcast %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %data to i8*
call void @llvm.memset.p0i8.i64(i8* %13, i8 29, i64 32, i32 8, i1 false)
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %3, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %x, align 8
%14 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %sret_slot, i32 0, i32 0
%15 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %x, align 8, !nonnull !1
%16 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %x to i8*
call void @llvm.memset.p0i8.i64(i8* %16, i8 29, i64 8, i32 8, i1 false)
%17 = invoke %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN5boxed12Box$LT$T$GT$8into_raw21h16068222734218473717E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias dereferenceable(48) %15)
to label %normal-return1 unwind label %unwind_ast_101151_
unwind_custom_: ; preds = %entry-block
%18 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %18, { i8*, i32 }* %0
br label %clean_custom_
resume: ; preds = %clean_custom_
%19 = load { i8*, i32 }, { i8*, i32 }* %0
resume { i8*, i32 } %19
clean_custom_: ; preds = %clean_custom_2, %unwind_custom_
call void @"_ZN167core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$9drop.456417hd7350c3333b81328E"(%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %data)
br label %resume
normal-return1: ; preds = %normal-return
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %17, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8
%20 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8
%21 = invoke i64 @"_ZN3ptr15Shared$LT$T$GT$3new21h17471910972792813798E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %20)
to label %normal-return3 unwind label %unwind_ast_101151_
unwind_ast_101151_: ; preds = %normal-return1, %normal-return
%22 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %22, { i8*, i32 }* %0
br label %clean_ast_101151_
clean_custom_2: ; preds = %clean_ast_101151_
br label %clean_custom_
clean_ast_101151_: ; preds = %unwind_ast_101151_
call void @"_ZN206Box$LT$alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$GT$9drop.470517h977b0f9ef3118264E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %x)
br label %clean_custom_2
normal-return3: ; preds = %normal-return1
%23 = bitcast %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %14 to i64*
store i64 %21, i64* %23, align 8
call void @"_ZN206Box$LT$alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$GT$9drop.470517h977b0f9ef3118264E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %x)
call void @"_ZN167core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$9drop.456417hd7350c3333b81328E"(%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %data)
%24 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %sret_slot to i64*
%25 = load i64, i64* %24, align 8
ret i64 %25
}
; Function Attrs: inlinehint uwtable
define internal i8* @_ZN4heap15exchange_malloc20h295535e6fb0e6dd3MfaE(i64, i64) unnamed_addr #1 {
entry-block:
%sret_slot = alloca i8*
%size = alloca i64
%align = alloca i64
%ptr = alloca i8*
%2 = alloca i8
store i64 %0, i64* %size, align 8
store i64 %1, i64* %align, align 8
%3 = load i64, i64* %size, align 8
%4 = icmp eq i64 %3, 0
br i1 %4, label %then-block-101190-, label %else-block
then-block-101190-: ; preds = %entry-block
store i8* inttoptr (i64 1 to i8*), i8** %sret_slot, align 8
br label %join
else-block: ; preds = %entry-block
%5 = load i64, i64* %size, align 8
%6 = load i64, i64* %align, align 8
%7 = call i8* @_ZN4heap8allocate20hcda44ecaa4f7dda9SdaE(i64 %5, i64 %6)
store i8* %7, i8** %ptr, align 8
%8 = load i8*, i8** %ptr, align 8
%9 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null20h8484224088030641506E"(i8* %8)
%10 = zext i1 %9 to i8
store i8 %10, i8* %2, align 1
%11 = load i8, i8* %2, align 1, !range !0
%12 = trunc i8 %11 to i1
br i1 %12, label %then-block-101208-, label %next-block
then-block-101208-: ; preds = %else-block
call void @_ZN3oom3oom20h30d8eb252e73102ePzbE()
unreachable
next-block: ; preds = %else-block
%13 = load i8*, i8** %ptr, align 8
store i8* %13, i8** %sret_slot, align 8
br label %join
join: ; preds = %next-block, %then-block-101190-
%14 = load i8*, i8** %sret_slot, align 8
ret i8* %14
}
; Function Attrs: inlinehint uwtable
define internal i8* @_ZN4heap8allocate20hcda44ecaa4f7dda9SdaE(i64, i64) unnamed_addr #1 {
entry-block:
%size.i = alloca i64
%align.i = alloca i64
%size = alloca i64
%align = alloca i64
%__arg = alloca i64
%__arg1 = alloca i64
store i64 %0, i64* %size, align 8
store i64 %1, i64* %align, align 8
%2 = load i64, i64* %size, align 8
%3 = load i64, i64* %align, align 8
store i64 %2, i64* %size.i, align 8
store i64 %3, i64* %align.i, align 8
%4 = load i64, i64* %size, align 8
%5 = load i64, i64* %align, align 8
store i64 %4, i64* %__arg, align 8
%6 = load i64, i64* %__arg
store i64 %5, i64* %__arg1, align 8
%7 = load i64, i64* %__arg1
%8 = call i8* @__rust_allocate(i64 %6, i64 %7)
ret i8* %8
}
; Function Attrs: nounwind
declare noalias i8* @__rust_allocate(i64, i64) unnamed_addr #3
; Function Attrs: cold noinline noreturn
declare void @_ZN3oom3oom20h30d8eb252e73102ePzbE() unnamed_addr #4
; Function Attrs: uwtable
define internal i64 @"_ZN3ptr15Shared$LT$T$GT$3new21h17471910972792813798E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*) unnamed_addr #0 {
entry-block:
%sret_slot.i = alloca %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"
%inner.i = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%sret_slot = alloca %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"
%ptr = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8
%1 = getelementptr inbounds %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %sret_slot, i32 0, i32 0
%2 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %2, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %inner.i, align 8
%3 = getelementptr inbounds %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %sret_slot.i, i32 0, i32 0
%4 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %inner.i, align 8
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %4, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %3, align 8
%5 = bitcast %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %sret_slot.i to i64*
%6 = load i64, i64* %5, align 8
%7 = bitcast %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %1 to i64*
store i64 %6, i64* %7, align 8
%8 = getelementptr inbounds %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %sret_slot, i32 0, i32 1
%9 = bitcast %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %sret_slot to i64*
%10 = load i64, i64* %9, align 8
ret i64 %10
}
; Function Attrs: inlinehint uwtable
define internal %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN5boxed12Box$LT$T$GT$8into_raw21h16068222734218473717E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias dereferenceable(48)) unnamed_addr #1 {
entry-block:
%b = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %b, align 8
%1 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %b, align 8, !nonnull !1
%2 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %b to i8*
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 8, i32 8, i1 false)
call void @"_ZN206Box$LT$alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$GT$9drop.470517h977b0f9ef3118264E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %b)
ret %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1
}
define internal void @"_ZN206Box$LT$alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$GT$9drop.470517h977b0f9ef3118264E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**) unnamed_addr {
entry-block:
%1 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %0
%2 = ptrtoint %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1 to i64
%3 = icmp ne i64 %2, 2097865012304223517
br i1 %3, label %cond, label %next
next: ; preds = %cond, %entry-block
ret void
cond: ; preds = %entry-block
call void @"_ZN195alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470817hb871136f7de6db0fE"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1)
%4 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1 to i8*
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %4, i64 48, i64 8)
br label %next
}
define internal void @"_ZN195alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470817hb871136f7de6db0fE"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, i32 0, i32 0
%2 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, i32 0, i32 1
%3 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, i32 0, i32 2
call void @"_ZN167core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$9drop.456417hd7350c3333b81328E"(%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %3)
ret void
}
; Function Attrs: inlinehint uwtable
define internal i64 @"_ZN3arc18Arc$LT$T$GT$.Clone5clone21h16193723465726072285E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%sret_slot = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"
%self = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%old_size = alloca i64
%1 = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%auto_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%2 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref to i8*
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 8, i32 8, i1 false)
store %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8
%3 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1
%4 = call dereferenceable(48) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h16251209249348122152E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %3)
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %4, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8
%5 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8, !nonnull !1
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %5, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8
%6 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8, !nonnull !1
%7 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %6, i32 0, i32 0
%8 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_add20he94ee3077db7985ax1KE(%"2.core::sync::atomic::AtomicUsize"* dereferenceable(8) %7, i64 1, i8 0)
store i64 %8, i64* %old_size, align 8
%9 = load i64, i64* %old_size, align 8
%10 = icmp ugt i64 %9, 9223372036854775807
br i1 %10, label %then-block-100986-, label %next-block
then-block-100986-: ; preds = %entry-block
call void @llvm.trap()
unreachable
next-block: ; preds = %entry-block
%11 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %sret_slot, i32 0, i32 0
%12 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1
%13 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %12, i32 0, i32 0
%14 = bitcast %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %13 to i8*
%15 = bitcast %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %11 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %15, i8* %14, i64 8, i32 8, i1 false)
%16 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %sret_slot to i64*
%17 = load i64, i64* %16, align 8
ret i64 %17
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$12closure.4711E"(%closure.0* noalias nocapture dereferenceable(16)) unnamed_addr #1 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%1 = alloca %"2.core::option::Option<&'static str>"
%2 = alloca { i8*, i32 }
%__llmatch = alloca %str_slice*
%name = alloca %str_slice
%temp = alloca {}
%3 = alloca %"2.core::option::Option<usize>"
%output = alloca %"2.core::option::Option<i32>"
%try_result = alloca %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"
%ptr = alloca %"2.core::option::Option<i32>"*
%4 = alloca %closure.1
%5 = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"
%arg = alloca %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"
%6 = alloca %closure.2
%7 = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*
%overloaded_deref = alloca %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*
%8 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 0
%9 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 1
%10 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 2
invoke void @_ZN6thread6Thread4name20hd405b32c0fce958eyHbE(%"2.core::option::Option<&'static str>"* noalias nocapture sret dereferenceable(16) %1, %"1.std::thread::Thread"* noalias readonly dereferenceable(8) %8)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %entry-block
%11 = getelementptr inbounds %"2.core::option::Option<&'static str>", %"2.core::option::Option<&'static str>"* %1, i32 0, i32 0, i32 0
%12 = load i8*, i8** %11
%13 = icmp ne i8* %12, null
switch i1 %13, label %match_else [
i1 true, label %match_case
]
unwind_custom_: ; preds = %normal-return4, %normal-return3, %join, %case_body, %entry-block
%14 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %14, { i8*, i32 }* %2
br label %clean_custom_
resume: ; preds = %clean_custom_
%15 = load { i8*, i32 }, { i8*, i32 }* %2
resume { i8*, i32 } %15
clean_custom_: ; preds = %clean_custom_7, %unwind_custom_
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %10)
call void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"* %8)
br label %resume
case_body: ; preds = %match_case
%16 = load %str_slice*, %str_slice** %__llmatch
%17 = bitcast %str_slice* %16 to i8*
%18 = bitcast %str_slice* %name to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %18, i8* %17, i64 16, i32 8, i1 false)
%19 = getelementptr inbounds %str_slice, %str_slice* %name, i32 0, i32 0
%20 = load i8*, i8** %19
%21 = getelementptr inbounds %str_slice, %str_slice* %name, i32 0, i32 1
%22 = load i64, i64* %21
invoke void @_ZN3sys6thread6Thread8set_name20h410908c04cbeb6afI2xE(i8* noalias nonnull readonly %20, i64 %22)
to label %normal-return2 unwind label %unwind_custom_
case_body1: ; preds = %match_else
br label %join
match_else: ; preds = %normal-return
br label %case_body1
match_case: ; preds = %normal-return
%23 = getelementptr inbounds %"2.core::option::Option<&'static str>", %"2.core::option::Option<&'static str>"* %1, i32 0, i32 0
store %str_slice* %23, %str_slice** %__llmatch
br label %case_body
normal-return2: ; preds = %case_body
br label %join
join: ; preds = %case_body1, %normal-return2
invoke void @_ZN3sys6thread5guard7current20h4a9742ce39c290c48fyE(%"2.core::option::Option<usize>"* noalias nocapture sret dereferenceable(16) %3)
to label %normal-return3 unwind label %unwind_custom_
normal-return3: ; preds = %join
%24 = bitcast %"1.std::thread::Thread"* %8 to i64*
%25 = load i64, i64* %24, align 8
%26 = bitcast %"1.std::thread::Thread"* %8 to i8*
call void @llvm.memset.p0i8.i64(i8* %26, i8 29, i64 8, i32 8, i1 false)
invoke void @_ZN10sys_common11thread_info3set20h2914e7e9e0b6aca9C7sE(%"2.core::option::Option<usize>"* noalias nocapture dereferenceable(16) %3, i64 %25)
to label %normal-return4 unwind label %unwind_custom_
normal-return4: ; preds = %normal-return3
%27 = bitcast %"2.core::option::Option<i32>"* %output to { i32, [4 x i8] }*
%28 = bitcast { i32, [4 x i8] }* %27 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %28, i8* bitcast ({ i32, [4 x i8] }* @const4717 to i8*), i64 8, i32 4, i1 false)
store %"2.core::option::Option<i32>"* %output, %"2.core::option::Option<i32>"** %ptr, align 8
%29 = getelementptr inbounds %closure.1, %closure.1* %4, i32 0, i32 0
%30 = getelementptr inbounds %closure.1, %closure.1* %4, i32 0, i32 1
%31 = load %"2.core::option::Option<i32>"*, %"2.core::option::Option<i32>"** %ptr, align 8, !nonnull !1
store %"2.core::option::Option<i32>"* %31, %"2.core::option::Option<i32>"** %30, align 8
%32 = bitcast %closure.1* %4 to i64*
%33 = load i64, i64* %32, align 8
invoke void @_ZN10sys_common6unwind3try21h12466803591052006657E(%"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(16) %try_result, i64 %33)
to label %normal-return5 unwind label %unwind_custom_
normal-return5: ; preds = %normal-return4
%34 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %5 to { i64, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }*
%35 = getelementptr inbounds { i64, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }, { i64, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }* %34, i32 0, i32 1
%36 = bitcast %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %try_result to i8*
%37 = bitcast %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %arg to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %37, i8* %36, i64 16, i32 8, i1 false)
%38 = bitcast %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %try_result to i8*
call void @llvm.memset.p0i8.i64(i8* %38, i8 29, i64 16, i32 8, i1 false)
%39 = getelementptr inbounds %closure.2, %closure.2* %6, i32 0, i32 0
%40 = bitcast %"2.core::option::Option<i32>"* %output to i8*
%41 = bitcast %"2.core::option::Option<i32>"* %39 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %41, i8* %40, i64 8, i32 4, i1 false)
%42 = bitcast %closure.2* %6 to i64*
%43 = load i64, i64* %42, align 4
invoke void @"_ZN6result24Result$LT$T$C$$u20$E$GT$3map20h1168541759438911924E"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24) %35, %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture dereferenceable(16) %arg, i64 %43)
to label %normal-return6 unwind label %unwind_ast_9213_
normal-return6: ; preds = %normal-return5
%44 = getelementptr inbounds %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>", %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %5, i32 0, i32 0
store i64 1, i64* %44
%45 = invoke dereferenceable(32) %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* @"_ZN3arc18Arc$LT$T$GT$.Deref5deref20h6721022230651172890E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %10)
to label %normal-return8 unwind label %unwind_ast_9213_
unwind_ast_9213_: ; preds = %normal-return8, %normal-return6, %normal-return5
%46 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %46, { i8*, i32 }* %2
br label %clean_ast_9213_
clean_custom_7: ; preds = %clean_ast_9213_
br label %clean_custom_
clean_ast_9213_: ; preds = %unwind_ast_9213_
call void @"_ZN114core..result..Result$LT$$LP$$RP$$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.484617hd92d38d418bc8c30E"(%"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %try_result)
br label %clean_custom_7
normal-return8: ; preds = %normal-return6
store %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %45, %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %overloaded_deref, align 8
%47 = load %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*, %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %overloaded_deref, align 8, !nonnull !1
%48 = invoke %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* @"_ZN4cell19UnsafeCell$LT$T$GT$3get21h11435476738814544355E"(%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* dereferenceable(32) %47)
to label %normal-return9 unwind label %unwind_ast_9213_
normal-return9: ; preds = %normal-return8
store %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %48, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %7, align 8
%49 = load %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %7, align 8
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.456717he26f16b5b60edca1E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %49)
%50 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %5 to i8*
%51 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %49 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %51, i8* %50, i64 32, i32 8, i1 false)
call void @"_ZN114core..result..Result$LT$$LP$$RP$$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.484617hd92d38d418bc8c30E"(%"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %try_result)
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %10)
call void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"* %8)
ret void
}
declare void @_ZN6thread6Thread4name20hd405b32c0fce958eyHbE(%"2.core::option::Option<&'static str>"* noalias nocapture sret dereferenceable(16), %"1.std::thread::Thread"* noalias readonly dereferenceable(8)) unnamed_addr
declare void @_ZN3sys6thread6Thread8set_name20h410908c04cbeb6afI2xE(i8* noalias nonnull readonly, i64) unnamed_addr
declare void @_ZN10sys_common11thread_info3set20h2914e7e9e0b6aca9C7sE(%"2.core::option::Option<usize>"* noalias nocapture dereferenceable(16), i64) unnamed_addr
declare void @_ZN3sys6thread5guard7current20h4a9742ce39c290c48fyE(%"2.core::option::Option<usize>"* noalias nocapture sret dereferenceable(16)) unnamed_addr
; Function Attrs: uwtable
define internal void @_ZN10sys_common6unwind3try21h12466803591052006657E(%"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(16), i64) unnamed_addr #0 {
entry-block:
%f = alloca %closure.1
%f1 = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"
%2 = bitcast %closure.1* %f to i64*
store i64 %1, i64* %2, align 8
%3 = getelementptr inbounds %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>", %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %f1, i32 0, i32 0
%4 = bitcast %closure.1* %f to i8*
%5 = bitcast %closure.1* %3 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 8, i32 8, i1 false)
%6 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %f1 to i8*
call void @_ZN10sys_common6unwind9inner_try20h6bca30cd9ad44959HitE(%"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(16) %0, void (i8*)* @_ZN10sys_common6unwind3try6try_fn20h1306342228717066690E, i8* %6)
br label %clean_ast_101473_
return: ; preds = %clean_ast_101473_
ret void
clean_ast_101473_: ; preds = %entry-block
br label %return
}
declare void @_ZN10sys_common6unwind9inner_try20h6bca30cd9ad44959HitE(%"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(16), void (i8*)*, i8*) unnamed_addr
; Function Attrs: uwtable
define internal void @_ZN10sys_common6unwind3try6try_fn20h1306342228717066690E(i8*) unnamed_addr #0 {
entry-block:
%opt_closure = alloca i8*
%opt_closure1 = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*
%1 = alloca %closure.1
%2 = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"
store i8* %0, i8** %opt_closure, align 8
%3 = load i8*, i8** %opt_closure, align 8
%4 = bitcast i8* %3 to %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*
store %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %4, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %opt_closure1, align 8
%5 = load %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %opt_closure1, align 8
%6 = call i64 @"_ZN6option15Option$LT$T$GT$4take20h4162231751137360174E"(%"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8) %5)
%7 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %2 to i64*
store i64 %6, i64* %7, align 8
%8 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %2 to i64*
%9 = load i64, i64* %8, align 8
%10 = call i64 @"_ZN6option15Option$LT$T$GT$6unwrap21h10896307617421188658E"(i64 %9)
%11 = bitcast %closure.1* %1 to i64*
store i64 %10, i64* %11, align 8
%12 = bitcast %closure.1* %1 to i64*
%13 = load i64, i64* %12, align 8
call void @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$12closure.4737E"(i64 %13)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$12closure.4737E"(i64) unnamed_addr #1 {
entry-block:
%closure_env = alloca %closure.1
%1 = alloca %"2.core::option::Option<i32>"
%2 = bitcast %closure.1* %closure_env to i64*
store i64 %0, i64* %2, align 8
%3 = getelementptr inbounds %closure.1, %closure.1* %closure_env, i32 0, i32 0
%4 = getelementptr inbounds %closure.1, %closure.1* %closure_env, i32 0, i32 1
%5 = bitcast %"2.core::option::Option<i32>"* %1 to { i32, i32 }*
%6 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %5, i32 0, i32 1
%7 = call i32 @"_ZN4main28_$u7b$$u7b$closure$u7d$$u7d$12closure.4832E"(%closure undef)
store i32 %7, i32* %6, align 4
%8 = getelementptr inbounds %"2.core::option::Option<i32>", %"2.core::option::Option<i32>"* %1, i32 0, i32 0
store i32 1, i32* %8
%9 = bitcast %"2.core::option::Option<i32>"* %1 to i64*
%10 = load i64, i64* %9, align 4
%11 = load %"2.core::option::Option<i32>"*, %"2.core::option::Option<i32>"** %4, align 8, !nonnull !1
%12 = bitcast %"2.core::option::Option<i32>"* %11 to i64*
store i64 %10, i64* %12, align 4
ret void
}
; Function Attrs: inlinehint uwtable
define internal i64 @"_ZN6option15Option$LT$T$GT$6unwrap21h10896307617421188658E"(i64) unnamed_addr #1 {
entry-block:
%sret_slot = alloca %closure.1
%self = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"
%val = alloca %closure.1*
%1 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %self to i64*
store i64 %0, i64* %1, align 8
%2 = getelementptr inbounds %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>", %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %self, i32 0, i32 0, i32 1
%3 = load %"2.core::option::Option<i32>"*, %"2.core::option::Option<i32>"** %2
%4 = icmp ne %"2.core::option::Option<i32>"* %3, null
switch i1 %4, label %match_else [
i1 true, label %match_case
i1 false, label %match_case2
]
case_body: ; preds = %match_case
%5 = load %closure.1*, %closure.1** %val
%6 = bitcast %closure.1* %5 to i8*
%7 = bitcast %closure.1* %sret_slot to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %7, i8* %6, i64 8, i32 8, i1 false)
br label %join
case_body1: ; preds = %match_case2
call void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @"_ZN6option15Option$LT$T$GT$6unwrap14_MSG_FILE_LINE20h9e0bce6065acf43cknOE")
unreachable
match_else: ; preds = %entry-block
unreachable
match_case: ; preds = %entry-block
%8 = getelementptr inbounds %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>", %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %self, i32 0, i32 0
store %closure.1* %8, %closure.1** %val
br label %case_body
match_case2: ; preds = %entry-block
br label %case_body1
join: ; preds = %case_body
%9 = bitcast %closure.1* %sret_slot to i64*
%10 = load i64, i64* %9, align 8
ret i64 %10
}
; Function Attrs: inlinehint uwtable
define internal i64 @"_ZN6option15Option$LT$T$GT$4take20h4162231751137360174E"(%"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8)) unnamed_addr #1 {
entry-block:
%sret_slot = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"
%self = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*
store %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %0, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %self, align 8
%1 = load %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %self, align 8, !nonnull !1
%2 = load i64, i64* bitcast ({ { {}, i8* } }* @const4830 to i64*), align 8
%3 = call i64 @_ZN3mem7replace20h8157034581070379059E(%"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8) %1, i64 %2)
%4 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %sret_slot to i64*
store i64 %3, i64* %4, align 8
%5 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %sret_slot to i64*
%6 = load i64, i64* %5, align 8
ret i64 %6
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN3mem7replace20h8157034581070379059E(%"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8), i64) unnamed_addr #1 {
entry-block:
%sret_slot = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"
%dest = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*
%src = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"
store %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %0, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %dest, align 8
%2 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %src to i64*
store i64 %1, i64* %2, align 8
%3 = load %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %dest, align 8, !nonnull !1
call void @_ZN3mem4swap21h18084824041556770563E(%"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8) %3, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8) %src)
%4 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %src to i8*
%5 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %sret_slot to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 8, i32 8, i1 false)
%6 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %sret_slot to i64*
%7 = load i64, i64* %6, align 8
ret i64 %7
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3mem4swap21h18084824041556770563E(%"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8), %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8)) unnamed_addr #1 {
entry-block:
%x = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*
%y = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*
%t = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"
store %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %0, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %x, align 8
store %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %1, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %y, align 8
%2 = call i64 @_ZN3mem13uninitialized20h6363082438719416493E()
%3 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i64*
store i64 %2, i64* %3, align 8
%4 = load %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %x, align 8, !nonnull !1
%5 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i8*
%6 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %4 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %6, i64 8, i32 8, i1 false)
%7 = load %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %y, align 8, !nonnull !1
%8 = load %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %x, align 8, !nonnull !1
%9 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %8 to i8*
%10 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %7 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* %10, i64 8, i32 8, i1 false)
%11 = load %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %y, align 8, !nonnull !1
%12 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %11 to i8*
%13 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %12, i8* %13, i64 8, i32 8, i1 false)
%14 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i64*
%15 = load i64, i64* %14, align 8
call void @_ZN3mem6forget20h7604416672688686498E(i64 %15)
ret void
}
; Function Attrs: inlinehint uwtable
define internal i64 @_ZN3mem13uninitialized20h6363082438719416493E() unnamed_addr #1 {
entry-block:
%sret_slot = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"
%0 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %sret_slot to i64*
%1 = load i64, i64* %0, align 8
ret i64 %1
}
; Function Attrs: uwtable
define internal void @_ZN3mem6forget20h7604416672688686498E(i64) unnamed_addr #0 {
entry-block:
%t = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"
%1 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i64*
store i64 %0, i64* %1, align 8
%2 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i64*
%3 = load i64, i64* %2, align 8
ret void
}
; Function Attrs: inlinehint uwtable
define internal i32 @"_ZN4main28_$u7b$$u7b$closure$u7d$$u7d$12closure.4832E"(%closure) unnamed_addr #1 {
entry-block:
ret i32 2
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN6result24Result$LT$T$C$$u20$E$GT$3map20h1168541759438911924E"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24), %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture dereferenceable(16) %self, i64) unnamed_addr #1 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%op = alloca %closure.2
%__llmatch = alloca {}*
%t = alloca {}
%e = alloca { i8*, void (i8*)** }*
%2 = alloca { i8*, i32 }
%3 = bitcast %closure.2* %op to i64*
store i64 %1, i64* %3, align 4
%4 = getelementptr inbounds %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>", %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %self, i32 0, i32 0, i32 0
%5 = load i8*, i8** %4
%6 = icmp ne i8* %5, null
switch i1 %6, label %match_else [
i1 false, label %match_case
i1 true, label %match_case2
]
case_body: ; preds = %match_case
%7 = load {}*, {}** %__llmatch
%8 = bitcast %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, i32 }*
%9 = getelementptr inbounds { i8, i32 }, { i8, i32 }* %8, i32 0, i32 1
%10 = bitcast %closure.2* %op to i64*
%11 = load i64, i64* %10, align 4
%12 = invoke i32 @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$12closure.4843E"(i64 %11, {} undef)
to label %normal-return unwind label %unwind_custom_
case_body1: ; preds = %match_case2
%13 = load { i8*, void (i8*)** }*, { i8*, void (i8*)** }** %e
%14 = bitcast %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, { i8*, void (i8*)** } }*
%15 = getelementptr inbounds { i8, { i8*, void (i8*)** } }, { i8, { i8*, void (i8*)** } }* %14, i32 0, i32 1
%16 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %13, i32 0, i32 0
%17 = load i8*, i8** %16
%18 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %13, i32 0, i32 1
%19 = load void (i8*)**, void (i8*)*** %18
%20 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %15, i32 0, i32 0
store i8* %17, i8** %20
%21 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %15, i32 0, i32 1
store void (i8*)** %19, void (i8*)*** %21
%22 = bitcast { i8*, void (i8*)** }* %13 to i8*
call void @llvm.memset.p0i8.i64(i8* %22, i8 29, i64 16, i32 8, i1 false)
%23 = getelementptr inbounds %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>", %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0
store i8 1, i8* %23
call void @"_ZN70Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$9drop.457317hf1dc3785f4cd9f40E"({ i8*, void (i8*)** }* %13)
%24 = bitcast { i8*, void (i8*)** }* %13 to i8*
call void @llvm.memset.p0i8.i64(i8* %24, i8 29, i64 16, i32 8, i1 false)
br label %join
match_else: ; preds = %entry-block
unreachable
match_case: ; preds = %entry-block
%25 = bitcast %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %self to {}*
store {}* %25, {}** %__llmatch
br label %case_body
match_case2: ; preds = %entry-block
%26 = getelementptr inbounds %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>", %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %self, i32 0, i32 0
store { i8*, void (i8*)** }* %26, { i8*, void (i8*)** }** %e
br label %case_body1
normal-return: ; preds = %case_body
store i32 %12, i32* %9, align 4
%27 = getelementptr inbounds %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>", %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0
store i8 0, i8* %27
br label %join
unwind_custom_: ; preds = %case_body
%28 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %28, { i8*, i32 }* %2
br label %clean_custom_
resume: ; preds = %clean_custom_
%29 = load { i8*, i32 }, { i8*, i32 }* %2
resume { i8*, i32 } %29
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN114core..result..Result$LT$$LP$$RP$$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.484617hd92d38d418bc8c30E"(%"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %self)
br label %resume
join: ; preds = %case_body1, %normal-return
call void @"_ZN114core..result..Result$LT$$LP$$RP$$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.484617hd92d38d418bc8c30E"(%"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %self)
ret void
}
; Function Attrs: inlinehint uwtable
define internal i32 @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$12closure.4843E"(i64, {}) unnamed_addr #1 {
entry-block:
%2 = alloca {}
%closure_env = alloca %closure.2
%3 = bitcast %closure.2* %closure_env to i64*
store i64 %0, i64* %3, align 4
%4 = getelementptr inbounds %closure.2, %closure.2* %closure_env, i32 0, i32 0
%5 = bitcast %"2.core::option::Option<i32>"* %4 to i64*
%6 = load i64, i64* %5, align 4
%7 = call i32 @"_ZN6option15Option$LT$T$GT$6unwrap20h7370506588511907268E"(i64 %6)
ret i32 %7
}
define internal void @"_ZN114core..result..Result$LT$$LP$$RP$$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.484617hd92d38d418bc8c30E"(%"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>", %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0, i32 0
%2 = load i8*, i8** %1
%3 = icmp ne i8* %2, null
switch i1 %3, label %enum-iter-ret-void [
i1 false, label %enum-iter-variant-0
i1 true, label %enum-iter-variant-1
]
enum-iter-ret-void: ; preds = %entry-block
ret void
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0
ret void
enum-iter-variant-0: ; preds = %entry-block
%4 = bitcast %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %0 to {}*
br label %enum-iter-next
enum-iter-variant-1: ; preds = %entry-block
%5 = getelementptr inbounds %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>", %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0
call void @"_ZN70Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$9drop.457317hf1dc3785f4cd9f40E"({ i8*, void (i8*)** }* %5)
br label %enum-iter-next
}
; Function Attrs: inlinehint uwtable
define internal i32 @"_ZN6option15Option$LT$T$GT$6unwrap20h7370506588511907268E"(i64) unnamed_addr #1 {
entry-block:
%self = alloca %"2.core::option::Option<i32>"
%__llmatch = alloca i32*
%val = alloca i32
%1 = bitcast %"2.core::option::Option<i32>"* %self to i64*
store i64 %0, i64* %1, align 4
%2 = getelementptr inbounds %"2.core::option::Option<i32>", %"2.core::option::Option<i32>"* %self, i32 0, i32 0
%3 = load i32, i32* %2, !range !10
switch i32 %3, label %match_else [
i32 1, label %match_case
i32 0, label %match_case2
]
case_body: ; preds = %match_case
%4 = load i32*, i32** %__llmatch
%5 = load i32, i32* %4, align 4
store i32 %5, i32* %val, align 4
%6 = load i32, i32* %val, align 4
br label %join
case_body1: ; preds = %match_case2
call void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @"_ZN6option15Option$LT$T$GT$6unwrap14_MSG_FILE_LINE20h9e0bce6065acf43cknOE")
unreachable
match_else: ; preds = %entry-block
unreachable
match_case: ; preds = %entry-block
%7 = bitcast %"2.core::option::Option<i32>"* %self to { i32, i32 }*
%8 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %7, i32 0, i32 1
store i32* %8, i32** %__llmatch
br label %case_body
match_case2: ; preds = %entry-block
br label %case_body1
join: ; preds = %case_body
ret i32 %6
}
; Function Attrs: inlinehint uwtable
define internal %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* @"_ZN4cell19UnsafeCell$LT$T$GT$3get21h11435476738814544355E"(%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* dereferenceable(32)) unnamed_addr #1 {
entry-block:
%self = alloca %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*
store %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %0, %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %self, align 8
%1 = load %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*, %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %self, align 8, !nonnull !1
%2 = getelementptr inbounds %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>", %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %1, i32 0, i32 0
ret %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %2
}
; Function Attrs: inlinehint uwtable
define internal dereferenceable(32) %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* @"_ZN3arc18Arc$LT$T$GT$.Deref5deref20h6721022230651172890E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 {
entry-block:
%self = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%1 = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%auto_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*
%2 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref to i8*
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 8, i32 8, i1 false)
store %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8
%3 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1
%4 = call dereferenceable(48) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h16251209249348122152E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %3)
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %4, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8
%5 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8, !nonnull !1
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %5, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8
%6 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8, !nonnull !1
%7 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %6, i32 0, i32 2
ret %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %7
}
declare void @_ZN3sys6thread6Thread3new20hfd8e70603581a437rTxE(%"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* noalias nocapture sret dereferenceable(24), i64, i8* noalias nonnull, void (i8*)** nonnull) unnamed_addr
define internal void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.485217h6242f803e6a3193cE"(%closure.0*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 0
call void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"* %1)
%2 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 1
%3 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 2
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %3)
ret void
}
; Function Attrs: uwtable
define internal void @"_ZN5boxed16F.FnBox$LT$A$GT$8call_box21h17736015687154337904E"(%closure.0* noalias dereferenceable(16), {}) unnamed_addr #0 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%self = alloca %closure.0*
%args = alloca {}
%arg = alloca %closure.0
%2 = alloca { i8*, i32 }
store %closure.0* %0, %closure.0** %self, align 8
%3 = load %closure.0*, %closure.0** %self, align 8, !nonnull !1
%4 = bitcast %closure.0* %3 to i8*
%5 = bitcast %closure.0* %arg to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 16, i32 8, i1 false)
%6 = bitcast %closure.0* %3 to i8*
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 16, i32 8, i1 false)
invoke void @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$12closure.4711E"(%closure.0* noalias nocapture dereferenceable(16) %arg)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %entry-block
call void @"_ZN399Box$LT$$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$$GT$9drop.485617hdd018ef28fbbf137E"(%closure.0** %self)
ret void
unwind_custom_: ; preds = %entry-block
%7 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %7, { i8*, i32 }* %2
br label %clean_custom_
resume: ; preds = %clean_custom_
%8 = load { i8*, i32 }, { i8*, i32 }* %2
resume { i8*, i32 } %8
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN399Box$LT$$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$$GT$9drop.485617hdd018ef28fbbf137E"(%closure.0** %self)
br label %resume
}
define internal void @"_ZN399Box$LT$$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$$GT$9drop.485617hdd018ef28fbbf137E"(%closure.0**) unnamed_addr {
entry-block:
%1 = load %closure.0*, %closure.0** %0
%2 = ptrtoint %closure.0* %1 to i64
%3 = icmp ne i64 %2, 2097865012304223517
br i1 %3, label %cond, label %next
next: ; preds = %cond, %entry-block
ret void
cond: ; preds = %entry-block
call void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.485217h6242f803e6a3193cE"(%closure.0* %1)
%4 = bitcast %closure.0* %1 to i8*
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %4, i64 16, i64 8)
br label %next
}
; Function Attrs: uwtable
define internal void @"_ZN7convert15T.From$LT$T$GT$4from21h12668158018310012419E"(%"1.std::io::error::Error"* noalias nocapture sret dereferenceable(16), %"1.std::io::error::Error"* noalias nocapture dereferenceable(16) %t) unnamed_addr #0 {
entry-block:
%1 = bitcast %"1.std::io::error::Error"* %t to i8*
%2 = bitcast %"1.std::io::error::Error"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %2, i8* %1, i64 16, i32 8, i1 false)
%3 = bitcast %"1.std::io::error::Error"* %t to i8*
call void @llvm.memset.p0i8.i64(i8* %3, i8 29, i64 16, i32 8, i1 false)
call void @_ZN21std..io..error..Error9drop.459117h0f4948ead3fac74eE(%"1.std::io::error::Error"* %t)
ret void
}
define internal void @"_ZN81core..result..Result$LT$std..sys..thread..Thread$C$$u20$std..io..error..Error$GT$9drop.486117h1f3bc4c9c9e07abcE"(%"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"*) unnamed_addr {
entry-block:
%1 = getelementptr inbounds %"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>", %"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %0, i32 0, i32 0
%2 = load i64, i64* %1
switch i64 %2, label %enum-iter-ret-void [
i64 0, label %enum-iter-variant-0
i64 1, label %enum-iter-variant-1
]
enum-iter-ret-void: ; preds = %entry-block
ret void
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0
ret void
enum-iter-variant-0: ; preds = %entry-block
%3 = bitcast %"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %0 to { i64, %"1.std::sys::thread::Thread" }*
%4 = getelementptr inbounds { i64, %"1.std::sys::thread::Thread" }, { i64, %"1.std::sys::thread::Thread" }* %3, i32 0, i32 1
call void @_ZN24std..sys..thread..Thread9drop.419917h5b8cd2efe3ae67d8E(%"1.std::sys::thread::Thread"* %4)
br label %enum-iter-next
enum-iter-variant-1: ; preds = %entry-block
%5 = bitcast %"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %0 to { i64, %"1.std::io::error::Error" }*
%6 = getelementptr inbounds { i64, %"1.std::io::error::Error" }, { i64, %"1.std::io::error::Error" }* %5, i32 0, i32 1
call void @_ZN21std..io..error..Error9drop.459117h0f4948ead3fac74eE(%"1.std::io::error::Error"* %6)
br label %enum-iter-next
}
declare void @_ZN6thread7Builder3new20hd04be2c79ec19f69ezbE(%"1.std::thread::Builder"* noalias nocapture sret dereferenceable(40)) unnamed_addr
; Function Attrs: uwtable
define internal void @"_ZN6thread19JoinHandle$LT$T$GT$4join21h11682743565137392356E"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24), %"1.std::thread::JoinHandle<i32>"* noalias nocapture dereferenceable(40) %self) unnamed_addr #0 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%1 = alloca { i8*, i32 }
%2 = getelementptr inbounds %"1.std::thread::JoinHandle<i32>", %"1.std::thread::JoinHandle<i32>"* %self, i32 0, i32 0
invoke void @"_ZN6thread18JoinInner$LT$T$GT$4join21h12827666485469152210E"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24) %0, %"1.std::thread::JoinInner<i32>"* dereferenceable(40) %2)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %entry-block
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.419017h4035594c4205a9a2E"(%"1.std::thread::JoinHandle<i32>"* %self)
ret void
unwind_custom_: ; preds = %entry-block
%3 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %3, { i8*, i32 }* %1
br label %clean_custom_
resume: ; preds = %clean_custom_
%4 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %4
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.419017h4035594c4205a9a2E"(%"1.std::thread::JoinHandle<i32>"* %self)
br label %resume
}
; Function Attrs: uwtable
define internal void @"_ZN6thread18JoinInner$LT$T$GT$4join21h12827666485469152210E"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24), %"1.std::thread::JoinInner<i32>"* dereferenceable(40)) unnamed_addr #0 {
entry-block:
%self = alloca %"1.std::thread::JoinInner<i32>"*
%2 = alloca %"1.std::sys::thread::Thread"
%3 = alloca %"2.core::option::Option<std::sys::thread::Thread>"
%4 = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"
%5 = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*
%overloaded_deref = alloca %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*
store %"1.std::thread::JoinInner<i32>"* %1, %"1.std::thread::JoinInner<i32>"** %self, align 8
%6 = load %"1.std::thread::JoinInner<i32>"*, %"1.std::thread::JoinInner<i32>"** %self, align 8, !nonnull !1
%7 = getelementptr inbounds %"1.std::thread::JoinInner<i32>", %"1.std::thread::JoinInner<i32>"* %6, i32 0, i32 0
call void @"_ZN6option15Option$LT$T$GT$4take21h14270089180734247991E"(%"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24) %3, %"2.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24) %7)
%8 = call i128 @"_ZN6option15Option$LT$T$GT$6unwrap20h5495264448180834250E"(%"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %3)
%9 = bitcast %"1.std::sys::thread::Thread"* %2 to i128*
store i128 %8, i128* %9, align 8
%10 = bitcast %"1.std::sys::thread::Thread"* %2 to i128*
%11 = load i128, i128* %10, align 8
call void @_ZN3sys6thread6Thread4join20h55cddc6f83ebed72r5xE(i128 %11)
%12 = load %"1.std::thread::JoinInner<i32>"*, %"1.std::thread::JoinInner<i32>"** %self, align 8, !nonnull !1
%13 = getelementptr inbounds %"1.std::thread::JoinInner<i32>", %"1.std::thread::JoinInner<i32>"* %12, i32 0, i32 2
%14 = getelementptr inbounds %"1.std::thread::Packet<i32>", %"1.std::thread::Packet<i32>"* %13, i32 0, i32 0
%15 = call dereferenceable(32) %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* @"_ZN3arc18Arc$LT$T$GT$.Deref5deref20h6721022230651172890E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %14)
store %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %15, %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %overloaded_deref, align 8
%16 = load %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*, %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %overloaded_deref, align 8, !nonnull !1
%17 = call %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* @"_ZN4cell19UnsafeCell$LT$T$GT$3get21h11435476738814544355E"(%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* dereferenceable(32) %16)
store %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %17, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %5, align 8
%18 = load %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %5, align 8
call void @"_ZN6option15Option$LT$T$GT$4take21h16940523288365809931E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32) %4, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32) %18)
call void @"_ZN6option15Option$LT$T$GT$6unwrap21h10865562211303294741E"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24) %0, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %4)
ret void
}
declare void @_ZN3sys6thread6Thread4join20h55cddc6f83ebed72r5xE(i128) unnamed_addr
; Function Attrs: inlinehint uwtable
define internal i128 @"_ZN6option15Option$LT$T$GT$6unwrap20h5495264448180834250E"(%"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %self) unnamed_addr #1 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%sret_slot = alloca %"1.std::sys::thread::Thread"
%val = alloca %"1.std::sys::thread::Thread"*
%0 = alloca { i8*, i32 }
%1 = getelementptr inbounds %"2.core::option::Option<std::sys::thread::Thread>", %"2.core::option::Option<std::sys::thread::Thread>"* %self, i32 0, i32 0
%2 = load i64, i64* %1, !range !2
switch i64 %2, label %match_else [
i64 1, label %match_case
i64 0, label %match_case2
]
case_body: ; preds = %match_case
%3 = load %"1.std::sys::thread::Thread"*, %"1.std::sys::thread::Thread"** %val
%4 = bitcast %"1.std::sys::thread::Thread"* %3 to i8*
%5 = bitcast %"1.std::sys::thread::Thread"* %sret_slot to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 16, i32 8, i1 false)
%6 = bitcast %"1.std::sys::thread::Thread"* %3 to i8*
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 16, i32 8, i1 false)
call void @_ZN24std..sys..thread..Thread9drop.419917h5b8cd2efe3ae67d8E(%"1.std::sys::thread::Thread"* %3)
%7 = bitcast %"1.std::sys::thread::Thread"* %3 to i8*
call void @llvm.memset.p0i8.i64(i8* %7, i8 29, i64 16, i32 8, i1 false)
br label %join
case_body1: ; preds = %match_case2
invoke void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @"_ZN6option15Option$LT$T$GT$6unwrap14_MSG_FILE_LINE20h9e0bce6065acf43cknOE")
to label %normal-return unwind label %unwind_custom_
match_else: ; preds = %entry-block
unreachable
match_case: ; preds = %entry-block
%8 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %self to { i64, %"1.std::sys::thread::Thread" }*
%9 = getelementptr inbounds { i64, %"1.std::sys::thread::Thread" }, { i64, %"1.std::sys::thread::Thread" }* %8, i32 0, i32 1
store %"1.std::sys::thread::Thread"* %9, %"1.std::sys::thread::Thread"** %val
br label %case_body
match_case2: ; preds = %entry-block
br label %case_body1
normal-return: ; preds = %case_body1
unreachable
unwind_custom_: ; preds = %case_body1
%10 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %10, { i8*, i32 }* %0
br label %clean_custom_
resume: ; preds = %clean_custom_
%11 = load { i8*, i32 }, { i8*, i32 }* %0
resume { i8*, i32 } %11
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.419617h3d14b30167ff51f9E"(%"2.core::option::Option<std::sys::thread::Thread>"* %self)
br label %resume
join: ; preds = %case_body
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.419617h3d14b30167ff51f9E"(%"2.core::option::Option<std::sys::thread::Thread>"* %self)
%12 = bitcast %"1.std::sys::thread::Thread"* %sret_slot to i128*
%13 = load i128, i128* %12, align 8
ret i128 %13
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN6option15Option$LT$T$GT$4take21h14270089180734247991E"(%"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24), %"2.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24)) unnamed_addr #1 {
entry-block:
%self = alloca %"2.core::option::Option<std::sys::thread::Thread>"*
%const = alloca %"2.core::option::Option<std::sys::thread::Thread>"
store %"2.core::option::Option<std::sys::thread::Thread>"* %1, %"2.core::option::Option<std::sys::thread::Thread>"** %self, align 8
%2 = load %"2.core::option::Option<std::sys::thread::Thread>"*, %"2.core::option::Option<std::sys::thread::Thread>"** %self, align 8, !nonnull !1
%3 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %const to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %3, i8* bitcast ({ i64, [16 x i8] }* @const4870 to i8*), i64 24, i32 8, i1 false)
call void @_ZN3mem7replace19h484396856383026124E(%"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24) %0, %"2.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24) %2, %"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %const)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3mem7replace19h484396856383026124E(%"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24), %"2.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24), %"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %src) unnamed_addr #1 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%dest = alloca %"2.core::option::Option<std::sys::thread::Thread>"*
%2 = alloca { i8*, i32 }
store %"2.core::option::Option<std::sys::thread::Thread>"* %1, %"2.core::option::Option<std::sys::thread::Thread>"** %dest, align 8
%3 = load %"2.core::option::Option<std::sys::thread::Thread>"*, %"2.core::option::Option<std::sys::thread::Thread>"** %dest, align 8, !nonnull !1
invoke void @_ZN3mem4swap21h12509685678426696215E(%"2.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24) %3, %"2.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24) %src)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %entry-block
%4 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %src to i8*
%5 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 24, i32 8, i1 false)
%6 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %src to i8*
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 24, i32 8, i1 false)
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.419617h3d14b30167ff51f9E"(%"2.core::option::Option<std::sys::thread::Thread>"* %src)
ret void
unwind_custom_: ; preds = %entry-block
%7 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %7, { i8*, i32 }* %2
br label %clean_custom_
resume: ; preds = %clean_custom_
%8 = load { i8*, i32 }, { i8*, i32 }* %2
resume { i8*, i32 } %8
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.419617h3d14b30167ff51f9E"(%"2.core::option::Option<std::sys::thread::Thread>"* %src)
br label %resume
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3mem4swap21h12509685678426696215E(%"2.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24), %"2.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24)) unnamed_addr #1 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%x = alloca %"2.core::option::Option<std::sys::thread::Thread>"*
%y = alloca %"2.core::option::Option<std::sys::thread::Thread>"*
%t = alloca %"2.core::option::Option<std::sys::thread::Thread>"
%arg = alloca %"2.core::option::Option<std::sys::thread::Thread>"
%2 = alloca { i8*, i32 }
store %"2.core::option::Option<std::sys::thread::Thread>"* %0, %"2.core::option::Option<std::sys::thread::Thread>"** %x, align 8
store %"2.core::option::Option<std::sys::thread::Thread>"* %1, %"2.core::option::Option<std::sys::thread::Thread>"** %y, align 8
call void @_ZN3mem13uninitialized20h6173170729105443562E(%"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24) %t)
%3 = load %"2.core::option::Option<std::sys::thread::Thread>"*, %"2.core::option::Option<std::sys::thread::Thread>"** %x, align 8, !nonnull !1
%4 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %t to i8*
%5 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %3 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %4, i8* %5, i64 24, i32 8, i1 false)
%6 = load %"2.core::option::Option<std::sys::thread::Thread>"*, %"2.core::option::Option<std::sys::thread::Thread>"** %y, align 8, !nonnull !1
%7 = load %"2.core::option::Option<std::sys::thread::Thread>"*, %"2.core::option::Option<std::sys::thread::Thread>"** %x, align 8, !nonnull !1
%8 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %7 to i8*
%9 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %6 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %8, i8* %9, i64 24, i32 8, i1 false)
%10 = load %"2.core::option::Option<std::sys::thread::Thread>"*, %"2.core::option::Option<std::sys::thread::Thread>"** %y, align 8, !nonnull !1
%11 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %10 to i8*
%12 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %t to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %11, i8* %12, i64 24, i32 8, i1 false)
%13 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %t to i8*
%14 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %arg to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %14, i8* %13, i64 24, i32 8, i1 false)
%15 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %t to i8*
call void @llvm.memset.p0i8.i64(i8* %15, i8 29, i64 24, i32 8, i1 false)
invoke void @_ZN3mem6forget20h4857370862858940521E(%"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %arg)
to label %normal-return unwind label %unwind_ast_101602_
normal-return: ; preds = %entry-block
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.419617h3d14b30167ff51f9E"(%"2.core::option::Option<std::sys::thread::Thread>"* %t)
ret void
unwind_ast_101602_: ; preds = %entry-block
%16 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %16, { i8*, i32 }* %2
br label %clean_ast_101602_
resume: ; preds = %clean_ast_101602_
%17 = load { i8*, i32 }, { i8*, i32 }* %2
resume { i8*, i32 } %17
clean_ast_101602_: ; preds = %unwind_ast_101602_
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.419617h3d14b30167ff51f9E"(%"2.core::option::Option<std::sys::thread::Thread>"* %t)
br label %resume
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3mem13uninitialized20h6173170729105443562E(%"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24)) unnamed_addr #1 {
entry-block:
ret void
}
; Function Attrs: uwtable
define internal void @_ZN3mem6forget20h4857370862858940521E(%"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %t) unnamed_addr #0 {
entry-block:
%arg = alloca %"2.core::option::Option<std::sys::thread::Thread>"
%0 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %t to i8*
%1 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %arg to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* %0, i64 24, i32 8, i1 false)
%2 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %t to i8*
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 24, i32 8, i1 false)
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.419617h3d14b30167ff51f9E"(%"2.core::option::Option<std::sys::thread::Thread>"* %t)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN6option15Option$LT$T$GT$6unwrap21h10865562211303294741E"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24), %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %self) unnamed_addr #1 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%val = alloca %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"*
%1 = alloca { i8*, i32 }
%2 = getelementptr inbounds %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>", %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %self, i32 0, i32 0
%3 = load i64, i64* %2, !range !2
switch i64 %3, label %match_else [
i64 1, label %match_case
i64 0, label %match_case2
]
case_body: ; preds = %match_case
%4 = load %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"*, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"** %val
%5 = bitcast %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %4 to i8*
%6 = bitcast %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %6, i8* %5, i64 24, i32 8, i1 false)
%7 = bitcast %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %4 to i8*
call void @llvm.memset.p0i8.i64(i8* %7, i8 29, i64 24, i32 8, i1 false)
call void @"_ZN109core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.457017h65983c191404b38bE"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %4)
%8 = bitcast %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %4 to i8*
call void @llvm.memset.p0i8.i64(i8* %8, i8 29, i64 24, i32 8, i1 false)
br label %join
case_body1: ; preds = %match_case2
invoke void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @"_ZN6option15Option$LT$T$GT$6unwrap14_MSG_FILE_LINE20h9e0bce6065acf43cknOE")
to label %normal-return unwind label %unwind_custom_
match_else: ; preds = %entry-block
unreachable
match_case: ; preds = %entry-block
%9 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %self to { i64, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }*
%10 = getelementptr inbounds { i64, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }, { i64, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }* %9, i32 0, i32 1
store %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %10, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"** %val
br label %case_body
match_case2: ; preds = %entry-block
br label %case_body1
normal-return: ; preds = %case_body1
unreachable
unwind_custom_: ; preds = %case_body1
%11 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %11, { i8*, i32 }* %1
br label %clean_custom_
resume: ; preds = %clean_custom_
%12 = load { i8*, i32 }, { i8*, i32 }* %1
resume { i8*, i32 } %12
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.456717he26f16b5b60edca1E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %self)
br label %resume
join: ; preds = %case_body
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.456717he26f16b5b60edca1E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %self)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @"_ZN6option15Option$LT$T$GT$4take21h16940523288365809931E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32), %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32)) unnamed_addr #1 {
entry-block:
%self = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*
%const = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"
store %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %1, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %self, align 8
%2 = load %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %self, align 8, !nonnull !1
%3 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %const to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %3, i8* bitcast ({ i64, [24 x i8] }* @const4871 to i8*), i64 32, i32 8, i1 false)
call void @_ZN3mem7replace21h18087666909015374402E(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32) %0, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32) %2, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %const)
ret void
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3mem7replace21h18087666909015374402E(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32), %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32), %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %src) unnamed_addr #1 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%dest = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*
%2 = alloca { i8*, i32 }
store %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %1, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %dest, align 8
%3 = load %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %dest, align 8, !nonnull !1
invoke void @_ZN3mem4swap20h6803638237795650003E(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32) %3, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32) %src)
to label %normal-return unwind label %unwind_custom_
normal-return: ; preds = %entry-block
%4 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %src to i8*
%5 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 32, i32 8, i1 false)
%6 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %src to i8*
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 32, i32 8, i1 false)
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.456717he26f16b5b60edca1E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %src)
ret void
unwind_custom_: ; preds = %entry-block
%7 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %7, { i8*, i32 }* %2
br label %clean_custom_
resume: ; preds = %clean_custom_
%8 = load { i8*, i32 }, { i8*, i32 }* %2
resume { i8*, i32 } %8
clean_custom_: ; preds = %unwind_custom_
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.456717he26f16b5b60edca1E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %src)
br label %resume
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3mem4swap20h6803638237795650003E(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32), %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32)) unnamed_addr #1 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality {
entry-block:
%x = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*
%y = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*
%t = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"
%arg = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"
%2 = alloca { i8*, i32 }
store %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %0, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %x, align 8
store %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %1, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %y, align 8
call void @_ZN3mem13uninitialized21h16093885106019947627E(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32) %t)
%3 = load %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %x, align 8, !nonnull !1
%4 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8*
%5 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %3 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %4, i8* %5, i64 32, i32 8, i1 false)
%6 = load %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %y, align 8, !nonnull !1
%7 = load %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %x, align 8, !nonnull !1
%8 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %7 to i8*
%9 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %6 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %8, i8* %9, i64 32, i32 8, i1 false)
%10 = load %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %y, align 8, !nonnull !1
%11 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %10 to i8*
%12 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %11, i8* %12, i64 32, i32 8, i1 false)
%13 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8*
%14 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %arg to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %14, i8* %13, i64 32, i32 8, i1 false)
%15 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8*
call void @llvm.memset.p0i8.i64(i8* %15, i8 29, i64 32, i32 8, i1 false)
invoke void @_ZN3mem6forget21h10110782875855699555E(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %arg)
to label %normal-return unwind label %unwind_ast_101602_
normal-return: ; preds = %entry-block
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.456717he26f16b5b60edca1E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t)
ret void
unwind_ast_101602_: ; preds = %entry-block
%16 = landingpad { i8*, i32 }
cleanup
store { i8*, i32 } %16, { i8*, i32 }* %2
br label %clean_ast_101602_
resume: ; preds = %clean_ast_101602_
%17 = load { i8*, i32 }, { i8*, i32 }* %2
resume { i8*, i32 } %17
clean_ast_101602_: ; preds = %unwind_ast_101602_
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.456717he26f16b5b60edca1E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t)
br label %resume
}
; Function Attrs: inlinehint uwtable
define internal void @_ZN3mem13uninitialized21h16093885106019947627E(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32)) unnamed_addr #1 {
entry-block:
ret void
}
; Function Attrs: uwtable
define internal void @_ZN3mem6forget21h10110782875855699555E(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %t) unnamed_addr #0 {
entry-block:
%arg = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"
%0 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8*
%1 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %arg to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* %0, i64 32, i32 8, i1 false)
%2 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8*
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 32, i32 8, i1 false)
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.456717he26f16b5b60edca1E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t)
ret void
}
declare void @_ZN2io5stdio6_print20h6af5e30262835244TghE(%"2.core::fmt::Arguments"* noalias nocapture dereferenceable(48)) unnamed_addr
; Function Attrs: uwtable
define internal void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new20h7413601074852004310E"(%"2.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16), i32* noalias readonly dereferenceable(4), i8 (i32*, %"2.core::fmt::Formatter"*)*) unnamed_addr #0 {
entry-block:
%x = alloca i32*
%f = alloca i8 (i32*, %"2.core::fmt::Formatter"*)*
store i32* %1, i32** %x, align 8
store i8 (i32*, %"2.core::fmt::Formatter"*)* %2, i8 (i32*, %"2.core::fmt::Formatter"*)** %f, align 8
%3 = getelementptr inbounds %"2.core::fmt::ArgumentV1", %"2.core::fmt::ArgumentV1"* %0, i32 0, i32 1
%4 = load i8 (i32*, %"2.core::fmt::Formatter"*)*, i8 (i32*, %"2.core::fmt::Formatter"*)** %f, align 8
%5 = bitcast i8 (i32*, %"2.core::fmt::Formatter"*)* %4 to i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)*
store i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* %5, i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)** %3
%6 = getelementptr inbounds %"2.core::fmt::ArgumentV1", %"2.core::fmt::ArgumentV1"* %0, i32 0, i32 0
%7 = load i32*, i32** %x, align 8, !nonnull !1
%8 = bitcast i32* %7 to %"2.core::fmt::Void"*
store %"2.core::fmt::Void"* %8, %"2.core::fmt::Void"** %6
ret void
}
declare i8 @_ZN3fmt3num16i32.fmt..Display3fmt20hc117e0f17c173be6gIVE(i32* noalias readonly dereferenceable(4), %"2.core::fmt::Formatter"* dereferenceable(96)) unnamed_addr
define i64 @main(i64, i8**) unnamed_addr {
top:
%2 = call i64 @_ZN2rt10lang_start20h12a24d0358e0b426GVyE(i8* bitcast (void ()* @_ZN4main20hee0a51470adedc0feaaE to i8*), i64 %0, i8** %1)
ret i64 %2
}
declare i64 @_ZN2rt10lang_start20h12a24d0358e0b426GVyE(i8*, i64, i8**) unnamed_addr
attributes #0 = { uwtable }
attributes #1 = { inlinehint uwtable }
attributes #2 = { argmemonly nounwind }
attributes #3 = { nounwind }
attributes #4 = { cold noinline noreturn }
attributes #5 = { noinline uwtable }
attributes #6 = { nounwind readnone }
attributes #7 = { cold noinline noreturn uwtable }
attributes #8 = { noreturn nounwind }
!0 = !{i8 0, i8 2}
!1 = !{}
!2 = !{i64 0, i64 2}
!3 = !{i8 0, i8 5}
!4 = !{!5}
!5 = distinct !{!5, !6, !"_ZN3ptr4read21h14041778955621802318E: argument 0"}
!6 = distinct !{!6, !"_ZN3ptr4read21h14041778955621802318E"}
!7 = !{!8}
!8 = distinct !{!8, !9, !"_ZN5boxed12Box$LT$T$GT$3new20h9153685487804326652E: %x"}
!9 = distinct !{!9, !"_ZN5boxed12Box$LT$T$GT$3new20h9153685487804326652E"}
!10 = !{i32 0, i32 2}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment