; ModuleID = 'autocfg_c25f6bba2a1d55b9_1.987d93ce0ce1f744-cgu.0' source_filename = "autocfg_c25f6bba2a1d55b9_1.987d93ce0ce1f744-cgu.0" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" %"core::fmt::rt::Argument<'_>" = type { %"core::fmt::rt::ArgumentType<'_>" } %"core::fmt::rt::ArgumentType<'_>" = type { ptr, [1 x i64] } @alloc_fad0cd83b7d1858a846a172eb260e593 = private unnamed_addr constant [42 x i8] c"is_aligned_to: align is not a power-of-two", align 1 @alloc_e92e94d0ff530782b571cfd99ec66aef = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @alloc_fad0cd83b7d1858a846a172eb260e593, [8 x i8] c"*\00\00\00\00\00\00\00" }>, align 8 @anon.fd919570bf472bb1e3eb5f385dab5e19.0 = private unnamed_addr constant <{ [8 x i8], [8 x i8] }> <{ [8 x i8] zeroinitializer, [8 x i8] undef }>, align 8 @alloc_c73d06b79ffecabc7277e3a0cdd09f4e = private unnamed_addr constant [81 x i8] c"/rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library/core/src/ptr/const_ptr.rs", align 1 @alloc_94e6de0b1efd5b5725fd5e8cc529e4c6 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c73d06b79ffecabc7277e3a0cdd09f4e, [16 x i8] c"Q\00\00\00\00\00\00\00\C4\05\00\00\0D\00\00\00" }>, align 8 @alloc_bd3468a7b96187f70c1ce98a3e7a63bf = private unnamed_addr constant [283 x i8] c"unsafe precondition(s) violated: ptr::copy_nonoverlapping requires that both pointer arguments are aligned and non-null and the specified memory ranges do not overlap\0A\0AThis indicates a bug in the program. This Undefined Behavior check is optional, and cannot be relied on for safety.", align 1 @alloc_64e308ef4babfeb8b6220184de794a17 = private unnamed_addr constant [221 x i8] c"unsafe precondition(s) violated: hint::assert_unchecked must never be called when the condition is false\0A\0AThis indicates a bug in the program. This Undefined Behavior check is optional, and cannot be relied on for safety.", align 1 @alloc_763310d78c99c2c1ad3f8a9821e942f3 = private unnamed_addr constant [61 x i8] c"is_nonoverlapping: `size_of::() * count` overflows a usize", align 1 @alloc_be86fd5f2fad45390a0d9a9b1b28d869 = private unnamed_addr constant [74 x i8] c"/rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library/alloc/src/slice.rs", align 1 @alloc_062f2f5c2e6e6bcbdb972c0074175cfa = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_be86fd5f2fad45390a0d9a9b1b28d869, [16 x i8] c"J\00\00\00\00\00\00\00\BE\01\00\00\1D\00\00\00" }>, align 8 @alloc_eab5d04767146d7d9b93b60d28ef530a = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr inttoptr (i64 1 to ptr), [8 x i8] zeroinitializer }>, align 8 @alloc_53973d2fe29b4adba8bb7390b5678745 = private unnamed_addr constant [8 x i8] zeroinitializer, align 8 ; core::intrinsics::copy_nonoverlapping::precondition_check ; Function Attrs: inlinehint nounwind nonlazybind uwtable define internal void @_ZN4core10intrinsics19copy_nonoverlapping18precondition_check17hf25d5ce1d671a543E(ptr %src, ptr %dst, i64 %size, i64 %align, i64 %count) unnamed_addr #0 personality ptr @rust_eh_personality { start: %0 = alloca [4 x i8], align 4 %_26 = alloca [48 x i8], align 8 %_21 = alloca [4 x i8], align 4 %_20 = alloca [8 x i8], align 8 %_19 = alloca [8 x i8], align 8 %_18 = alloca [8 x i8], align 8 %_17 = alloca [48 x i8], align 8 %is_zst = alloca [1 x i8], align 1 %align1 = alloca [8 x i8], align 8 %zero_size = alloca [1 x i8], align 1 %1 = icmp eq i64 %count, 0 br i1 %1, label %bb1, label %bb2 bb1: ; preds = %start store i8 1, ptr %zero_size, align 1 store i64 %align, ptr %align1, align 8 %2 = load i8, ptr %zero_size, align 1 %3 = trunc nuw i8 %2 to i1 %4 = zext i1 %3 to i8 store i8 %4, ptr %is_zst, align 1 %5 = call i64 @llvm.ctpop.i64(i64 %align) %6 = trunc i64 %5 to i32 store i32 %6, ptr %_21, align 4 %7 = load i32, ptr %_21, align 4 %8 = icmp eq i32 %7, 1 br i1 %8, label %bb26, label %bb15 bb2: ; preds = %start %9 = icmp eq i64 %size, 0 %10 = zext i1 %9 to i8 store i8 %10, ptr %zero_size, align 1 store i64 %align, ptr %align1, align 8 %11 = load i8, ptr %zero_size, align 1 %12 = trunc nuw i8 %11 to i1 %13 = zext i1 %12 to i8 store i8 %13, ptr %is_zst, align 1 %14 = call i64 @llvm.ctpop.i64(i64 %align) %15 = trunc i64 %14 to i32 store i32 %15, ptr %_21, align 4 %16 = load i32, ptr %_21, align 4 %17 = icmp eq i32 %16, 1 br i1 %17, label %bb14, label %bb15 bb26: ; preds = %bb1 %18 = ptrtoint ptr %src to i64 store i64 %18, ptr %_19, align 8 %19 = sub i64 %align, 1 store i64 %19, ptr %_20, align 8 %20 = load i64, ptr %_19, align 8 %21 = load i64, ptr %_20, align 8 %22 = and i64 %20, %21 store i64 %22, ptr %_18, align 8 %23 = load i64, ptr %_18, align 8 %24 = icmp eq i64 %23, 0 br i1 %24, label %bb27, label %bb11 bb15: ; preds = %bb2, %bb1 store ptr @alloc_e92e94d0ff530782b571cfd99ec66aef, ptr %_17, align 8 %25 = getelementptr inbounds i8, ptr %_17, i64 8 store i64 1, ptr %25, align 8 %26 = load ptr, ptr @anon.fd919570bf472bb1e3eb5f385dab5e19.0, align 8 %27 = load i64, ptr getelementptr inbounds (i8, ptr @anon.fd919570bf472bb1e3eb5f385dab5e19.0, i64 8), align 8 %28 = getelementptr inbounds i8, ptr %_17, i64 32 store ptr %26, ptr %28, align 8 %29 = getelementptr inbounds i8, ptr %28, i64 8 store i64 %27, ptr %29, align 8 %30 = getelementptr inbounds i8, ptr %_17, i64 16 store ptr inttoptr (i64 8 to ptr), ptr %30, align 8 %31 = getelementptr inbounds i8, ptr %30, i64 8 store i64 0, ptr %31, align 8 ; invoke core::panicking::panic_fmt invoke void @_ZN4core9panicking9panic_fmt17hc8737e8cca20a7c8E(ptr align 8 %_17, ptr align 8 @alloc_94e6de0b1efd5b5725fd5e8cc529e4c6) #11 to label %unreachable unwind label %terminate bb27: ; preds = %bb26 br label %bb12 bb11: ; preds = %bb14, %bb26 br label %bb6 bb12: ; preds = %bb10, %bb27 br label %bb3 bb14: ; preds = %bb2 %32 = ptrtoint ptr %src to i64 store i64 %32, ptr %_19, align 8 %33 = sub i64 %align, 1 store i64 %33, ptr %_20, align 8 %34 = load i64, ptr %_19, align 8 %35 = load i64, ptr %_20, align 8 %36 = and i64 %34, %35 store i64 %36, ptr %_18, align 8 %37 = load i64, ptr %_18, align 8 %38 = icmp eq i64 %37, 0 br i1 %38, label %bb10, label %bb11 bb10: ; preds = %bb14 %39 = load i8, ptr %is_zst, align 1 %40 = trunc nuw i8 %39 to i1 br i1 %40, label %bb12, label %bb13 bb13: ; preds = %bb10 %41 = load i64, ptr %_19, align 8 %_15 = icmp eq i64 %41, 0 %_8 = xor i1 %_15, true br i1 %_8, label %bb3, label %bb6 bb6: ; preds = %bb11, %bb13 br label %bb7 bb3: ; preds = %bb12, %bb13 %42 = load i8, ptr %zero_size, align 1 %is_zst2 = trunc nuw i8 %42 to i1 %43 = call i64 @llvm.ctpop.i64(i64 %align) %44 = trunc i64 %43 to i32 store i32 %44, ptr %0, align 4 %_29 = load i32, ptr %0, align 4 %45 = icmp eq i32 %_29, 1 br i1 %45, label %bb21, label %bb22 bb21: ; preds = %bb3 %_28 = ptrtoint ptr %dst to i64 %46 = load i64, ptr %_20, align 8 %_27 = and i64 %_28, %46 %47 = icmp eq i64 %_27, 0 br i1 %47, label %bb17, label %bb18 bb22: ; preds = %bb3 store ptr @alloc_e92e94d0ff530782b571cfd99ec66aef, ptr %_26, align 8 %48 = getelementptr inbounds i8, ptr %_26, i64 8 store i64 1, ptr %48, align 8 %49 = load ptr, ptr @anon.fd919570bf472bb1e3eb5f385dab5e19.0, align 8 %50 = load i64, ptr getelementptr inbounds (i8, ptr @anon.fd919570bf472bb1e3eb5f385dab5e19.0, i64 8), align 8 %51 = getelementptr inbounds i8, ptr %_26, i64 32 store ptr %49, ptr %51, align 8 %52 = getelementptr inbounds i8, ptr %51, i64 8 store i64 %50, ptr %52, align 8 %53 = getelementptr inbounds i8, ptr %_26, i64 16 store ptr inttoptr (i64 8 to ptr), ptr %53, align 8 %54 = getelementptr inbounds i8, ptr %53, i64 8 store i64 0, ptr %54, align 8 ; invoke core::panicking::panic_fmt invoke void @_ZN4core9panicking9panic_fmt17hc8737e8cca20a7c8E(ptr align 8 %_26, ptr align 8 @alloc_94e6de0b1efd5b5725fd5e8cc529e4c6) #11 to label %unreachable unwind label %terminate bb17: ; preds = %bb21 br i1 %is_zst2, label %bb19, label %bb20 bb18: ; preds = %bb21 br label %bb5 bb20: ; preds = %bb17 %_24 = icmp eq i64 %_28, 0 %_11 = xor i1 %_24, true br i1 %_11, label %bb4, label %bb5 bb19: ; preds = %bb17 br label %bb4 bb5: ; preds = %bb18, %bb20 br label %bb7 bb4: ; preds = %bb19, %bb20 ; invoke core::ub_checks::maybe_is_nonoverlapping::runtime %_6 = invoke zeroext i1 @_ZN4core9ub_checks23maybe_is_nonoverlapping7runtime17ha85fe5701b6338ccE(ptr %src, ptr %dst, i64 %size, i64 %count) to label %bb24 unwind label %terminate terminate: ; preds = %bb15, %bb22, %bb4 %55 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer %56 = extractvalue { ptr, i32 } %55, 0 %57 = extractvalue { ptr, i32 } %55, 1 ; call core::panicking::panic_cannot_unwind call void @_ZN4core9panicking19panic_cannot_unwind17hb8732afd89555502E() #12 unreachable bb24: ; preds = %bb4 br i1 %_6, label %bb9, label %bb8 bb8: ; preds = %bb7, %bb24 ; call core::panicking::panic_nounwind call void @_ZN4core9panicking14panic_nounwind17h0c59dc9f7f043eadE(ptr align 1 @alloc_bd3468a7b96187f70c1ce98a3e7a63bf, i64 283) #13 unreachable bb9: ; preds = %bb24 ret void bb7: ; preds = %bb6, %bb5 br label %bb8 unreachable: ; preds = %bb15, %bb22 unreachable } ; core::intrinsics::cold_path ; Function Attrs: cold nounwind nonlazybind uwtable define internal void @_ZN4core10intrinsics9cold_path17h254ea27ba7b11b70E() unnamed_addr #1 { start: ret void } ; core::fmt::rt::::new_v1 ; Function Attrs: inlinehint nonlazybind uwtable define void @"_ZN4core3fmt2rt38_$LT$impl$u20$core..fmt..Arguments$GT$6new_v117h8013113b96975fd8E"(ptr sret([48 x i8]) align 8 %_0, ptr align 8 %pieces, ptr align 8 %args) unnamed_addr #2 { start: store ptr %pieces, ptr %_0, align 8 %0 = getelementptr inbounds i8, ptr %_0, i64 8 store i64 1, ptr %0, align 8 %1 = load ptr, ptr @anon.fd919570bf472bb1e3eb5f385dab5e19.0, align 8 %2 = load i64, ptr getelementptr inbounds (i8, ptr @anon.fd919570bf472bb1e3eb5f385dab5e19.0, i64 8), align 8 %3 = getelementptr inbounds i8, ptr %_0, i64 32 store ptr %1, ptr %3, align 8 %4 = getelementptr inbounds i8, ptr %3, i64 8 store i64 %2, ptr %4, align 8 %5 = getelementptr inbounds i8, ptr %_0, i64 16 store ptr %args, ptr %5, align 8 %6 = getelementptr inbounds i8, ptr %5, i64 8 store i64 1, ptr %6, align 8 ret void } ; core::fmt::rt::Argument::new_lower_exp ; Function Attrs: inlinehint nonlazybind uwtable define void @_ZN4core3fmt2rt8Argument13new_lower_exp17hde2abff0be098381E(ptr sret([16 x i8]) align 8 %_0, ptr align 8 %x) unnamed_addr #2 { start: %_2 = alloca [16 x i8], align 8 store ptr %x, ptr %_2, align 8 %0 = getelementptr inbounds i8, ptr %_2, i64 8 store ptr @"_ZN4core3fmt3num3imp55_$LT$impl$u20$core..fmt..LowerExp$u20$for$u20$isize$GT$3fmt17hbd493c6b77068934E", ptr %0, align 8 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_0, ptr align 8 %_2, i64 16, i1 false) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17he9aed9eb3b858abbE(ptr sret([24 x i8]) align 8 %_0, ptr align 1 %0, i64 %1) unnamed_addr #2 { start: %_2 = alloca [16 x i8], align 8 store ptr %0, ptr %_2, align 8 %2 = getelementptr inbounds i8, ptr %_2, i64 8 store i64 %1, ptr %2, align 8 %3 = load ptr, ptr %_2, align 8 %4 = getelementptr inbounds i8, ptr %_2, i64 8 %5 = load i64, ptr %4, align 8 ; call alloc::str::::to_owned call void @"_ZN5alloc3str56_$LT$impl$u20$alloc..borrow..ToOwned$u20$for$u20$str$GT$8to_owned17h92b6d106473458b4E"(ptr sret([24 x i8]) align 8 %_0, ptr align 1 %3, i64 %5) ret void } ; core::ptr::drop_in_place ; Function Attrs: nonlazybind uwtable define void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hd63cee946daf6eb8E"(ptr align 8 %_1) unnamed_addr #3 { start: ; call core::ptr::drop_in_place> call void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h02a493d7affa8f9bE"(ptr align 8 %_1) ret void } ; core::ptr::drop_in_place> ; Function Attrs: nonlazybind uwtable define void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h02a493d7affa8f9bE"(ptr align 8 %_1) unnamed_addr #3 personality ptr @rust_eh_personality { start: %0 = alloca [16 x i8], align 8 ; invoke as core::ops::drop::Drop>::drop invoke void @"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h3cad85dcbc7cf70aE"(ptr align 8 %_1) to label %bb4 unwind label %cleanup bb3: ; preds = %cleanup ; invoke core::ptr::drop_in_place> invoke void @"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17hce7fe015fd98a09dE"(ptr align 8 %_1) #14 to label %bb1 unwind label %terminate cleanup: ; preds = %start %1 = landingpad { ptr, i32 } cleanup %2 = extractvalue { ptr, i32 } %1, 0 %3 = extractvalue { ptr, i32 } %1, 1 store ptr %2, ptr %0, align 8 %4 = getelementptr inbounds i8, ptr %0, i64 8 store i32 %3, ptr %4, align 8 br label %bb3 bb4: ; preds = %start ; call core::ptr::drop_in_place> call void @"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17hce7fe015fd98a09dE"(ptr align 8 %_1) ret void terminate: ; preds = %bb3 %5 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer %6 = extractvalue { ptr, i32 } %5, 0 %7 = extractvalue { ptr, i32 } %5, 1 ; call core::panicking::panic_in_cleanup call void @_ZN4core9panicking16panic_in_cleanup17h51d1753fd07771d1E() #12 unreachable bb1: ; preds = %bb3 %8 = load ptr, ptr %0, align 8 %9 = getelementptr inbounds i8, ptr %0, i64 8 %10 = load i32, ptr %9, align 8 %11 = insertvalue { ptr, i32 } poison, ptr %8, 0 %12 = insertvalue { ptr, i32 } %11, i32 %10, 1 resume { ptr, i32 } %12 } ; core::ptr::drop_in_place> ; Function Attrs: nonlazybind uwtable define void @"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17hce7fe015fd98a09dE"(ptr align 8 %_1) unnamed_addr #3 { start: ; call as core::ops::drop::Drop>::drop call void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h207b169ff2d583b0E"(ptr align 8 %_1) ret void } ; core::hint::assert_unchecked::precondition_check ; Function Attrs: inlinehint nounwind nonlazybind uwtable define internal void @_ZN4core4hint16assert_unchecked18precondition_check17h330a71462de6dbb6E(i1 zeroext %cond) unnamed_addr #0 { start: br i1 %cond, label %bb2, label %bb1 bb1: ; preds = %start ; call core::panicking::panic_nounwind call void @_ZN4core9panicking14panic_nounwind17h0c59dc9f7f043eadE(ptr align 1 @alloc_64e308ef4babfeb8b6220184de794a17, i64 221) #13 unreachable bb2: ; preds = %start ret void } ; core::option::Option::map_or_else ; Function Attrs: inlinehint nonlazybind uwtable define void @"_ZN4core6option15Option$LT$T$GT$11map_or_else17h096b43ba242a0b58E"(ptr sret([24 x i8]) align 8 %_0, ptr align 1 %0, i64 %1, ptr align 8 %default) unnamed_addr #2 personality ptr @rust_eh_personality { start: %2 = alloca [16 x i8], align 8 %_10 = alloca [1 x i8], align 1 %_9 = alloca [1 x i8], align 1 %self = alloca [16 x i8], align 8 store ptr %0, ptr %self, align 8 %3 = getelementptr inbounds i8, ptr %self, i64 8 store i64 %1, ptr %3, align 8 store i8 1, ptr %_10, align 1 store i8 1, ptr %_9, align 1 %4 = load ptr, ptr %self, align 8 %5 = getelementptr inbounds i8, ptr %self, i64 8 %6 = load i64, ptr %5, align 8 %7 = ptrtoint ptr %4 to i64 %8 = icmp eq i64 %7, 0 %_4 = select i1 %8, i64 0, i64 1 %9 = trunc nuw i64 %_4 to i1 br i1 %9, label %bb3, label %bb2 bb3: ; preds = %start %t.0 = load ptr, ptr %self, align 8 %10 = getelementptr inbounds i8, ptr %self, i64 8 %t.1 = load i64, ptr %10, align 8 store i8 0, ptr %_9, align 1 ; invoke core::ops::function::FnOnce::call_once invoke void @_ZN4core3ops8function6FnOnce9call_once17he9aed9eb3b858abbE(ptr sret([24 x i8]) align 8 %_0, ptr align 1 %t.0, i64 %t.1) to label %bb4 unwind label %cleanup bb2: ; preds = %start store i8 0, ptr %_10, align 1 ; invoke alloc::fmt::format::{{closure}} invoke void @"_ZN5alloc3fmt6format28_$u7b$$u7b$closure$u7d$$u7d$17hb06aa965ad17a4e7E"(ptr sret([24 x i8]) align 8 %_0, ptr align 8 %default) to label %bb5 unwind label %cleanup bb11: ; preds = %cleanup %11 = load i8, ptr %_9, align 1 %12 = trunc nuw i8 %11 to i1 br i1 %12, label %bb10, label %bb7 cleanup: ; preds = %bb3, %bb2 %13 = landingpad { ptr, i32 } cleanup %14 = extractvalue { ptr, i32 } %13, 0 %15 = extractvalue { ptr, i32 } %13, 1 store ptr %14, ptr %2, align 8 %16 = getelementptr inbounds i8, ptr %2, i64 8 store i32 %15, ptr %16, align 8 br label %bb11 bb5: ; preds = %bb2 br label %bb6 bb6: ; preds = %bb9, %bb4, %bb5 ret void bb4: ; preds = %bb3 %17 = load i8, ptr %_10, align 1 %18 = trunc nuw i8 %17 to i1 br i1 %18, label %bb9, label %bb6 bb9: ; preds = %bb4 br label %bb6 bb7: ; preds = %bb10, %bb11 %19 = load i8, ptr %_10, align 1 %20 = trunc nuw i8 %19 to i1 br i1 %20, label %bb12, label %bb8 bb10: ; preds = %bb11 br label %bb7 bb8: ; preds = %bb12, %bb7 %21 = load ptr, ptr %2, align 8 %22 = getelementptr inbounds i8, ptr %2, i64 8 %23 = load i32, ptr %22, align 8 %24 = insertvalue { ptr, i32 } poison, ptr %21, 0 %25 = insertvalue { ptr, i32 } %24, i32 %23, 1 resume { ptr, i32 } %25 bb12: ; preds = %bb7 br label %bb8 bb1: ; No predecessors! unreachable } ; core::ub_checks::maybe_is_nonoverlapping::runtime ; Function Attrs: inlinehint nonlazybind uwtable define internal zeroext i1 @_ZN4core9ub_checks23maybe_is_nonoverlapping7runtime17ha85fe5701b6338ccE(ptr %src, ptr %dst, i64 %size, i64 %count) unnamed_addr #2 { start: %diff = alloca [8 x i8], align 8 %_9 = alloca [16 x i8], align 8 %src_usize = ptrtoint ptr %src to i64 %dst_usize = ptrtoint ptr %dst to i64 %0 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %size, i64 %count) %_14.0 = extractvalue { i64, i1 } %0, 0 %_14.1 = extractvalue { i64, i1 } %0, 1 br i1 %_14.1, label %bb1, label %bb3 bb3: ; preds = %start %1 = getelementptr inbounds i8, ptr %_9, i64 8 store i64 %_14.0, ptr %1, align 8 store i64 1, ptr %_9, align 8 %2 = getelementptr inbounds i8, ptr %_9, i64 8 %size1 = load i64, ptr %2, align 8 %_22 = icmp ult i64 %src_usize, %dst_usize br i1 %_22, label %bb4, label %bb5 bb1: ; preds = %start ; call core::panicking::panic_nounwind call void @_ZN4core9panicking14panic_nounwind17h0c59dc9f7f043eadE(ptr align 1 @alloc_763310d78c99c2c1ad3f8a9821e942f3, i64 61) #13 unreachable bb5: ; preds = %bb3 %3 = sub i64 %src_usize, %dst_usize store i64 %3, ptr %diff, align 8 br label %bb6 bb4: ; preds = %bb3 %4 = sub i64 %dst_usize, %src_usize store i64 %4, ptr %diff, align 8 br label %bb6 bb6: ; preds = %bb4, %bb5 %_11 = load i64, ptr %diff, align 8 %_0 = icmp uge i64 %_11, %size1 ret i1 %_0 } ; alloc::fmt::format ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN5alloc3fmt6format17h0a7085bb177d57a0E(ptr sret([24 x i8]) align 8 %_0, ptr align 8 %args) unnamed_addr #2 { start: %_2 = alloca [16 x i8], align 8 %_6.0 = load ptr, ptr %args, align 8 %0 = getelementptr inbounds i8, ptr %args, i64 8 %_6.1 = load i64, ptr %0, align 8 %1 = getelementptr inbounds i8, ptr %args, i64 16 %_7.0 = load ptr, ptr %1, align 8 %2 = getelementptr inbounds i8, ptr %1, i64 8 %_7.1 = load i64, ptr %2, align 8 %3 = icmp eq i64 %_6.1, 0 br i1 %3, label %bb4, label %bb5 bb4: ; preds = %start %4 = icmp eq i64 %_7.1, 0 br i1 %4, label %bb8, label %bb3 bb5: ; preds = %start %5 = icmp eq i64 %_6.1, 1 br i1 %5, label %bb6, label %bb3 bb8: ; preds = %bb4 store ptr inttoptr (i64 1 to ptr), ptr %_2, align 8 %6 = getelementptr inbounds i8, ptr %_2, i64 8 store i64 0, ptr %6, align 8 br label %bb2 bb3: ; preds = %bb6, %bb5, %bb4 %7 = load ptr, ptr @anon.fd919570bf472bb1e3eb5f385dab5e19.0, align 8 %8 = load i64, ptr getelementptr inbounds (i8, ptr @anon.fd919570bf472bb1e3eb5f385dab5e19.0, i64 8), align 8 store ptr %7, ptr %_2, align 8 %9 = getelementptr inbounds i8, ptr %_2, i64 8 store i64 %8, ptr %9, align 8 br label %bb2 bb2: ; preds = %bb3, %bb7, %bb8 %10 = load ptr, ptr %_2, align 8 %11 = getelementptr inbounds i8, ptr %_2, i64 8 %12 = load i64, ptr %11, align 8 ; call core::option::Option::map_or_else call void @"_ZN4core6option15Option$LT$T$GT$11map_or_else17h096b43ba242a0b58E"(ptr sret([24 x i8]) align 8 %_0, ptr align 1 %10, i64 %12, ptr align 8 %args) ret void bb6: ; preds = %bb5 %13 = icmp eq i64 %_7.1, 0 br i1 %13, label %bb7, label %bb3 bb7: ; preds = %bb6 %s = getelementptr inbounds nuw { ptr, i64 }, ptr %_6.0, i64 0 %14 = getelementptr inbounds nuw { ptr, i64 }, ptr %_6.0, i64 0 %_12.0 = load ptr, ptr %14, align 8 %15 = getelementptr inbounds i8, ptr %14, i64 8 %_12.1 = load i64, ptr %15, align 8 store ptr %_12.0, ptr %_2, align 8 %16 = getelementptr inbounds i8, ptr %_2, i64 8 store i64 %_12.1, ptr %16, align 8 br label %bb2 } ; alloc::fmt::format::{{closure}} ; Function Attrs: inlinehint nonlazybind uwtable define void @"_ZN5alloc3fmt6format28_$u7b$$u7b$closure$u7d$$u7d$17hb06aa965ad17a4e7E"(ptr sret([24 x i8]) align 8 %_0, ptr align 8 %_1) unnamed_addr #2 { start: %_2 = alloca [48 x i8], align 8 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_2, ptr align 8 %_1, i64 48, i1 false) ; call alloc::fmt::format::format_inner call void @_ZN5alloc3fmt6format12format_inner17h8a62f782d788077eE(ptr sret([24 x i8]) align 8 %_0, ptr align 8 %_2) ret void } ; alloc::str::::to_owned ; Function Attrs: inlinehint nonlazybind uwtable define internal void @"_ZN5alloc3str56_$LT$impl$u20$alloc..borrow..ToOwned$u20$for$u20$str$GT$8to_owned17h92b6d106473458b4E"(ptr sret([24 x i8]) align 8 %_0, ptr align 1 %self.0, i64 %self.1) unnamed_addr #2 { start: %bytes = alloca [24 x i8], align 8 ; call ::to_vec_in::ConvertVec>::to_vec call void @"_ZN87_$LT$T$u20$as$u20$alloc..slice..$LT$impl$u20$$u5b$T$u5d$$GT$..to_vec_in..ConvertVec$GT$6to_vec17h7f36ec2cb81529edE"(ptr sret([24 x i8]) align 8 %bytes, ptr align 1 %self.0, i64 %self.1) call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_0, ptr align 8 %bytes, i64 24, i1 false) ret void } ; alloc::raw_vec::RawVecInner::with_capacity_in ; Function Attrs: inlinehint nonlazybind uwtable define { i64, ptr } @"_ZN5alloc7raw_vec20RawVecInner$LT$A$GT$16with_capacity_in17hff658bafb3d74ef3E"(i64 %capacity, i64 %elem_layout.0, i64 %elem_layout.1, ptr align 8 %0) unnamed_addr #2 { start: %self = alloca [8 x i8], align 8 %elem_layout = alloca [16 x i8], align 8 %this = alloca [16 x i8], align 8 %_4 = alloca [24 x i8], align 8 ; call alloc::raw_vec::RawVecInner::try_allocate_in call void @"_ZN5alloc7raw_vec20RawVecInner$LT$A$GT$15try_allocate_in17h4f7e38587b6f6112E"(ptr sret([24 x i8]) align 8 %_4, i64 %capacity, i1 zeroext false, i64 %elem_layout.0, i64 %elem_layout.1) %_5 = load i64, ptr %_4, align 8 %1 = trunc nuw i64 %_5 to i1 br i1 %1, label %bb3, label %bb4 bb3: ; preds = %start %2 = getelementptr inbounds i8, ptr %_4, i64 8 %err.0 = load i64, ptr %2, align 8 %3 = getelementptr inbounds i8, ptr %2, i64 8 %err.1 = load i64, ptr %3, align 8 ; call alloc::raw_vec::handle_error call void @_ZN5alloc7raw_vec12handle_error17h891236e332f51b87E(i64 %err.0, i64 %err.1, ptr align 8 %0) #11 unreachable bb4: ; preds = %start %4 = getelementptr inbounds i8, ptr %_4, i64 8 %5 = load i64, ptr %4, align 8 %6 = getelementptr inbounds i8, ptr %4, i64 8 %7 = load ptr, ptr %6, align 8 store i64 %5, ptr %this, align 8 %8 = getelementptr inbounds i8, ptr %this, i64 8 store ptr %7, ptr %8, align 8 store i64 %elem_layout.0, ptr %elem_layout, align 8 %9 = getelementptr inbounds i8, ptr %elem_layout, i64 8 store i64 %elem_layout.1, ptr %9, align 8 %10 = icmp eq i64 %elem_layout.1, 0 br i1 %10, label %bb6, label %bb7 bb6: ; preds = %bb4 store i64 -1, ptr %self, align 8 br label %bb5 bb7: ; preds = %bb4 %self1 = load i64, ptr %this, align 8 store i64 %self1, ptr %self, align 8 br label %bb5 bb5: ; preds = %bb7, %bb6 %11 = load i64, ptr %self, align 8 %_13 = sub i64 %11, 0 %_8 = icmp ugt i64 %capacity, %_13 %cond = xor i1 %_8, true br label %bb8 bb8: ; preds = %bb5 ; call core::hint::assert_unchecked::precondition_check call void @_ZN4core4hint16assert_unchecked18precondition_check17h330a71462de6dbb6E(i1 zeroext %cond) #15 br label %bb9 bb9: ; preds = %bb8 %_0.0 = load i64, ptr %this, align 8 %12 = getelementptr inbounds i8, ptr %this, i64 8 %_0.1 = load ptr, ptr %12, align 8 %13 = insertvalue { i64, ptr } poison, i64 %_0.0, 0 %14 = insertvalue { i64, ptr } %13, ptr %_0.1, 1 ret { i64, ptr } %14 bb2: ; No predecessors! unreachable } ; ::to_vec_in::ConvertVec>::to_vec ; Function Attrs: inlinehint nonlazybind uwtable define void @"_ZN87_$LT$T$u20$as$u20$alloc..slice..$LT$impl$u20$$u5b$T$u5d$$GT$..to_vec_in..ConvertVec$GT$6to_vec17h7f36ec2cb81529edE"(ptr sret([24 x i8]) align 8 %_0, ptr align 1 %s.0, i64 %s.1) unnamed_addr #2 { start: %v = alloca [24 x i8], align 8 ; call alloc::raw_vec::RawVecInner::with_capacity_in %0 = call { i64, ptr } @"_ZN5alloc7raw_vec20RawVecInner$LT$A$GT$16with_capacity_in17hff658bafb3d74ef3E"(i64 %s.1, i64 1, i64 1, ptr align 8 @alloc_062f2f5c2e6e6bcbdb972c0074175cfa) %_10.0 = extractvalue { i64, ptr } %0, 0 %_10.1 = extractvalue { i64, ptr } %0, 1 store i64 %_10.0, ptr %v, align 8 %1 = getelementptr inbounds i8, ptr %v, i64 8 store ptr %_10.1, ptr %1, align 8 %2 = getelementptr inbounds i8, ptr %v, i64 16 store i64 0, ptr %2, align 8 %3 = getelementptr inbounds i8, ptr %v, i64 8 %_12 = load ptr, ptr %3, align 8 br label %bb2 bb2: ; preds = %start ; call core::intrinsics::copy_nonoverlapping::precondition_check call void @_ZN4core10intrinsics19copy_nonoverlapping18precondition_check17hf25d5ce1d671a543E(ptr %s.0, ptr %_12, i64 1, i64 1, i64 %s.1) #15 br label %bb4 bb4: ; preds = %bb2 %4 = mul i64 %s.1, 1 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_12, ptr align 1 %s.0, i64 %4, i1 false) %5 = getelementptr inbounds i8, ptr %v, i64 16 store i64 %s.1, ptr %5, align 8 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_0, ptr align 8 %v, i64 24, i1 false) ret void } ; autocfg_c25f6bba2a1d55b9_1::probe ; Function Attrs: nonlazybind uwtable define void @_ZN26autocfg_c25f6bba2a1d55b9_15probe17hd93ee2127fdf1bd2E() unnamed_addr #3 { start: %_7 = alloca [16 x i8], align 8 %_6 = alloca [16 x i8], align 8 %_3 = alloca [48 x i8], align 8 %_2 = alloca [24 x i8], align 8 %_1 = alloca [24 x i8], align 8 ; call core::fmt::rt::Argument::new_lower_exp call void @_ZN4core3fmt2rt8Argument13new_lower_exp17hde2abff0be098381E(ptr sret([16 x i8]) align 8 %_7, ptr align 8 @alloc_53973d2fe29b4adba8bb7390b5678745) %0 = getelementptr inbounds nuw %"core::fmt::rt::Argument<'_>", ptr %_6, i64 0 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %_7, i64 16, i1 false) ; call core::fmt::rt::::new_v1 call void @"_ZN4core3fmt2rt38_$LT$impl$u20$core..fmt..Arguments$GT$6new_v117h8013113b96975fd8E"(ptr sret([48 x i8]) align 8 %_3, ptr align 8 @alloc_eab5d04767146d7d9b93b60d28ef530a, ptr align 8 %_6) ; call alloc::fmt::format call void @_ZN5alloc3fmt6format17h0a7085bb177d57a0E(ptr sret([24 x i8]) align 8 %_2, ptr align 8 %_3) call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_1, ptr align 8 %_2, i64 24, i1 false) ; call core::ptr::drop_in_place call void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hd63cee946daf6eb8E"(ptr align 8 %_1) ret void } ; Function Attrs: nounwind nonlazybind uwtable declare i32 @rust_eh_personality(i32, i32, i64, ptr, ptr) unnamed_addr #4 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.ctpop.i64(i64) #5 ; core::panicking::panic_cannot_unwind ; Function Attrs: cold minsize noinline noreturn nounwind nonlazybind optsize uwtable declare void @_ZN4core9panicking19panic_cannot_unwind17hb8732afd89555502E() unnamed_addr #6 ; core::panicking::panic_fmt ; Function Attrs: cold noinline noreturn nonlazybind uwtable declare void @_ZN4core9panicking9panic_fmt17hc8737e8cca20a7c8E(ptr align 8, ptr align 8) unnamed_addr #7 ; core::panicking::panic_nounwind ; Function Attrs: cold noinline noreturn nounwind nonlazybind uwtable declare void @_ZN4core9panicking14panic_nounwind17h0c59dc9f7f043eadE(ptr align 1, i64) unnamed_addr #8 ; core::fmt::num::imp::::fmt ; Function Attrs: nonlazybind uwtable declare zeroext i1 @"_ZN4core3fmt3num3imp55_$LT$impl$u20$core..fmt..LowerExp$u20$for$u20$isize$GT$3fmt17hbd493c6b77068934E"(ptr align 8, ptr align 8) unnamed_addr #3 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #9 ; as core::ops::drop::Drop>::drop ; Function Attrs: nonlazybind uwtable declare void @"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h3cad85dcbc7cf70aE"(ptr align 8) unnamed_addr #3 ; core::panicking::panic_in_cleanup ; Function Attrs: cold minsize noinline noreturn nounwind nonlazybind optsize uwtable declare void @_ZN4core9panicking16panic_in_cleanup17h51d1753fd07771d1E() unnamed_addr #6 ; as core::ops::drop::Drop>::drop ; Function Attrs: nonlazybind uwtable declare void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h207b169ff2d583b0E"(ptr align 8) unnamed_addr #3 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #5 ; alloc::fmt::format::format_inner ; Function Attrs: nonlazybind uwtable declare void @_ZN5alloc3fmt6format12format_inner17h8a62f782d788077eE(ptr sret([24 x i8]) align 8, ptr align 8) unnamed_addr #3 ; alloc::raw_vec::RawVecInner::try_allocate_in ; Function Attrs: nonlazybind uwtable declare void @"_ZN5alloc7raw_vec20RawVecInner$LT$A$GT$15try_allocate_in17h4f7e38587b6f6112E"(ptr sret([24 x i8]) align 8, i64, i1 zeroext, i64, i64) unnamed_addr #3 ; alloc::raw_vec::handle_error ; Function Attrs: cold minsize noreturn nonlazybind optsize uwtable declare void @_ZN5alloc7raw_vec12handle_error17h891236e332f51b87E(i64, i64, ptr align 8) unnamed_addr #10 attributes #0 = { inlinehint nounwind nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #1 = { cold nounwind nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #2 = { inlinehint nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #3 = { nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #4 = { nounwind nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #6 = { cold minsize noinline noreturn nounwind nonlazybind optsize uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #7 = { cold noinline noreturn nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #8 = { cold noinline noreturn nounwind nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #10 = { cold minsize noreturn nonlazybind optsize uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #11 = { noreturn } attributes #12 = { cold noreturn nounwind } attributes #13 = { noreturn nounwind } attributes #14 = { cold } attributes #15 = { nounwind } !llvm.module.flags = !{!0, !1} !llvm.ident = !{!2} !0 = !{i32 8, !"PIC Level", i32 2} !1 = !{i32 2, !"RtLibUseGOT", i32 1} !2 = !{!"rustc version 1.88.0 (6b00bc388 2025-06-23)"}