Thanks for using Compiler Explorer
Sponsors
Jakt
C++
Ada
Algol68
Analysis
Android Java
Android Kotlin
Assembly
C
C3
Carbon
C with Coccinelle
C++ with Coccinelle
C++ (Circle)
CIRCT
Clean
Clojure
CMake
CMakeScript
COBOL
C++ for OpenCL
MLIR
Cppx
Cppx-Blue
Cppx-Gold
Cpp2-cppfront
Crystal
C#
CUDA C++
D
Dart
Elixir
Erlang
Fortran
F#
GLSL
Go
Haskell
HLSL
Helion
Hook
Hylo
IL
ispc
Java
Julia
Kotlin
LLVM IR
LLVM MIR
Modula-2
Mojo
Nim
Numba
Nix
Objective-C
Objective-C++
OCaml
Odin
OpenCL C
Pascal
Pony
PTX
Python
Racket
Raku
Ruby
Rust
Sail
Snowball
Scala
Slang
Solidity
Spice
SPIR-V
Swift
LLVM TableGen
Toit
Triton
TypeScript Native
V
Vala
Visual Basic
Vyper
WASM
Yul (Solidity IR)
Zig
Javascript
GIMPLE
Ygen
sway
llvm source #1
Output
Compile to binary object
Link to binary
Execute the code
Intel asm syntax
Demangle identifiers
Verbose demangling
Filters
Unused labels
Library functions
Directives
Comments
Horizontal whitespace
Debug intrinsics
Compiler
clang (assertions trunk)
clang (trunk)
clang 10.0.0
clang 10.0.1
clang 11.0.0
clang 11.0.1
clang 12.0.0
clang 12.0.1
clang 13.0.0
clang 14.0.0
clang 15.0.0
clang 16.0.0
clang 17.0.1
clang 18.1.0
clang 19.1.0
clang 20.1.0
clang 21.1.0
clang 4.0.1
clang 5.0.0
clang 6.0.0
clang 7.0.0
clang 8.0.0
clang 9.0.0
hexagon-clang 16.0.5
llc (assertions trunk)
llc (trunk)
llc 10.0.0
llc 10.0.1
llc 11.0.0
llc 11.0.1
llc 12.0.0
llc 12.0.1
llc 13.0.0
llc 14.0.0
llc 15.0.0
llc 16.0.0
llc 17.0.1
llc 18.1.0
llc 19.1.0
llc 20.1.0
llc 21.1.0
llc 3.2
llc 3.3
llc 3.9.1
llc 4.0.0
llc 4.0.1
llc 5.0.0
llc 6.0.0
llc 7.0.0
llc 8.0.0
llc 9.0.0
opt (assertions trunk)
opt (trunk)
opt 10.0.0
opt 10.0.1
opt 11.0.0
opt 11.0.1
opt 12.0.0
opt 12.0.1
opt 13.0.0
opt 14.0.0
opt 15.0.0
opt 16.0.0
opt 17.0.1
opt 18.1.0
opt 19.1.0
opt 20.1.0
opt 21.1.0
opt 3.2
opt 3.3
opt 3.9.1
opt 4.0.0
opt 4.0.1
opt 5.0.0
opt 6.0.0
opt 7.0.0
opt 8.0.0
opt 9.0.0
Options
Source code
; ModuleID = 'out.ll' source_filename = "ld-temp.o" target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-p7:160:256:256:32-p8:128:128-p9:192:256:256:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-G1-ni:7:8:9" target triple = "amdgcn-amd-amdhsa" %"struct.__llvm_libc_20_0_0_git::DataEnvironment" = type { ptr } %"struct.__llvm_libc_20_0_0_git::rpc::Client" = type { %"struct.__llvm_libc_20_0_0_git::rpc::Process" } %"struct.__llvm_libc_20_0_0_git::rpc::Process" = type { i32, ptr, ptr, ptr, ptr, [128 x %"struct.__llvm_libc_20_0_0_git::cpp::Atomic"] } %"struct.__llvm_libc_20_0_0_git::cpp::Atomic" = type { i32 } %"class.__llvm_libc_20_0_0_git::FixedVector" = type { %"struct.__llvm_libc_20_0_0_git::cpp::array.9", i64 } %"struct.__llvm_libc_20_0_0_git::cpp::array.9" = type { [64 x %"struct.__llvm_libc_20_0_0_git::AtExitUnit"] } %"struct.__llvm_libc_20_0_0_git::AtExitUnit" = type { ptr, ptr } %main.vararg = type <{ ptr, i32, i32 }> %"struct.__llvm_libc_20_0_0_git::rpc::Port" = type <{ ptr, i64, i32, i32, i32, i8, i8, [2 x i8] }> %"struct.__llvm_libc_20_0_0_git::rpc::Header" = type { i64, i16 } %"struct.__llvm_libc_20_0_0_git::rpc::Buffer" = type { [8 x i64] } %"class.__llvm_libc_20_0_0_git::IntegerToString" = type { %"struct.__llvm_libc_20_0_0_git::cpp::array.11", i64 } %"struct.__llvm_libc_20_0_0_git::cpp::array.11" = type { [11 x i8] } %"class.__llvm_libc_20_0_0_git::IntegerToString.12" = type { %"struct.__llvm_libc_20_0_0_git::cpp::array.13", i64 } %"struct.__llvm_libc_20_0_0_git::cpp::array.13" = type { [21 x i8] } %"struct.__llvm_libc_20_0_0_git::cpp::array" = type { [64 x i8] } %"struct.__llvm_libc_20_0_0_git::printf_core::WriteBuffer" = type <{ ptr, ptr, i64, i64, ptr, ptr, i32, [4 x i8] }> %"class.__llvm_libc_20_0_0_git::printf_core::Writer" = type <{ ptr, i32, [4 x i8] }> $_ZN22__llvm_libc_20_0_0_git3rpc6Client4openILt1EEENS0_4PortILb0EEEv = comdat any $_ZN22__llvm_libc_20_0_0_git3rpc4PortILb0EE5closeEv = comdat any $_ZN22__llvm_libc_20_0_0_git17stdc_at_exit_funcEPv = comdat any @_ZN22__llvm_libc_20_0_0_git3appE = internal unnamed_addr addrspace(1) global %"struct.__llvm_libc_20_0_0_git::DataEnvironment" zeroinitializer, align 8 @__fini_array_end = external hidden addrspace(1) global [0 x i64], align 8 @__fini_array_start = external hidden addrspace(1) global [0 x i64], align 8 @__init_array_end = external hidden addrspace(1) global [0 x i64], align 8 @__init_array_start = external hidden addrspace(1) global [0 x i64], align 8 @.str = private unnamed_addr addrspace(4) constant [139 x i8] c"/home/jhuber/Documents/llvm/llvm-project/libc/test/integration/src/stdio/sprintf_size_test.cpp:42: Expected '(argc)' to be equal to '(5)'\0A\00", align 1 @.str.1 = private unnamed_addr addrspace(4) constant [9 x i8] c"%s %c %d\00", align 1 @.str.2 = private unnamed_addr addrspace(4) constant [166 x i8] c"/home/jhuber/Documents/llvm/llvm-project/libc/test/integration/src/stdio/sprintf_size_test.cpp:43: Expected 'my_streq(argv[1], \22%s %c %d\22)' to be true, but is false\0A\00", align 1 @.str.3 = private unnamed_addr addrspace(4) constant [153 x i8] c"/home/jhuber/Documents/llvm/llvm-project/libc/test/integration/src/stdio/sprintf_size_test.cpp:44: Expected '(my_strlen(argv[1]))' to be equal to '(8)'\0A\00", align 1 @.str.4 = private unnamed_addr addrspace(4) constant [10 x i8] c"First arg\00", align 1 @.str.5 = private unnamed_addr addrspace(4) constant [167 x i8] c"/home/jhuber/Documents/llvm/llvm-project/libc/test/integration/src/stdio/sprintf_size_test.cpp:45: Expected 'my_streq(argv[2], \22First arg\22)' to be true, but is false\0A\00", align 1 @.str.6 = private unnamed_addr addrspace(4) constant [153 x i8] c"/home/jhuber/Documents/llvm/llvm-project/libc/test/integration/src/stdio/sprintf_size_test.cpp:46: Expected '(my_strlen(argv[2]))' to be equal to '(9)'\0A\00", align 1 @.str.7 = private unnamed_addr addrspace(4) constant [2 x i8] c"a\00", align 1 @.str.8 = private unnamed_addr addrspace(4) constant [159 x i8] c"/home/jhuber/Documents/llvm/llvm-project/libc/test/integration/src/stdio/sprintf_size_test.cpp:47: Expected 'my_streq(argv[3], \22a\22)' to be true, but is false\0A\00", align 1 @.str.9 = private unnamed_addr addrspace(4) constant [153 x i8] c"/home/jhuber/Documents/llvm/llvm-project/libc/test/integration/src/stdio/sprintf_size_test.cpp:48: Expected '(my_strlen(argv[3]))' to be equal to '(1)'\0A\00", align 1 @.str.10 = private unnamed_addr addrspace(4) constant [2 x i8] c"0\00", align 1 @.str.11 = private unnamed_addr addrspace(4) constant [159 x i8] c"/home/jhuber/Documents/llvm/llvm-project/libc/test/integration/src/stdio/sprintf_size_test.cpp:49: Expected 'my_streq(argv[4], \220\22)' to be true, but is false\0A\00", align 1 @.str.12 = private unnamed_addr addrspace(4) constant [153 x i8] c"/home/jhuber/Documents/llvm/llvm-project/libc/test/integration/src/stdio/sprintf_size_test.cpp:50: Expected '(my_strlen(argv[4]))' to be equal to '(1)'\0A\00", align 1 @.str.13 = private unnamed_addr addrspace(4) constant [214 x i8] c"/home/jhuber/Documents/llvm/llvm-project/libc/test/integration/src/stdio/sprintf_size_test.cpp:56: Expected '(__llvm_libc_20_0_0_git::sprintf(buf, argv[1], argv[2], argv[3][0], argv[4][0]))' to be equal to '(14)'\0A\00", align 1 @.str.14 = private unnamed_addr addrspace(4) constant [15 x i8] c"First arg a 48\00", align 1 @.str.15 = private unnamed_addr addrspace(4) constant [168 x i8] c"/home/jhuber/Documents/llvm/llvm-project/libc/test/integration/src/stdio/sprintf_size_test.cpp:57: Expected 'my_streq(buf, \22First arg a 48\22)' to be true, but is false\0A\00", align 1 @__llvm_libc_rpc_client = protected local_unnamed_addr addrspace(1) global ptr addrspacecast (ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3rpc6clientE to ptr), align 8 @_ZN22__llvm_libc_20_0_0_git3rpc6clientE = internal addrspace(1) global %"struct.__llvm_libc_20_0_0_git::rpc::Client" zeroinitializer, align 8 @.str.16 = private unnamed_addr addrspace(4) constant [2 x i8] c"%\00", align 1 @.str.1.17 = private unnamed_addr addrspace(4) constant [7 x i8] c"(null)\00", align 1 @.str.2.18 = private unnamed_addr addrspace(4) constant [184 x i8] c"/home/jhuber/Documents/llvm/llvm-project/libc/src/stdio/printf_core/fixed_converter.h:91: Assertion failed: 'false && \22Invalid conversion name passed to convert_fixed\22' in function: '\00", align 1 @__PRETTY_FUNCTION__._ZN22__llvm_libc_20_0_0_git11printf_core13convert_fixedEPNS0_6WriterERKNS0_13FormatSectionE = private unnamed_addr addrspace(4) constant [88 x i8] c"int __llvm_libc_20_0_0_git::printf_core::convert_fixed(Writer *, const FormatSection &)\00", align 1 @.str.3.19 = private unnamed_addr addrspace(4) constant [3 x i8] c"'\0A\00", align 1 @.str.4.20 = private unnamed_addr addrspace(4) constant [184 x i8] c"/home/jhuber/Documents/llvm/llvm-project/libc/src/stdio/printf_core/fixed_converter.h:93: Assertion failed: 'false && \22Invalid conversion name passed to convert_fixed\22' in function: '\00", align 1 @.str.5.21 = private unnamed_addr addrspace(4) constant [184 x i8] c"/home/jhuber/Documents/llvm/llvm-project/libc/src/stdio/printf_core/fixed_converter.h:95: Assertion failed: 'false && \22Invalid conversion name passed to convert_fixed\22' in function: '\00", align 1 @.str.6.22 = private unnamed_addr addrspace(4) constant [97 x i8] c"StorageType must be large enough to hold the fractional component multiplied by a 32 bit number.\00", align 1 @.str.7.23 = private unnamed_addr addrspace(4) constant [316 x i8] c"/home/jhuber/Documents/llvm/llvm-project/libc/src/stdio/printf_core/fixed_converter.h:101: Assertion failed: 'static_cast<size_t>(exponent) <= (sizeof(StorageType) - sizeof(uint32_t)) * CHAR_BIT && \22StorageType must be large enough to hold the fractional \22 \22component multiplied by a 32 bit number.\22' in function: '\00", align 1 @.str.8.24 = private unnamed_addr addrspace(4) constant [75 x i8] c"If the fraction digit buffer is full, there should be no remaining digits.\00", align 1 @.str.9.26 = private unnamed_addr addrspace(4) constant [225 x i8] c"/home/jhuber/Documents/llvm/llvm-project/libc/src/stdio/printf_core/fixed_converter.h:156: Assertion failed: 'fractional == 0 && \22If the fraction digit buffer is full, \22 \22there should be no remaining digits.\22' in function: '\00", align 1 @.str.10.25 = private unnamed_addr addrspace(4) constant [57 x i8] c"Digits after the MAX_FRACTION_DIGITS should all be zero.\00", align 1 @.str.11.27 = private unnamed_addr addrspace(4) constant [282 x i8] c"/home/jhuber/Documents/llvm/llvm-project/libc/src/stdio/printf_core/fixed_converter.h:172: Assertion failed: 'cur_digits % const_ten_exp( DIGITS_PER_BLOCK - (MAX_FRACTION_DIGITS % DIGITS_PER_BLOCK)) == 0 && \22Digits after the MAX_FRACTION_DIGITS should all be zero.\22' in function: '\00", align 1 @.str.12.28 = private unnamed_addr addrspace(4) constant [2 x i8] c".\00", align 1 @_ZN22__llvm_libc_20_0_0_git16atexit_callbacksE = internal unnamed_addr addrspace(1) global %"class.__llvm_libc_20_0_0_git::FixedVector" zeroinitializer, align 8 ; Function Attrs: convergent mustprogress nounwind define protected amdgpu_kernel void @_begin(i32 noundef %0, ptr noundef %1, ptr noundef %2) local_unnamed_addr #0 { %4 = ptrtoint ptr %2 to i64 store atomic i64 %4, ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3appE monotonic, align 8 %5 = load i64, ptr addrspace(1) getelementptr inbounds nuw (i8, ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git16atexit_callbacksE, i64 1024), align 8, !tbaa !7 %6 = icmp eq i64 %5, 64 br i1 %6, label %11, label %7 7: ; preds = %3 %8 = add i64 %5, 1 %9 = getelementptr inbounds [64 x %"struct.__llvm_libc_20_0_0_git::AtExitUnit"], ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git16atexit_callbacksE, i64 0, i64 %5 %10 = getelementptr inbounds i8, ptr addrspace(1) %9, i64 8 store ptr @_ZN22__llvm_libc_20_0_0_git17stdc_at_exit_funcEPv, ptr addrspace(1) %9, align 8, !tbaa !13 store ptr @_ZN22__llvm_libc_20_0_0_gitL25call_fini_array_callbacksEv, ptr addrspace(1) %10, align 8, !tbaa !13 store i64 %8, ptr addrspace(1) getelementptr inbounds nuw (i8, ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git16atexit_callbacksE, i64 1024), align 8, !tbaa !7 br label %11 11: ; preds = %7, %3 %12 = icmp eq i64 sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(1) @__init_array_end to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(1) @__init_array_start to ptr) to i64)), 0 br i1 %12, label %23, label %13 13: ; preds = %11 %14 = ashr exact i64 sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(1) @__init_array_end to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(1) @__init_array_start to ptr) to i64)), 3 %15 = tail call i64 @llvm.umax.i64(i64 %14, i64 1) br label %16 16: ; preds = %16, %13 %17 = phi i64 [ %21, %16 ], [ 0, %13 ] %18 = getelementptr inbounds [0 x i64], ptr addrspace(1) @__init_array_start, i64 0, i64 %17 %19 = load i64, ptr addrspace(1) %18, align 8, !tbaa !15 %20 = inttoptr i64 %19 to ptr tail call void %20(i32 noundef %0, ptr noundef %1, ptr noundef %2) #19 %21 = add nuw i64 %17, 1 %22 = icmp eq i64 %21, %15 br i1 %22, label %23, label %16, !llvm.loop !16 23: ; preds = %16, %11 ret void } ; Function Attrs: convergent mustprogress nounwind define internal void @_ZN22__llvm_libc_20_0_0_gitL25call_fini_array_callbacksEv() #1 { %1 = icmp eq i64 sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(1) @__fini_array_end to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(1) @__fini_array_start to ptr) to i64)), 0 br i1 %1, label %4, label %2 2: ; preds = %0 %3 = ashr exact i64 sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(1) @__fini_array_end to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(1) @__fini_array_start to ptr) to i64)), 3 br label %5 4: ; preds = %5, %0 ret void 5: ; preds = %5, %2 %6 = phi i64 [ %7, %5 ], [ %3, %2 ] %7 = add i64 %6, -1 %8 = getelementptr inbounds [0 x i64], ptr addrspace(1) @__fini_array_start, i64 0, i64 %7 %9 = load i64, ptr addrspace(1) %8, align 8, !tbaa !15 %10 = inttoptr i64 %9 to ptr tail call void %10() #19 %11 = icmp eq i64 %7, 0 br i1 %11, label %4, label %5, !llvm.loop !18 } ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.umax.i64(i64, i64) #2 ; Function Attrs: convergent mustprogress nounwind define protected amdgpu_kernel void @_start(i32 noundef %0, ptr nocapture noundef readonly %1, ptr nocapture noundef readnone %2, ptr nocapture noundef %3) local_unnamed_addr #1 { %5 = alloca [100 x i8], align 1, addrspace(5) %6 = alloca %main.vararg, align 4, addrspace(5) %7 = addrspacecast ptr addrspace(5) %5 to ptr %8 = icmp eq i32 %0, 5 br i1 %8, label %19, label %9 9: ; preds = %9, %4 %10 = phi ptr addrspace(4) [ %13, %9 ], [ @.str, %4 ] %11 = load i8, ptr addrspace(4) %10, align 1, !tbaa !19 %12 = icmp eq i8 %11, 0 %13 = getelementptr inbounds i8, ptr addrspace(4) %10, i64 1 br i1 %12, label %14, label %9, !llvm.loop !20 14: ; preds = %9 %15 = phi ptr addrspace(4) [ %10, %9 ] %16 = addrspacecast ptr addrspace(4) %15 to ptr %17 = ptrtoint ptr %16 to i64 %18 = sub i64 %17, ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str to ptr) to i64) tail call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str to ptr), i64 %18) #19 tail call fastcc void @_ZN22__llvm_libc_20_0_0_git8internal4exitEi(i32 noundef 127) #20 unreachable 19: ; preds = %4 %20 = getelementptr inbounds i8, ptr %1, i64 8 %21 = load ptr, ptr %20, align 8, !tbaa !13 %22 = icmp eq ptr %21, addrspacecast (ptr addrspace(4) @.str.1 to ptr) br i1 %22, label %23, label %24 23: ; preds = %46, %19 br label %61 24: ; preds = %19 %25 = icmp eq ptr %21, null %26 = icmp ne ptr addrspace(4) @.str.1, addrspacecast (ptr null to ptr addrspace(4)) %27 = and i1 %26, %25 br i1 %27, label %50, label %28 28: ; preds = %24 %29 = icmp ne ptr %21, null %30 = icmp eq ptr addrspace(4) @.str.1, addrspacecast (ptr null to ptr addrspace(4)) %31 = and i1 %30, %29 br i1 %31, label %50, label %32 32: ; preds = %28 %33 = load i8, ptr %21, align 1, !tbaa !19 %34 = icmp eq i8 %33, 0 br i1 %34, label %46, label %35 35: ; preds = %41, %32 %36 = phi i8 [ %44, %41 ], [ %33, %32 ] %37 = phi ptr addrspace(4) [ %43, %41 ], [ @.str.1, %32 ] %38 = phi ptr [ %42, %41 ], [ %21, %32 ] %39 = load i8, ptr addrspace(4) %37, align 1, !tbaa !19 %40 = icmp eq i8 %36, %39 br i1 %40, label %41, label %50 41: ; preds = %35 %42 = getelementptr inbounds nuw i8, ptr %38, i64 1 %43 = getelementptr inbounds i8, ptr addrspace(4) %37, i64 1 %44 = load i8, ptr %42, align 1, !tbaa !19 %45 = icmp eq i8 %44, 0 br i1 %45, label %46, label %35, !llvm.loop !21 46: ; preds = %41, %32 %47 = phi ptr addrspace(4) [ @.str.1, %32 ], [ %43, %41 ] %48 = load i8, ptr addrspace(4) %47, align 1, !tbaa !19 %49 = icmp eq i8 %48, 0 br i1 %49, label %23, label %50 50: ; preds = %46, %35, %28, %24 br label %51 51: ; preds = %51, %50 %52 = phi ptr addrspace(4) [ %55, %51 ], [ @.str.2, %50 ] %53 = load i8, ptr addrspace(4) %52, align 1, !tbaa !19 %54 = icmp eq i8 %53, 0 %55 = getelementptr inbounds i8, ptr addrspace(4) %52, i64 1 br i1 %54, label %56, label %51, !llvm.loop !20 56: ; preds = %51 %57 = phi ptr addrspace(4) [ %52, %51 ] %58 = addrspacecast ptr addrspace(4) %57 to ptr %59 = ptrtoint ptr %58 to i64 %60 = sub i64 %59, ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.2 to ptr) to i64) tail call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.2 to ptr), i64 %60) #19 tail call fastcc void @_ZN22__llvm_libc_20_0_0_git8internal4exitEi(i32 noundef 127) #20 unreachable 61: ; preds = %61, %23 %62 = phi ptr [ %65, %61 ], [ %21, %23 ] %63 = load i8, ptr %62, align 1, !tbaa !19 %64 = icmp eq i8 %63, 0 %65 = getelementptr inbounds nuw i8, ptr %62, i64 1 br i1 %64, label %66, label %61, !llvm.loop !22 66: ; preds = %61 %67 = phi ptr [ %62, %61 ] %68 = ptrtoint ptr %67 to i64 %69 = ptrtoint ptr %21 to i64 %70 = sub i64 %68, %69 %71 = and i64 %70, 4294967295 %72 = icmp eq i64 %71, 8 br i1 %72, label %83, label %73 73: ; preds = %73, %66 %74 = phi ptr addrspace(4) [ %77, %73 ], [ @.str.3, %66 ] %75 = load i8, ptr addrspace(4) %74, align 1, !tbaa !19 %76 = icmp eq i8 %75, 0 %77 = getelementptr inbounds i8, ptr addrspace(4) %74, i64 1 br i1 %76, label %78, label %73, !llvm.loop !20 78: ; preds = %73 %79 = phi ptr addrspace(4) [ %74, %73 ] %80 = addrspacecast ptr addrspace(4) %79 to ptr %81 = ptrtoint ptr %80 to i64 %82 = sub i64 %81, ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.3 to ptr) to i64) tail call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.3 to ptr), i64 %82) #19 tail call fastcc void @_ZN22__llvm_libc_20_0_0_git8internal4exitEi(i32 noundef 127) #20 unreachable 83: ; preds = %66 %84 = getelementptr inbounds i8, ptr %1, i64 16 %85 = load ptr, ptr %84, align 8, !tbaa !13 %86 = icmp eq ptr %85, addrspacecast (ptr addrspace(4) @.str.4 to ptr) br i1 %86, label %87, label %88 87: ; preds = %110, %83 br label %125 88: ; preds = %83 %89 = icmp eq ptr %85, null %90 = icmp ne ptr addrspace(4) @.str.4, addrspacecast (ptr null to ptr addrspace(4)) %91 = and i1 %90, %89 br i1 %91, label %114, label %92 92: ; preds = %88 %93 = icmp ne ptr %85, null %94 = icmp eq ptr addrspace(4) @.str.4, addrspacecast (ptr null to ptr addrspace(4)) %95 = and i1 %94, %93 br i1 %95, label %114, label %96 96: ; preds = %92 %97 = load i8, ptr %85, align 1, !tbaa !19 %98 = icmp eq i8 %97, 0 br i1 %98, label %110, label %99 99: ; preds = %105, %96 %100 = phi i8 [ %108, %105 ], [ %97, %96 ] %101 = phi ptr addrspace(4) [ %107, %105 ], [ @.str.4, %96 ] %102 = phi ptr [ %106, %105 ], [ %85, %96 ] %103 = load i8, ptr addrspace(4) %101, align 1, !tbaa !19 %104 = icmp eq i8 %100, %103 br i1 %104, label %105, label %114 105: ; preds = %99 %106 = getelementptr inbounds nuw i8, ptr %102, i64 1 %107 = getelementptr inbounds i8, ptr addrspace(4) %101, i64 1 %108 = load i8, ptr %106, align 1, !tbaa !19 %109 = icmp eq i8 %108, 0 br i1 %109, label %110, label %99, !llvm.loop !21 110: ; preds = %105, %96 %111 = phi ptr addrspace(4) [ @.str.4, %96 ], [ %107, %105 ] %112 = load i8, ptr addrspace(4) %111, align 1, !tbaa !19 %113 = icmp eq i8 %112, 0 br i1 %113, label %87, label %114 114: ; preds = %110, %99, %92, %88 br label %115 115: ; preds = %115, %114 %116 = phi ptr addrspace(4) [ %119, %115 ], [ @.str.5, %114 ] %117 = load i8, ptr addrspace(4) %116, align 1, !tbaa !19 %118 = icmp eq i8 %117, 0 %119 = getelementptr inbounds i8, ptr addrspace(4) %116, i64 1 br i1 %118, label %120, label %115, !llvm.loop !20 120: ; preds = %115 %121 = phi ptr addrspace(4) [ %116, %115 ] %122 = addrspacecast ptr addrspace(4) %121 to ptr %123 = ptrtoint ptr %122 to i64 %124 = sub i64 %123, ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.5 to ptr) to i64) tail call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.5 to ptr), i64 %124) #19 tail call fastcc void @_ZN22__llvm_libc_20_0_0_git8internal4exitEi(i32 noundef 127) #20 unreachable 125: ; preds = %125, %87 %126 = phi ptr [ %129, %125 ], [ %85, %87 ] %127 = load i8, ptr %126, align 1, !tbaa !19 %128 = icmp eq i8 %127, 0 %129 = getelementptr inbounds nuw i8, ptr %126, i64 1 br i1 %128, label %130, label %125, !llvm.loop !22 130: ; preds = %125 %131 = phi ptr [ %126, %125 ] %132 = ptrtoint ptr %131 to i64 %133 = ptrtoint ptr %85 to i64 %134 = sub i64 %132, %133 %135 = and i64 %134, 4294967295 %136 = icmp eq i64 %135, 9 br i1 %136, label %147, label %137 137: ; preds = %137, %130 %138 = phi ptr addrspace(4) [ %141, %137 ], [ @.str.6, %130 ] %139 = load i8, ptr addrspace(4) %138, align 1, !tbaa !19 %140 = icmp eq i8 %139, 0 %141 = getelementptr inbounds i8, ptr addrspace(4) %138, i64 1 br i1 %140, label %142, label %137, !llvm.loop !20 142: ; preds = %137 %143 = phi ptr addrspace(4) [ %138, %137 ] %144 = addrspacecast ptr addrspace(4) %143 to ptr %145 = ptrtoint ptr %144 to i64 %146 = sub i64 %145, ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.6 to ptr) to i64) tail call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.6 to ptr), i64 %146) #19 tail call fastcc void @_ZN22__llvm_libc_20_0_0_git8internal4exitEi(i32 noundef 127) #20 unreachable 147: ; preds = %130 %148 = getelementptr inbounds i8, ptr %1, i64 24 %149 = load ptr, ptr %148, align 8, !tbaa !13 %150 = icmp eq ptr %149, addrspacecast (ptr addrspace(4) @.str.7 to ptr) br i1 %150, label %151, label %152 151: ; preds = %174, %147 br label %189 152: ; preds = %147 %153 = icmp eq ptr %149, null %154 = icmp ne ptr addrspace(4) @.str.7, addrspacecast (ptr null to ptr addrspace(4)) %155 = and i1 %154, %153 br i1 %155, label %178, label %156 156: ; preds = %152 %157 = icmp ne ptr %149, null %158 = icmp eq ptr addrspace(4) @.str.7, addrspacecast (ptr null to ptr addrspace(4)) %159 = and i1 %158, %157 br i1 %159, label %178, label %160 160: ; preds = %156 %161 = load i8, ptr %149, align 1, !tbaa !19 %162 = icmp eq i8 %161, 0 br i1 %162, label %174, label %163 163: ; preds = %169, %160 %164 = phi i8 [ %172, %169 ], [ %161, %160 ] %165 = phi ptr addrspace(4) [ %171, %169 ], [ @.str.7, %160 ] %166 = phi ptr [ %170, %169 ], [ %149, %160 ] %167 = load i8, ptr addrspace(4) %165, align 1, !tbaa !19 %168 = icmp eq i8 %164, %167 br i1 %168, label %169, label %178 169: ; preds = %163 %170 = getelementptr inbounds nuw i8, ptr %166, i64 1 %171 = getelementptr inbounds i8, ptr addrspace(4) %165, i64 1 %172 = load i8, ptr %170, align 1, !tbaa !19 %173 = icmp eq i8 %172, 0 br i1 %173, label %174, label %163, !llvm.loop !21 174: ; preds = %169, %160 %175 = phi ptr addrspace(4) [ @.str.7, %160 ], [ %171, %169 ] %176 = load i8, ptr addrspace(4) %175, align 1, !tbaa !19 %177 = icmp eq i8 %176, 0 br i1 %177, label %151, label %178 178: ; preds = %174, %163, %156, %152 br label %179 179: ; preds = %179, %178 %180 = phi ptr addrspace(4) [ %183, %179 ], [ @.str.8, %178 ] %181 = load i8, ptr addrspace(4) %180, align 1, !tbaa !19 %182 = icmp eq i8 %181, 0 %183 = getelementptr inbounds i8, ptr addrspace(4) %180, i64 1 br i1 %182, label %184, label %179, !llvm.loop !20 184: ; preds = %179 %185 = phi ptr addrspace(4) [ %180, %179 ] %186 = addrspacecast ptr addrspace(4) %185 to ptr %187 = ptrtoint ptr %186 to i64 %188 = sub i64 %187, ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.8 to ptr) to i64) tail call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.8 to ptr), i64 %188) #19 tail call fastcc void @_ZN22__llvm_libc_20_0_0_git8internal4exitEi(i32 noundef 127) #20 unreachable 189: ; preds = %189, %151 %190 = phi ptr [ %193, %189 ], [ %149, %151 ] %191 = load i8, ptr %190, align 1, !tbaa !19 %192 = icmp eq i8 %191, 0 %193 = getelementptr inbounds nuw i8, ptr %190, i64 1 br i1 %192, label %194, label %189, !llvm.loop !22 194: ; preds = %189 %195 = phi ptr [ %190, %189 ] %196 = ptrtoint ptr %195 to i64 %197 = ptrtoint ptr %149 to i64 %198 = sub i64 %196, %197 %199 = and i64 %198, 4294967295 %200 = icmp eq i64 %199, 1 br i1 %200, label %211, label %201 201: ; preds = %201, %194 %202 = phi ptr addrspace(4) [ %205, %201 ], [ @.str.9, %194 ] %203 = load i8, ptr addrspace(4) %202, align 1, !tbaa !19 %204 = icmp eq i8 %203, 0 %205 = getelementptr inbounds i8, ptr addrspace(4) %202, i64 1 br i1 %204, label %206, label %201, !llvm.loop !20 206: ; preds = %201 %207 = phi ptr addrspace(4) [ %202, %201 ] %208 = addrspacecast ptr addrspace(4) %207 to ptr %209 = ptrtoint ptr %208 to i64 %210 = sub i64 %209, ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.9 to ptr) to i64) tail call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.9 to ptr), i64 %210) #19 tail call fastcc void @_ZN22__llvm_libc_20_0_0_git8internal4exitEi(i32 noundef 127) #20 unreachable 211: ; preds = %194 %212 = getelementptr inbounds i8, ptr %1, i64 32 %213 = load ptr, ptr %212, align 8, !tbaa !13 %214 = icmp eq ptr %213, addrspacecast (ptr addrspace(4) @.str.10 to ptr) br i1 %214, label %215, label %216 215: ; preds = %238, %211 br label %253 216: ; preds = %211 %217 = icmp eq ptr %213, null %218 = icmp ne ptr addrspace(4) @.str.10, addrspacecast (ptr null to ptr addrspace(4)) %219 = and i1 %218, %217 br i1 %219, label %242, label %220 220: ; preds = %216 %221 = icmp ne ptr %213, null %222 = icmp eq ptr addrspace(4) @.str.10, addrspacecast (ptr null to ptr addrspace(4)) %223 = and i1 %222, %221 br i1 %223, label %242, label %224 224: ; preds = %220 %225 = load i8, ptr %213, align 1, !tbaa !19 %226 = icmp eq i8 %225, 0 br i1 %226, label %238, label %227 227: ; preds = %233, %224 %228 = phi i8 [ %236, %233 ], [ %225, %224 ] %229 = phi ptr addrspace(4) [ %235, %233 ], [ @.str.10, %224 ] %230 = phi ptr [ %234, %233 ], [ %213, %224 ] %231 = load i8, ptr addrspace(4) %229, align 1, !tbaa !19 %232 = icmp eq i8 %228, %231 br i1 %232, label %233, label %242 233: ; preds = %227 %234 = getelementptr inbounds nuw i8, ptr %230, i64 1 %235 = getelementptr inbounds i8, ptr addrspace(4) %229, i64 1 %236 = load i8, ptr %234, align 1, !tbaa !19 %237 = icmp eq i8 %236, 0 br i1 %237, label %238, label %227, !llvm.loop !21 238: ; preds = %233, %224 %239 = phi ptr addrspace(4) [ @.str.10, %224 ], [ %235, %233 ] %240 = load i8, ptr addrspace(4) %239, align 1, !tbaa !19 %241 = icmp eq i8 %240, 0 br i1 %241, label %215, label %242 242: ; preds = %238, %227, %220, %216 br label %243 243: ; preds = %243, %242 %244 = phi ptr addrspace(4) [ %247, %243 ], [ @.str.11, %242 ] %245 = load i8, ptr addrspace(4) %244, align 1, !tbaa !19 %246 = icmp eq i8 %245, 0 %247 = getelementptr inbounds i8, ptr addrspace(4) %244, i64 1 br i1 %246, label %248, label %243, !llvm.loop !20 248: ; preds = %243 %249 = phi ptr addrspace(4) [ %244, %243 ] %250 = addrspacecast ptr addrspace(4) %249 to ptr %251 = ptrtoint ptr %250 to i64 %252 = sub i64 %251, ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.11 to ptr) to i64) tail call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.11 to ptr), i64 %252) #19 tail call fastcc void @_ZN22__llvm_libc_20_0_0_git8internal4exitEi(i32 noundef 127) #20 unreachable 253: ; preds = %253, %215 %254 = phi ptr [ %257, %253 ], [ %213, %215 ] %255 = load i8, ptr %254, align 1, !tbaa !19 %256 = icmp eq i8 %255, 0 %257 = getelementptr inbounds nuw i8, ptr %254, i64 1 br i1 %256, label %258, label %253, !llvm.loop !22 258: ; preds = %253 %259 = phi ptr [ %254, %253 ] %260 = ptrtoint ptr %259 to i64 %261 = ptrtoint ptr %213 to i64 %262 = sub i64 %260, %261 %263 = and i64 %262, 4294967295 %264 = icmp eq i64 %263, 1 br i1 %264, label %275, label %265 265: ; preds = %265, %258 %266 = phi ptr addrspace(4) [ %269, %265 ], [ @.str.12, %258 ] %267 = load i8, ptr addrspace(4) %266, align 1, !tbaa !19 %268 = icmp eq i8 %267, 0 %269 = getelementptr inbounds i8, ptr addrspace(4) %266, i64 1 br i1 %268, label %270, label %265, !llvm.loop !20 270: ; preds = %265 %271 = phi ptr addrspace(4) [ %266, %265 ] %272 = addrspacecast ptr addrspace(4) %271 to ptr %273 = ptrtoint ptr %272 to i64 %274 = sub i64 %273, ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.12 to ptr) to i64) tail call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.12 to ptr), i64 %274) #19 tail call fastcc void @_ZN22__llvm_libc_20_0_0_git8internal4exitEi(i32 noundef 127) #20 unreachable 275: ; preds = %258 call void @llvm.lifetime.start.p5(i64 100, ptr addrspace(5) %5) #21 %276 = load i8, ptr %149, align 1, !tbaa !19 %277 = sext i8 %276 to i32 %278 = load i8, ptr %213, align 1, !tbaa !19 %279 = sext i8 %278 to i32 call void @llvm.lifetime.start.p5(i64 16, ptr addrspace(5) %6) store ptr %85, ptr addrspace(5) %6, align 8 %280 = getelementptr inbounds nuw i8, ptr addrspace(5) %6, i32 8 store i32 %277, ptr addrspace(5) %280, align 4 %281 = getelementptr inbounds nuw i8, ptr addrspace(5) %6, i32 12 store i32 %279, ptr addrspace(5) %281, align 4 %282 = addrspacecast ptr addrspace(5) %6 to ptr %283 = call fastcc noundef i32 @_ZN22__llvm_libc_20_0_0_git7sprintfEPcPKcz.valist(ptr noundef %7, ptr noundef %21, ptr %282) #19 call void @llvm.lifetime.end.p5(i64 16, ptr addrspace(5) %6) %284 = icmp eq i32 %283, 14 br i1 %284, label %295, label %285 285: ; preds = %285, %275 %286 = phi ptr addrspace(4) [ %289, %285 ], [ @.str.13, %275 ] %287 = load i8, ptr addrspace(4) %286, align 1, !tbaa !19 %288 = icmp eq i8 %287, 0 %289 = getelementptr inbounds i8, ptr addrspace(4) %286, i64 1 br i1 %288, label %290, label %285, !llvm.loop !20 290: ; preds = %285 %291 = phi ptr addrspace(4) [ %286, %285 ] %292 = addrspacecast ptr addrspace(4) %291 to ptr %293 = ptrtoint ptr %292 to i64 %294 = sub i64 %293, ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.13 to ptr) to i64) call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.13 to ptr), i64 %294) #19 call fastcc void @_ZN22__llvm_libc_20_0_0_git8internal4exitEi(i32 noundef 127) #20 unreachable 295: ; preds = %275 %296 = icmp eq ptr addrspace(5) %5, addrspacecast (ptr null to ptr addrspace(5)) %297 = icmp ne ptr addrspace(4) @.str.14, addrspacecast (ptr null to ptr addrspace(4)) %298 = and i1 %297, %296 br i1 %298, label %321, label %299 299: ; preds = %295 %300 = icmp ne ptr addrspace(5) %5, addrspacecast (ptr null to ptr addrspace(5)) %301 = icmp eq ptr addrspace(4) @.str.14, addrspacecast (ptr null to ptr addrspace(4)) %302 = and i1 %301, %300 br i1 %302, label %321, label %303 303: ; preds = %299 %304 = load i8, ptr addrspace(5) %5, align 1, !tbaa !19 %305 = icmp eq i8 %304, 0 br i1 %305, label %317, label %306 306: ; preds = %312, %303 %307 = phi i8 [ %315, %312 ], [ %304, %303 ] %308 = phi ptr addrspace(4) [ %314, %312 ], [ @.str.14, %303 ] %309 = phi ptr addrspace(5) [ %313, %312 ], [ %5, %303 ] %310 = load i8, ptr addrspace(4) %308, align 1, !tbaa !19 %311 = icmp eq i8 %307, %310 br i1 %311, label %312, label %321 312: ; preds = %306 %313 = getelementptr inbounds i8, ptr addrspace(5) %309, i32 1 %314 = getelementptr inbounds i8, ptr addrspace(4) %308, i64 1 %315 = load i8, ptr addrspace(5) %313, align 1, !tbaa !19 %316 = icmp eq i8 %315, 0 br i1 %316, label %317, label %306, !llvm.loop !21 317: ; preds = %312, %303 %318 = phi ptr addrspace(4) [ @.str.14, %303 ], [ %314, %312 ] %319 = load i8, ptr addrspace(4) %318, align 1, !tbaa !19 %320 = icmp eq i8 %319, 0 br i1 %320, label %332, label %321 321: ; preds = %317, %306, %299, %295 br label %322 322: ; preds = %322, %321 %323 = phi ptr addrspace(4) [ %326, %322 ], [ @.str.15, %321 ] %324 = load i8, ptr addrspace(4) %323, align 1, !tbaa !19 %325 = icmp eq i8 %324, 0 %326 = getelementptr inbounds i8, ptr addrspace(4) %323, i64 1 br i1 %325, label %327, label %322, !llvm.loop !20 327: ; preds = %322 %328 = phi ptr addrspace(4) [ %323, %322 ] %329 = addrspacecast ptr addrspace(4) %328 to ptr %330 = ptrtoint ptr %329 to i64 %331 = sub i64 %330, ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.15 to ptr) to i64) call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.15 to ptr), i64 %331) #19 call fastcc void @_ZN22__llvm_libc_20_0_0_git8internal4exitEi(i32 noundef 127) #20 unreachable 332: ; preds = %317 %333 = addrspacecast ptr %3 to ptr addrspace(1) call void @llvm.lifetime.end.p5(i64 100, ptr addrspace(5) %5) #21 %334 = atomicrmw or ptr addrspace(1) %333, i32 0 monotonic, align 4 ret void } ; Function Attrs: cold convergent mustprogress noreturn nounwind define protected amdgpu_kernel void @_end(i32 noundef %0) local_unnamed_addr #3 { tail call fastcc void @_ZN22__llvm_libc_20_0_0_git4exitEi(i32 noundef %0) #20 unreachable } ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.start.p5(i64 immarg, ptr addrspace(5) nocapture) #4 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p5(i64 immarg, ptr addrspace(5) nocapture) #4 ; Function Attrs: cold convergent mustprogress nofree norecurse noreturn nounwind define internal fastcc void @_ZN22__llvm_libc_20_0_0_git8internal4exitEi(i32 noundef %0) unnamed_addr #5 { %2 = alloca %"struct.__llvm_libc_20_0_0_git::rpc::Port", align 8, addrspace(5) %3 = addrspacecast ptr addrspace(5) %2 to ptr call void @llvm.lifetime.start.p5(i64 32, ptr addrspace(5) %2) #21 %4 = getelementptr inbounds i8, ptr addrspace(5) %2, i32 8 %5 = getelementptr inbounds i8, ptr addrspace(5) %2, i32 16 %6 = getelementptr inbounds i8, ptr addrspace(5) %2, i32 20 %7 = getelementptr inbounds i8, ptr addrspace(5) %2, i32 24 %8 = getelementptr inbounds i8, ptr addrspace(5) %2, i32 28 %9 = getelementptr inbounds i8, ptr addrspace(5) %2, i32 29 %10 = getelementptr inbounds i8, ptr addrspace(5) %2, i32 30 store i8 -86, ptr addrspace(5) %10, align 2, !annotation !23 %11 = getelementptr inbounds i8, ptr addrspace(5) %2, i32 31 store i8 -86, ptr addrspace(5) %11, align 1, !annotation !23 %12 = tail call fastcc <{ ptr, i64, i32, i32, i32, i8, i8 }> @_ZN22__llvm_libc_20_0_0_git3rpc6Client4openILt1EEENS0_4PortILb0EEEv() #22 %13 = extractvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %12, 0 %14 = extractvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %12, 1 %15 = extractvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %12, 2 %16 = extractvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %12, 3 %17 = extractvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %12, 4 %18 = extractvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %12, 5 %19 = extractvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %12, 6 store ptr %13, ptr addrspace(5) %2, align 8 store i64 %14, ptr addrspace(5) %4, align 8 store i32 %15, ptr addrspace(5) %5, align 8 store i32 %16, ptr addrspace(5) %6, align 4 store i32 %17, ptr addrspace(5) %7, align 8 store i8 %18, ptr addrspace(5) %8, align 4 store i8 %19, ptr addrspace(5) %9, align 1 call fastcc void @"_ZN22__llvm_libc_20_0_0_git3rpc4PortILb0EE13send_and_recvIZNS_8internal4exitEiE3$_0ZNS4_4exitEiE3$_1EEvT_T0_"(ptr noundef nonnull align 8 dereferenceable(30) %3) #22 call fastcc void @"_ZN22__llvm_libc_20_0_0_git3rpc4PortILb0EE4sendIZNS_8internal4exitEiE3$_2EEvT_"(ptr noundef nonnull align 8 dereferenceable(30) %3, i32 %0) #22 call fastcc void @_ZN22__llvm_libc_20_0_0_git3rpc4PortILb0EE5closeEv(ptr noundef nonnull align 8 dereferenceable(30) %3) #22 tail call void @llvm.amdgcn.endpgm() unreachable } ; Function Attrs: convergent inlinehint mustprogress nofree norecurse nounwind define internal fastcc <{ ptr, i64, i32, i32, i32, i8, i8 }> @_ZN22__llvm_libc_20_0_0_git3rpc6Client4openILt1EEENS0_4PortILb0EEEv() unnamed_addr #6 comdat align 2 !type !24 { %1 = tail call i32 @llvm.amdgcn.mbcnt.lo(i32 -1, i32 0) %2 = zext i32 %1 to i64 %3 = tail call i32 @llvm.amdgcn.wavefrontsize() br label %4 4: ; preds = %65, %0 %5 = phi i32 [ undef, %0 ], [ %66, %65 ] %6 = phi i32 [ undef, %0 ], [ %67, %65 ] %7 = phi i64 [ undef, %0 ], [ %68, %65 ] %8 = phi i32 [ undef, %0 ], [ %69, %65 ] %9 = phi i32 [ 0, %0 ], [ %70, %65 ] %10 = load i32, ptr addrspacecast (ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3rpc6clientE to ptr), align 8, !tbaa !25 %11 = icmp ult i32 %9, %10 %12 = select i1 %11, i32 %9, i32 0 %13 = tail call i32 @llvm.amdgcn.ballot.i32(i1 true) %14 = zext i32 %13 to i64 %15 = lshr i32 %12, 5 %16 = and i32 %12, 31 %17 = zext nneg i32 %15 to i64 %18 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::cpp::Atomic", ptr getelementptr inbounds nuw (i8, ptr addrspacecast (ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3rpc6clientE to ptr), i64 40), i64 %17 %19 = lshr i64 %14, %2 %20 = trunc nuw i64 %19 to i32 %21 = and i32 %20, 1 %22 = shl nuw i32 %21, %16 %23 = atomicrmw or ptr %18, i32 %22 syncscope("agent-one-as") monotonic, align 4 %24 = shl nuw i32 1, %16 %25 = and i32 %23, %24 %26 = icmp ne i32 %25, 0 %27 = tail call i32 @llvm.amdgcn.ballot.i32(i1 %26) %28 = and i32 %27, %13 %29 = icmp eq i32 %13, %28 br i1 %29, label %65, label %30 30: ; preds = %4 fence acquire %31 = load ptr, ptr getelementptr inbounds nuw (i8, ptr addrspacecast (ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3rpc6clientE to ptr), i64 8), align 8, !tbaa !29 %32 = zext i32 %12 to i64 %33 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::cpp::Atomic", ptr %31, i64 %32 %34 = load atomic i32, ptr %33 syncscope("one-as") monotonic, align 4 %35 = tail call noundef i32 @llvm.amdgcn.readfirstlane.i32(i32 %34) %36 = load ptr, ptr getelementptr inbounds nuw (i8, ptr addrspacecast (ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3rpc6clientE to ptr), i64 16), align 8, !tbaa !30 %37 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::cpp::Atomic", ptr %36, i64 %32 %38 = load atomic i32, ptr %37 syncscope("one-as") monotonic, align 4 %39 = tail call noundef i32 @llvm.amdgcn.readfirstlane.i32(i32 %38) %40 = icmp eq i32 %35, %39 br i1 %40, label %50, label %41 41: ; preds = %30 fence release %42 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %14, i1 true) %43 = icmp ne i32 %13, 0 %44 = icmp eq i64 %42, %2 %45 = select i1 %43, i1 %44, i1 false %46 = zext i1 %45 to i32 %47 = shl nuw i32 %46, %16 %48 = xor i32 %47, -1 %49 = atomicrmw and ptr %18, i32 %48 syncscope("agent-one-as") monotonic, align 4 tail call void @llvm.amdgcn.wave.barrier() br label %60 50: ; preds = %30 %51 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %14, i1 true) %52 = icmp ne i32 %13, 0 %53 = icmp eq i64 %51, %2 %54 = select i1 %52, i1 %53, i1 false br i1 %54, label %55, label %59 55: ; preds = %50 %56 = load ptr, ptr getelementptr inbounds nuw (i8, ptr addrspacecast (ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3rpc6clientE to ptr), i64 24), align 8, !tbaa !31 %57 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::rpc::Header", ptr %56, i64 %32, i32 1 store i16 1, ptr %57, align 8, !tbaa !32 %58 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::rpc::Header", ptr %56, i64 %32 store i64 %14, ptr %58, align 8, !tbaa !36 br label %59 59: ; preds = %55, %50 tail call void @llvm.amdgcn.wave.barrier() br label %60 60: ; preds = %59, %41 %61 = phi i32 [ %5, %41 ], [ %12, %59 ] %62 = phi i32 [ %6, %41 ], [ %3, %59 ] %63 = phi i64 [ %7, %41 ], [ %14, %59 ] %64 = phi i32 [ %8, %41 ], [ %35, %59 ] br i1 %40, label %71, label %65 65: ; preds = %60, %4 %66 = phi i32 [ %61, %60 ], [ %5, %4 ] %67 = phi i32 [ %62, %60 ], [ %6, %4 ] %68 = phi i64 [ %63, %60 ], [ %7, %4 ] %69 = phi i32 [ %64, %60 ], [ %8, %4 ] %70 = add i32 %12, 1 br label %4, !llvm.loop !37 71: ; preds = %60 %72 = phi i32 [ %61, %60 ] %73 = phi i32 [ %62, %60 ] %74 = phi i64 [ %63, %60 ] %75 = phi i32 [ %64, %60 ] %76 = insertvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> <{ ptr addrspacecast (ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3rpc6clientE to ptr), i64 poison, i32 poison, i32 poison, i32 poison, i8 poison, i8 poison }>, i64 %74, 1 %77 = insertvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %76, i32 %73, 2 %78 = insertvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %77, i32 %72, 3 %79 = insertvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %78, i32 %75, 4 %80 = insertvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %79, i8 0, 5 %81 = insertvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %80, i8 1, 6 ret <{ ptr, i64, i32, i32, i32, i8, i8 }> %81 } ; Function Attrs: convergent inlinehint mustprogress nofree norecurse nounwind define internal fastcc void @"_ZN22__llvm_libc_20_0_0_git3rpc4PortILb0EE13send_and_recvIZNS_8internal4exitEiE3$_0ZNS4_4exitEiE3$_1EEvT_T0_"(ptr nocapture noundef nonnull align 8 dereferenceable(30) %0) unnamed_addr #6 align 2 !type !38 { %2 = getelementptr inbounds nuw i8, ptr %0, i64 29 %3 = load i8, ptr %2, align 1, !tbaa !40, !range !43, !noundef !44 %4 = trunc nuw i8 %3 to i1 br i1 %4, label %5, label %8 5: ; preds = %1 %6 = getelementptr inbounds nuw i8, ptr %0, i64 24 %7 = load i32, ptr %6, align 8, !tbaa !45 br label %20 8: ; preds = %1 %9 = load ptr, ptr %0, align 8, !tbaa !46 %10 = getelementptr inbounds nuw i8, ptr %0, i64 20 %11 = load i32, ptr %10, align 4, !tbaa !47 %12 = getelementptr inbounds nuw i8, ptr %9, i64 8 %13 = load ptr, ptr %12, align 8, !tbaa !29 %14 = zext i32 %11 to i64 %15 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::cpp::Atomic", ptr %13, i64 %14 %16 = load atomic i32, ptr %15 syncscope("one-as") monotonic, align 4 %17 = tail call noundef i32 @llvm.amdgcn.readfirstlane.i32(i32 %16) %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 %19 = load i32, ptr %18, align 8, !tbaa !45 br label %20 20: ; preds = %8, %5 %21 = phi i32 [ %7, %5 ], [ %19, %8 ] %22 = phi i32 [ %7, %5 ], [ %17, %8 ] %23 = getelementptr inbounds nuw i8, ptr %0, i64 20 %24 = icmp eq i32 %22, %21 br i1 %24, label %36, label %25 25: ; preds = %20 %26 = load i32, ptr %23, align 4, !tbaa !47 %27 = load ptr, ptr %0, align 8, !tbaa !46 %28 = getelementptr inbounds nuw i8, ptr %27, i64 8 %29 = zext i32 %26 to i64 br label %30 30: ; preds = %30, %25 tail call void @llvm.amdgcn.s.sleep(i32 2) %31 = load ptr, ptr %28, align 8, !tbaa !29 %32 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::cpp::Atomic", ptr %31, i64 %29 %33 = load atomic i32, ptr %32 syncscope("one-as") monotonic, align 4 %34 = tail call noundef i32 @llvm.amdgcn.readfirstlane.i32(i32 %33) %35 = icmp eq i32 %34, %21 br i1 %35, label %36, label %30, !llvm.loop !48 36: ; preds = %30, %20 %37 = getelementptr inbounds nuw i8, ptr %0, i64 24 fence acquire %38 = load ptr, ptr %0, align 8, !tbaa !46 %39 = load i32, ptr %23, align 4, !tbaa !47 %40 = zext i32 %39 to i64 %41 = load i32, ptr %37, align 8, !tbaa !45 %42 = icmp eq i32 %41, 0 %43 = zext i1 %42 to i32 fence release %44 = getelementptr inbounds nuw i8, ptr %38, i64 16 %45 = load ptr, ptr %44, align 8, !tbaa !30 %46 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::cpp::Atomic", ptr %45, i64 %40 store atomic i32 %43, ptr %46 syncscope("one-as") monotonic, align 4 store i32 %43, ptr %37, align 8, !tbaa !45 store i8 0, ptr %2, align 1, !tbaa !40 %47 = getelementptr inbounds nuw i8, ptr %0, i64 28 store i8 0, ptr %47, align 4, !tbaa !49 %48 = load ptr, ptr %0, align 8, !tbaa !46 %49 = load i32, ptr %23, align 4, !tbaa !47 %50 = getelementptr inbounds nuw i8, ptr %48, i64 8 %51 = load ptr, ptr %50, align 8, !tbaa !29 %52 = zext i32 %49 to i64 %53 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::cpp::Atomic", ptr %51, i64 %52 %54 = load atomic i32, ptr %53 syncscope("one-as") monotonic, align 4 %55 = tail call noundef i32 @llvm.amdgcn.readfirstlane.i32(i32 %54) %56 = icmp eq i32 %55, %43 br i1 %56, label %63, label %57 57: ; preds = %57, %36 tail call void @llvm.amdgcn.s.sleep(i32 2) %58 = load ptr, ptr %50, align 8, !tbaa !29 %59 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::cpp::Atomic", ptr %58, i64 %52 %60 = load atomic i32, ptr %59 syncscope("one-as") monotonic, align 4 %61 = tail call noundef i32 @llvm.amdgcn.readfirstlane.i32(i32 %60) %62 = icmp eq i32 %61, %43 br i1 %62, label %63, label %57, !llvm.loop !48 63: ; preds = %57, %36 fence acquire store i8 1, ptr %47, align 4, !tbaa !49 store i8 1, ptr %2, align 1, !tbaa !40 ret void } ; Function Attrs: convergent inlinehint mustprogress nofree norecurse nounwind define internal fastcc void @"_ZN22__llvm_libc_20_0_0_git3rpc4PortILb0EE4sendIZNS_8internal4exitEiE3$_2EEvT_"(ptr nocapture noundef nonnull align 8 dereferenceable(30) %0, i32 %1) unnamed_addr #6 align 2 !type !50 { %3 = getelementptr inbounds nuw i8, ptr %0, i64 29 %4 = load i8, ptr %3, align 1, !tbaa !40, !range !43, !noundef !44 %5 = trunc nuw i8 %4 to i1 br i1 %5, label %6, label %9 6: ; preds = %2 %7 = getelementptr inbounds nuw i8, ptr %0, i64 24 %8 = load i32, ptr %7, align 8, !tbaa !45 br label %21 9: ; preds = %2 %10 = load ptr, ptr %0, align 8, !tbaa !46 %11 = getelementptr inbounds nuw i8, ptr %0, i64 20 %12 = load i32, ptr %11, align 4, !tbaa !47 %13 = getelementptr inbounds nuw i8, ptr %10, i64 8 %14 = load ptr, ptr %13, align 8, !tbaa !29 %15 = zext i32 %12 to i64 %16 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::cpp::Atomic", ptr %14, i64 %15 %17 = load atomic i32, ptr %16 syncscope("one-as") monotonic, align 4 %18 = tail call noundef i32 @llvm.amdgcn.readfirstlane.i32(i32 %17) %19 = getelementptr inbounds nuw i8, ptr %0, i64 24 %20 = load i32, ptr %19, align 8, !tbaa !45 br label %21 21: ; preds = %9, %6 %22 = phi i32 [ %8, %6 ], [ %20, %9 ] %23 = phi i32 [ %8, %6 ], [ %18, %9 ] %24 = getelementptr inbounds nuw i8, ptr %0, i64 20 %25 = icmp eq i32 %23, %22 br i1 %25, label %37, label %26 26: ; preds = %21 %27 = load i32, ptr %24, align 4, !tbaa !47 %28 = load ptr, ptr %0, align 8, !tbaa !46 %29 = getelementptr inbounds nuw i8, ptr %28, i64 8 %30 = zext i32 %27 to i64 br label %31 31: ; preds = %31, %26 tail call void @llvm.amdgcn.s.sleep(i32 2) %32 = load ptr, ptr %29, align 8, !tbaa !29 %33 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::cpp::Atomic", ptr %32, i64 %30 %34 = load atomic i32, ptr %33 syncscope("one-as") monotonic, align 4 %35 = tail call noundef i32 @llvm.amdgcn.readfirstlane.i32(i32 %34) %36 = icmp eq i32 %35, %22 br i1 %36, label %37, label %31, !llvm.loop !48 37: ; preds = %31, %21 %38 = getelementptr inbounds nuw i8, ptr %0, i64 24 fence acquire %39 = getelementptr inbounds nuw i8, ptr %0, i64 16 %40 = load ptr, ptr %0, align 8, !tbaa !46 %41 = load <2 x i32>, ptr %39, align 8, !tbaa !52 %42 = getelementptr inbounds nuw i8, ptr %40, i64 32 %43 = load ptr, ptr %42, align 8, !tbaa !53 %44 = extractelement <2 x i32> %41, i64 0 %45 = extractelement <2 x i32> %41, i64 1 %46 = mul i32 %45, %44 %47 = zext i32 %46 to i64 %48 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::rpc::Buffer", ptr %43, i64 %47 %49 = tail call i32 @llvm.amdgcn.mbcnt.lo(i32 -1, i32 0) %50 = zext i32 %49 to i64 %51 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::rpc::Buffer", ptr %48, i64 %50 store i32 %1, ptr %51, align 8, !tbaa !52 %52 = load i32, ptr %24, align 4, !tbaa !47 %53 = load i32, ptr %38, align 8, !tbaa !45 %54 = icmp eq i32 %53, 0 %55 = zext i1 %54 to i32 fence release %56 = getelementptr inbounds nuw i8, ptr %40, i64 16 %57 = load ptr, ptr %56, align 8, !tbaa !30 %58 = zext i32 %52 to i64 %59 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::cpp::Atomic", ptr %57, i64 %58 store atomic i32 %55, ptr %59 syncscope("one-as") monotonic, align 4 store i32 %55, ptr %38, align 8, !tbaa !45 store i8 0, ptr %3, align 1, !tbaa !40 %60 = getelementptr inbounds nuw i8, ptr %0, i64 28 store i8 0, ptr %60, align 4, !tbaa !49 ret void } ; Function Attrs: convergent inlinehint mustprogress nofree norecurse nounwind willreturn define internal fastcc void @_ZN22__llvm_libc_20_0_0_git3rpc4PortILb0EE5closeEv(ptr nocapture noundef nonnull readonly align 8 dereferenceable(30) %0) unnamed_addr #7 comdat align 2 !type !54 { %2 = getelementptr inbounds nuw i8, ptr %0, i64 8 tail call void @llvm.amdgcn.wave.barrier() %3 = load ptr, ptr %0, align 8, !tbaa !46 %4 = load i64, ptr %2, align 8, !tbaa !55 %5 = getelementptr inbounds nuw i8, ptr %0, i64 20 %6 = load i32, ptr %5, align 4, !tbaa !47 fence release %7 = getelementptr inbounds nuw i8, ptr %3, i64 40 %8 = tail call i32 @llvm.amdgcn.mbcnt.lo(i32 -1, i32 0) %9 = zext i32 %8 to i64 %10 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %4, i1 true) %11 = icmp ne i64 %4, 0 %12 = icmp eq i64 %10, %9 %13 = select i1 %11, i1 %12, i1 false %14 = lshr i32 %6, 5 %15 = and i32 %6, 31 %16 = zext nneg i32 %14 to i64 %17 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::cpp::Atomic", ptr %7, i64 %16 %18 = zext i1 %13 to i32 %19 = shl nuw i32 %18, %15 %20 = xor i32 %19, -1 %21 = atomicrmw and ptr %17, i32 %20 syncscope("agent-one-as") monotonic, align 4 tail call void @llvm.amdgcn.wave.barrier() ret void } ; Function Attrs: cold convergent nocallback nofree noreturn nounwind declare void @llvm.amdgcn.endpgm() #8 ; Function Attrs: convergent nocallback nofree nounwind willreturn declare void @llvm.amdgcn.wave.barrier() #9 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(none) declare i32 @llvm.amdgcn.mbcnt.lo(i32, i32) #10 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.cttz.i64(i64, i1 immarg) #2 ; Function Attrs: convergent nocallback nofree nounwind willreturn memory(none) declare i32 @llvm.amdgcn.readfirstlane.i32(i32) #11 ; Function Attrs: nocallback nofree nosync nounwind willreturn declare void @llvm.amdgcn.s.sleep(i32 immarg) #12 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare noundef i32 @llvm.amdgcn.wavefrontsize() #2 ; Function Attrs: convergent mustprogress nofree norecurse nounwind define internal fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr nocapture readonly %0, i64 %1) unnamed_addr #13 { %3 = tail call i32 @llvm.amdgcn.mbcnt.lo(i32 -1, i32 0) %4 = zext i32 %3 to i64 %5 = tail call i32 @llvm.amdgcn.wavefrontsize() br label %6 6: ; preds = %67, %2 %7 = phi i32 [ undef, %2 ], [ %68, %67 ] %8 = phi i32 [ undef, %2 ], [ %69, %67 ] %9 = phi i64 [ undef, %2 ], [ %70, %67 ] %10 = phi i32 [ undef, %2 ], [ %71, %67 ] %11 = phi i32 [ 0, %2 ], [ %72, %67 ] %12 = load i32, ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3rpc6clientE, align 8, !tbaa !25 %13 = icmp ult i32 %11, %12 %14 = select i1 %13, i32 %11, i32 0 %15 = tail call i32 @llvm.amdgcn.ballot.i32(i1 true) %16 = zext i32 %15 to i64 %17 = lshr i32 %14, 5 %18 = and i32 %14, 31 %19 = zext nneg i32 %17 to i64 %20 = getelementptr inbounds %"struct.__llvm_libc_20_0_0_git::cpp::Atomic", ptr addrspace(1) getelementptr inbounds nuw (i8, ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3rpc6clientE, i64 40), i64 %19 %21 = lshr i64 %16, %4 %22 = trunc nuw i64 %21 to i32 %23 = and i32 %22, 1 %24 = shl nuw i32 %23, %18 %25 = atomicrmw or ptr addrspace(1) %20, i32 %24 syncscope("agent-one-as") monotonic, align 4 %26 = shl nuw i32 1, %18 %27 = and i32 %26, %25 %28 = icmp ne i32 %27, 0 %29 = tail call i32 @llvm.amdgcn.ballot.i32(i1 %28) %30 = and i32 %29, %15 %31 = icmp eq i32 %15, %30 br i1 %31, label %67, label %32 32: ; preds = %6 fence acquire %33 = load ptr, ptr addrspace(1) getelementptr inbounds nuw (i8, ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3rpc6clientE, i64 8), align 8, !tbaa !29 %34 = zext i32 %14 to i64 %35 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::cpp::Atomic", ptr %33, i64 %34 %36 = load atomic i32, ptr %35 syncscope("one-as") monotonic, align 4 %37 = tail call noundef i32 @llvm.amdgcn.readfirstlane.i32(i32 %36) %38 = load ptr, ptr addrspace(1) getelementptr inbounds nuw (i8, ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3rpc6clientE, i64 16), align 8, !tbaa !30 %39 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::cpp::Atomic", ptr %38, i64 %34 %40 = load atomic i32, ptr %39 syncscope("one-as") monotonic, align 4 %41 = tail call noundef i32 @llvm.amdgcn.readfirstlane.i32(i32 %40) %42 = icmp eq i32 %37, %41 br i1 %42, label %52, label %43 43: ; preds = %32 fence release %44 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %16, i1 true) %45 = icmp ne i32 %15, 0 %46 = icmp eq i64 %44, %4 %47 = select i1 %45, i1 %46, i1 false %48 = zext i1 %47 to i32 %49 = shl nuw i32 %48, %18 %50 = xor i32 %49, -1 %51 = atomicrmw and ptr addrspace(1) %20, i32 %50 syncscope("agent-one-as") monotonic, align 4 tail call void @llvm.amdgcn.wave.barrier() br label %62 52: ; preds = %32 %53 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %16, i1 true) %54 = icmp ne i32 %15, 0 %55 = icmp eq i64 %53, %4 %56 = select i1 %54, i1 %55, i1 false br i1 %56, label %57, label %61 57: ; preds = %52 %58 = load ptr, ptr addrspace(1) getelementptr inbounds nuw (i8, ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3rpc6clientE, i64 24), align 8, !tbaa !31 %59 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::rpc::Header", ptr %58, i64 %34, i32 1 store i16 3, ptr %59, align 8, !tbaa !32 %60 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::rpc::Header", ptr %58, i64 %34 store i64 %16, ptr %60, align 8, !tbaa !36 br label %61 61: ; preds = %57, %52 tail call void @llvm.amdgcn.wave.barrier() br label %62 62: ; preds = %61, %43 %63 = phi i32 [ %7, %43 ], [ %14, %61 ] %64 = phi i32 [ %8, %43 ], [ %5, %61 ] %65 = phi i64 [ %9, %43 ], [ %16, %61 ] %66 = phi i32 [ %10, %43 ], [ %37, %61 ] br i1 %42, label %73, label %67 67: ; preds = %62, %6 %68 = phi i32 [ %63, %62 ], [ %7, %6 ] %69 = phi i32 [ %64, %62 ], [ %8, %6 ] %70 = phi i64 [ %65, %62 ], [ %9, %6 ] %71 = phi i32 [ %66, %62 ], [ %10, %6 ] %72 = add i32 %14, 1 br label %6, !llvm.loop !56 73: ; preds = %62 %74 = phi i32 [ %63, %62 ] %75 = phi i32 [ %64, %62 ] %76 = phi i64 [ %65, %62 ] %77 = phi i32 [ %66, %62 ] fence acquire %78 = load ptr, ptr getelementptr inbounds nuw (i8, ptr addrspacecast (ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3rpc6clientE to ptr), i64 32), align 8, !tbaa !53 %79 = mul i32 %75, %74 %80 = zext i32 %79 to i64 %81 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::rpc::Buffer", ptr %78, i64 %80 %82 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::rpc::Buffer", ptr %81, i64 %4 store i64 %1, ptr %82, align 8, !tbaa !57 %83 = tail call i64 @llvm.umin.i64(i64 %1, i64 56) %84 = getelementptr inbounds i8, ptr %82, i64 8 %85 = icmp eq i64 %1, 0 br i1 %85, label %93, label %86 86: ; preds = %86, %73 %87 = phi i64 [ %91, %86 ], [ 0, %73 ] %88 = getelementptr inbounds nuw i8, ptr %0, i64 %87 %89 = load i8, ptr %88, align 1, !tbaa !58 %90 = getelementptr inbounds nuw i8, ptr %84, i64 %87 store i8 %89, ptr %90, align 1, !tbaa !58 %91 = add nuw nsw i64 %87, 1 %92 = icmp eq i64 %91, %83 br i1 %92, label %93, label %86, !llvm.loop !60 93: ; preds = %86, %73 %94 = zext i32 %74 to i64 %95 = icmp eq i32 %77, 0 %96 = zext i1 %95 to i32 fence release %97 = load ptr, ptr getelementptr inbounds nuw (i8, ptr addrspacecast (ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3rpc6clientE to ptr), i64 16), align 8, !tbaa !30 %98 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::cpp::Atomic", ptr %97, i64 %94 store atomic i32 %96, ptr %98 syncscope("one-as") monotonic, align 4 %99 = load ptr, ptr getelementptr inbounds nuw (i8, ptr addrspacecast (ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3rpc6clientE to ptr), i64 24), align 8, !tbaa !62 %100 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::rpc::Header", ptr %99, i64 %94 %101 = load i64, ptr %100, align 8, !tbaa !36 br label %102 102: ; preds = %137, %93 %103 = phi i32 [ %96, %93 ], [ %138, %137 ] %104 = phi i64 [ 56, %93 ], [ %141, %137 ] %105 = icmp ult i64 %104, %1 %106 = tail call i32 @llvm.amdgcn.ballot.i32(i1 %105) %107 = zext i32 %106 to i64 %108 = and i64 %101, %107 %109 = icmp eq i64 %108, 0 %110 = load ptr, ptr getelementptr inbounds nuw (i8, ptr addrspacecast (ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3rpc6clientE to ptr), i64 8), align 8, !tbaa !29 %111 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::cpp::Atomic", ptr %110, i64 %94 %112 = load atomic i32, ptr %111 syncscope("one-as") monotonic, align 4 br i1 %109, label %142, label %113 113: ; preds = %102 %114 = tail call noundef i32 @llvm.amdgcn.readfirstlane.i32(i32 %112) %115 = icmp eq i32 %114, %103 br i1 %115, label %122, label %116 116: ; preds = %116, %113 tail call void @llvm.amdgcn.s.sleep(i32 2) %117 = load ptr, ptr getelementptr inbounds nuw (i8, ptr addrspacecast (ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3rpc6clientE to ptr), i64 8), align 8, !tbaa !29 %118 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::cpp::Atomic", ptr %117, i64 %94 %119 = load atomic i32, ptr %118 syncscope("one-as") monotonic, align 4 %120 = tail call noundef i32 @llvm.amdgcn.readfirstlane.i32(i32 %119) %121 = icmp eq i32 %120, %103 br i1 %121, label %122, label %116, !llvm.loop !63 122: ; preds = %116, %113 fence acquire %123 = load ptr, ptr getelementptr inbounds nuw (i8, ptr addrspacecast (ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3rpc6clientE to ptr), i64 32), align 8, !tbaa !53 %124 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::rpc::Buffer", ptr %123, i64 %80 %125 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::rpc::Buffer", ptr %124, i64 %4 %126 = sub i64 %1, %104 %127 = tail call i64 @llvm.umin.i64(i64 %126, i64 64) br i1 %105, label %128, label %137 128: ; preds = %122 %129 = getelementptr inbounds nuw i8, ptr %0, i64 %104 br label %130 130: ; preds = %130, %128 %131 = phi i64 [ %135, %130 ], [ 0, %128 ] %132 = getelementptr inbounds nuw i8, ptr %129, i64 %131 %133 = load i8, ptr %132, align 1, !tbaa !58 %134 = getelementptr inbounds nuw i8, ptr %125, i64 %131 store i8 %133, ptr %134, align 1, !tbaa !58 %135 = add nuw i64 %131, 1 %136 = icmp eq i64 %135, %127 br i1 %136, label %137, label %130, !llvm.loop !60 137: ; preds = %130, %122 %138 = xor i32 %103, 1 fence release %139 = load ptr, ptr getelementptr inbounds nuw (i8, ptr addrspacecast (ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3rpc6clientE to ptr), i64 16), align 8, !tbaa !30 %140 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::cpp::Atomic", ptr %139, i64 %94 store atomic i32 %138, ptr %140 syncscope("one-as") monotonic, align 4 %141 = add i64 %104, 64 br label %102, !llvm.loop !64 142: ; preds = %102 %143 = phi i32 [ %103, %102 ] %144 = phi i32 [ %112, %102 ] %145 = tail call noundef i32 @llvm.amdgcn.readfirstlane.i32(i32 %144) %146 = icmp eq i32 %145, %143 br i1 %146, label %153, label %147 147: ; preds = %147, %142 tail call void @llvm.amdgcn.s.sleep(i32 2) %148 = load ptr, ptr getelementptr inbounds nuw (i8, ptr addrspacecast (ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3rpc6clientE to ptr), i64 8), align 8, !tbaa !29 %149 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::cpp::Atomic", ptr %148, i64 %94 %150 = load atomic i32, ptr %149 syncscope("one-as") monotonic, align 4 %151 = tail call noundef i32 @llvm.amdgcn.readfirstlane.i32(i32 %150) %152 = icmp eq i32 %151, %143 br i1 %152, label %153, label %147, !llvm.loop !63 153: ; preds = %147, %142 fence acquire tail call void @llvm.amdgcn.wave.barrier() fence release %154 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %76, i1 true) %155 = icmp ne i64 %76, 0 %156 = icmp eq i64 %154, %4 %157 = select i1 %155, i1 %156, i1 false %158 = lshr i32 %74, 5 %159 = and i32 %74, 31 %160 = zext nneg i32 %158 to i64 %161 = getelementptr inbounds nuw %"struct.__llvm_libc_20_0_0_git::cpp::Atomic", ptr getelementptr inbounds nuw (i8, ptr addrspacecast (ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git3rpc6clientE to ptr), i64 40), i64 %160 %162 = zext i1 %157 to i32 %163 = shl nuw i32 %162, %159 %164 = xor i32 %163, -1 %165 = atomicrmw and ptr %161, i32 %164 syncscope("agent-one-as") monotonic, align 4 tail call void @llvm.amdgcn.wave.barrier() ret void } ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.umin.i64(i64, i64) #2 ; Function Attrs: convergent mustprogress nounwind define internal fastcc noundef i32 @_ZN22__llvm_libc_20_0_0_git7sprintfEPcPKcz.valist(ptr noalias noundef %0, ptr noalias noundef %1, ptr %2) unnamed_addr #14 { %4 = alloca [64 x i8], align 1, addrspace(5) %5 = alloca [64 x i8], align 1, addrspace(5) %6 = alloca [64 x i8], align 1, addrspace(5) %7 = alloca [64 x i8], align 1, addrspace(5) %8 = alloca [64 x i8], align 1, addrspace(5) %9 = alloca [64 x i8], align 1, addrspace(5) %10 = alloca [64 x i8], align 1, addrspace(5) %11 = alloca [64 x i8], align 1, addrspace(5) %12 = alloca [64 x i8], align 1, addrspace(5) %13 = alloca [64 x i8], align 1, addrspace(5) %14 = alloca [64 x i8], align 1, addrspace(5) %15 = alloca [64 x i8], align 1, addrspace(5) %16 = alloca [64 x i8], align 1, addrspace(5) %17 = alloca [64 x i8], align 1, addrspace(5) %18 = alloca i8, align 1, addrspace(5) %19 = alloca i8, align 1, addrspace(5) %20 = alloca [32 x i8], align 1, addrspace(5) %21 = alloca %"class.__llvm_libc_20_0_0_git::IntegerToString", align 8, addrspace(5) %22 = alloca %"class.__llvm_libc_20_0_0_git::IntegerToString.12", align 8, addrspace(5) %23 = alloca %"struct.__llvm_libc_20_0_0_git::cpp::array", align 1, addrspace(5) %24 = alloca [2 x i8], align 2, addrspace(5) %25 = alloca [10 x i8], align 1, addrspace(5) %26 = alloca %"struct.__llvm_libc_20_0_0_git::cpp::array", align 1, addrspace(5) %27 = alloca [2 x i8], align 1, addrspace(5) %28 = alloca i8, align 1, addrspace(5) %29 = alloca %"struct.__llvm_libc_20_0_0_git::printf_core::WriteBuffer", align 8, addrspace(5) %30 = alloca %"class.__llvm_libc_20_0_0_git::printf_core::Writer", align 8, addrspace(5) %31 = addrspacecast ptr addrspace(5) %29 to ptr %32 = addrspacecast ptr addrspace(5) %30 to ptr call void @llvm.lifetime.start.p5(i64 56, ptr addrspace(5) %29) #21 %33 = getelementptr inbounds i8, ptr addrspace(5) %29, i32 48 store i64 -6148914694099828736, ptr addrspace(5) %33, align 8 store ptr %0, ptr addrspace(5) %29, align 8, !tbaa !65 %34 = getelementptr inbounds i8, ptr addrspace(5) %29, i32 8 store ptr %0, ptr addrspace(5) %34, align 8, !tbaa !68 %35 = getelementptr inbounds i8, ptr addrspace(5) %29, i32 16 store i64 -1, ptr addrspace(5) %35, align 8, !tbaa !69 %36 = getelementptr inbounds i8, ptr addrspace(5) %29, i32 24 store i64 0, ptr addrspace(5) %36, align 8, !tbaa !70 %37 = getelementptr inbounds i8, ptr addrspace(5) %29, i32 32 store ptr null, ptr addrspace(5) %37, align 8, !tbaa !71 %38 = getelementptr inbounds i8, ptr addrspace(5) %29, i32 40 store ptr null, ptr addrspace(5) %38, align 8, !tbaa !72 call void @llvm.lifetime.start.p5(i64 16, ptr addrspace(5) %30) #21 %39 = getelementptr inbounds i8, ptr addrspace(5) %30, i32 8 %40 = getelementptr inbounds i8, ptr addrspace(5) %30, i32 12 store i8 -86, ptr addrspace(5) %40, align 4, !annotation !23 %41 = getelementptr inbounds i8, ptr addrspace(5) %30, i32 13 store i8 -86, ptr addrspace(5) %41, align 1, !annotation !23 %42 = getelementptr inbounds i8, ptr addrspace(5) %30, i32 14 store i8 -86, ptr addrspace(5) %42, align 2, !annotation !23 %43 = getelementptr inbounds i8, ptr addrspace(5) %30, i32 15 store i8 -86, ptr addrspace(5) %43, align 1, !annotation !23 store ptr %31, ptr addrspace(5) %30, align 8, !tbaa !73 store i32 0, ptr addrspace(5) %39, align 8, !tbaa !75 %44 = load i8, ptr %1, align 1, !tbaa !19 %45 = icmp eq i8 %44, 37 br i1 %45, label %46, label %434 46: ; preds = %62, %3 %47 = phi i64 [ %66, %62 ], [ 1, %3 ] %48 = phi i64 [ %67, %62 ], [ 1, %3 ] %49 = phi i8 [ %64, %62 ], [ 0, %3 ] %50 = getelementptr inbounds nuw i8, ptr %1, i64 %48 %51 = load i8, ptr %50, align 1, !tbaa !19 switch i8 %51, label %62 [ i8 45, label %52 i8 43, label %54 i8 32, label %56 i8 35, label %58 i8 48, label %60 ] 52: ; preds = %46 %53 = or i8 %49, 1 br label %62 54: ; preds = %46 %55 = or i8 %49, 2 br label %62 56: ; preds = %46 %57 = or i8 %49, 4 br label %62 58: ; preds = %46 %59 = or i8 %49, 8 br label %62 60: ; preds = %46 %61 = or i8 %49, 16 br label %62 62: ; preds = %60, %58, %56, %54, %52, %46 %63 = phi i1 [ true, %60 ], [ true, %58 ], [ true, %56 ], [ true, %54 ], [ true, %52 ], [ false, %46 ] %64 = phi i8 [ %61, %60 ], [ %59, %58 ], [ %57, %56 ], [ %55, %54 ], [ %53, %52 ], [ %49, %46 ] %65 = add i64 %48, 1 %66 = select i1 %63, i64 %65, i64 %47 %67 = select i1 %63, i64 %65, i64 %48 br i1 %63, label %46, label %68, !llvm.loop !76 68: ; preds = %62 %69 = phi i8 [ %64, %62 ] %70 = phi i64 [ %66, %62 ] %71 = phi i64 [ %67, %62 ] %72 = getelementptr inbounds nuw i8, ptr %1, i64 %71 %73 = load i8, ptr %72, align 1, !tbaa !19 %74 = icmp eq i8 %73, 42 br i1 %74, label %75, label %79 75: ; preds = %68 %76 = add i64 %71, 1 %77 = getelementptr inbounds i8, ptr %2, i64 4 %78 = load i32, ptr %2, align 4, !tbaa !52 br label %153 79: ; preds = %68 %80 = sext i8 %73 to i32 %81 = add nsw i32 %80, -48 %82 = icmp ult i32 %81, 10 br i1 %82, label %83, label %153 83: ; preds = %87, %79 %84 = phi i64 [ %88, %87 ], [ 0, %79 ] %85 = getelementptr inbounds nuw i8, ptr %72, i64 %84 %86 = load i8, ptr %85, align 1, !tbaa !19, !alias.scope !77 switch i8 %86, label %93 [ i8 32, label %87 i8 13, label %87 i8 12, label %87 i8 11, label %87 i8 10, label %87 i8 9, label %87 ] 87: ; preds = %83, %83, %83, %83, %83, %83 %88 = add nuw i64 %84, 1 %89 = icmp eq i64 %88, -1 br i1 %89, label %90, label %83, !llvm.loop !80 90: ; preds = %87 %91 = getelementptr inbounds nuw i8, ptr %72, i64 -1 %92 = load i8, ptr %91, align 1, !tbaa !19, !alias.scope !77 br label %93 93: ; preds = %90, %83 %94 = phi i8 [ %92, %90 ], [ %86, %83 ] %95 = phi i64 [ -1, %90 ], [ %84, %83 ] switch i8 %94, label %99 [ i8 43, label %96 i8 45, label %96 ] 96: ; preds = %93, %93 %97 = add i64 %95, 1 %98 = icmp eq i8 %94, 43 br label %99 99: ; preds = %96, %93 %100 = phi i1 [ %98, %96 ], [ true, %93 ] %101 = phi i64 [ %97, %96 ], [ %95, %93 ] %102 = select i1 %100, i32 2147483647, i32 -2147483648 br label %103 103: ; preds = %137, %99 %104 = phi i32 [ 0, %99 ], [ %138, %137 ] %105 = phi i64 [ %101, %99 ], [ %139, %137 ] %106 = phi i1 [ false, %99 ], [ %140, %137 ] %107 = phi i32 [ 0, %99 ], [ %141, %137 ] %108 = icmp eq i64 %105, -1 br i1 %108, label %142, label %109 109: ; preds = %103 %110 = getelementptr inbounds nuw i8, ptr %72, i64 %105 %111 = load i8, ptr %110, align 1, !tbaa !19, !alias.scope !77 %112 = sext i8 %111 to i32 %113 = or i32 %112, 32 %114 = add nsw i32 %113, -97 %115 = icmp ult i32 %114, 26 %116 = add nsw i32 %112, -48 %117 = icmp ult i32 %116, 10 %118 = select i1 %115, i1 true, i1 %117 br i1 %118, label %119, label %142 119: ; preds = %109 %120 = add nsw i32 %113, -87 %121 = select i1 %115, i32 %120, i32 0 %122 = select i1 %117, i32 %116, i32 %121 %123 = icmp slt i32 %122, 10 br i1 %123, label %124, label %137 124: ; preds = %119 %125 = add nuw i64 %105, 1 %126 = icmp eq i32 %107, %102 br i1 %126, label %137, label %127, !llvm.loop !81 127: ; preds = %124 %128 = icmp ugt i32 %107, 214748364 %129 = mul i32 %107, 10 %130 = select i1 %128, i32 %102, i32 %129 %131 = sub i32 %102, %122 %132 = icmp ugt i32 %130, %131 %133 = add i32 %122, %130 %134 = or i1 %128, %132 %135 = select i1 %134, i32 34, i32 %104 %136 = select i1 %132, i32 %102, i32 %133 br label %137 137: ; preds = %127, %124, %119 %138 = phi i32 [ %135, %127 ], [ %104, %119 ], [ 34, %124 ] %139 = phi i64 [ %125, %127 ], [ %105, %119 ], [ %125, %124 ] %140 = phi i1 [ true, %127 ], [ %106, %119 ], [ true, %124 ] %141 = phi i32 [ %136, %127 ], [ %107, %119 ], [ %102, %124 ] br i1 %123, label %103, label %142 142: ; preds = %137, %109, %103 %143 = phi i32 [ %138, %137 ], [ %104, %109 ], [ %104, %103 ] %144 = phi i64 [ %139, %137 ], [ %105, %109 ], [ -1, %103 ] %145 = phi i1 [ %140, %137 ], [ %106, %109 ], [ %106, %103 ] %146 = phi i32 [ %141, %137 ], [ %107, %109 ], [ %107, %103 ] %147 = select i1 %145, i64 %144, i64 0 %148 = icmp eq i32 %143, 34 %149 = sub i32 0, %146 %150 = select i1 %100, i32 %146, i32 %149 %151 = select i1 %148, i32 %102, i32 %150 %152 = add i64 %147, %71 br label %153 153: ; preds = %142, %79, %75 %154 = phi i64 [ %76, %75 ], [ %152, %142 ], [ %70, %79 ] %155 = phi ptr [ %77, %75 ], [ %2, %142 ], [ %2, %79 ] %156 = phi i64 [ %76, %75 ], [ %152, %142 ], [ %71, %79 ] %157 = phi i32 [ %78, %75 ], [ %151, %142 ], [ 0, %79 ] %158 = icmp slt i32 %157, 0 %159 = icmp eq i32 %157, -2147483648 %160 = sub nsw i32 0, %157 %161 = select i1 %159, i32 2147483647, i32 %160 %162 = select i1 %158, i32 %161, i32 %157 %163 = lshr i32 %157, 31 %164 = trunc nuw nsw i32 %163 to i8 %165 = or i8 %69, %164 %166 = getelementptr inbounds nuw i8, ptr %1, i64 %156 %167 = load i8, ptr %166, align 1, !tbaa !19 %168 = icmp eq i8 %167, 46 br i1 %168, label %169, label %249 169: ; preds = %153 %170 = add i64 %156, 1 %171 = getelementptr inbounds nuw i8, ptr %1, i64 %170 %172 = load i8, ptr %171, align 1, !tbaa !19 %173 = icmp eq i8 %172, 42 br i1 %173, label %174, label %178 174: ; preds = %169 %175 = add i64 %156, 2 %176 = getelementptr inbounds i8, ptr %155, i64 4 %177 = load i32, ptr %155, align 4, !tbaa !52 br label %249 178: ; preds = %169 %179 = sext i8 %172 to i32 %180 = add nsw i32 %179, -48 %181 = icmp ult i32 %180, 10 br i1 %181, label %182, label %249 182: ; preds = %186, %178 %183 = phi i64 [ %187, %186 ], [ 0, %178 ] %184 = getelementptr inbounds nuw i8, ptr %171, i64 %183 %185 = load i8, ptr %184, align 1, !tbaa !19, !alias.scope !82 switch i8 %185, label %189 [ i8 32, label %186 i8 13, label %186 i8 12, label %186 i8 11, label %186 i8 10, label %186 i8 9, label %186 ] 186: ; preds = %182, %182, %182, %182, %182, %182 %187 = add nuw i64 %183, 1 %188 = icmp eq i64 %187, -1 br i1 %188, label %189, label %182, !llvm.loop !80 189: ; preds = %186, %182 %190 = phi i8 [ 46, %186 ], [ %185, %182 ] %191 = phi i64 [ -1, %186 ], [ %183, %182 ] switch i8 %190, label %195 [ i8 43, label %192 i8 45, label %192 ] 192: ; preds = %189, %189 %193 = add i64 %191, 1 %194 = icmp eq i8 %190, 43 br label %195 195: ; preds = %192, %189 %196 = phi i1 [ %194, %192 ], [ true, %189 ] %197 = phi i64 [ %193, %192 ], [ %191, %189 ] %198 = select i1 %196, i32 2147483647, i32 -2147483648 br label %199 199: ; preds = %233, %195 %200 = phi i32 [ 0, %195 ], [ %234, %233 ] %201 = phi i64 [ %197, %195 ], [ %235, %233 ] %202 = phi i1 [ false, %195 ], [ %236, %233 ] %203 = phi i32 [ 0, %195 ], [ %237, %233 ] %204 = icmp eq i64 %201, -1 br i1 %204, label %238, label %205 205: ; preds = %199 %206 = getelementptr inbounds nuw i8, ptr %171, i64 %201 %207 = load i8, ptr %206, align 1, !tbaa !19, !alias.scope !82 %208 = sext i8 %207 to i32 %209 = or i32 %208, 32 %210 = add nsw i32 %209, -97 %211 = icmp ult i32 %210, 26 %212 = add nsw i32 %208, -48 %213 = icmp ult i32 %212, 10 %214 = select i1 %211, i1 true, i1 %213 br i1 %214, label %215, label %238 215: ; preds = %205 %216 = add nsw i32 %209, -87 %217 = select i1 %211, i32 %216, i32 0 %218 = select i1 %213, i32 %212, i32 %217 %219 = icmp slt i32 %218, 10 br i1 %219, label %220, label %233 220: ; preds = %215 %221 = add nuw i64 %201, 1 %222 = icmp eq i32 %203, %198 br i1 %222, label %233, label %223, !llvm.loop !81 223: ; preds = %220 %224 = icmp ugt i32 %203, 214748364 %225 = mul i32 %203, 10 %226 = select i1 %224, i32 %198, i32 %225 %227 = sub i32 %198, %218 %228 = icmp ugt i32 %226, %227 %229 = add i32 %218, %226 %230 = or i1 %224, %228 %231 = select i1 %230, i32 34, i32 %200 %232 = select i1 %228, i32 %198, i32 %229 br label %233 233: ; preds = %223, %220, %215 %234 = phi i32 [ %231, %223 ], [ %200, %215 ], [ 34, %220 ] %235 = phi i64 [ %221, %223 ], [ %201, %215 ], [ %221, %220 ] %236 = phi i1 [ true, %223 ], [ %202, %215 ], [ true, %220 ] %237 = phi i32 [ %232, %223 ], [ %203, %215 ], [ %198, %220 ] br i1 %219, label %199, label %238 238: ; preds = %233, %205, %199 %239 = phi i32 [ %234, %233 ], [ %200, %205 ], [ %200, %199 ] %240 = phi i64 [ %235, %233 ], [ %201, %205 ], [ -1, %199 ] %241 = phi i1 [ %236, %233 ], [ %202, %205 ], [ %202, %199 ] %242 = phi i32 [ %237, %233 ], [ %203, %205 ], [ %203, %199 ] %243 = select i1 %241, i64 %240, i64 0 %244 = icmp eq i32 %239, 34 %245 = sub i32 0, %242 %246 = select i1 %196, i32 %242, i32 %245 %247 = select i1 %244, i32 %198, i32 %246 %248 = add i64 %243, %170 br label %249 249: ; preds = %238, %178, %174, %153 %250 = phi i64 [ %175, %174 ], [ %248, %238 ], [ %170, %178 ], [ %154, %153 ] %251 = phi ptr [ %176, %174 ], [ %155, %238 ], [ %155, %178 ], [ %155, %153 ] %252 = phi i64 [ %175, %174 ], [ %248, %238 ], [ %170, %178 ], [ %156, %153 ] %253 = phi i32 [ %177, %174 ], [ %247, %238 ], [ 0, %178 ], [ -1, %153 ] %254 = getelementptr inbounds nuw i8, ptr %1, i64 %252 %255 = load i8, ptr %254, align 1, !tbaa !19 switch i8 %255, label %363 [ i8 108, label %256 i8 119, label %263 i8 104, label %348 i8 76, label %355 i8 106, label %357 i8 122, label %359 i8 116, label %361 ] 256: ; preds = %249 %257 = add i64 %252, 1 %258 = getelementptr inbounds nuw i8, ptr %1, i64 %257 %259 = load i8, ptr %258, align 1, !tbaa !19 %260 = icmp eq i8 %259, 108 br i1 %260, label %261, label %363 261: ; preds = %256 %262 = add i64 %252, 2 br label %363 263: ; preds = %249 %264 = add i64 %252, 1 %265 = getelementptr inbounds nuw i8, ptr %1, i64 %264 %266 = load i8, ptr %265, align 1, !tbaa !19 %267 = icmp eq i8 %266, 102 %268 = add i64 %252, 2 %269 = select i1 %267, i64 %268, i64 %264 %270 = select i1 %267, i32 9, i32 8 %271 = getelementptr inbounds nuw i8, ptr %1, i64 %269 %272 = load i8, ptr %271, align 1, !tbaa !19 %273 = sext i8 %272 to i32 %274 = add nsw i32 %273, -48 %275 = icmp ult i32 %274, 10 br i1 %275, label %276, label %363 276: ; preds = %280, %263 %277 = phi i64 [ %281, %280 ], [ 0, %263 ] %278 = getelementptr inbounds nuw i8, ptr %271, i64 %277 %279 = load i8, ptr %278, align 1, !tbaa !19, !alias.scope !85 switch i8 %279, label %286 [ i8 32, label %280 i8 13, label %280 i8 12, label %280 i8 11, label %280 i8 10, label %280 i8 9, label %280 ] 280: ; preds = %276, %276, %276, %276, %276, %276 %281 = add nuw i64 %277, 1 %282 = icmp eq i64 %281, -1 br i1 %282, label %283, label %276, !llvm.loop !80 283: ; preds = %280 %284 = getelementptr inbounds nuw i8, ptr %271, i64 -1 %285 = load i8, ptr %284, align 1, !tbaa !19, !alias.scope !85 br label %286 286: ; preds = %283, %276 %287 = phi i8 [ %285, %283 ], [ %279, %276 ] %288 = phi i64 [ -1, %283 ], [ %277, %276 ] switch i8 %287, label %292 [ i8 43, label %289 i8 45, label %289 ] 289: ; preds = %286, %286 %290 = add i64 %288, 1 %291 = icmp eq i8 %287, 43 br label %292 292: ; preds = %289, %286 %293 = phi i1 [ %291, %289 ], [ true, %286 ] %294 = phi i64 [ %290, %289 ], [ %288, %286 ] %295 = select i1 %293, i32 2147483647, i32 -2147483648 br label %296 296: ; preds = %330, %292 %297 = phi i32 [ 0, %292 ], [ %331, %330 ] %298 = phi i64 [ %294, %292 ], [ %332, %330 ] %299 = phi i1 [ false, %292 ], [ %333, %330 ] %300 = phi i32 [ 0, %292 ], [ %334, %330 ] %301 = icmp eq i64 %298, -1 br i1 %301, label %335, label %302 302: ; preds = %296 %303 = getelementptr inbounds nuw i8, ptr %271, i64 %298 %304 = load i8, ptr %303, align 1, !tbaa !19, !alias.scope !85 %305 = sext i8 %304 to i32 %306 = or i32 %305, 32 %307 = add nsw i32 %306, -97 %308 = icmp ult i32 %307, 26 %309 = add nsw i32 %305, -48 %310 = icmp ult i32 %309, 10 %311 = select i1 %308, i1 true, i1 %310 br i1 %311, label %312, label %335 312: ; preds = %302 %313 = add nsw i32 %306, -87 %314 = select i1 %308, i32 %313, i32 0 %315 = select i1 %310, i32 %309, i32 %314 %316 = icmp slt i32 %315, 10 br i1 %316, label %317, label %330 317: ; preds = %312 %318 = add nuw i64 %298, 1 %319 = icmp eq i32 %300, %295 br i1 %319, label %330, label %320, !llvm.loop !81 320: ; preds = %317 %321 = icmp ugt i32 %300, 214748364 %322 = mul i32 %300, 10 %323 = select i1 %321, i32 %295, i32 %322 %324 = sub i32 %295, %315 %325 = icmp ugt i32 %323, %324 %326 = add i32 %315, %323 %327 = or i1 %321, %325 %328 = select i1 %327, i32 34, i32 %297 %329 = select i1 %325, i32 %295, i32 %326 br label %330 330: ; preds = %320, %317, %312 %331 = phi i32 [ %328, %320 ], [ %297, %312 ], [ 34, %317 ] %332 = phi i64 [ %318, %320 ], [ %298, %312 ], [ %318, %317 ] %333 = phi i1 [ true, %320 ], [ %299, %312 ], [ true, %317 ] %334 = phi i32 [ %329, %320 ], [ %300, %312 ], [ %295, %317 ] br i1 %316, label %296, label %335 335: ; preds = %330, %302, %296 %336 = phi i32 [ %331, %330 ], [ %297, %302 ], [ %297, %296 ] %337 = phi i64 [ %332, %330 ], [ %298, %302 ], [ -1, %296 ] %338 = phi i1 [ %333, %330 ], [ %299, %302 ], [ %299, %296 ] %339 = phi i32 [ %334, %330 ], [ %300, %302 ], [ %300, %296 ] %340 = select i1 %338, i64 %337, i64 0 %341 = icmp eq i32 %336, 34 %342 = sub i32 0, %339 %343 = select i1 %293, i32 %339, i32 %342 %344 = select i1 %341, i32 %295, i32 %343 %345 = add i64 %340, %269 %346 = call i32 @llvm.smax.i32(i32 %344, i32 0) %347 = zext nneg i32 %346 to i64 br label %363 348: ; preds = %249 %349 = add i64 %252, 1 %350 = getelementptr inbounds nuw i8, ptr %1, i64 %349 %351 = load i8, ptr %350, align 1, !tbaa !19 %352 = icmp eq i8 %351, 104 br i1 %352, label %353, label %363 353: ; preds = %348 %354 = add i64 %252, 2 br label %363 355: ; preds = %249 %356 = add i64 %252, 1 br label %363 357: ; preds = %249 %358 = add i64 %252, 1 br label %363 359: ; preds = %249 %360 = add i64 %252, 1 br label %363 361: ; preds = %249 %362 = add i64 %252, 1 br label %363 363: ; preds = %361, %359, %357, %355, %353, %348, %335, %263, %261, %256, %249 %364 = phi i64 [ %250, %249 ], [ %362, %361 ], [ %360, %359 ], [ %358, %357 ], [ %356, %355 ], [ %354, %353 ], [ %345, %335 ], [ %269, %263 ], [ %262, %261 ], [ %257, %256 ], [ %349, %348 ] %365 = phi i64 [ %252, %249 ], [ %362, %361 ], [ %360, %359 ], [ %358, %357 ], [ %356, %355 ], [ %354, %353 ], [ %345, %335 ], [ %269, %263 ], [ %262, %261 ], [ %257, %256 ], [ %349, %348 ] %366 = phi i32 [ 10, %249 ], [ 6, %361 ], [ 5, %359 ], [ 4, %357 ], [ 7, %355 ], [ 0, %353 ], [ %270, %335 ], [ %270, %263 ], [ 3, %261 ], [ 2, %256 ], [ 1, %348 ] %367 = phi i64 [ 0, %249 ], [ 0, %361 ], [ 0, %359 ], [ 0, %357 ], [ 0, %355 ], [ 0, %353 ], [ %347, %335 ], [ 0, %263 ], [ 0, %261 ], [ 0, %256 ], [ 0, %348 ] %368 = getelementptr inbounds nuw i8, ptr %1, i64 %365 %369 = load i8, ptr %368, align 1, !tbaa !19 switch i8 %369, label %424 [ i8 37, label %426 i8 99, label %370 i8 100, label %374 i8 105, label %374 i8 111, label %374 i8 120, label %374 i8 88, label %374 i8 117, label %374 i8 98, label %374 i8 66, label %374 i8 114, label %405 i8 82, label %405 i8 107, label %409 i8 75, label %409 i8 112, label %418 i8 115, label %421 ] 370: ; preds = %363 %371 = getelementptr inbounds i8, ptr %251, i64 4 %372 = load i32, ptr %251, align 4, !tbaa !52 %373 = sext i32 %372 to i64 br label %426 374: ; preds = %363, %363, %363, %363, %363, %363, %363, %363 switch i32 %366, label %425 [ i32 0, label %375 i32 1, label %375 i32 10, label %375 i32 2, label %379 i32 3, label %382 i32 7, label %382 i32 4, label %385 i32 5, label %388 i32 6, label %391 i32 8, label %394 i32 9, label %394 ] 375: ; preds = %374, %374, %374 %376 = getelementptr inbounds i8, ptr %251, i64 4 %377 = load i32, ptr %251, align 4, !tbaa !52 %378 = sext i32 %377 to i64 br label %426 379: ; preds = %374 %380 = getelementptr inbounds i8, ptr %251, i64 8 %381 = load i64, ptr %251, align 4, !tbaa !15 br label %426 382: ; preds = %374, %374 %383 = getelementptr inbounds i8, ptr %251, i64 8 %384 = load i64, ptr %251, align 4, !tbaa !57 br label %426 385: ; preds = %374 %386 = getelementptr inbounds i8, ptr %251, i64 8 %387 = load i64, ptr %251, align 4, !tbaa !57 br label %426 388: ; preds = %374 %389 = getelementptr inbounds i8, ptr %251, i64 8 %390 = load i64, ptr %251, align 4, !tbaa !15 br label %426 391: ; preds = %374 %392 = getelementptr inbounds i8, ptr %251, i64 8 %393 = load i64, ptr %251, align 4, !tbaa !15 br label %426 394: ; preds = %374, %374 %395 = icmp eq i64 %367, 0 br i1 %395, label %426, label %396 396: ; preds = %394 %397 = icmp samesign ult i64 %367, 33 br i1 %397, label %398, label %402 398: ; preds = %396 %399 = getelementptr inbounds i8, ptr %251, i64 4 %400 = load i32, ptr %251, align 4, !tbaa !52 %401 = sext i32 %400 to i64 br label %426 402: ; preds = %396 %403 = getelementptr inbounds i8, ptr %251, i64 8 %404 = load i64, ptr %251, align 4, !tbaa !19 br label %426 405: ; preds = %363, %363 %406 = getelementptr inbounds i8, ptr %251, i64 4 %407 = load i32, ptr %251, align 4, !tbaa !52 %408 = zext i32 %407 to i64 br label %426 409: ; preds = %363, %363 %410 = icmp eq i32 %366, 2 br i1 %410, label %411, label %414 411: ; preds = %409 %412 = getelementptr inbounds i8, ptr %251, i64 8 %413 = load i64, ptr %251, align 4, !tbaa !57 br label %426 414: ; preds = %409 %415 = getelementptr inbounds i8, ptr %251, i64 4 %416 = load i32, ptr %251, align 4, !tbaa !52 %417 = zext i32 %416 to i64 br label %426 418: ; preds = %363 %419 = getelementptr inbounds i8, ptr %251, i64 8 %420 = load ptr, ptr %251, align 4, !tbaa !13 br label %426 421: ; preds = %363 %422 = getelementptr inbounds i8, ptr %251, i64 8 %423 = load ptr, ptr %251, align 4, !tbaa !13 br label %426 424: ; preds = %363 br label %426 425: ; preds = %5015, %1127, %374 unreachable 426: ; preds = %424, %421, %418, %414, %411, %405, %402, %398, %394, %391, %388, %385, %382, %379, %375, %370, %363 %427 = phi ptr [ %251, %424 ], [ %422, %421 ], [ %419, %418 ], [ %412, %411 ], [ %415, %414 ], [ %406, %405 ], [ %251, %394 ], [ %399, %398 ], [ %403, %402 ], [ %392, %391 ], [ %389, %388 ], [ %386, %385 ], [ %383, %382 ], [ %380, %379 ], [ %376, %375 ], [ %371, %370 ], [ %251, %363 ] %428 = phi ptr [ inttoptr (i64 -6148914691236517206 to ptr), %424 ], [ %423, %421 ], [ %420, %418 ], [ inttoptr (i64 -6148914691236517206 to ptr), %411 ], [ inttoptr (i64 -6148914691236517206 to ptr), %414 ], [ inttoptr (i64 -6148914691236517206 to ptr), %405 ], [ inttoptr (i64 -6148914691236517206 to ptr), %394 ], [ inttoptr (i64 -6148914691236517206 to ptr), %398 ], [ inttoptr (i64 -6148914691236517206 to ptr), %402 ], [ inttoptr (i64 -6148914691236517206 to ptr), %391 ], [ inttoptr (i64 -6148914691236517206 to ptr), %388 ], [ inttoptr (i64 -6148914691236517206 to ptr), %385 ], [ inttoptr (i64 -6148914691236517206 to ptr), %382 ], [ inttoptr (i64 -6148914691236517206 to ptr), %379 ], [ inttoptr (i64 -6148914691236517206 to ptr), %375 ], [ inttoptr (i64 -6148914691236517206 to ptr), %370 ], [ inttoptr (i64 -6148914691236517206 to ptr), %363 ] %429 = phi i64 [ -6148914691236517206, %424 ], [ -6148914691236517206, %421 ], [ -6148914691236517206, %418 ], [ %413, %411 ], [ %417, %414 ], [ %408, %405 ], [ -6148914691236517206, %394 ], [ %401, %398 ], [ %404, %402 ], [ %393, %391 ], [ %390, %388 ], [ %387, %385 ], [ %384, %382 ], [ %381, %379 ], [ %378, %375 ], [ %373, %370 ], [ -6148914691236517206, %363 ] %430 = phi i1 [ false, %424 ], [ true, %421 ], [ true, %418 ], [ true, %411 ], [ true, %414 ], [ true, %405 ], [ false, %394 ], [ true, %398 ], [ true, %402 ], [ true, %391 ], [ true, %388 ], [ true, %385 ], [ true, %382 ], [ true, %379 ], [ true, %375 ], [ true, %370 ], [ true, %363 ] %431 = icmp eq i8 %369, 0 br i1 %431, label %441, label %432 432: ; preds = %426 %433 = add i64 %365, 1 br label %441 434: ; preds = %437, %3 %435 = phi i64 [ %438, %437 ], [ 0, %3 ] %436 = phi i8 [ %440, %437 ], [ %44, %3 ] switch i8 %436, label %437 [ i8 37, label %441 i8 0, label %441 ] 437: ; preds = %434 %438 = add i64 %435, 1 %439 = getelementptr inbounds nuw i8, ptr %1, i64 %438 %440 = load i8, ptr %439, align 1, !tbaa !19 br label %434, !llvm.loop !88 441: ; preds = %434, %434, %432, %426 %442 = phi i64 [ %364, %426 ], [ %433, %432 ], [ %435, %434 ], [ %435, %434 ] %443 = phi ptr [ %427, %426 ], [ %427, %432 ], [ %2, %434 ], [ %2, %434 ] %444 = phi i64 [ %365, %426 ], [ %433, %432 ], [ %435, %434 ], [ %435, %434 ] %445 = phi i8 [ 0, %426 ], [ %369, %432 ], [ -86, %434 ], [ -86, %434 ] %446 = phi ptr [ %428, %426 ], [ %428, %432 ], [ inttoptr (i64 -6148914691236517206 to ptr), %434 ], [ inttoptr (i64 -6148914691236517206 to ptr), %434 ] %447 = phi i64 [ %429, %426 ], [ %429, %432 ], [ -6148914691236517206, %434 ], [ -6148914691236517206, %434 ] %448 = phi i32 [ %253, %426 ], [ %253, %432 ], [ -1, %434 ], [ -1, %434 ] %449 = phi i32 [ %162, %426 ], [ %162, %432 ], [ 0, %434 ], [ 0, %434 ] %450 = phi i64 [ %367, %426 ], [ %367, %432 ], [ 0, %434 ], [ 0, %434 ] %451 = phi i32 [ %366, %426 ], [ %366, %432 ], [ 10, %434 ], [ 10, %434 ] %452 = phi i8 [ %165, %426 ], [ %165, %432 ], [ 0, %434 ], [ 0, %434 ] %453 = phi i1 [ %430, %426 ], [ %430, %432 ], [ false, %434 ], [ false, %434 ] %454 = icmp eq i64 %444, 0 br i1 %454, label %5096, label %455 455: ; preds = %441 %456 = getelementptr inbounds nuw i8, ptr %32, i64 8 %457 = getelementptr inbounds i8, ptr addrspace(5) %23, i32 64 %458 = addrspacecast ptr addrspace(5) %24 to ptr %459 = getelementptr inbounds i8, ptr addrspace(5) %23, i32 63 %460 = getelementptr inbounds i8, ptr addrspace(5) %24, i32 1 %461 = addrspacecast ptr addrspace(5) %4 to ptr %462 = addrspacecast ptr addrspace(5) %5 to ptr %463 = addrspacecast ptr addrspace(5) %6 to ptr %464 = addrspacecast ptr addrspace(5) %25 to ptr %465 = getelementptr inbounds i8, ptr addrspace(5) %25, i32 1 %466 = getelementptr inbounds i8, ptr addrspace(5) %25, i32 2 %467 = getelementptr inbounds i8, ptr addrspace(5) %25, i32 3 %468 = getelementptr inbounds i8, ptr addrspace(5) %25, i32 4 %469 = getelementptr inbounds i8, ptr addrspace(5) %25, i32 5 %470 = getelementptr inbounds i8, ptr addrspace(5) %25, i32 6 %471 = getelementptr inbounds i8, ptr addrspace(5) %25, i32 7 %472 = getelementptr inbounds i8, ptr addrspace(5) %25, i32 8 %473 = getelementptr inbounds i8, ptr addrspace(5) %25, i32 9 %474 = icmp eq ptr addrspace(5) %25, addrspacecast (ptr null to ptr addrspace(5)) %475 = select i1 %474, ptr addrspacecast (ptr addrspace(4) @.str.1.17 to ptr), ptr %464 %476 = addrspacecast ptr addrspace(5) %20 to ptr %477 = icmp eq ptr addrspace(4) @.str.6.22, addrspacecast (ptr null to ptr addrspace(4)) %478 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 1 %479 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 2 %480 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 3 %481 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 4 %482 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 5 %483 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 6 %484 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 7 %485 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 8 %486 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 9 %487 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 10 %488 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 11 %489 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 12 %490 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 13 %491 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 14 %492 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 15 %493 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 16 %494 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 17 %495 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 18 %496 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 19 %497 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 20 %498 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 21 %499 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 22 %500 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 23 %501 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 24 %502 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 25 %503 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 26 %504 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 27 %505 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 28 %506 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 29 %507 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 30 %508 = getelementptr inbounds i8, ptr addrspace(5) %20, i32 31 %509 = getelementptr inbounds i8, ptr addrspace(5) %21, i32 1 %510 = getelementptr inbounds i8, ptr addrspace(5) %21, i32 2 %511 = getelementptr inbounds i8, ptr addrspace(5) %21, i32 3 %512 = getelementptr inbounds i8, ptr addrspace(5) %21, i32 4 %513 = getelementptr inbounds i8, ptr addrspace(5) %21, i32 5 %514 = getelementptr inbounds i8, ptr addrspace(5) %21, i32 6 %515 = getelementptr inbounds i8, ptr addrspace(5) %21, i32 7 %516 = getelementptr inbounds i8, ptr addrspace(5) %21, i32 8 %517 = getelementptr inbounds i8, ptr addrspace(5) %21, i32 9 %518 = getelementptr inbounds i8, ptr addrspace(5) %21, i32 10 %519 = getelementptr inbounds i8, ptr addrspace(5) %21, i32 11 %520 = getelementptr inbounds i8, ptr addrspace(5) %21, i32 12 %521 = getelementptr inbounds i8, ptr addrspace(5) %21, i32 13 %522 = getelementptr inbounds i8, ptr addrspace(5) %21, i32 14 %523 = getelementptr inbounds i8, ptr addrspace(5) %21, i32 15 %524 = getelementptr inbounds i8, ptr addrspace(5) %21, i32 16 %525 = addrspacecast ptr addrspace(5) %519 to ptr %526 = icmp eq ptr addrspace(4) @.str.8.24, addrspacecast (ptr null to ptr addrspace(4)) %527 = icmp eq ptr addrspace(4) @.str.10.25, addrspacecast (ptr null to ptr addrspace(4)) %528 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 1 %529 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 2 %530 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 3 %531 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 4 %532 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 5 %533 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 6 %534 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 7 %535 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 8 %536 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 9 %537 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 10 %538 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 11 %539 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 12 %540 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 13 %541 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 14 %542 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 15 %543 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 16 %544 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 17 %545 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 18 %546 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 19 %547 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 20 %548 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 21 %549 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 22 %550 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 23 %551 = getelementptr inbounds i8, ptr addrspace(5) %22, i32 24 %552 = addrspacecast ptr addrspace(5) %19 to ptr %553 = addrspacecast ptr addrspace(5) %548 to ptr %554 = addrspacecast ptr addrspace(5) %17 to ptr %555 = addrspacecast ptr addrspace(5) %16 to ptr %556 = addrspacecast ptr addrspace(5) %15 to ptr %557 = addrspacecast ptr addrspace(5) %18 to ptr %558 = addrspacecast ptr addrspace(5) %14 to ptr %559 = addrspacecast ptr addrspace(5) %13 to ptr %560 = addrspacecast ptr addrspace(5) %27 to ptr %561 = getelementptr inbounds i8, ptr addrspace(5) %26, i32 64 %562 = getelementptr inbounds i8, ptr addrspace(5) %26, i32 63 %563 = getelementptr inbounds i8, ptr addrspace(5) %27, i32 1 %564 = addrspacecast ptr addrspace(5) %9 to ptr %565 = addrspacecast ptr addrspace(5) %10 to ptr %566 = addrspacecast ptr addrspace(5) %11 to ptr %567 = addrspacecast ptr addrspace(5) %12 to ptr %568 = addrspacecast ptr addrspace(5) %8 to ptr %569 = addrspacecast ptr addrspace(5) %7 to ptr %570 = addrspacecast ptr addrspace(5) %28 to ptr br label %571 571: ; preds = %5081, %455 %572 = phi i64 [ %442, %455 ], [ %5082, %5081 ] %573 = phi i1 [ %453, %455 ], [ %5093, %5081 ] %574 = phi ptr [ %1, %455 ], [ %4682, %5081 ] %575 = phi i64 [ %444, %455 ], [ %5094, %5081 ] %576 = phi i8 [ %452, %455 ], [ %5092, %5081 ] %577 = phi i32 [ %451, %455 ], [ %5091, %5081 ] %578 = phi i64 [ %450, %455 ], [ %5090, %5081 ] %579 = phi i32 [ %449, %455 ], [ %5089, %5081 ] %580 = phi i32 [ %448, %455 ], [ %5088, %5081 ] %581 = phi i64 [ %447, %455 ], [ %5087, %5081 ] %582 = phi ptr [ %446, %455 ], [ %5086, %5081 ] %583 = phi i8 [ %445, %455 ], [ %5085, %5081 ] %584 = phi ptr [ %443, %455 ], [ %5083, %5081 ] br i1 %573, label %585, label %4623 585: ; preds = %571 switch i8 %583, label %4568 [ i8 37, label %586 i8 99, label %640 i8 115, label %870 i8 100, label %1120 i8 105, label %1120 i8 117, label %1120 i8 111, label %1120 i8 120, label %1120 i8 88, label %1120 i8 98, label %1120 i8 66, label %1120 i8 114, label %2182 i8 82, label %2182 i8 107, label %2182 i8 75, label %2182 i8 112, label %3685 ] 586: ; preds = %585 %587 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %588 = add nsw i32 %587, trunc (i64 sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) getelementptr inbounds nuw (i8, ptr addrspace(4) @.str.16, i64 1) to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.16 to ptr) to i64)) to i32) store i32 %588, ptr %456, align 8, !tbaa !75, !noalias !89 %589 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %590 = getelementptr inbounds nuw i8, ptr %589, i64 24 %591 = load i64, ptr %590, align 8, !tbaa !70 %592 = add i64 %591, sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) getelementptr inbounds nuw (i8, ptr addrspace(4) @.str.16, i64 1) to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.16 to ptr) to i64)) %593 = getelementptr inbounds nuw i8, ptr %589, i64 16 %594 = load i64, ptr %593, align 8, !tbaa !69 %595 = icmp ugt i64 %592, %594 br i1 %595, label %603, label %596 596: ; preds = %586 %597 = load ptr, ptr %589, align 8, !tbaa !65 %598 = getelementptr inbounds nuw i8, ptr %597, i64 %591 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %598, ptr align 1 addrspacecast (ptr addrspace(4) @.str.16 to ptr), i64 sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) getelementptr inbounds nuw (i8, ptr addrspace(4) @.str.16, i64 1) to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.16 to ptr) to i64)), i1 false), !alias.scope !92 %599 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %600 = getelementptr inbounds nuw i8, ptr %599, i64 24 %601 = load i64, ptr %600, align 8, !tbaa !70 %602 = add i64 %601, sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) getelementptr inbounds nuw (i8, ptr addrspace(4) @.str.16, i64 1) to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.16 to ptr) to i64)) store i64 %602, ptr %600, align 8, !tbaa !70 br label %4678 603: ; preds = %586 %604 = getelementptr inbounds nuw i8, ptr %589, i64 48 %605 = load i32, ptr %604, align 8, !tbaa !96 switch i32 %605, label %639 [ i32 0, label %606 i32 1, label %615 i32 2, label %633 ] 606: ; preds = %603 %607 = icmp ult i64 %591, %594 br i1 %607, label %608, label %4678 608: ; preds = %606 %609 = sub nuw i64 %594, %591 %610 = call i64 @llvm.umin.i64(i64 %609, i64 sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) getelementptr inbounds nuw (i8, ptr addrspace(4) @.str.16, i64 1) to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.16 to ptr) to i64))) %611 = load ptr, ptr %589, align 8, !tbaa !65 %612 = getelementptr inbounds nuw i8, ptr %611, i64 %591 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %612, ptr align 1 addrspacecast (ptr addrspace(4) @.str.16 to ptr), i64 %610, i1 false), !alias.scope !97 %613 = load i64, ptr %590, align 8, !tbaa !70 %614 = add i64 %613, %610 store i64 %614, ptr %590, align 8, !tbaa !70 br label %4678 615: ; preds = %603 %616 = icmp eq i64 %591, 0 br i1 %616, label %625, label %617 617: ; preds = %615 %618 = getelementptr inbounds nuw i8, ptr %589, i64 32 %619 = load ptr, ptr %618, align 8, !tbaa !71 %620 = load ptr, ptr %589, align 8, !tbaa !65 %621 = getelementptr inbounds nuw i8, ptr %589, i64 40 %622 = load ptr, ptr %621, align 8, !tbaa !72 %623 = call noundef i32 %619(ptr %620, i64 %591, ptr noundef %622) #23 %624 = icmp sgt i32 %623, -1 br i1 %624, label %625, label %4678 625: ; preds = %617, %615 %626 = getelementptr inbounds nuw i8, ptr %589, i64 32 %627 = load ptr, ptr %626, align 8, !tbaa !71 %628 = getelementptr inbounds nuw i8, ptr %589, i64 40 %629 = load ptr, ptr %628, align 8, !tbaa !72 %630 = call noundef i32 %627(ptr addrspacecast (ptr addrspace(4) @.str.16 to ptr), i64 sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) getelementptr inbounds nuw (i8, ptr addrspace(4) @.str.16, i64 1) to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.16 to ptr) to i64)), ptr noundef %629) #23 %631 = icmp sgt i32 %630, -1 br i1 %631, label %632, label %4678 632: ; preds = %625 store i64 0, ptr %590, align 8, !tbaa !70 br label %4678 633: ; preds = %603 %634 = getelementptr inbounds nuw i8, ptr %589, i64 32 %635 = load ptr, ptr %634, align 8, !tbaa !71 %636 = getelementptr inbounds nuw i8, ptr %589, i64 40 %637 = load ptr, ptr %636, align 8, !tbaa !72 %638 = call noundef i32 %635(ptr addrspacecast (ptr addrspace(4) @.str.16 to ptr), i64 sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) getelementptr inbounds nuw (i8, ptr addrspace(4) @.str.16, i64 1) to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.16 to ptr) to i64)), ptr noundef %637) #23 br label %4678 639: ; preds = %603 unreachable 640: ; preds = %585 %641 = trunc i64 %581 to i8 %642 = icmp sgt i32 %579, 1 %643 = add nsw i32 %579, -1 %644 = select i1 %642, i32 %643, i32 0 %645 = zext i32 %644 to i64 %646 = icmp eq i32 %644, 0 %647 = and i8 %576, 1 %648 = icmp ne i8 %647, 0 %649 = select i1 %646, i1 true, i1 %648 br i1 %649, label %788, label %650 650: ; preds = %640 %651 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %652 = add nsw i32 %651, %644 store i32 %652, ptr %456, align 8, !tbaa !75, !noalias !89 %653 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %654 = getelementptr inbounds nuw i8, ptr %653, i64 24 %655 = load i64, ptr %654, align 8, !tbaa !70 %656 = add i64 %655, %645 %657 = getelementptr inbounds nuw i8, ptr %653, i64 16 %658 = load i64, ptr %657, align 8, !tbaa !69 %659 = icmp ugt i64 %656, %658 br i1 %659, label %667, label %660 660: ; preds = %650 %661 = load ptr, ptr %653, align 8, !tbaa !65 %662 = getelementptr inbounds nuw i8, ptr %661, i64 %655 call void @llvm.memset.p0.i64(ptr align 1 %662, i8 32, i64 %645, i1 false) %663 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %664 = getelementptr inbounds nuw i8, ptr %663, i64 24 %665 = load i64, ptr %664, align 8, !tbaa !70 %666 = add i64 %665, %645 store i64 %666, ptr %664, align 8, !tbaa !70 br label %785 667: ; preds = %650 %668 = load <2 x i64>, ptr %657, align 8, !tbaa !15 %669 = extractelement <2 x i64> %668, i64 0 %670 = extractelement <2 x i64> %668, i64 1 %671 = sub i64 %669, %670 %672 = icmp eq i64 %671, 0 br i1 %672, label %680, label %673 673: ; preds = %667 %674 = load ptr, ptr %653, align 8, !tbaa !65 %675 = getelementptr inbounds nuw i8, ptr %674, i64 %670 call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %675, i8 32, i64 range(i64 1, 0) %671, i1 false) %676 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %677 = getelementptr inbounds nuw i8, ptr %676, i64 24 %678 = load i64, ptr %677, align 8, !tbaa !70 %679 = add i64 %678, %671 store i64 %679, ptr %677, align 8, !tbaa !70 br label %680 680: ; preds = %673, %667 call void @llvm.lifetime.start.p5(i64 64, ptr addrspace(5) %7) #21, !noalias !89 call void @llvm.memset.p5.i64(ptr addrspace(5) noundef align 1 dereferenceable(64) %7, i8 32, i64 64, i1 false), !noalias !89 br label %681 681: ; preds = %730, %680 %682 = phi i64 [ %671, %680 ], [ %683, %730 ] %683 = add i64 %682, 64 %684 = icmp ult i64 %683, %645 br i1 %684, label %685, label %733 685: ; preds = %681 %686 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %687 = getelementptr inbounds nuw i8, ptr %686, i64 48 %688 = load i32, ptr %687, align 8, !tbaa !96 switch i32 %688, label %729 [ i32 0, label %689 i32 1, label %703 i32 2, label %723 ] 689: ; preds = %685 %690 = getelementptr inbounds nuw i8, ptr %686, i64 16 %691 = load <2 x i64>, ptr %690, align 8, !tbaa !15 %692 = extractelement <2 x i64> %691, i64 0 %693 = extractelement <2 x i64> %691, i64 1 %694 = icmp ult i64 %693, %692 br i1 %694, label %695, label %730 695: ; preds = %689 %696 = getelementptr inbounds nuw i8, ptr %686, i64 24 %697 = sub nuw i64 %692, %693 %698 = call i64 @llvm.umin.i64(i64 %697, i64 64) %699 = load ptr, ptr %686, align 8, !tbaa !65 %700 = getelementptr inbounds nuw i8, ptr %699, i64 %693 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %700, ptr align 1 %569, i64 %698, i1 false), !alias.scope !101 %701 = load i64, ptr %696, align 8, !tbaa !70 %702 = add i64 %701, %698 store i64 %702, ptr %696, align 8, !tbaa !70 br label %730 703: ; preds = %685 %704 = getelementptr inbounds nuw i8, ptr %686, i64 24 %705 = load i64, ptr %704, align 8, !tbaa !70 %706 = icmp eq i64 %705, 0 br i1 %706, label %715, label %707 707: ; preds = %703 %708 = getelementptr inbounds nuw i8, ptr %686, i64 32 %709 = load ptr, ptr %708, align 8, !tbaa !71 %710 = load ptr, ptr %686, align 8, !tbaa !65 %711 = getelementptr inbounds nuw i8, ptr %686, i64 40 %712 = load ptr, ptr %711, align 8, !tbaa !72 %713 = call noundef i32 %709(ptr %710, i64 %705, ptr noundef %712) #23 %714 = icmp sgt i32 %713, -1 br i1 %714, label %715, label %730 715: ; preds = %707, %703 %716 = getelementptr inbounds nuw i8, ptr %686, i64 32 %717 = load ptr, ptr %716, align 8, !tbaa !71 %718 = getelementptr inbounds nuw i8, ptr %686, i64 40 %719 = load ptr, ptr %718, align 8, !tbaa !72 %720 = call noundef i32 %717(ptr %569, i64 64, ptr noundef %719) #23 %721 = icmp sgt i32 %720, -1 br i1 %721, label %722, label %730 722: ; preds = %715 store i64 0, ptr %704, align 8, !tbaa !70 br label %730 723: ; preds = %685 %724 = getelementptr inbounds nuw i8, ptr %686, i64 32 %725 = load ptr, ptr %724, align 8, !tbaa !71 %726 = getelementptr inbounds nuw i8, ptr %686, i64 40 %727 = load ptr, ptr %726, align 8, !tbaa !72 %728 = call noundef i32 %725(ptr %569, i64 64, ptr noundef %727) #23 br label %730 729: ; preds = %685 unreachable 730: ; preds = %723, %722, %715, %707, %695, %689 %731 = phi i32 [ %728, %723 ], [ 0, %689 ], [ 0, %695 ], [ %713, %707 ], [ %720, %715 ], [ 0, %722 ] %732 = icmp eq i32 %731, 0 br i1 %732, label %681, label %783, !llvm.loop !105 733: ; preds = %681 %734 = phi i64 [ %682, %681 ] %735 = sub i64 %645, %734 %736 = call noundef i64 @llvm.umin.i64(i64 %735, i64 64) %737 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %738 = getelementptr inbounds nuw i8, ptr %737, i64 48 %739 = load i32, ptr %738, align 8, !tbaa !96 switch i32 %739, label %782 [ i32 0, label %740 i32 1, label %754 i32 2, label %776 ] 740: ; preds = %733 %741 = getelementptr inbounds nuw i8, ptr %737, i64 16 %742 = load <2 x i64>, ptr %741, align 8, !tbaa !15 %743 = extractelement <2 x i64> %742, i64 0 %744 = extractelement <2 x i64> %742, i64 1 %745 = icmp ult i64 %744, %743 br i1 %745, label %746, label %783 746: ; preds = %740 %747 = getelementptr inbounds nuw i8, ptr %737, i64 24 %748 = sub nuw i64 %743, %744 %749 = call i64 @llvm.umin.i64(i64 %748, i64 %736) %750 = load ptr, ptr %737, align 8, !tbaa !65 %751 = getelementptr inbounds nuw i8, ptr %750, i64 %744 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %751, ptr align 1 %569, i64 %749, i1 false), !alias.scope !106 %752 = load i64, ptr %747, align 8, !tbaa !70 %753 = add i64 %752, %749 store i64 %753, ptr %747, align 8, !tbaa !70 br label %783 754: ; preds = %733 %755 = getelementptr inbounds nuw i8, ptr %737, i64 24 %756 = load i64, ptr %755, align 8, !tbaa !70 %757 = icmp eq i64 %756, 0 br i1 %757, label %766, label %758 758: ; preds = %754 %759 = getelementptr inbounds nuw i8, ptr %737, i64 32 %760 = load ptr, ptr %759, align 8, !tbaa !71 %761 = load ptr, ptr %737, align 8, !tbaa !65 %762 = getelementptr inbounds nuw i8, ptr %737, i64 40 %763 = load ptr, ptr %762, align 8, !tbaa !72 %764 = call noundef i32 %760(ptr %761, i64 %756, ptr noundef %763) #23 %765 = icmp sgt i32 %764, -1 br i1 %765, label %766, label %783 766: ; preds = %758, %754 %767 = icmp eq i64 %734, %645 br i1 %767, label %775, label %768 768: ; preds = %766 %769 = getelementptr inbounds nuw i8, ptr %737, i64 32 %770 = load ptr, ptr %769, align 8, !tbaa !71 %771 = getelementptr inbounds nuw i8, ptr %737, i64 40 %772 = load ptr, ptr %771, align 8, !tbaa !72 %773 = call noundef i32 %770(ptr %569, i64 %736, ptr noundef %772) #23 %774 = icmp sgt i32 %773, -1 br i1 %774, label %775, label %783 775: ; preds = %768, %766 store i64 0, ptr %755, align 8, !tbaa !70 br label %783 776: ; preds = %733 %777 = getelementptr inbounds nuw i8, ptr %737, i64 32 %778 = load ptr, ptr %777, align 8, !tbaa !71 %779 = getelementptr inbounds nuw i8, ptr %737, i64 40 %780 = load ptr, ptr %779, align 8, !tbaa !72 %781 = call noundef i32 %778(ptr %569, i64 %736, ptr noundef %780) #23 br label %783 782: ; preds = %733 unreachable 783: ; preds = %776, %775, %768, %758, %746, %740, %730 %784 = phi i32 [ %781, %776 ], [ 0, %740 ], [ 0, %746 ], [ %764, %758 ], [ %773, %768 ], [ 0, %775 ], [ %731, %730 ] call void @llvm.lifetime.end.p5(i64 64, ptr addrspace(5) %7) #21, !noalias !89 br label %785 785: ; preds = %783, %660 %786 = phi i32 [ 0, %660 ], [ %784, %783 ] %787 = icmp sgt i32 %786, -1 br i1 %787, label %788, label %4678 788: ; preds = %785, %640 call void @llvm.lifetime.start.p5(i64 1, ptr addrspace(5) %28), !noalias !89 store i8 %641, ptr addrspace(5) %28, align 1, !tbaa !19, !noalias !89 %789 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %790 = add nsw i32 %789, 1 store i32 %790, ptr %456, align 8, !tbaa !75, !noalias !89 %791 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %792 = getelementptr inbounds nuw i8, ptr %791, i64 24 %793 = load i64, ptr %792, align 8, !tbaa !70 %794 = add i64 %793, 1 %795 = getelementptr inbounds nuw i8, ptr %791, i64 16 %796 = load i64, ptr %795, align 8, !tbaa !69 %797 = icmp ugt i64 %794, %796 br i1 %797, label %805, label %798 798: ; preds = %788 %799 = load ptr, ptr %791, align 8, !tbaa !65 %800 = getelementptr inbounds nuw i8, ptr %799, i64 %793 store i8 %641, ptr %800, align 1, !tbaa !19 %801 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %802 = getelementptr inbounds nuw i8, ptr %801, i64 24 %803 = load i64, ptr %802, align 8, !tbaa !70 %804 = add i64 %803, 1 store i64 %804, ptr %802, align 8, !tbaa !70 br label %840 805: ; preds = %788 %806 = getelementptr inbounds nuw i8, ptr %791, i64 48 %807 = load i32, ptr %806, align 8, !tbaa !96 switch i32 %807, label %839 [ i32 0, label %808 i32 1, label %815 i32 2, label %833 ] 808: ; preds = %805 %809 = icmp ult i64 %793, %796 br i1 %809, label %810, label %840 810: ; preds = %808 %811 = load ptr, ptr %791, align 8, !tbaa !65 %812 = getelementptr inbounds nuw i8, ptr %811, i64 %793 store i8 %641, ptr %812, align 1, !alias.scope !110 %813 = load i64, ptr %792, align 8, !tbaa !70 %814 = add i64 %813, 1 store i64 %814, ptr %792, align 8, !tbaa !70 br label %840 815: ; preds = %805 %816 = icmp eq i64 %793, 0 br i1 %816, label %825, label %817 817: ; preds = %815 %818 = getelementptr inbounds nuw i8, ptr %791, i64 32 %819 = load ptr, ptr %818, align 8, !tbaa !71 %820 = load ptr, ptr %791, align 8, !tbaa !65 %821 = getelementptr inbounds nuw i8, ptr %791, i64 40 %822 = load ptr, ptr %821, align 8, !tbaa !72 %823 = call noundef i32 %819(ptr %820, i64 %793, ptr noundef %822) #23 %824 = icmp sgt i32 %823, -1 br i1 %824, label %825, label %840 825: ; preds = %817, %815 %826 = getelementptr inbounds nuw i8, ptr %791, i64 32 %827 = load ptr, ptr %826, align 8, !tbaa !71 %828 = getelementptr inbounds nuw i8, ptr %791, i64 40 %829 = load ptr, ptr %828, align 8, !tbaa !72 %830 = call noundef i32 %827(ptr %570, i64 1, ptr noundef %829) #23 %831 = icmp sgt i32 %830, -1 br i1 %831, label %832, label %840 832: ; preds = %825 store i64 0, ptr %792, align 8, !tbaa !70 br label %840 833: ; preds = %805 %834 = getelementptr inbounds nuw i8, ptr %791, i64 32 %835 = load ptr, ptr %834, align 8, !tbaa !71 %836 = getelementptr inbounds nuw i8, ptr %791, i64 40 %837 = load ptr, ptr %836, align 8, !tbaa !72 %838 = call noundef i32 %835(ptr %570, i64 1, ptr noundef %837) #23 br label %840 839: ; preds = %805 unreachable 840: ; preds = %833, %832, %825, %817, %810, %808, %798 %841 = phi i32 [ 0, %798 ], [ %838, %833 ], [ 0, %808 ], [ 0, %810 ], [ %823, %817 ], [ %830, %825 ], [ 0, %832 ] call void @llvm.lifetime.end.p5(i64 1, ptr addrspace(5) %28), !noalias !89 %842 = icmp sgt i32 %841, -1 br i1 %842, label %843, label %4678 843: ; preds = %840 %844 = and i8 %576, 1 %845 = icmp eq i8 %844, 0 %846 = select i1 %646, i1 true, i1 %845 br i1 %846, label %869, label %847 847: ; preds = %843 %848 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %849 = add nsw i32 %848, %644 store i32 %849, ptr %456, align 8, !tbaa !75, !noalias !89 %850 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %851 = getelementptr inbounds nuw i8, ptr %850, i64 24 %852 = load i64, ptr %851, align 8, !tbaa !70 %853 = add i64 %852, %645 %854 = getelementptr inbounds nuw i8, ptr %850, i64 16 %855 = load i64, ptr %854, align 8, !tbaa !69 %856 = icmp ugt i64 %853, %855 br i1 %856, label %864, label %857 857: ; preds = %847 %858 = load ptr, ptr %850, align 8, !tbaa !65 %859 = getelementptr inbounds nuw i8, ptr %858, i64 %852 call void @llvm.memset.p0.i64(ptr align 1 %859, i8 32, i64 %645, i1 false) %860 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %861 = getelementptr inbounds nuw i8, ptr %860, i64 24 %862 = load i64, ptr %861, align 8, !tbaa !70 %863 = add i64 %862, %645 store i64 %863, ptr %861, align 8, !tbaa !70 br label %866 864: ; preds = %847 %865 = call fastcc noundef i32 @_ZN22__llvm_libc_20_0_0_git11printf_core6Writer3padEcm(ptr noundef nonnull align 8 dereferenceable(16) %32, i8 noundef signext 32, i64 noundef %645) #23 br label %866 866: ; preds = %864, %857 %867 = phi i32 [ 0, %857 ], [ %865, %864 ] %868 = icmp sgt i32 %867, -1 br i1 %868, label %869, label %4678 869: ; preds = %866, %843 br label %4678 870: ; preds = %585 %871 = icmp eq ptr %582, null %872 = select i1 %871, ptr addrspacecast (ptr addrspace(4) @.str.1.17 to ptr), ptr %582 br label %873 873: ; preds = %873, %870 %874 = phi i64 [ 0, %870 ], [ %878, %873 ] %875 = getelementptr inbounds nuw i8, ptr %872, i64 %874 %876 = load i8, ptr %875, align 1, !tbaa !19 %877 = icmp eq i8 %876, 0 %878 = add i64 %874, 1 br i1 %877, label %879, label %873, !llvm.loop !114 879: ; preds = %873 %880 = phi i64 [ %874, %873 ] %881 = zext nneg i32 %580 to i64 %882 = call i64 @llvm.umin.i64(i64 %880, i64 %881) %883 = icmp slt i32 %580, 0 %884 = select i1 %883, i64 %880, i64 %882 %885 = trunc i64 %884 to i32 %886 = icmp sgt i32 %579, %885 %887 = sext i32 %579 to i64 %888 = sub i64 %887, %884 %889 = select i1 %886, i64 %888, i64 0 %890 = icmp eq i64 %889, 0 %891 = and i8 %576, 1 %892 = icmp ne i8 %891, 0 %893 = select i1 %890, i1 true, i1 %892 br i1 %893, label %1033, label %894 894: ; preds = %879 %895 = trunc i64 %889 to i32 %896 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %897 = add nsw i32 %896, %895 store i32 %897, ptr %456, align 8, !tbaa !75, !noalias !89 %898 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %899 = getelementptr inbounds nuw i8, ptr %898, i64 24 %900 = load i64, ptr %899, align 8, !tbaa !70 %901 = add i64 %900, %889 %902 = getelementptr inbounds nuw i8, ptr %898, i64 16 %903 = load i64, ptr %902, align 8, !tbaa !69 %904 = icmp ugt i64 %901, %903 br i1 %904, label %912, label %905 905: ; preds = %894 %906 = load ptr, ptr %898, align 8, !tbaa !65 %907 = getelementptr inbounds nuw i8, ptr %906, i64 %900 call void @llvm.memset.p0.i64(ptr align 1 %907, i8 32, i64 %889, i1 false) %908 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %909 = getelementptr inbounds nuw i8, ptr %908, i64 24 %910 = load i64, ptr %909, align 8, !tbaa !70 %911 = add i64 %910, %889 store i64 %911, ptr %909, align 8, !tbaa !70 br label %1030 912: ; preds = %894 %913 = load <2 x i64>, ptr %902, align 8, !tbaa !15 %914 = extractelement <2 x i64> %913, i64 0 %915 = extractelement <2 x i64> %913, i64 1 %916 = sub i64 %914, %915 %917 = icmp eq i64 %916, 0 br i1 %917, label %925, label %918 918: ; preds = %912 %919 = load ptr, ptr %898, align 8, !tbaa !65 %920 = getelementptr inbounds nuw i8, ptr %919, i64 %915 call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %920, i8 32, i64 range(i64 1, 0) %916, i1 false) %921 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %922 = getelementptr inbounds nuw i8, ptr %921, i64 24 %923 = load i64, ptr %922, align 8, !tbaa !70 %924 = add i64 %923, %916 store i64 %924, ptr %922, align 8, !tbaa !70 br label %925 925: ; preds = %918, %912 call void @llvm.lifetime.start.p5(i64 64, ptr addrspace(5) %8) #21, !noalias !89 call void @llvm.memset.p5.i64(ptr addrspace(5) noundef align 1 dereferenceable(64) %8, i8 32, i64 64, i1 false), !noalias !89 br label %926 926: ; preds = %975, %925 %927 = phi i64 [ %916, %925 ], [ %928, %975 ] %928 = add i64 %927, 64 %929 = icmp ult i64 %928, %889 br i1 %929, label %930, label %978 930: ; preds = %926 %931 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %932 = getelementptr inbounds nuw i8, ptr %931, i64 48 %933 = load i32, ptr %932, align 8, !tbaa !96 switch i32 %933, label %974 [ i32 0, label %934 i32 1, label %948 i32 2, label %968 ] 934: ; preds = %930 %935 = getelementptr inbounds nuw i8, ptr %931, i64 16 %936 = load <2 x i64>, ptr %935, align 8, !tbaa !15 %937 = extractelement <2 x i64> %936, i64 0 %938 = extractelement <2 x i64> %936, i64 1 %939 = icmp ult i64 %938, %937 br i1 %939, label %940, label %975 940: ; preds = %934 %941 = getelementptr inbounds nuw i8, ptr %931, i64 24 %942 = sub nuw i64 %937, %938 %943 = call i64 @llvm.umin.i64(i64 %942, i64 64) %944 = load ptr, ptr %931, align 8, !tbaa !65 %945 = getelementptr inbounds nuw i8, ptr %944, i64 %938 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %945, ptr align 1 %568, i64 %943, i1 false), !alias.scope !115 %946 = load i64, ptr %941, align 8, !tbaa !70 %947 = add i64 %946, %943 store i64 %947, ptr %941, align 8, !tbaa !70 br label %975 948: ; preds = %930 %949 = getelementptr inbounds nuw i8, ptr %931, i64 24 %950 = load i64, ptr %949, align 8, !tbaa !70 %951 = icmp eq i64 %950, 0 br i1 %951, label %960, label %952 952: ; preds = %948 %953 = getelementptr inbounds nuw i8, ptr %931, i64 32 %954 = load ptr, ptr %953, align 8, !tbaa !71 %955 = load ptr, ptr %931, align 8, !tbaa !65 %956 = getelementptr inbounds nuw i8, ptr %931, i64 40 %957 = load ptr, ptr %956, align 8, !tbaa !72 %958 = call noundef i32 %954(ptr %955, i64 %950, ptr noundef %957) #23 %959 = icmp sgt i32 %958, -1 br i1 %959, label %960, label %975 960: ; preds = %952, %948 %961 = getelementptr inbounds nuw i8, ptr %931, i64 32 %962 = load ptr, ptr %961, align 8, !tbaa !71 %963 = getelementptr inbounds nuw i8, ptr %931, i64 40 %964 = load ptr, ptr %963, align 8, !tbaa !72 %965 = call noundef i32 %962(ptr %568, i64 64, ptr noundef %964) #23 %966 = icmp sgt i32 %965, -1 br i1 %966, label %967, label %975 967: ; preds = %960 store i64 0, ptr %949, align 8, !tbaa !70 br label %975 968: ; preds = %930 %969 = getelementptr inbounds nuw i8, ptr %931, i64 32 %970 = load ptr, ptr %969, align 8, !tbaa !71 %971 = getelementptr inbounds nuw i8, ptr %931, i64 40 %972 = load ptr, ptr %971, align 8, !tbaa !72 %973 = call noundef i32 %970(ptr %568, i64 64, ptr noundef %972) #23 br label %975 974: ; preds = %930 unreachable 975: ; preds = %968, %967, %960, %952, %940, %934 %976 = phi i32 [ %973, %968 ], [ 0, %934 ], [ 0, %940 ], [ %958, %952 ], [ %965, %960 ], [ 0, %967 ] %977 = icmp eq i32 %976, 0 br i1 %977, label %926, label %1028, !llvm.loop !105 978: ; preds = %926 %979 = phi i64 [ %927, %926 ] %980 = sub i64 %889, %979 %981 = call noundef i64 @llvm.umin.i64(i64 %980, i64 64) %982 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %983 = getelementptr inbounds nuw i8, ptr %982, i64 48 %984 = load i32, ptr %983, align 8, !tbaa !96 switch i32 %984, label %1027 [ i32 0, label %985 i32 1, label %999 i32 2, label %1021 ] 985: ; preds = %978 %986 = getelementptr inbounds nuw i8, ptr %982, i64 16 %987 = load <2 x i64>, ptr %986, align 8, !tbaa !15 %988 = extractelement <2 x i64> %987, i64 0 %989 = extractelement <2 x i64> %987, i64 1 %990 = icmp ult i64 %989, %988 br i1 %990, label %991, label %1028 991: ; preds = %985 %992 = getelementptr inbounds nuw i8, ptr %982, i64 24 %993 = sub nuw i64 %988, %989 %994 = call i64 @llvm.umin.i64(i64 %993, i64 %981) %995 = load ptr, ptr %982, align 8, !tbaa !65 %996 = getelementptr inbounds nuw i8, ptr %995, i64 %989 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %996, ptr align 1 %568, i64 %994, i1 false), !alias.scope !119 %997 = load i64, ptr %992, align 8, !tbaa !70 %998 = add i64 %997, %994 store i64 %998, ptr %992, align 8, !tbaa !70 br label %1028 999: ; preds = %978 %1000 = getelementptr inbounds nuw i8, ptr %982, i64 24 %1001 = load i64, ptr %1000, align 8, !tbaa !70 %1002 = icmp eq i64 %1001, 0 br i1 %1002, label %1011, label %1003 1003: ; preds = %999 %1004 = getelementptr inbounds nuw i8, ptr %982, i64 32 %1005 = load ptr, ptr %1004, align 8, !tbaa !71 %1006 = load ptr, ptr %982, align 8, !tbaa !65 %1007 = getelementptr inbounds nuw i8, ptr %982, i64 40 %1008 = load ptr, ptr %1007, align 8, !tbaa !72 %1009 = call noundef i32 %1005(ptr %1006, i64 %1001, ptr noundef %1008) #23 %1010 = icmp sgt i32 %1009, -1 br i1 %1010, label %1011, label %1028 1011: ; preds = %1003, %999 %1012 = icmp eq i64 %889, %979 br i1 %1012, label %1020, label %1013 1013: ; preds = %1011 %1014 = getelementptr inbounds nuw i8, ptr %982, i64 32 %1015 = load ptr, ptr %1014, align 8, !tbaa !71 %1016 = getelementptr inbounds nuw i8, ptr %982, i64 40 %1017 = load ptr, ptr %1016, align 8, !tbaa !72 %1018 = call noundef i32 %1015(ptr %568, i64 %981, ptr noundef %1017) #23 %1019 = icmp sgt i32 %1018, -1 br i1 %1019, label %1020, label %1028 1020: ; preds = %1013, %1011 store i64 0, ptr %1000, align 8, !tbaa !70 br label %1028 1021: ; preds = %978 %1022 = getelementptr inbounds nuw i8, ptr %982, i64 32 %1023 = load ptr, ptr %1022, align 8, !tbaa !71 %1024 = getelementptr inbounds nuw i8, ptr %982, i64 40 %1025 = load ptr, ptr %1024, align 8, !tbaa !72 %1026 = call noundef i32 %1023(ptr %568, i64 %981, ptr noundef %1025) #23 br label %1028 1027: ; preds = %978 unreachable 1028: ; preds = %1021, %1020, %1013, %1003, %991, %985, %975 %1029 = phi i32 [ %1026, %1021 ], [ 0, %985 ], [ 0, %991 ], [ %1009, %1003 ], [ %1018, %1013 ], [ 0, %1020 ], [ %976, %975 ] call void @llvm.lifetime.end.p5(i64 64, ptr addrspace(5) %8) #21, !noalias !89 br label %1030 1030: ; preds = %1028, %905 %1031 = phi i32 [ 0, %905 ], [ %1029, %1028 ] %1032 = icmp sgt i32 %1031, -1 br i1 %1032, label %1033, label %4678 1033: ; preds = %1030, %879 %1034 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %1035 = add nsw i32 %1034, %885 store i32 %1035, ptr %456, align 8, !tbaa !75, !noalias !89 %1036 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1037 = getelementptr inbounds nuw i8, ptr %1036, i64 24 %1038 = load i64, ptr %1037, align 8, !tbaa !70 %1039 = add i64 %1038, %884 %1040 = getelementptr inbounds nuw i8, ptr %1036, i64 16 %1041 = load i64, ptr %1040, align 8, !tbaa !69 %1042 = icmp ugt i64 %1039, %1041 br i1 %1042, label %1050, label %1043 1043: ; preds = %1033 %1044 = load ptr, ptr %1036, align 8, !tbaa !65 %1045 = getelementptr inbounds nuw i8, ptr %1044, i64 %1038 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1045, ptr nonnull align 1 %872, i64 %884, i1 false), !alias.scope !123 %1046 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1047 = getelementptr inbounds nuw i8, ptr %1046, i64 24 %1048 = load i64, ptr %1047, align 8, !tbaa !70 %1049 = add i64 %1048, %884 store i64 %1049, ptr %1047, align 8, !tbaa !70 br label %1089 1050: ; preds = %1033 %1051 = getelementptr inbounds nuw i8, ptr %1036, i64 48 %1052 = load i32, ptr %1051, align 8, !tbaa !96 switch i32 %1052, label %1088 [ i32 0, label %1053 i32 1, label %1062 i32 2, label %1082 ] 1053: ; preds = %1050 %1054 = icmp ult i64 %1038, %1041 br i1 %1054, label %1055, label %1089 1055: ; preds = %1053 %1056 = sub nuw i64 %1041, %1038 %1057 = call i64 @llvm.umin.i64(i64 %1056, i64 %884) %1058 = load ptr, ptr %1036, align 8, !tbaa !65 %1059 = getelementptr inbounds nuw i8, ptr %1058, i64 %1038 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1059, ptr nonnull align 1 %872, i64 %1057, i1 false), !alias.scope !127 %1060 = load i64, ptr %1037, align 8, !tbaa !70 %1061 = add i64 %1060, %1057 store i64 %1061, ptr %1037, align 8, !tbaa !70 br label %1089 1062: ; preds = %1050 %1063 = icmp eq i64 %1038, 0 br i1 %1063, label %1072, label %1064 1064: ; preds = %1062 %1065 = getelementptr inbounds nuw i8, ptr %1036, i64 32 %1066 = load ptr, ptr %1065, align 8, !tbaa !71 %1067 = load ptr, ptr %1036, align 8, !tbaa !65 %1068 = getelementptr inbounds nuw i8, ptr %1036, i64 40 %1069 = load ptr, ptr %1068, align 8, !tbaa !72 %1070 = call noundef i32 %1066(ptr %1067, i64 %1038, ptr noundef %1069) #23 %1071 = icmp sgt i32 %1070, -1 br i1 %1071, label %1072, label %1089 1072: ; preds = %1064, %1062 %1073 = icmp eq i64 %884, 0 br i1 %1073, label %1081, label %1074 1074: ; preds = %1072 %1075 = getelementptr inbounds nuw i8, ptr %1036, i64 32 %1076 = load ptr, ptr %1075, align 8, !tbaa !71 %1077 = getelementptr inbounds nuw i8, ptr %1036, i64 40 %1078 = load ptr, ptr %1077, align 8, !tbaa !72 %1079 = call noundef i32 %1076(ptr nonnull %872, i64 %884, ptr noundef %1078) #23 %1080 = icmp sgt i32 %1079, -1 br i1 %1080, label %1081, label %1089 1081: ; preds = %1074, %1072 store i64 0, ptr %1037, align 8, !tbaa !70 br label %1089 1082: ; preds = %1050 %1083 = getelementptr inbounds nuw i8, ptr %1036, i64 32 %1084 = load ptr, ptr %1083, align 8, !tbaa !71 %1085 = getelementptr inbounds nuw i8, ptr %1036, i64 40 %1086 = load ptr, ptr %1085, align 8, !tbaa !72 %1087 = call noundef i32 %1084(ptr nonnull %872, i64 %884, ptr noundef %1086) #23 br label %1089 1088: ; preds = %1050 unreachable 1089: ; preds = %1082, %1081, %1074, %1064, %1055, %1053, %1043 %1090 = phi i32 [ 0, %1043 ], [ %1087, %1082 ], [ 0, %1053 ], [ 0, %1055 ], [ %1070, %1064 ], [ %1079, %1074 ], [ 0, %1081 ] %1091 = icmp sgt i32 %1090, -1 br i1 %1091, label %1092, label %4678 1092: ; preds = %1089 %1093 = and i8 %576, 1 %1094 = icmp eq i8 %1093, 0 %1095 = select i1 %890, i1 true, i1 %1094 br i1 %1095, label %1119, label %1096 1096: ; preds = %1092 %1097 = trunc i64 %889 to i32 %1098 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %1099 = add nsw i32 %1098, %1097 store i32 %1099, ptr %456, align 8, !tbaa !75, !noalias !89 %1100 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1101 = getelementptr inbounds nuw i8, ptr %1100, i64 24 %1102 = load i64, ptr %1101, align 8, !tbaa !70 %1103 = add i64 %1102, %889 %1104 = getelementptr inbounds nuw i8, ptr %1100, i64 16 %1105 = load i64, ptr %1104, align 8, !tbaa !69 %1106 = icmp ugt i64 %1103, %1105 br i1 %1106, label %1114, label %1107 1107: ; preds = %1096 %1108 = load ptr, ptr %1100, align 8, !tbaa !65 %1109 = getelementptr inbounds nuw i8, ptr %1108, i64 %1102 call void @llvm.memset.p0.i64(ptr align 1 %1109, i8 32, i64 %889, i1 false) %1110 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1111 = getelementptr inbounds nuw i8, ptr %1110, i64 24 %1112 = load i64, ptr %1111, align 8, !tbaa !70 %1113 = add i64 %1112, %889 store i64 %1113, ptr %1111, align 8, !tbaa !70 br label %1116 1114: ; preds = %1096 %1115 = call fastcc noundef i32 @_ZN22__llvm_libc_20_0_0_git11printf_core6Writer3padEcm(ptr noundef nonnull align 8 dereferenceable(16) %32, i8 noundef signext 32, i64 noundef %889) #23 br label %1116 1116: ; preds = %1114, %1107 %1117 = phi i32 [ 0, %1107 ], [ %1115, %1114 ] %1118 = icmp sgt i32 %1117, -1 br i1 %1118, label %1119, label %4678 1119: ; preds = %1116, %1092 br label %4678 1120: ; preds = %585, %585, %585, %585, %585, %585, %585, %585 %1121 = and i8 %583, 32 switch i8 %583, label %1125 [ i8 100, label %1122 i8 105, label %1122 ] 1122: ; preds = %1120, %1120 %1123 = icmp slt i64 %581, 0 %1124 = call i64 @llvm.abs.i64(i64 %581, i1 false) br label %1127 1125: ; preds = %1120 %1126 = and i8 %576, -7 br label %1127 1127: ; preds = %1125, %1122 %1128 = phi i8 [ %1126, %1125 ], [ %576, %1122 ] %1129 = phi i1 [ false, %1125 ], [ %1123, %1122 ] %1130 = phi i64 [ %581, %1125 ], [ %1124, %1122 ] switch i32 %577, label %425 [ i32 10, label %1131 i32 2, label %1147 i32 3, label %1147 i32 7, label %1147 i32 1, label %1133 i32 0, label %1135 i32 5, label %1147 i32 6, label %1147 i32 4, label %1147 i32 8, label %1137 i32 9, label %1137 ] 1131: ; preds = %1127 %1132 = and i64 %1130, 4294967295 br label %1147 1133: ; preds = %1127 %1134 = and i64 %1130, 65535 br label %1147 1135: ; preds = %1127 %1136 = and i64 %1130, 255 br label %1147 1137: ; preds = %1127, %1127 %1138 = icmp eq i64 %578, 0 br i1 %1138, label %1144, label %1139 1139: ; preds = %1137 %1140 = icmp ult i64 %578, 64 %1141 = shl nsw i64 -1, %578 %1142 = xor i64 %1141, -1 %1143 = select i1 %1140, i64 %1142, i64 -1 br label %1144 1144: ; preds = %1139, %1137 %1145 = phi i64 [ 0, %1137 ], [ %1143, %1139 ] %1146 = and i64 %1145, %1130 br label %1147 1147: ; preds = %1144, %1135, %1133, %1131, %1127, %1127, %1127, %1127, %1127, %1127 %1148 = phi i64 [ %1146, %1144 ], [ %1136, %1135 ], [ %1134, %1133 ], [ %1132, %1131 ], [ %1130, %1127 ], [ %1130, %1127 ], [ %1130, %1127 ], [ %1130, %1127 ], [ %1130, %1127 ], [ %1130, %1127 ] %1149 = freeze i64 %1148 call void @llvm.lifetime.start.p5(i64 64, ptr addrspace(5) %26) #21, !noalias !89 call void @llvm.memset.p5.i64(ptr addrspace(5) noundef align 1 dereferenceable(64) %26, i8 -86, i64 64, i1 false), !noalias !89 %1150 = or i8 %583, 32 %1151 = icmp eq i8 %1150, 120 br i1 %1151, label %1152, label %1207 1152: ; preds = %1147 %1153 = icmp eq i8 %1121, 0 %1154 = icmp eq i64 %1149, 0 br i1 %1153, label %1181, label %1155 1155: ; preds = %1152 br i1 %1154, label %1178, label %1156 1156: ; preds = %1172, %1155 %1157 = phi i64 [ %1173, %1172 ], [ 0, %1155 ] %1158 = phi i64 [ %1174, %1172 ], [ 0, %1155 ] %1159 = phi i64 [ %1175, %1172 ], [ %1149, %1155 ] %1160 = icmp eq i64 %1158, 64 br i1 %1160, label %1172, label %1161 1161: ; preds = %1156 %1162 = trunc i64 %1159 to i8 %1163 = and i8 %1162, 15 %1164 = icmp samesign ult i8 %1163, 10 %1165 = or disjoint i8 %1163, 48 %1166 = add nuw nsw i8 %1163, 87 %1167 = select i1 %1164, i8 %1165, i8 %1166 %1168 = trunc i64 %1158 to i32 %1169 = xor i32 %1168, -1 %1170 = getelementptr i8, ptr addrspace(5) %561, i32 %1169 store i8 %1167, ptr addrspace(5) %1170, align 1, !tbaa !19, !noalias !89 %1171 = add i64 %1157, 1 br label %1172 1172: ; preds = %1161, %1156 %1173 = phi i64 [ %1171, %1161 ], [ %1157, %1156 ] %1174 = phi i64 [ %1171, %1161 ], [ 64, %1156 ] %1175 = lshr i64 %1159, 4 %1176 = icmp ult i64 %1159, 16 %1177 = select i1 %1160, i1 true, i1 %1176 br i1 %1177, label %1178, label %1156, !llvm.loop !131 1178: ; preds = %1172, %1155 %1179 = phi i64 [ 0, %1155 ], [ %1173, %1172 ] %1180 = phi i1 [ false, %1155 ], [ %1160, %1172 ] br i1 %1180, label %1289, label %1283 1181: ; preds = %1152 br i1 %1154, label %1204, label %1182 1182: ; preds = %1198, %1181 %1183 = phi i64 [ %1199, %1198 ], [ 0, %1181 ] %1184 = phi i64 [ %1200, %1198 ], [ 0, %1181 ] %1185 = phi i64 [ %1201, %1198 ], [ %1149, %1181 ] %1186 = icmp eq i64 %1184, 64 br i1 %1186, label %1198, label %1187 1187: ; preds = %1182 %1188 = trunc i64 %1185 to i8 %1189 = and i8 %1188, 15 %1190 = icmp samesign ult i8 %1189, 10 %1191 = or disjoint i8 %1189, 48 %1192 = add nuw nsw i8 %1189, 55 %1193 = select i1 %1190, i8 %1191, i8 %1192 %1194 = trunc i64 %1184 to i32 %1195 = xor i32 %1194, -1 %1196 = getelementptr i8, ptr addrspace(5) %561, i32 %1195 store i8 %1193, ptr addrspace(5) %1196, align 1, !tbaa !19, !noalias !89 %1197 = add i64 %1183, 1 br label %1198 1198: ; preds = %1187, %1182 %1199 = phi i64 [ %1197, %1187 ], [ %1183, %1182 ] %1200 = phi i64 [ %1197, %1187 ], [ 64, %1182 ] %1201 = lshr i64 %1185, 4 %1202 = icmp ult i64 %1185, 16 %1203 = select i1 %1186, i1 true, i1 %1202 br i1 %1203, label %1204, label %1182, !llvm.loop !132 1204: ; preds = %1198, %1181 %1205 = phi i64 [ 0, %1181 ], [ %1199, %1198 ] %1206 = phi i1 [ false, %1181 ], [ %1186, %1198 ] br i1 %1206, label %1289, label %1283 1207: ; preds = %1147 %1208 = icmp eq i8 %583, 111 br i1 %1208, label %1209, label %1233 1209: ; preds = %1207 %1210 = icmp eq i64 %1149, 0 br i1 %1210, label %1230, label %1211 1211: ; preds = %1224, %1209 %1212 = phi i64 [ %1225, %1224 ], [ 0, %1209 ] %1213 = phi i64 [ %1226, %1224 ], [ 0, %1209 ] %1214 = phi i64 [ %1227, %1224 ], [ %1149, %1209 ] %1215 = icmp eq i64 %1213, 64 br i1 %1215, label %1224, label %1216 1216: ; preds = %1211 %1217 = add i64 %1212, 1 %1218 = trunc i64 %1213 to i32 %1219 = xor i32 %1218, -1 %1220 = getelementptr i8, ptr addrspace(5) %561, i32 %1219 %1221 = trunc i64 %1214 to i8 %1222 = and i8 %1221, 7 %1223 = or disjoint i8 %1222, 48 store i8 %1223, ptr addrspace(5) %1220, align 1, !tbaa !19, !noalias !89 br label %1224 1224: ; preds = %1216, %1211 %1225 = phi i64 [ %1217, %1216 ], [ %1212, %1211 ] %1226 = phi i64 [ %1217, %1216 ], [ 64, %1211 ] %1227 = lshr i64 %1214, 3 %1228 = icmp ult i64 %1214, 8 %1229 = select i1 %1215, i1 true, i1 %1228 br i1 %1229, label %1230, label %1211, !llvm.loop !133 1230: ; preds = %1224, %1209 %1231 = phi i64 [ 0, %1209 ], [ %1225, %1224 ] %1232 = phi i1 [ false, %1209 ], [ %1215, %1224 ] br i1 %1232, label %1289, label %1283 1233: ; preds = %1207 %1234 = icmp eq i8 %1150, 98 %1235 = icmp eq i64 %1149, 0 br i1 %1234, label %1236, label %1259 1236: ; preds = %1233 br i1 %1235, label %1256, label %1237 1237: ; preds = %1250, %1236 %1238 = phi i64 [ %1251, %1250 ], [ 0, %1236 ] %1239 = phi i64 [ %1252, %1250 ], [ 0, %1236 ] %1240 = phi i64 [ %1253, %1250 ], [ %1149, %1236 ] %1241 = icmp eq i64 %1239, 64 br i1 %1241, label %1250, label %1242 1242: ; preds = %1237 %1243 = add i64 %1238, 1 %1244 = trunc i64 %1239 to i32 %1245 = xor i32 %1244, -1 %1246 = getelementptr i8, ptr addrspace(5) %561, i32 %1245 %1247 = trunc i64 %1240 to i8 %1248 = and i8 %1247, 1 %1249 = or disjoint i8 %1248, 48 store i8 %1249, ptr addrspace(5) %1246, align 1, !tbaa !19, !noalias !89 br label %1250 1250: ; preds = %1242, %1237 %1251 = phi i64 [ %1243, %1242 ], [ %1238, %1237 ] %1252 = phi i64 [ %1243, %1242 ], [ 64, %1237 ] %1253 = lshr i64 %1240, 1 %1254 = icmp ult i64 %1240, 2 %1255 = select i1 %1241, i1 true, i1 %1254 br i1 %1255, label %1256, label %1237, !llvm.loop !134 1256: ; preds = %1250, %1236 %1257 = phi i64 [ 0, %1236 ], [ %1251, %1250 ] %1258 = phi i1 [ false, %1236 ], [ %1241, %1250 ] br i1 %1258, label %1289, label %1283 1259: ; preds = %1233 br i1 %1235, label %1280, label %1260 1260: ; preds = %1275, %1259 %1261 = phi i64 [ %1276, %1275 ], [ 0, %1259 ] %1262 = phi i64 [ %1277, %1275 ], [ 0, %1259 ] %1263 = phi i64 [ %1265, %1275 ], [ %1149, %1259 ] %1264 = icmp eq i64 %1262, 64 %1265 = udiv i64 %1263, 10 br i1 %1264, label %1275, label %1266 1266: ; preds = %1260 %1267 = trunc i64 %1262 to i32 %1268 = xor i32 %1267, -1 %1269 = getelementptr i8, ptr addrspace(5) %561, i32 %1268 %1270 = add i64 %1261, 1 %1271 = mul i64 %1265, 246 %1272 = add i64 %1271, %1263 %1273 = trunc i64 %1272 to i8 %1274 = or disjoint i8 %1273, 48 store i8 %1274, ptr addrspace(5) %1269, align 1, !tbaa !19, !noalias !89 br label %1275 1275: ; preds = %1266, %1260 %1276 = phi i64 [ %1270, %1266 ], [ %1261, %1260 ] %1277 = phi i64 [ %1270, %1266 ], [ 64, %1260 ] %1278 = icmp ult i64 %1263, 10 %1279 = select i1 %1264, i1 true, i1 %1278 br i1 %1279, label %1280, label %1260, !llvm.loop !135 1280: ; preds = %1275, %1259 %1281 = phi i64 [ 0, %1259 ], [ %1276, %1275 ] %1282 = phi i1 [ false, %1259 ], [ %1264, %1275 ] br i1 %1282, label %1289, label %1283 1283: ; preds = %1280, %1256, %1230, %1204, %1178 %1284 = phi i64 [ %1179, %1178 ], [ %1205, %1204 ], [ %1231, %1230 ], [ %1257, %1256 ], [ %1281, %1280 ] %1285 = load i8, ptr addrspace(5) %562, align 1, !tbaa !19, !noalias !89 %1286 = icmp eq i64 %1284, 0 %1287 = select i1 %1286, i8 48, i8 %1285 %1288 = call i64 @llvm.umax.i64(i64 %1284, i64 1) store i8 %1287, ptr addrspace(5) %562, align 1, !tbaa !19, !noalias !89 br label %1289 1289: ; preds = %1283, %1280, %1256, %1230, %1204, %1178 %1290 = phi i64 [ %1179, %1178 ], [ %1205, %1204 ], [ %1231, %1230 ], [ %1257, %1256 ], [ %1281, %1280 ], [ %1288, %1283 ] %1291 = phi i1 [ false, %1178 ], [ false, %1204 ], [ false, %1230 ], [ false, %1256 ], [ false, %1280 ], [ true, %1283 ] %1292 = trunc i64 %1290 to i32 %1293 = sub i32 0, %1292 %1294 = getelementptr inbounds i8, ptr addrspace(5) %561, i32 %1293 %1295 = addrspacecast ptr addrspace(5) %1294 to ptr br i1 %1291, label %1296, label %2180 1296: ; preds = %1289 br i1 %1129, label %1308, label %1297 1297: ; preds = %1296 %1298 = zext nneg i8 %1128 to i32 %1299 = and i32 %1298, 2 %1300 = icmp eq i32 %1299, 0 %1301 = and i32 %1298, 4 %1302 = lshr exact i32 %1301, 2 %1303 = trunc nuw nsw i32 %1301 to i8 %1304 = shl nuw nsw i8 %1303, 3 %1305 = select i1 %1300, i32 %1302, i32 1 %1306 = zext nneg i32 %1305 to i64 %1307 = select i1 %1300, i8 %1304, i8 43 br label %1308 1308: ; preds = %1297, %1296 %1309 = phi i64 [ 1, %1296 ], [ %1306, %1297 ] %1310 = phi i8 [ 45, %1296 ], [ %1307, %1297 ] call void @llvm.lifetime.start.p5(i64 2, ptr addrspace(5) %27) #21, !noalias !89 store i8 -86, ptr addrspace(5) %563, align 1, !noalias !89, !annotation !23 br i1 %1151, label %1311, label %1317 1311: ; preds = %1308 %1312 = and i8 %1128, 8 %1313 = icmp ne i8 %1312, 0 %1314 = icmp ne i64 %1149, 0 %1315 = and i1 %1313, %1314 br i1 %1315, label %1316, label %1317 1316: ; preds = %1311 store i8 48, ptr addrspace(5) %27, align 1, !tbaa !19, !noalias !89 store i8 %583, ptr addrspace(5) %563, align 1, !tbaa !19, !noalias !89 br label %1326 1317: ; preds = %1311, %1308 %1318 = icmp eq i8 %1150, 98 br i1 %1318, label %1319, label %1325 1319: ; preds = %1317 %1320 = and i8 %1128, 8 %1321 = icmp ne i8 %1320, 0 %1322 = icmp ne i64 %1149, 0 %1323 = and i1 %1321, %1322 br i1 %1323, label %1324, label %1325 1324: ; preds = %1319 store i8 48, ptr addrspace(5) %27, align 1, !tbaa !19, !noalias !89 store i8 %583, ptr addrspace(5) %563, align 1, !tbaa !19, !noalias !89 br label %1326 1325: ; preds = %1319, %1317 store i8 %1310, ptr addrspace(5) %27, align 1, !tbaa !19, !noalias !89 br label %1326 1326: ; preds = %1325, %1324, %1316 %1327 = phi i64 [ 2, %1316 ], [ 2, %1324 ], [ %1309, %1325 ] %1328 = icmp slt i32 %580, 0 br i1 %1328, label %1329, label %1337 1329: ; preds = %1326 %1330 = and i8 %1128, 17 %1331 = icmp eq i8 %1330, 16 %1332 = add i64 %1327, %1290 %1333 = trunc i64 %1332 to i32 %1334 = sub i32 %579, %1333 %1335 = select i1 %1331, i32 0, i32 %1334 %1336 = select i1 %1331, i32 %1334, i32 0 br label %1349 1337: ; preds = %1326 %1338 = icmp eq i64 %1149, 0 %1339 = icmp eq i32 %580, 0 %1340 = and i1 %1338, %1339 %1341 = select i1 %1340, i64 0, i64 %1290 %1342 = trunc i64 %1341 to i32 %1343 = sub i32 %580, %1342 %1344 = call i32 @llvm.smax.i32(i32 %1343, i32 0) %1345 = add i64 %1341, %1327 %1346 = trunc i64 %1345 to i32 %1347 = add i32 %1344, %1346 %1348 = sub i32 %579, %1347 br label %1349 1349: ; preds = %1337, %1329 %1350 = phi i32 [ %1348, %1337 ], [ %1335, %1329 ] %1351 = phi i32 [ %1344, %1337 ], [ %1336, %1329 ] %1352 = phi i64 [ %1341, %1337 ], [ %1290, %1329 ] %1353 = icmp eq i8 %583, 111 br i1 %1353, label %1354, label %1366 1354: ; preds = %1349 %1355 = icmp slt i32 %1351, 1 %1356 = icmp ne i64 %1149, 0 %1357 = icmp eq i64 %1352, 0 %1358 = or i1 %1356, %1357 %1359 = and i8 %576, 8 %1360 = icmp ne i8 %1359, 0 %1361 = select i1 %1360, i1 %1355, i1 false %1362 = select i1 %1361, i1 %1358, i1 false %1363 = sext i1 %1362 to i32 %1364 = add nsw i32 %1350, %1363 %1365 = select i1 %1362, i32 1, i32 %1351 br label %1366 1366: ; preds = %1354, %1349 %1367 = phi i32 [ %1350, %1349 ], [ %1364, %1354 ] %1368 = phi i32 [ %1351, %1349 ], [ %1365, %1354 ] %1369 = and i8 %1128, 1 %1370 = icmp eq i8 %1369, 0 br i1 %1370, label %1774, label %1371 1371: ; preds = %1366 %1372 = icmp eq i64 %1327, 0 br i1 %1372, label %1431, label %1373 1373: ; preds = %1371 %1374 = trunc nuw nsw i64 %1327 to i32 %1375 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %1376 = add nsw i32 %1375, %1374 store i32 %1376, ptr %456, align 8, !tbaa !75, !noalias !89 %1377 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1378 = getelementptr inbounds nuw i8, ptr %1377, i64 24 %1379 = load i64, ptr %1378, align 8, !tbaa !70 %1380 = add i64 %1379, %1327 %1381 = getelementptr inbounds nuw i8, ptr %1377, i64 16 %1382 = load i64, ptr %1381, align 8, !tbaa !69 %1383 = icmp ugt i64 %1380, %1382 br i1 %1383, label %1391, label %1384 1384: ; preds = %1373 %1385 = load ptr, ptr %1377, align 8, !tbaa !65 %1386 = getelementptr inbounds nuw i8, ptr %1385, i64 %1379 call void @llvm.memcpy.p0.p5.i64(ptr align 1 %1386, ptr addrspace(5) align 1 %27, i64 %1327, i1 false), !alias.scope !136 %1387 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1388 = getelementptr inbounds nuw i8, ptr %1387, i64 24 %1389 = load i64, ptr %1388, align 8, !tbaa !70 %1390 = add i64 %1389, %1327 store i64 %1390, ptr %1388, align 8, !tbaa !70 br label %1428 1391: ; preds = %1373 %1392 = getelementptr inbounds nuw i8, ptr %1377, i64 48 %1393 = load i32, ptr %1392, align 8, !tbaa !96 switch i32 %1393, label %1427 [ i32 0, label %1394 i32 1, label %1403 i32 2, label %1421 ] 1394: ; preds = %1391 %1395 = icmp ult i64 %1379, %1382 br i1 %1395, label %1396, label %1428 1396: ; preds = %1394 %1397 = sub nuw i64 %1382, %1379 %1398 = call i64 @llvm.umin.i64(i64 %1397, i64 %1327) %1399 = load ptr, ptr %1377, align 8, !tbaa !65 %1400 = getelementptr inbounds nuw i8, ptr %1399, i64 %1379 call void @llvm.memcpy.p0.p5.i64(ptr align 1 %1400, ptr addrspace(5) align 1 %27, i64 %1398, i1 false), !alias.scope !140 %1401 = load i64, ptr %1378, align 8, !tbaa !70 %1402 = add i64 %1401, %1398 store i64 %1402, ptr %1378, align 8, !tbaa !70 br label %1428 1403: ; preds = %1391 %1404 = icmp eq i64 %1379, 0 br i1 %1404, label %1413, label %1405 1405: ; preds = %1403 %1406 = getelementptr inbounds nuw i8, ptr %1377, i64 32 %1407 = load ptr, ptr %1406, align 8, !tbaa !71 %1408 = load ptr, ptr %1377, align 8, !tbaa !65 %1409 = getelementptr inbounds nuw i8, ptr %1377, i64 40 %1410 = load ptr, ptr %1409, align 8, !tbaa !72 %1411 = call noundef i32 %1407(ptr %1408, i64 %1379, ptr noundef %1410) #23 %1412 = icmp sgt i32 %1411, -1 br i1 %1412, label %1413, label %1428 1413: ; preds = %1405, %1403 %1414 = getelementptr inbounds nuw i8, ptr %1377, i64 32 %1415 = load ptr, ptr %1414, align 8, !tbaa !71 %1416 = getelementptr inbounds nuw i8, ptr %1377, i64 40 %1417 = load ptr, ptr %1416, align 8, !tbaa !72 %1418 = call noundef i32 %1415(ptr %560, i64 %1327, ptr noundef %1417) #23 %1419 = icmp sgt i32 %1418, -1 br i1 %1419, label %1420, label %1428 1420: ; preds = %1413 store i64 0, ptr %1378, align 8, !tbaa !70 br label %1428 1421: ; preds = %1391 %1422 = getelementptr inbounds nuw i8, ptr %1377, i64 32 %1423 = load ptr, ptr %1422, align 8, !tbaa !71 %1424 = getelementptr inbounds nuw i8, ptr %1377, i64 40 %1425 = load ptr, ptr %1424, align 8, !tbaa !72 %1426 = call noundef i32 %1423(ptr %560, i64 %1327, ptr noundef %1425) #23 br label %1428 1427: ; preds = %1391 unreachable 1428: ; preds = %1421, %1420, %1413, %1405, %1396, %1394, %1384 %1429 = phi i32 [ 0, %1384 ], [ %1426, %1421 ], [ 0, %1394 ], [ 0, %1396 ], [ %1411, %1405 ], [ %1418, %1413 ], [ 0, %1420 ] %1430 = icmp sgt i32 %1429, -1 br i1 %1430, label %1431, label %2178 1431: ; preds = %1428, %1371 %1432 = icmp sgt i32 %1368, 0 br i1 %1432, label %1433, label %1572 1433: ; preds = %1431 %1434 = zext nneg i32 %1368 to i64 %1435 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %1436 = add nsw i32 %1435, %1368 store i32 %1436, ptr %456, align 8, !tbaa !75, !noalias !89 %1437 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1438 = getelementptr inbounds nuw i8, ptr %1437, i64 24 %1439 = load i64, ptr %1438, align 8, !tbaa !70 %1440 = add i64 %1439, %1434 %1441 = getelementptr inbounds nuw i8, ptr %1437, i64 16 %1442 = load i64, ptr %1441, align 8, !tbaa !69 %1443 = icmp ugt i64 %1440, %1442 br i1 %1443, label %1451, label %1444 1444: ; preds = %1433 %1445 = load ptr, ptr %1437, align 8, !tbaa !65 %1446 = getelementptr inbounds nuw i8, ptr %1445, i64 %1439 call void @llvm.memset.p0.i64(ptr align 1 %1446, i8 48, i64 %1434, i1 false) %1447 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1448 = getelementptr inbounds nuw i8, ptr %1447, i64 24 %1449 = load i64, ptr %1448, align 8, !tbaa !70 %1450 = add i64 %1449, %1434 store i64 %1450, ptr %1448, align 8, !tbaa !70 br label %1569 1451: ; preds = %1433 %1452 = load <2 x i64>, ptr %1441, align 8, !tbaa !15 %1453 = extractelement <2 x i64> %1452, i64 0 %1454 = extractelement <2 x i64> %1452, i64 1 %1455 = sub i64 %1453, %1454 %1456 = icmp eq i64 %1455, 0 br i1 %1456, label %1464, label %1457 1457: ; preds = %1451 %1458 = load ptr, ptr %1437, align 8, !tbaa !65 %1459 = getelementptr inbounds nuw i8, ptr %1458, i64 %1454 call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %1459, i8 48, i64 range(i64 1, 0) %1455, i1 false) %1460 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1461 = getelementptr inbounds nuw i8, ptr %1460, i64 24 %1462 = load i64, ptr %1461, align 8, !tbaa !70 %1463 = add i64 %1462, %1455 store i64 %1463, ptr %1461, align 8, !tbaa !70 br label %1464 1464: ; preds = %1457, %1451 call void @llvm.lifetime.start.p5(i64 64, ptr addrspace(5) %9) #21, !noalias !89 call void @llvm.memset.p5.i64(ptr addrspace(5) noundef align 1 dereferenceable(64) %9, i8 48, i64 64, i1 false), !noalias !89 br label %1465 1465: ; preds = %1514, %1464 %1466 = phi i64 [ %1455, %1464 ], [ %1467, %1514 ] %1467 = add i64 %1466, 64 %1468 = icmp ult i64 %1467, %1434 br i1 %1468, label %1469, label %1517 1469: ; preds = %1465 %1470 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1471 = getelementptr inbounds nuw i8, ptr %1470, i64 48 %1472 = load i32, ptr %1471, align 8, !tbaa !96 switch i32 %1472, label %1513 [ i32 0, label %1473 i32 1, label %1487 i32 2, label %1507 ] 1473: ; preds = %1469 %1474 = getelementptr inbounds nuw i8, ptr %1470, i64 16 %1475 = load <2 x i64>, ptr %1474, align 8, !tbaa !15 %1476 = extractelement <2 x i64> %1475, i64 0 %1477 = extractelement <2 x i64> %1475, i64 1 %1478 = icmp ult i64 %1477, %1476 br i1 %1478, label %1479, label %1514 1479: ; preds = %1473 %1480 = getelementptr inbounds nuw i8, ptr %1470, i64 24 %1481 = sub nuw i64 %1476, %1477 %1482 = call i64 @llvm.umin.i64(i64 %1481, i64 64) %1483 = load ptr, ptr %1470, align 8, !tbaa !65 %1484 = getelementptr inbounds nuw i8, ptr %1483, i64 %1477 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1484, ptr align 1 %564, i64 %1482, i1 false), !alias.scope !144 %1485 = load i64, ptr %1480, align 8, !tbaa !70 %1486 = add i64 %1485, %1482 store i64 %1486, ptr %1480, align 8, !tbaa !70 br label %1514 1487: ; preds = %1469 %1488 = getelementptr inbounds nuw i8, ptr %1470, i64 24 %1489 = load i64, ptr %1488, align 8, !tbaa !70 %1490 = icmp eq i64 %1489, 0 br i1 %1490, label %1499, label %1491 1491: ; preds = %1487 %1492 = getelementptr inbounds nuw i8, ptr %1470, i64 32 %1493 = load ptr, ptr %1492, align 8, !tbaa !71 %1494 = load ptr, ptr %1470, align 8, !tbaa !65 %1495 = getelementptr inbounds nuw i8, ptr %1470, i64 40 %1496 = load ptr, ptr %1495, align 8, !tbaa !72 %1497 = call noundef i32 %1493(ptr %1494, i64 %1489, ptr noundef %1496) #23 %1498 = icmp sgt i32 %1497, -1 br i1 %1498, label %1499, label %1514 1499: ; preds = %1491, %1487 %1500 = getelementptr inbounds nuw i8, ptr %1470, i64 32 %1501 = load ptr, ptr %1500, align 8, !tbaa !71 %1502 = getelementptr inbounds nuw i8, ptr %1470, i64 40 %1503 = load ptr, ptr %1502, align 8, !tbaa !72 %1504 = call noundef i32 %1501(ptr %564, i64 64, ptr noundef %1503) #23 %1505 = icmp sgt i32 %1504, -1 br i1 %1505, label %1506, label %1514 1506: ; preds = %1499 store i64 0, ptr %1488, align 8, !tbaa !70 br label %1514 1507: ; preds = %1469 %1508 = getelementptr inbounds nuw i8, ptr %1470, i64 32 %1509 = load ptr, ptr %1508, align 8, !tbaa !71 %1510 = getelementptr inbounds nuw i8, ptr %1470, i64 40 %1511 = load ptr, ptr %1510, align 8, !tbaa !72 %1512 = call noundef i32 %1509(ptr %564, i64 64, ptr noundef %1511) #23 br label %1514 1513: ; preds = %1469 unreachable 1514: ; preds = %1507, %1506, %1499, %1491, %1479, %1473 %1515 = phi i32 [ %1512, %1507 ], [ 0, %1473 ], [ 0, %1479 ], [ %1497, %1491 ], [ %1504, %1499 ], [ 0, %1506 ] %1516 = icmp eq i32 %1515, 0 br i1 %1516, label %1465, label %1567, !llvm.loop !105 1517: ; preds = %1465 %1518 = phi i64 [ %1466, %1465 ] %1519 = sub i64 %1434, %1518 %1520 = call noundef i64 @llvm.umin.i64(i64 %1519, i64 64) %1521 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1522 = getelementptr inbounds nuw i8, ptr %1521, i64 48 %1523 = load i32, ptr %1522, align 8, !tbaa !96 switch i32 %1523, label %1566 [ i32 0, label %1524 i32 1, label %1538 i32 2, label %1560 ] 1524: ; preds = %1517 %1525 = getelementptr inbounds nuw i8, ptr %1521, i64 16 %1526 = load <2 x i64>, ptr %1525, align 8, !tbaa !15 %1527 = extractelement <2 x i64> %1526, i64 0 %1528 = extractelement <2 x i64> %1526, i64 1 %1529 = icmp ult i64 %1528, %1527 br i1 %1529, label %1530, label %1567 1530: ; preds = %1524 %1531 = getelementptr inbounds nuw i8, ptr %1521, i64 24 %1532 = sub nuw i64 %1527, %1528 %1533 = call i64 @llvm.umin.i64(i64 %1532, i64 %1520) %1534 = load ptr, ptr %1521, align 8, !tbaa !65 %1535 = getelementptr inbounds nuw i8, ptr %1534, i64 %1528 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1535, ptr align 1 %564, i64 %1533, i1 false), !alias.scope !148 %1536 = load i64, ptr %1531, align 8, !tbaa !70 %1537 = add i64 %1536, %1533 store i64 %1537, ptr %1531, align 8, !tbaa !70 br label %1567 1538: ; preds = %1517 %1539 = getelementptr inbounds nuw i8, ptr %1521, i64 24 %1540 = load i64, ptr %1539, align 8, !tbaa !70 %1541 = icmp eq i64 %1540, 0 br i1 %1541, label %1550, label %1542 1542: ; preds = %1538 %1543 = getelementptr inbounds nuw i8, ptr %1521, i64 32 %1544 = load ptr, ptr %1543, align 8, !tbaa !71 %1545 = load ptr, ptr %1521, align 8, !tbaa !65 %1546 = getelementptr inbounds nuw i8, ptr %1521, i64 40 %1547 = load ptr, ptr %1546, align 8, !tbaa !72 %1548 = call noundef i32 %1544(ptr %1545, i64 %1540, ptr noundef %1547) #23 %1549 = icmp sgt i32 %1548, -1 br i1 %1549, label %1550, label %1567 1550: ; preds = %1542, %1538 %1551 = icmp eq i64 %1518, %1434 br i1 %1551, label %1559, label %1552 1552: ; preds = %1550 %1553 = getelementptr inbounds nuw i8, ptr %1521, i64 32 %1554 = load ptr, ptr %1553, align 8, !tbaa !71 %1555 = getelementptr inbounds nuw i8, ptr %1521, i64 40 %1556 = load ptr, ptr %1555, align 8, !tbaa !72 %1557 = call noundef i32 %1554(ptr %564, i64 %1520, ptr noundef %1556) #23 %1558 = icmp sgt i32 %1557, -1 br i1 %1558, label %1559, label %1567 1559: ; preds = %1552, %1550 store i64 0, ptr %1539, align 8, !tbaa !70 br label %1567 1560: ; preds = %1517 %1561 = getelementptr inbounds nuw i8, ptr %1521, i64 32 %1562 = load ptr, ptr %1561, align 8, !tbaa !71 %1563 = getelementptr inbounds nuw i8, ptr %1521, i64 40 %1564 = load ptr, ptr %1563, align 8, !tbaa !72 %1565 = call noundef i32 %1562(ptr %564, i64 %1520, ptr noundef %1564) #23 br label %1567 1566: ; preds = %1517 unreachable 1567: ; preds = %1560, %1559, %1552, %1542, %1530, %1524, %1514 %1568 = phi i32 [ %1565, %1560 ], [ 0, %1524 ], [ 0, %1530 ], [ %1548, %1542 ], [ %1557, %1552 ], [ 0, %1559 ], [ %1515, %1514 ] call void @llvm.lifetime.end.p5(i64 64, ptr addrspace(5) %9) #21, !noalias !89 br label %1569 1569: ; preds = %1567, %1444 %1570 = phi i32 [ 0, %1444 ], [ %1568, %1567 ] %1571 = icmp sgt i32 %1570, -1 br i1 %1571, label %1572, label %2178 1572: ; preds = %1569, %1431 %1573 = icmp eq i64 %1352, 0 br i1 %1573, label %1633, label %1574 1574: ; preds = %1572 %1575 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %1576 = add nsw i32 %1575, %1292 store i32 %1576, ptr %456, align 8, !tbaa !75, !noalias !89 %1577 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1578 = getelementptr inbounds nuw i8, ptr %1577, i64 24 %1579 = load i64, ptr %1578, align 8, !tbaa !70 %1580 = add i64 %1579, %1290 %1581 = getelementptr inbounds nuw i8, ptr %1577, i64 16 %1582 = load i64, ptr %1581, align 8, !tbaa !69 %1583 = icmp ugt i64 %1580, %1582 br i1 %1583, label %1591, label %1584 1584: ; preds = %1574 %1585 = load ptr, ptr %1577, align 8, !tbaa !65 %1586 = getelementptr inbounds nuw i8, ptr %1585, i64 %1579 call void @llvm.memcpy.p0.p5.i64(ptr align 1 %1586, ptr addrspace(5) align 1 %1294, i64 %1290, i1 false), !alias.scope !152 %1587 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1588 = getelementptr inbounds nuw i8, ptr %1587, i64 24 %1589 = load i64, ptr %1588, align 8, !tbaa !70 %1590 = add i64 %1589, %1290 store i64 %1590, ptr %1588, align 8, !tbaa !70 br label %1630 1591: ; preds = %1574 %1592 = getelementptr inbounds nuw i8, ptr %1577, i64 48 %1593 = load i32, ptr %1592, align 8, !tbaa !96 switch i32 %1593, label %1629 [ i32 0, label %1594 i32 1, label %1603 i32 2, label %1623 ] 1594: ; preds = %1591 %1595 = icmp ult i64 %1579, %1582 br i1 %1595, label %1596, label %1630 1596: ; preds = %1594 %1597 = sub nuw i64 %1582, %1579 %1598 = call i64 @llvm.umin.i64(i64 %1597, i64 %1290) %1599 = load ptr, ptr %1577, align 8, !tbaa !65 %1600 = getelementptr inbounds nuw i8, ptr %1599, i64 %1579 call void @llvm.memcpy.p0.p5.i64(ptr align 1 %1600, ptr addrspace(5) align 1 %1294, i64 %1598, i1 false), !alias.scope !156 %1601 = load i64, ptr %1578, align 8, !tbaa !70 %1602 = add i64 %1601, %1598 store i64 %1602, ptr %1578, align 8, !tbaa !70 br label %1630 1603: ; preds = %1591 %1604 = icmp eq i64 %1579, 0 br i1 %1604, label %1613, label %1605 1605: ; preds = %1603 %1606 = getelementptr inbounds nuw i8, ptr %1577, i64 32 %1607 = load ptr, ptr %1606, align 8, !tbaa !71 %1608 = load ptr, ptr %1577, align 8, !tbaa !65 %1609 = getelementptr inbounds nuw i8, ptr %1577, i64 40 %1610 = load ptr, ptr %1609, align 8, !tbaa !72 %1611 = call noundef i32 %1607(ptr %1608, i64 %1579, ptr noundef %1610) #23 %1612 = icmp sgt i32 %1611, -1 br i1 %1612, label %1613, label %1630 1613: ; preds = %1605, %1603 %1614 = icmp eq i64 %1290, 0 br i1 %1614, label %1622, label %1615 1615: ; preds = %1613 %1616 = getelementptr inbounds nuw i8, ptr %1577, i64 32 %1617 = load ptr, ptr %1616, align 8, !tbaa !71 %1618 = getelementptr inbounds nuw i8, ptr %1577, i64 40 %1619 = load ptr, ptr %1618, align 8, !tbaa !72 %1620 = call noundef i32 %1617(ptr nonnull %1295, i64 %1290, ptr noundef %1619) #23 %1621 = icmp sgt i32 %1620, -1 br i1 %1621, label %1622, label %1630 1622: ; preds = %1615, %1613 store i64 0, ptr %1578, align 8, !tbaa !70 br label %1630 1623: ; preds = %1591 %1624 = getelementptr inbounds nuw i8, ptr %1577, i64 32 %1625 = load ptr, ptr %1624, align 8, !tbaa !71 %1626 = getelementptr inbounds nuw i8, ptr %1577, i64 40 %1627 = load ptr, ptr %1626, align 8, !tbaa !72 %1628 = call noundef i32 %1625(ptr nonnull %1295, i64 %1290, ptr noundef %1627) #23 br label %1630 1629: ; preds = %1591 unreachable 1630: ; preds = %1623, %1622, %1615, %1605, %1596, %1594, %1584 %1631 = phi i32 [ 0, %1584 ], [ %1628, %1623 ], [ 0, %1594 ], [ 0, %1596 ], [ %1611, %1605 ], [ %1620, %1615 ], [ 0, %1622 ] %1632 = icmp sgt i32 %1631, -1 br i1 %1632, label %1633, label %2178 1633: ; preds = %1630, %1572 %1634 = icmp sgt i32 %1367, 0 br i1 %1634, label %1635, label %2177 1635: ; preds = %1633 %1636 = zext nneg i32 %1367 to i64 %1637 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %1638 = add nsw i32 %1637, %1367 store i32 %1638, ptr %456, align 8, !tbaa !75, !noalias !89 %1639 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1640 = getelementptr inbounds nuw i8, ptr %1639, i64 24 %1641 = load i64, ptr %1640, align 8, !tbaa !70 %1642 = add i64 %1641, %1636 %1643 = getelementptr inbounds nuw i8, ptr %1639, i64 16 %1644 = load i64, ptr %1643, align 8, !tbaa !69 %1645 = icmp ugt i64 %1642, %1644 br i1 %1645, label %1653, label %1646 1646: ; preds = %1635 %1647 = load ptr, ptr %1639, align 8, !tbaa !65 %1648 = getelementptr inbounds nuw i8, ptr %1647, i64 %1641 call void @llvm.memset.p0.i64(ptr align 1 %1648, i8 32, i64 %1636, i1 false) %1649 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1650 = getelementptr inbounds nuw i8, ptr %1649, i64 24 %1651 = load i64, ptr %1650, align 8, !tbaa !70 %1652 = add i64 %1651, %1636 store i64 %1652, ptr %1650, align 8, !tbaa !70 br label %1771 1653: ; preds = %1635 %1654 = load <2 x i64>, ptr %1643, align 8, !tbaa !15 %1655 = extractelement <2 x i64> %1654, i64 0 %1656 = extractelement <2 x i64> %1654, i64 1 %1657 = sub i64 %1655, %1656 %1658 = icmp eq i64 %1657, 0 br i1 %1658, label %1666, label %1659 1659: ; preds = %1653 %1660 = load ptr, ptr %1639, align 8, !tbaa !65 %1661 = getelementptr inbounds nuw i8, ptr %1660, i64 %1656 call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %1661, i8 32, i64 range(i64 1, 0) %1657, i1 false) %1662 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1663 = getelementptr inbounds nuw i8, ptr %1662, i64 24 %1664 = load i64, ptr %1663, align 8, !tbaa !70 %1665 = add i64 %1664, %1657 store i64 %1665, ptr %1663, align 8, !tbaa !70 br label %1666 1666: ; preds = %1659, %1653 call void @llvm.lifetime.start.p5(i64 64, ptr addrspace(5) %10) #21, !noalias !89 call void @llvm.memset.p5.i64(ptr addrspace(5) noundef align 1 dereferenceable(64) %10, i8 32, i64 64, i1 false), !noalias !89 br label %1667 1667: ; preds = %1716, %1666 %1668 = phi i64 [ %1657, %1666 ], [ %1669, %1716 ] %1669 = add i64 %1668, 64 %1670 = icmp ult i64 %1669, %1636 br i1 %1670, label %1671, label %1719 1671: ; preds = %1667 %1672 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1673 = getelementptr inbounds nuw i8, ptr %1672, i64 48 %1674 = load i32, ptr %1673, align 8, !tbaa !96 switch i32 %1674, label %1715 [ i32 0, label %1675 i32 1, label %1689 i32 2, label %1709 ] 1675: ; preds = %1671 %1676 = getelementptr inbounds nuw i8, ptr %1672, i64 16 %1677 = load <2 x i64>, ptr %1676, align 8, !tbaa !15 %1678 = extractelement <2 x i64> %1677, i64 0 %1679 = extractelement <2 x i64> %1677, i64 1 %1680 = icmp ult i64 %1679, %1678 br i1 %1680, label %1681, label %1716 1681: ; preds = %1675 %1682 = getelementptr inbounds nuw i8, ptr %1672, i64 24 %1683 = sub nuw i64 %1678, %1679 %1684 = call i64 @llvm.umin.i64(i64 %1683, i64 64) %1685 = load ptr, ptr %1672, align 8, !tbaa !65 %1686 = getelementptr inbounds nuw i8, ptr %1685, i64 %1679 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1686, ptr align 1 %565, i64 %1684, i1 false), !alias.scope !160 %1687 = load i64, ptr %1682, align 8, !tbaa !70 %1688 = add i64 %1687, %1684 store i64 %1688, ptr %1682, align 8, !tbaa !70 br label %1716 1689: ; preds = %1671 %1690 = getelementptr inbounds nuw i8, ptr %1672, i64 24 %1691 = load i64, ptr %1690, align 8, !tbaa !70 %1692 = icmp eq i64 %1691, 0 br i1 %1692, label %1701, label %1693 1693: ; preds = %1689 %1694 = getelementptr inbounds nuw i8, ptr %1672, i64 32 %1695 = load ptr, ptr %1694, align 8, !tbaa !71 %1696 = load ptr, ptr %1672, align 8, !tbaa !65 %1697 = getelementptr inbounds nuw i8, ptr %1672, i64 40 %1698 = load ptr, ptr %1697, align 8, !tbaa !72 %1699 = call noundef i32 %1695(ptr %1696, i64 %1691, ptr noundef %1698) #23 %1700 = icmp sgt i32 %1699, -1 br i1 %1700, label %1701, label %1716 1701: ; preds = %1693, %1689 %1702 = getelementptr inbounds nuw i8, ptr %1672, i64 32 %1703 = load ptr, ptr %1702, align 8, !tbaa !71 %1704 = getelementptr inbounds nuw i8, ptr %1672, i64 40 %1705 = load ptr, ptr %1704, align 8, !tbaa !72 %1706 = call noundef i32 %1703(ptr %565, i64 64, ptr noundef %1705) #23 %1707 = icmp sgt i32 %1706, -1 br i1 %1707, label %1708, label %1716 1708: ; preds = %1701 store i64 0, ptr %1690, align 8, !tbaa !70 br label %1716 1709: ; preds = %1671 %1710 = getelementptr inbounds nuw i8, ptr %1672, i64 32 %1711 = load ptr, ptr %1710, align 8, !tbaa !71 %1712 = getelementptr inbounds nuw i8, ptr %1672, i64 40 %1713 = load ptr, ptr %1712, align 8, !tbaa !72 %1714 = call noundef i32 %1711(ptr %565, i64 64, ptr noundef %1713) #23 br label %1716 1715: ; preds = %1671 unreachable 1716: ; preds = %1709, %1708, %1701, %1693, %1681, %1675 %1717 = phi i32 [ %1714, %1709 ], [ 0, %1675 ], [ 0, %1681 ], [ %1699, %1693 ], [ %1706, %1701 ], [ 0, %1708 ] %1718 = icmp eq i32 %1717, 0 br i1 %1718, label %1667, label %1769, !llvm.loop !105 1719: ; preds = %1667 %1720 = phi i64 [ %1668, %1667 ] %1721 = sub i64 %1636, %1720 %1722 = call noundef i64 @llvm.umin.i64(i64 %1721, i64 64) %1723 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1724 = getelementptr inbounds nuw i8, ptr %1723, i64 48 %1725 = load i32, ptr %1724, align 8, !tbaa !96 switch i32 %1725, label %1768 [ i32 0, label %1726 i32 1, label %1740 i32 2, label %1762 ] 1726: ; preds = %1719 %1727 = getelementptr inbounds nuw i8, ptr %1723, i64 16 %1728 = load <2 x i64>, ptr %1727, align 8, !tbaa !15 %1729 = extractelement <2 x i64> %1728, i64 0 %1730 = extractelement <2 x i64> %1728, i64 1 %1731 = icmp ult i64 %1730, %1729 br i1 %1731, label %1732, label %1769 1732: ; preds = %1726 %1733 = getelementptr inbounds nuw i8, ptr %1723, i64 24 %1734 = sub nuw i64 %1729, %1730 %1735 = call i64 @llvm.umin.i64(i64 %1734, i64 %1722) %1736 = load ptr, ptr %1723, align 8, !tbaa !65 %1737 = getelementptr inbounds nuw i8, ptr %1736, i64 %1730 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1737, ptr align 1 %565, i64 %1735, i1 false), !alias.scope !164 %1738 = load i64, ptr %1733, align 8, !tbaa !70 %1739 = add i64 %1738, %1735 store i64 %1739, ptr %1733, align 8, !tbaa !70 br label %1769 1740: ; preds = %1719 %1741 = getelementptr inbounds nuw i8, ptr %1723, i64 24 %1742 = load i64, ptr %1741, align 8, !tbaa !70 %1743 = icmp eq i64 %1742, 0 br i1 %1743, label %1752, label %1744 1744: ; preds = %1740 %1745 = getelementptr inbounds nuw i8, ptr %1723, i64 32 %1746 = load ptr, ptr %1745, align 8, !tbaa !71 %1747 = load ptr, ptr %1723, align 8, !tbaa !65 %1748 = getelementptr inbounds nuw i8, ptr %1723, i64 40 %1749 = load ptr, ptr %1748, align 8, !tbaa !72 %1750 = call noundef i32 %1746(ptr %1747, i64 %1742, ptr noundef %1749) #23 %1751 = icmp sgt i32 %1750, -1 br i1 %1751, label %1752, label %1769 1752: ; preds = %1744, %1740 %1753 = icmp eq i64 %1720, %1636 br i1 %1753, label %1761, label %1754 1754: ; preds = %1752 %1755 = getelementptr inbounds nuw i8, ptr %1723, i64 32 %1756 = load ptr, ptr %1755, align 8, !tbaa !71 %1757 = getelementptr inbounds nuw i8, ptr %1723, i64 40 %1758 = load ptr, ptr %1757, align 8, !tbaa !72 %1759 = call noundef i32 %1756(ptr %565, i64 %1722, ptr noundef %1758) #23 %1760 = icmp sgt i32 %1759, -1 br i1 %1760, label %1761, label %1769 1761: ; preds = %1754, %1752 store i64 0, ptr %1741, align 8, !tbaa !70 br label %1769 1762: ; preds = %1719 %1763 = getelementptr inbounds nuw i8, ptr %1723, i64 32 %1764 = load ptr, ptr %1763, align 8, !tbaa !71 %1765 = getelementptr inbounds nuw i8, ptr %1723, i64 40 %1766 = load ptr, ptr %1765, align 8, !tbaa !72 %1767 = call noundef i32 %1764(ptr %565, i64 %1722, ptr noundef %1766) #23 br label %1769 1768: ; preds = %1719 unreachable 1769: ; preds = %1762, %1761, %1754, %1744, %1732, %1726, %1716 %1770 = phi i32 [ %1767, %1762 ], [ 0, %1726 ], [ 0, %1732 ], [ %1750, %1744 ], [ %1759, %1754 ], [ 0, %1761 ], [ %1717, %1716 ] call void @llvm.lifetime.end.p5(i64 64, ptr addrspace(5) %10) #21, !noalias !89 br label %1771 1771: ; preds = %1769, %1646 %1772 = phi i32 [ 0, %1646 ], [ %1770, %1769 ] %1773 = icmp sgt i32 %1772, -1 br i1 %1773, label %2177, label %2178 1774: ; preds = %1366 %1775 = icmp sgt i32 %1367, 0 br i1 %1775, label %1776, label %1915 1776: ; preds = %1774 %1777 = zext nneg i32 %1367 to i64 %1778 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %1779 = add nsw i32 %1778, %1367 store i32 %1779, ptr %456, align 8, !tbaa !75, !noalias !89 %1780 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1781 = getelementptr inbounds nuw i8, ptr %1780, i64 24 %1782 = load i64, ptr %1781, align 8, !tbaa !70 %1783 = add i64 %1782, %1777 %1784 = getelementptr inbounds nuw i8, ptr %1780, i64 16 %1785 = load i64, ptr %1784, align 8, !tbaa !69 %1786 = icmp ugt i64 %1783, %1785 br i1 %1786, label %1794, label %1787 1787: ; preds = %1776 %1788 = load ptr, ptr %1780, align 8, !tbaa !65 %1789 = getelementptr inbounds nuw i8, ptr %1788, i64 %1782 call void @llvm.memset.p0.i64(ptr align 1 %1789, i8 32, i64 %1777, i1 false) %1790 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1791 = getelementptr inbounds nuw i8, ptr %1790, i64 24 %1792 = load i64, ptr %1791, align 8, !tbaa !70 %1793 = add i64 %1792, %1777 store i64 %1793, ptr %1791, align 8, !tbaa !70 br label %1912 1794: ; preds = %1776 %1795 = load <2 x i64>, ptr %1784, align 8, !tbaa !15 %1796 = extractelement <2 x i64> %1795, i64 0 %1797 = extractelement <2 x i64> %1795, i64 1 %1798 = sub i64 %1796, %1797 %1799 = icmp eq i64 %1798, 0 br i1 %1799, label %1807, label %1800 1800: ; preds = %1794 %1801 = load ptr, ptr %1780, align 8, !tbaa !65 %1802 = getelementptr inbounds nuw i8, ptr %1801, i64 %1797 call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %1802, i8 32, i64 range(i64 1, 0) %1798, i1 false) %1803 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1804 = getelementptr inbounds nuw i8, ptr %1803, i64 24 %1805 = load i64, ptr %1804, align 8, !tbaa !70 %1806 = add i64 %1805, %1798 store i64 %1806, ptr %1804, align 8, !tbaa !70 br label %1807 1807: ; preds = %1800, %1794 call void @llvm.lifetime.start.p5(i64 64, ptr addrspace(5) %11) #21, !noalias !89 call void @llvm.memset.p5.i64(ptr addrspace(5) noundef align 1 dereferenceable(64) %11, i8 32, i64 64, i1 false), !noalias !89 br label %1808 1808: ; preds = %1857, %1807 %1809 = phi i64 [ %1798, %1807 ], [ %1810, %1857 ] %1810 = add i64 %1809, 64 %1811 = icmp ult i64 %1810, %1777 br i1 %1811, label %1812, label %1860 1812: ; preds = %1808 %1813 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1814 = getelementptr inbounds nuw i8, ptr %1813, i64 48 %1815 = load i32, ptr %1814, align 8, !tbaa !96 switch i32 %1815, label %1856 [ i32 0, label %1816 i32 1, label %1830 i32 2, label %1850 ] 1816: ; preds = %1812 %1817 = getelementptr inbounds nuw i8, ptr %1813, i64 16 %1818 = load <2 x i64>, ptr %1817, align 8, !tbaa !15 %1819 = extractelement <2 x i64> %1818, i64 0 %1820 = extractelement <2 x i64> %1818, i64 1 %1821 = icmp ult i64 %1820, %1819 br i1 %1821, label %1822, label %1857 1822: ; preds = %1816 %1823 = getelementptr inbounds nuw i8, ptr %1813, i64 24 %1824 = sub nuw i64 %1819, %1820 %1825 = call i64 @llvm.umin.i64(i64 %1824, i64 64) %1826 = load ptr, ptr %1813, align 8, !tbaa !65 %1827 = getelementptr inbounds nuw i8, ptr %1826, i64 %1820 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1827, ptr align 1 %566, i64 %1825, i1 false), !alias.scope !168 %1828 = load i64, ptr %1823, align 8, !tbaa !70 %1829 = add i64 %1828, %1825 store i64 %1829, ptr %1823, align 8, !tbaa !70 br label %1857 1830: ; preds = %1812 %1831 = getelementptr inbounds nuw i8, ptr %1813, i64 24 %1832 = load i64, ptr %1831, align 8, !tbaa !70 %1833 = icmp eq i64 %1832, 0 br i1 %1833, label %1842, label %1834 1834: ; preds = %1830 %1835 = getelementptr inbounds nuw i8, ptr %1813, i64 32 %1836 = load ptr, ptr %1835, align 8, !tbaa !71 %1837 = load ptr, ptr %1813, align 8, !tbaa !65 %1838 = getelementptr inbounds nuw i8, ptr %1813, i64 40 %1839 = load ptr, ptr %1838, align 8, !tbaa !72 %1840 = call noundef i32 %1836(ptr %1837, i64 %1832, ptr noundef %1839) #23 %1841 = icmp sgt i32 %1840, -1 br i1 %1841, label %1842, label %1857 1842: ; preds = %1834, %1830 %1843 = getelementptr inbounds nuw i8, ptr %1813, i64 32 %1844 = load ptr, ptr %1843, align 8, !tbaa !71 %1845 = getelementptr inbounds nuw i8, ptr %1813, i64 40 %1846 = load ptr, ptr %1845, align 8, !tbaa !72 %1847 = call noundef i32 %1844(ptr %566, i64 64, ptr noundef %1846) #23 %1848 = icmp sgt i32 %1847, -1 br i1 %1848, label %1849, label %1857 1849: ; preds = %1842 store i64 0, ptr %1831, align 8, !tbaa !70 br label %1857 1850: ; preds = %1812 %1851 = getelementptr inbounds nuw i8, ptr %1813, i64 32 %1852 = load ptr, ptr %1851, align 8, !tbaa !71 %1853 = getelementptr inbounds nuw i8, ptr %1813, i64 40 %1854 = load ptr, ptr %1853, align 8, !tbaa !72 %1855 = call noundef i32 %1852(ptr %566, i64 64, ptr noundef %1854) #23 br label %1857 1856: ; preds = %1812 unreachable 1857: ; preds = %1850, %1849, %1842, %1834, %1822, %1816 %1858 = phi i32 [ %1855, %1850 ], [ 0, %1816 ], [ 0, %1822 ], [ %1840, %1834 ], [ %1847, %1842 ], [ 0, %1849 ] %1859 = icmp eq i32 %1858, 0 br i1 %1859, label %1808, label %1910, !llvm.loop !105 1860: ; preds = %1808 %1861 = phi i64 [ %1809, %1808 ] %1862 = sub i64 %1777, %1861 %1863 = call noundef i64 @llvm.umin.i64(i64 %1862, i64 64) %1864 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1865 = getelementptr inbounds nuw i8, ptr %1864, i64 48 %1866 = load i32, ptr %1865, align 8, !tbaa !96 switch i32 %1866, label %1909 [ i32 0, label %1867 i32 1, label %1881 i32 2, label %1903 ] 1867: ; preds = %1860 %1868 = getelementptr inbounds nuw i8, ptr %1864, i64 16 %1869 = load <2 x i64>, ptr %1868, align 8, !tbaa !15 %1870 = extractelement <2 x i64> %1869, i64 0 %1871 = extractelement <2 x i64> %1869, i64 1 %1872 = icmp ult i64 %1871, %1870 br i1 %1872, label %1873, label %1910 1873: ; preds = %1867 %1874 = getelementptr inbounds nuw i8, ptr %1864, i64 24 %1875 = sub nuw i64 %1870, %1871 %1876 = call i64 @llvm.umin.i64(i64 %1875, i64 %1863) %1877 = load ptr, ptr %1864, align 8, !tbaa !65 %1878 = getelementptr inbounds nuw i8, ptr %1877, i64 %1871 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1878, ptr align 1 %566, i64 %1876, i1 false), !alias.scope !172 %1879 = load i64, ptr %1874, align 8, !tbaa !70 %1880 = add i64 %1879, %1876 store i64 %1880, ptr %1874, align 8, !tbaa !70 br label %1910 1881: ; preds = %1860 %1882 = getelementptr inbounds nuw i8, ptr %1864, i64 24 %1883 = load i64, ptr %1882, align 8, !tbaa !70 %1884 = icmp eq i64 %1883, 0 br i1 %1884, label %1893, label %1885 1885: ; preds = %1881 %1886 = getelementptr inbounds nuw i8, ptr %1864, i64 32 %1887 = load ptr, ptr %1886, align 8, !tbaa !71 %1888 = load ptr, ptr %1864, align 8, !tbaa !65 %1889 = getelementptr inbounds nuw i8, ptr %1864, i64 40 %1890 = load ptr, ptr %1889, align 8, !tbaa !72 %1891 = call noundef i32 %1887(ptr %1888, i64 %1883, ptr noundef %1890) #23 %1892 = icmp sgt i32 %1891, -1 br i1 %1892, label %1893, label %1910 1893: ; preds = %1885, %1881 %1894 = icmp eq i64 %1861, %1777 br i1 %1894, label %1902, label %1895 1895: ; preds = %1893 %1896 = getelementptr inbounds nuw i8, ptr %1864, i64 32 %1897 = load ptr, ptr %1896, align 8, !tbaa !71 %1898 = getelementptr inbounds nuw i8, ptr %1864, i64 40 %1899 = load ptr, ptr %1898, align 8, !tbaa !72 %1900 = call noundef i32 %1897(ptr %566, i64 %1863, ptr noundef %1899) #23 %1901 = icmp sgt i32 %1900, -1 br i1 %1901, label %1902, label %1910 1902: ; preds = %1895, %1893 store i64 0, ptr %1882, align 8, !tbaa !70 br label %1910 1903: ; preds = %1860 %1904 = getelementptr inbounds nuw i8, ptr %1864, i64 32 %1905 = load ptr, ptr %1904, align 8, !tbaa !71 %1906 = getelementptr inbounds nuw i8, ptr %1864, i64 40 %1907 = load ptr, ptr %1906, align 8, !tbaa !72 %1908 = call noundef i32 %1905(ptr %566, i64 %1863, ptr noundef %1907) #23 br label %1910 1909: ; preds = %1860 unreachable 1910: ; preds = %1903, %1902, %1895, %1885, %1873, %1867, %1857 %1911 = phi i32 [ %1908, %1903 ], [ 0, %1867 ], [ 0, %1873 ], [ %1891, %1885 ], [ %1900, %1895 ], [ 0, %1902 ], [ %1858, %1857 ] call void @llvm.lifetime.end.p5(i64 64, ptr addrspace(5) %11) #21, !noalias !89 br label %1912 1912: ; preds = %1910, %1787 %1913 = phi i32 [ 0, %1787 ], [ %1911, %1910 ] %1914 = icmp sgt i32 %1913, -1 br i1 %1914, label %1915, label %2178 1915: ; preds = %1912, %1774 %1916 = icmp eq i64 %1327, 0 br i1 %1916, label %1975, label %1917 1917: ; preds = %1915 %1918 = trunc nuw nsw i64 %1327 to i32 %1919 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %1920 = add nsw i32 %1919, %1918 store i32 %1920, ptr %456, align 8, !tbaa !75, !noalias !89 %1921 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1922 = getelementptr inbounds nuw i8, ptr %1921, i64 24 %1923 = load i64, ptr %1922, align 8, !tbaa !70 %1924 = add i64 %1923, %1327 %1925 = getelementptr inbounds nuw i8, ptr %1921, i64 16 %1926 = load i64, ptr %1925, align 8, !tbaa !69 %1927 = icmp ugt i64 %1924, %1926 br i1 %1927, label %1935, label %1928 1928: ; preds = %1917 %1929 = load ptr, ptr %1921, align 8, !tbaa !65 %1930 = getelementptr inbounds nuw i8, ptr %1929, i64 %1923 call void @llvm.memcpy.p0.p5.i64(ptr align 1 %1930, ptr addrspace(5) align 1 %27, i64 %1327, i1 false), !alias.scope !176 %1931 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1932 = getelementptr inbounds nuw i8, ptr %1931, i64 24 %1933 = load i64, ptr %1932, align 8, !tbaa !70 %1934 = add i64 %1933, %1327 store i64 %1934, ptr %1932, align 8, !tbaa !70 br label %1972 1935: ; preds = %1917 %1936 = getelementptr inbounds nuw i8, ptr %1921, i64 48 %1937 = load i32, ptr %1936, align 8, !tbaa !96 switch i32 %1937, label %1971 [ i32 0, label %1938 i32 1, label %1947 i32 2, label %1965 ] 1938: ; preds = %1935 %1939 = icmp ult i64 %1923, %1926 br i1 %1939, label %1940, label %1972 1940: ; preds = %1938 %1941 = sub nuw i64 %1926, %1923 %1942 = call i64 @llvm.umin.i64(i64 %1941, i64 %1327) %1943 = load ptr, ptr %1921, align 8, !tbaa !65 %1944 = getelementptr inbounds nuw i8, ptr %1943, i64 %1923 call void @llvm.memcpy.p0.p5.i64(ptr align 1 %1944, ptr addrspace(5) align 1 %27, i64 %1942, i1 false), !alias.scope !180 %1945 = load i64, ptr %1922, align 8, !tbaa !70 %1946 = add i64 %1945, %1942 store i64 %1946, ptr %1922, align 8, !tbaa !70 br label %1972 1947: ; preds = %1935 %1948 = icmp eq i64 %1923, 0 br i1 %1948, label %1957, label %1949 1949: ; preds = %1947 %1950 = getelementptr inbounds nuw i8, ptr %1921, i64 32 %1951 = load ptr, ptr %1950, align 8, !tbaa !71 %1952 = load ptr, ptr %1921, align 8, !tbaa !65 %1953 = getelementptr inbounds nuw i8, ptr %1921, i64 40 %1954 = load ptr, ptr %1953, align 8, !tbaa !72 %1955 = call noundef i32 %1951(ptr %1952, i64 %1923, ptr noundef %1954) #23 %1956 = icmp sgt i32 %1955, -1 br i1 %1956, label %1957, label %1972 1957: ; preds = %1949, %1947 %1958 = getelementptr inbounds nuw i8, ptr %1921, i64 32 %1959 = load ptr, ptr %1958, align 8, !tbaa !71 %1960 = getelementptr inbounds nuw i8, ptr %1921, i64 40 %1961 = load ptr, ptr %1960, align 8, !tbaa !72 %1962 = call noundef i32 %1959(ptr %560, i64 %1327, ptr noundef %1961) #23 %1963 = icmp sgt i32 %1962, -1 br i1 %1963, label %1964, label %1972 1964: ; preds = %1957 store i64 0, ptr %1922, align 8, !tbaa !70 br label %1972 1965: ; preds = %1935 %1966 = getelementptr inbounds nuw i8, ptr %1921, i64 32 %1967 = load ptr, ptr %1966, align 8, !tbaa !71 %1968 = getelementptr inbounds nuw i8, ptr %1921, i64 40 %1969 = load ptr, ptr %1968, align 8, !tbaa !72 %1970 = call noundef i32 %1967(ptr %560, i64 %1327, ptr noundef %1969) #23 br label %1972 1971: ; preds = %1935 unreachable 1972: ; preds = %1965, %1964, %1957, %1949, %1940, %1938, %1928 %1973 = phi i32 [ 0, %1928 ], [ %1970, %1965 ], [ 0, %1938 ], [ 0, %1940 ], [ %1955, %1949 ], [ %1962, %1957 ], [ 0, %1964 ] %1974 = icmp sgt i32 %1973, -1 br i1 %1974, label %1975, label %2178 1975: ; preds = %1972, %1915 %1976 = icmp sgt i32 %1368, 0 br i1 %1976, label %1977, label %2116 1977: ; preds = %1975 %1978 = zext nneg i32 %1368 to i64 %1979 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %1980 = add nsw i32 %1979, %1368 store i32 %1980, ptr %456, align 8, !tbaa !75, !noalias !89 %1981 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1982 = getelementptr inbounds nuw i8, ptr %1981, i64 24 %1983 = load i64, ptr %1982, align 8, !tbaa !70 %1984 = add i64 %1983, %1978 %1985 = getelementptr inbounds nuw i8, ptr %1981, i64 16 %1986 = load i64, ptr %1985, align 8, !tbaa !69 %1987 = icmp ugt i64 %1984, %1986 br i1 %1987, label %1995, label %1988 1988: ; preds = %1977 %1989 = load ptr, ptr %1981, align 8, !tbaa !65 %1990 = getelementptr inbounds nuw i8, ptr %1989, i64 %1983 call void @llvm.memset.p0.i64(ptr align 1 %1990, i8 48, i64 %1978, i1 false) %1991 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %1992 = getelementptr inbounds nuw i8, ptr %1991, i64 24 %1993 = load i64, ptr %1992, align 8, !tbaa !70 %1994 = add i64 %1993, %1978 store i64 %1994, ptr %1992, align 8, !tbaa !70 br label %2113 1995: ; preds = %1977 %1996 = load <2 x i64>, ptr %1985, align 8, !tbaa !15 %1997 = extractelement <2 x i64> %1996, i64 0 %1998 = extractelement <2 x i64> %1996, i64 1 %1999 = sub i64 %1997, %1998 %2000 = icmp eq i64 %1999, 0 br i1 %2000, label %2008, label %2001 2001: ; preds = %1995 %2002 = load ptr, ptr %1981, align 8, !tbaa !65 %2003 = getelementptr inbounds nuw i8, ptr %2002, i64 %1998 call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %2003, i8 48, i64 range(i64 1, 0) %1999, i1 false) %2004 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2005 = getelementptr inbounds nuw i8, ptr %2004, i64 24 %2006 = load i64, ptr %2005, align 8, !tbaa !70 %2007 = add i64 %2006, %1999 store i64 %2007, ptr %2005, align 8, !tbaa !70 br label %2008 2008: ; preds = %2001, %1995 call void @llvm.lifetime.start.p5(i64 64, ptr addrspace(5) %12) #21, !noalias !89 call void @llvm.memset.p5.i64(ptr addrspace(5) noundef align 1 dereferenceable(64) %12, i8 48, i64 64, i1 false), !noalias !89 br label %2009 2009: ; preds = %2058, %2008 %2010 = phi i64 [ %1999, %2008 ], [ %2011, %2058 ] %2011 = add i64 %2010, 64 %2012 = icmp ult i64 %2011, %1978 br i1 %2012, label %2013, label %2061 2013: ; preds = %2009 %2014 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2015 = getelementptr inbounds nuw i8, ptr %2014, i64 48 %2016 = load i32, ptr %2015, align 8, !tbaa !96 switch i32 %2016, label %2057 [ i32 0, label %2017 i32 1, label %2031 i32 2, label %2051 ] 2017: ; preds = %2013 %2018 = getelementptr inbounds nuw i8, ptr %2014, i64 16 %2019 = load <2 x i64>, ptr %2018, align 8, !tbaa !15 %2020 = extractelement <2 x i64> %2019, i64 0 %2021 = extractelement <2 x i64> %2019, i64 1 %2022 = icmp ult i64 %2021, %2020 br i1 %2022, label %2023, label %2058 2023: ; preds = %2017 %2024 = getelementptr inbounds nuw i8, ptr %2014, i64 24 %2025 = sub nuw i64 %2020, %2021 %2026 = call i64 @llvm.umin.i64(i64 %2025, i64 64) %2027 = load ptr, ptr %2014, align 8, !tbaa !65 %2028 = getelementptr inbounds nuw i8, ptr %2027, i64 %2021 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %2028, ptr align 1 %567, i64 %2026, i1 false), !alias.scope !184 %2029 = load i64, ptr %2024, align 8, !tbaa !70 %2030 = add i64 %2029, %2026 store i64 %2030, ptr %2024, align 8, !tbaa !70 br label %2058 2031: ; preds = %2013 %2032 = getelementptr inbounds nuw i8, ptr %2014, i64 24 %2033 = load i64, ptr %2032, align 8, !tbaa !70 %2034 = icmp eq i64 %2033, 0 br i1 %2034, label %2043, label %2035 2035: ; preds = %2031 %2036 = getelementptr inbounds nuw i8, ptr %2014, i64 32 %2037 = load ptr, ptr %2036, align 8, !tbaa !71 %2038 = load ptr, ptr %2014, align 8, !tbaa !65 %2039 = getelementptr inbounds nuw i8, ptr %2014, i64 40 %2040 = load ptr, ptr %2039, align 8, !tbaa !72 %2041 = call noundef i32 %2037(ptr %2038, i64 %2033, ptr noundef %2040) #23 %2042 = icmp sgt i32 %2041, -1 br i1 %2042, label %2043, label %2058 2043: ; preds = %2035, %2031 %2044 = getelementptr inbounds nuw i8, ptr %2014, i64 32 %2045 = load ptr, ptr %2044, align 8, !tbaa !71 %2046 = getelementptr inbounds nuw i8, ptr %2014, i64 40 %2047 = load ptr, ptr %2046, align 8, !tbaa !72 %2048 = call noundef i32 %2045(ptr %567, i64 64, ptr noundef %2047) #23 %2049 = icmp sgt i32 %2048, -1 br i1 %2049, label %2050, label %2058 2050: ; preds = %2043 store i64 0, ptr %2032, align 8, !tbaa !70 br label %2058 2051: ; preds = %2013 %2052 = getelementptr inbounds nuw i8, ptr %2014, i64 32 %2053 = load ptr, ptr %2052, align 8, !tbaa !71 %2054 = getelementptr inbounds nuw i8, ptr %2014, i64 40 %2055 = load ptr, ptr %2054, align 8, !tbaa !72 %2056 = call noundef i32 %2053(ptr %567, i64 64, ptr noundef %2055) #23 br label %2058 2057: ; preds = %2013 unreachable 2058: ; preds = %2051, %2050, %2043, %2035, %2023, %2017 %2059 = phi i32 [ %2056, %2051 ], [ 0, %2017 ], [ 0, %2023 ], [ %2041, %2035 ], [ %2048, %2043 ], [ 0, %2050 ] %2060 = icmp eq i32 %2059, 0 br i1 %2060, label %2009, label %2111, !llvm.loop !105 2061: ; preds = %2009 %2062 = phi i64 [ %2010, %2009 ] %2063 = sub i64 %1978, %2062 %2064 = call noundef i64 @llvm.umin.i64(i64 %2063, i64 64) %2065 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2066 = getelementptr inbounds nuw i8, ptr %2065, i64 48 %2067 = load i32, ptr %2066, align 8, !tbaa !96 switch i32 %2067, label %2110 [ i32 0, label %2068 i32 1, label %2082 i32 2, label %2104 ] 2068: ; preds = %2061 %2069 = getelementptr inbounds nuw i8, ptr %2065, i64 16 %2070 = load <2 x i64>, ptr %2069, align 8, !tbaa !15 %2071 = extractelement <2 x i64> %2070, i64 0 %2072 = extractelement <2 x i64> %2070, i64 1 %2073 = icmp ult i64 %2072, %2071 br i1 %2073, label %2074, label %2111 2074: ; preds = %2068 %2075 = getelementptr inbounds nuw i8, ptr %2065, i64 24 %2076 = sub nuw i64 %2071, %2072 %2077 = call i64 @llvm.umin.i64(i64 %2076, i64 %2064) %2078 = load ptr, ptr %2065, align 8, !tbaa !65 %2079 = getelementptr inbounds nuw i8, ptr %2078, i64 %2072 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %2079, ptr align 1 %567, i64 %2077, i1 false), !alias.scope !188 %2080 = load i64, ptr %2075, align 8, !tbaa !70 %2081 = add i64 %2080, %2077 store i64 %2081, ptr %2075, align 8, !tbaa !70 br label %2111 2082: ; preds = %2061 %2083 = getelementptr inbounds nuw i8, ptr %2065, i64 24 %2084 = load i64, ptr %2083, align 8, !tbaa !70 %2085 = icmp eq i64 %2084, 0 br i1 %2085, label %2094, label %2086 2086: ; preds = %2082 %2087 = getelementptr inbounds nuw i8, ptr %2065, i64 32 %2088 = load ptr, ptr %2087, align 8, !tbaa !71 %2089 = load ptr, ptr %2065, align 8, !tbaa !65 %2090 = getelementptr inbounds nuw i8, ptr %2065, i64 40 %2091 = load ptr, ptr %2090, align 8, !tbaa !72 %2092 = call noundef i32 %2088(ptr %2089, i64 %2084, ptr noundef %2091) #23 %2093 = icmp sgt i32 %2092, -1 br i1 %2093, label %2094, label %2111 2094: ; preds = %2086, %2082 %2095 = icmp eq i64 %2062, %1978 br i1 %2095, label %2103, label %2096 2096: ; preds = %2094 %2097 = getelementptr inbounds nuw i8, ptr %2065, i64 32 %2098 = load ptr, ptr %2097, align 8, !tbaa !71 %2099 = getelementptr inbounds nuw i8, ptr %2065, i64 40 %2100 = load ptr, ptr %2099, align 8, !tbaa !72 %2101 = call noundef i32 %2098(ptr %567, i64 %2064, ptr noundef %2100) #23 %2102 = icmp sgt i32 %2101, -1 br i1 %2102, label %2103, label %2111 2103: ; preds = %2096, %2094 store i64 0, ptr %2083, align 8, !tbaa !70 br label %2111 2104: ; preds = %2061 %2105 = getelementptr inbounds nuw i8, ptr %2065, i64 32 %2106 = load ptr, ptr %2105, align 8, !tbaa !71 %2107 = getelementptr inbounds nuw i8, ptr %2065, i64 40 %2108 = load ptr, ptr %2107, align 8, !tbaa !72 %2109 = call noundef i32 %2106(ptr %567, i64 %2064, ptr noundef %2108) #23 br label %2111 2110: ; preds = %2061 unreachable 2111: ; preds = %2104, %2103, %2096, %2086, %2074, %2068, %2058 %2112 = phi i32 [ %2109, %2104 ], [ 0, %2068 ], [ 0, %2074 ], [ %2092, %2086 ], [ %2101, %2096 ], [ 0, %2103 ], [ %2059, %2058 ] call void @llvm.lifetime.end.p5(i64 64, ptr addrspace(5) %12) #21, !noalias !89 br label %2113 2113: ; preds = %2111, %1988 %2114 = phi i32 [ 0, %1988 ], [ %2112, %2111 ] %2115 = icmp sgt i32 %2114, -1 br i1 %2115, label %2116, label %2178 2116: ; preds = %2113, %1975 %2117 = icmp eq i64 %1352, 0 br i1 %2117, label %2177, label %2118 2118: ; preds = %2116 %2119 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %2120 = add nsw i32 %2119, %1292 store i32 %2120, ptr %456, align 8, !tbaa !75, !noalias !89 %2121 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2122 = getelementptr inbounds nuw i8, ptr %2121, i64 24 %2123 = load i64, ptr %2122, align 8, !tbaa !70 %2124 = add i64 %2123, %1290 %2125 = getelementptr inbounds nuw i8, ptr %2121, i64 16 %2126 = load i64, ptr %2125, align 8, !tbaa !69 %2127 = icmp ugt i64 %2124, %2126 br i1 %2127, label %2135, label %2128 2128: ; preds = %2118 %2129 = load ptr, ptr %2121, align 8, !tbaa !65 %2130 = getelementptr inbounds nuw i8, ptr %2129, i64 %2123 call void @llvm.memcpy.p0.p5.i64(ptr align 1 %2130, ptr addrspace(5) align 1 %1294, i64 %1290, i1 false), !alias.scope !192 %2131 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2132 = getelementptr inbounds nuw i8, ptr %2131, i64 24 %2133 = load i64, ptr %2132, align 8, !tbaa !70 %2134 = add i64 %2133, %1290 store i64 %2134, ptr %2132, align 8, !tbaa !70 br label %2174 2135: ; preds = %2118 %2136 = getelementptr inbounds nuw i8, ptr %2121, i64 48 %2137 = load i32, ptr %2136, align 8, !tbaa !96 switch i32 %2137, label %2173 [ i32 0, label %2138 i32 1, label %2147 i32 2, label %2167 ] 2138: ; preds = %2135 %2139 = icmp ult i64 %2123, %2126 br i1 %2139, label %2140, label %2174 2140: ; preds = %2138 %2141 = sub nuw i64 %2126, %2123 %2142 = call i64 @llvm.umin.i64(i64 %2141, i64 %1290) %2143 = load ptr, ptr %2121, align 8, !tbaa !65 %2144 = getelementptr inbounds nuw i8, ptr %2143, i64 %2123 call void @llvm.memcpy.p0.p5.i64(ptr align 1 %2144, ptr addrspace(5) align 1 %1294, i64 %2142, i1 false), !alias.scope !196 %2145 = load i64, ptr %2122, align 8, !tbaa !70 %2146 = add i64 %2145, %2142 store i64 %2146, ptr %2122, align 8, !tbaa !70 br label %2174 2147: ; preds = %2135 %2148 = icmp eq i64 %2123, 0 br i1 %2148, label %2157, label %2149 2149: ; preds = %2147 %2150 = getelementptr inbounds nuw i8, ptr %2121, i64 32 %2151 = load ptr, ptr %2150, align 8, !tbaa !71 %2152 = load ptr, ptr %2121, align 8, !tbaa !65 %2153 = getelementptr inbounds nuw i8, ptr %2121, i64 40 %2154 = load ptr, ptr %2153, align 8, !tbaa !72 %2155 = call noundef i32 %2151(ptr %2152, i64 %2123, ptr noundef %2154) #23 %2156 = icmp sgt i32 %2155, -1 br i1 %2156, label %2157, label %2174 2157: ; preds = %2149, %2147 %2158 = icmp eq i64 %1290, 0 br i1 %2158, label %2166, label %2159 2159: ; preds = %2157 %2160 = getelementptr inbounds nuw i8, ptr %2121, i64 32 %2161 = load ptr, ptr %2160, align 8, !tbaa !71 %2162 = getelementptr inbounds nuw i8, ptr %2121, i64 40 %2163 = load ptr, ptr %2162, align 8, !tbaa !72 %2164 = call noundef i32 %2161(ptr nonnull %1295, i64 %1290, ptr noundef %2163) #23 %2165 = icmp sgt i32 %2164, -1 br i1 %2165, label %2166, label %2174 2166: ; preds = %2159, %2157 store i64 0, ptr %2122, align 8, !tbaa !70 br label %2174 2167: ; preds = %2135 %2168 = getelementptr inbounds nuw i8, ptr %2121, i64 32 %2169 = load ptr, ptr %2168, align 8, !tbaa !71 %2170 = getelementptr inbounds nuw i8, ptr %2121, i64 40 %2171 = load ptr, ptr %2170, align 8, !tbaa !72 %2172 = call noundef i32 %2169(ptr nonnull %1295, i64 %1290, ptr noundef %2171) #23 br label %2174 2173: ; preds = %2135 unreachable 2174: ; preds = %2167, %2166, %2159, %2149, %2140, %2138, %2128 %2175 = phi i32 [ 0, %2128 ], [ %2172, %2167 ], [ 0, %2138 ], [ 0, %2140 ], [ %2155, %2149 ], [ %2164, %2159 ], [ 0, %2166 ] %2176 = icmp sgt i32 %2175, -1 br i1 %2176, label %2177, label %2178 2177: ; preds = %2174, %2116, %1771, %1633 br label %2178 2178: ; preds = %2177, %2174, %2113, %1972, %1912, %1771, %1630, %1569, %1428 %2179 = phi i32 [ 0, %2177 ], [ %1772, %1771 ], [ %1631, %1630 ], [ %1570, %1569 ], [ %1429, %1428 ], [ %2175, %2174 ], [ %2114, %2113 ], [ %1973, %1972 ], [ %1913, %1912 ] call void @llvm.lifetime.end.p5(i64 2, ptr addrspace(5) %27) #21, !noalias !89 br label %2180 2180: ; preds = %2178, %1289 %2181 = phi i32 [ %2179, %2178 ], [ -4, %1289 ] call void @llvm.lifetime.end.p5(i64 64, ptr addrspace(5) %26) #21, !noalias !89 br label %4678 2182: ; preds = %585, %585, %585, %585 %2183 = and i8 %583, 32 switch i32 %577, label %2236 [ i32 1, label %2184 i32 2, label %2211 ] 2184: ; preds = %2182 switch i8 %583, label %2201 [ i8 114, label %2185 i8 82, label %2189 i8 107, label %2191 i8 75, label %2197 ] 2185: ; preds = %2184 %2186 = and i64 %581, 127 %2187 = and i64 %581, 128 %2188 = icmp ne i64 %2187, 0 br label %2263 2189: ; preds = %2184 %2190 = and i64 %581, 255 br label %2263 2191: ; preds = %2184 %2192 = lshr i64 %581, 7 %2193 = and i64 %2192, 255 %2194 = and i64 %581, 127 %2195 = and i64 %581, 32768 %2196 = icmp ne i64 %2195, 0 br label %2263 2197: ; preds = %2184 %2198 = lshr i64 %581, 8 %2199 = and i64 %2198, 255 %2200 = and i64 %581, 255 br label %2263 2201: ; preds = %2201, %2184 %2202 = phi ptr addrspace(4) [ %2205, %2201 ], [ @.str.2.18, %2184 ] %2203 = load i8, ptr addrspace(4) %2202, align 1, !tbaa !19, !noalias !89 %2204 = icmp eq i8 %2203, 0 %2205 = getelementptr inbounds i8, ptr addrspace(4) %2202, i64 1 br i1 %2204, label %2206, label %2201, !llvm.loop !200 2206: ; preds = %2201 %2207 = phi ptr addrspace(4) [ %2202, %2201 ] %2208 = addrspacecast ptr addrspace(4) %2207 to ptr %2209 = ptrtoint ptr %2208 to i64 %2210 = sub i64 %2209, ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.2.18 to ptr) to i64) call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.2.18 to ptr), i64 %2210) #23 call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @__PRETTY_FUNCTION__._ZN22__llvm_libc_20_0_0_git11printf_core13convert_fixedEPNS0_6WriterERKNS0_13FormatSectionE to ptr), i64 sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) getelementptr inbounds nuw (i8, ptr addrspace(4) @__PRETTY_FUNCTION__._ZN22__llvm_libc_20_0_0_git11printf_core13convert_fixedEPNS0_6WriterERKNS0_13FormatSectionE, i64 87) to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) @__PRETTY_FUNCTION__._ZN22__llvm_libc_20_0_0_git11printf_core13convert_fixedEPNS0_6WriterERKNS0_13FormatSectionE to ptr) to i64))) #23 call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.3.19 to ptr), i64 sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) getelementptr inbounds nuw (i8, ptr addrspace(4) @.str.3.19, i64 2) to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.3.19 to ptr) to i64))) #23 call fastcc void @_ZN22__llvm_libc_20_0_0_git8internal4exitEi(i32 noundef 255) #24 unreachable 2211: ; preds = %2182 switch i8 %583, label %2226 [ i8 114, label %2212 i8 82, label %2216 i8 107, label %2218 i8 75, label %2223 ] 2212: ; preds = %2211 %2213 = and i64 %581, 2147483647 %2214 = and i64 %581, 2147483648 %2215 = icmp ne i64 %2214, 0 br label %2263 2216: ; preds = %2211 %2217 = and i64 %581, 4294967295 br label %2263 2218: ; preds = %2211 %2219 = lshr i64 %581, 31 %2220 = and i64 %2219, 4294967295 %2221 = and i64 %581, 2147483647 %2222 = icmp slt i64 %581, 0 br label %2263 2223: ; preds = %2211 %2224 = lshr i64 %581, 32 %2225 = and i64 %581, 4294967295 br label %2263 2226: ; preds = %2226, %2211 %2227 = phi ptr addrspace(4) [ %2230, %2226 ], [ @.str.4.20, %2211 ] %2228 = load i8, ptr addrspace(4) %2227, align 1, !tbaa !19, !noalias !89 %2229 = icmp eq i8 %2228, 0 %2230 = getelementptr inbounds i8, ptr addrspace(4) %2227, i64 1 br i1 %2229, label %2231, label %2226, !llvm.loop !200 2231: ; preds = %2226 %2232 = phi ptr addrspace(4) [ %2227, %2226 ] %2233 = addrspacecast ptr addrspace(4) %2232 to ptr %2234 = ptrtoint ptr %2233 to i64 %2235 = sub i64 %2234, ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.4.20 to ptr) to i64) call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.4.20 to ptr), i64 %2235) #23 call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @__PRETTY_FUNCTION__._ZN22__llvm_libc_20_0_0_git11printf_core13convert_fixedEPNS0_6WriterERKNS0_13FormatSectionE to ptr), i64 sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) getelementptr inbounds nuw (i8, ptr addrspace(4) @__PRETTY_FUNCTION__._ZN22__llvm_libc_20_0_0_git11printf_core13convert_fixedEPNS0_6WriterERKNS0_13FormatSectionE, i64 87) to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) @__PRETTY_FUNCTION__._ZN22__llvm_libc_20_0_0_git11printf_core13convert_fixedEPNS0_6WriterERKNS0_13FormatSectionE to ptr) to i64))) #23 call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.3.19 to ptr), i64 sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) getelementptr inbounds nuw (i8, ptr addrspace(4) @.str.3.19, i64 2) to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.3.19 to ptr) to i64))) #23 call fastcc void @_ZN22__llvm_libc_20_0_0_git8internal4exitEi(i32 noundef 255) #24 unreachable 2236: ; preds = %2182 switch i8 %583, label %2253 [ i8 114, label %2237 i8 82, label %2241 i8 107, label %2243 i8 75, label %2249 ] 2237: ; preds = %2236 %2238 = and i64 %581, 32767 %2239 = and i64 %581, 32768 %2240 = icmp ne i64 %2239, 0 br label %2263 2241: ; preds = %2236 %2242 = and i64 %581, 65535 br label %2263 2243: ; preds = %2236 %2244 = lshr i64 %581, 15 %2245 = and i64 %2244, 65535 %2246 = and i64 %581, 32767 %2247 = and i64 %581, 2147483648 %2248 = icmp ne i64 %2247, 0 br label %2263 2249: ; preds = %2236 %2250 = lshr i64 %581, 16 %2251 = and i64 %2250, 65535 %2252 = and i64 %581, 65535 br label %2263 2253: ; preds = %2253, %2236 %2254 = phi ptr addrspace(4) [ %2257, %2253 ], [ @.str.5.21, %2236 ] %2255 = load i8, ptr addrspace(4) %2254, align 1, !tbaa !19, !noalias !89 %2256 = icmp eq i8 %2255, 0 %2257 = getelementptr inbounds i8, ptr addrspace(4) %2254, i64 1 br i1 %2256, label %2258, label %2253, !llvm.loop !200 2258: ; preds = %2253 %2259 = phi ptr addrspace(4) [ %2254, %2253 ] %2260 = addrspacecast ptr addrspace(4) %2259 to ptr %2261 = ptrtoint ptr %2260 to i64 %2262 = sub i64 %2261, ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.5.21 to ptr) to i64) call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.5.21 to ptr), i64 %2262) #23 call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @__PRETTY_FUNCTION__._ZN22__llvm_libc_20_0_0_git11printf_core13convert_fixedEPNS0_6WriterERKNS0_13FormatSectionE to ptr), i64 sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) getelementptr inbounds nuw (i8, ptr addrspace(4) @__PRETTY_FUNCTION__._ZN22__llvm_libc_20_0_0_git11printf_core13convert_fixedEPNS0_6WriterERKNS0_13FormatSectionE, i64 87) to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) @__PRETTY_FUNCTION__._ZN22__llvm_libc_20_0_0_git11printf_core13convert_fixedEPNS0_6WriterERKNS0_13FormatSectionE to ptr) to i64))) #23 call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.3.19 to ptr), i64 sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) getelementptr inbounds nuw (i8, ptr addrspace(4) @.str.3.19, i64 2) to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.3.19 to ptr) to i64))) #23 call fastcc void @_ZN22__llvm_libc_20_0_0_git8internal4exitEi(i32 noundef 255) #24 unreachable 2263: ; preds = %2249, %2243, %2241, %2237, %2223, %2218, %2216, %2212, %2197, %2191, %2189, %2185 %2264 = phi i64 [ %2186, %2185 ], [ %2190, %2189 ], [ %2194, %2191 ], [ %2200, %2197 ], [ %2213, %2212 ], [ %2217, %2216 ], [ %2221, %2218 ], [ %2225, %2223 ], [ %2238, %2237 ], [ %2242, %2241 ], [ %2246, %2243 ], [ %2252, %2249 ] %2265 = phi i64 [ 0, %2185 ], [ 0, %2189 ], [ %2193, %2191 ], [ %2199, %2197 ], [ 0, %2212 ], [ 0, %2216 ], [ %2220, %2218 ], [ %2224, %2223 ], [ 0, %2237 ], [ 0, %2241 ], [ %2245, %2243 ], [ %2251, %2249 ] %2266 = phi i64 [ 7, %2185 ], [ 8, %2189 ], [ 7, %2191 ], [ 8, %2197 ], [ 31, %2212 ], [ 32, %2216 ], [ 31, %2218 ], [ 32, %2223 ], [ 15, %2237 ], [ 16, %2241 ], [ 15, %2243 ], [ 16, %2249 ] %2267 = phi i1 [ %2188, %2185 ], [ false, %2189 ], [ %2196, %2191 ], [ false, %2197 ], [ %2215, %2212 ], [ false, %2216 ], [ %2222, %2218 ], [ false, %2223 ], [ %2240, %2237 ], [ false, %2241 ], [ %2248, %2243 ], [ false, %2249 ] br i1 %477, label %2268, label %2278 2268: ; preds = %2268, %2263 %2269 = phi ptr addrspace(4) [ %2272, %2268 ], [ @.str.7.23, %2263 ] %2270 = load i8, ptr addrspace(4) %2269, align 1, !tbaa !19, !noalias !89 %2271 = icmp eq i8 %2270, 0 %2272 = getelementptr inbounds i8, ptr addrspace(4) %2269, i64 1 br i1 %2271, label %2273, label %2268, !llvm.loop !200 2273: ; preds = %2268 %2274 = phi ptr addrspace(4) [ %2269, %2268 ] %2275 = addrspacecast ptr addrspace(4) %2274 to ptr %2276 = ptrtoint ptr %2275 to i64 %2277 = sub i64 %2276, ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.7.23 to ptr) to i64) call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.7.23 to ptr), i64 %2277) #23 call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @__PRETTY_FUNCTION__._ZN22__llvm_libc_20_0_0_git11printf_core13convert_fixedEPNS0_6WriterERKNS0_13FormatSectionE to ptr), i64 sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) getelementptr inbounds nuw (i8, ptr addrspace(4) @__PRETTY_FUNCTION__._ZN22__llvm_libc_20_0_0_git11printf_core13convert_fixedEPNS0_6WriterERKNS0_13FormatSectionE, i64 87) to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) @__PRETTY_FUNCTION__._ZN22__llvm_libc_20_0_0_git11printf_core13convert_fixedEPNS0_6WriterERKNS0_13FormatSectionE to ptr) to i64))) #23 call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.3.19 to ptr), i64 sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) getelementptr inbounds nuw (i8, ptr addrspace(4) @.str.3.19, i64 2) to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.3.19 to ptr) to i64))) #23 call fastcc void @_ZN22__llvm_libc_20_0_0_git8internal4exitEi(i32 noundef 255) #24 unreachable 2278: ; preds = %2263 %2279 = icmp slt i32 %580, 0 %2280 = select i1 %2279, i32 6, i32 %580 %2281 = zext nneg i32 %2280 to i64 %2282 = icmp ne i32 %2280, 0 %2283 = and i8 %576, 8 %2284 = icmp ne i8 %2283, 0 %2285 = select i1 %2282, i1 true, i1 %2284 call void @llvm.lifetime.start.p5(i64 32, ptr addrspace(5) %20) #21, !noalias !89 store i8 -86, ptr addrspace(5) %20, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %478, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %479, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %480, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %481, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %482, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %483, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %484, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %485, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %486, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %487, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %488, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %489, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %490, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %491, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %492, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %493, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %494, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %495, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %496, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %497, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %498, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %499, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %500, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %501, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %502, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %503, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %504, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %505, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %506, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %507, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %508, align 1, !noalias !89, !annotation !23 %2286 = icmp eq i64 %2264, 0 br i1 %2286, label %2377, label %2287 2287: ; preds = %2278 %2288 = shl nsw i64 -1, %2266 %2289 = xor i64 %2288, -1 br label %2290 2290: ; preds = %2374, %2287 %2291 = phi i64 [ %2264, %2287 ], [ %2297, %2374 ] %2292 = phi i64 [ 0, %2287 ], [ %2375, %2374 ] %2293 = mul nuw nsw i64 %2291, 1000000000 %2294 = lshr i64 %2293, %2266 %2295 = freeze i64 %2294 %2296 = trunc i64 %2295 to i32 %2297 = and i64 %2293, %2289 call void @llvm.lifetime.start.p5(i64 24, ptr addrspace(5) %21) #21, !noalias !89 store i8 -86, ptr addrspace(5) %21, align 8, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %509, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %510, align 2, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %511, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %512, align 4, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %513, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %514, align 2, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %515, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %516, align 8, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %517, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %518, align 2, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %519, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %520, align 4, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %521, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %522, align 2, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %523, align 1, !noalias !89, !annotation !23 %2298 = add i32 %2296, 1000000000 %2299 = icmp eq i32 %2298, 0 br i1 %2299, label %2320, label %2300 2300: ; preds = %2315, %2290 %2301 = phi i64 [ %2316, %2315 ], [ 0, %2290 ] %2302 = phi i64 [ %2317, %2315 ], [ 0, %2290 ] %2303 = phi i32 [ %2305, %2315 ], [ %2298, %2290 ] %2304 = icmp eq i64 %2302, 11 %2305 = udiv i32 %2303, 10 br i1 %2304, label %2315, label %2306 2306: ; preds = %2300 %2307 = trunc i64 %2302 to i32 %2308 = xor i32 %2307, -1 %2309 = getelementptr i8, ptr addrspace(5) %519, i32 %2308 %2310 = add i64 %2301, 1 %2311 = mul i32 %2305, 246 %2312 = add i32 %2311, %2303 %2313 = trunc i32 %2312 to i8 %2314 = or disjoint i8 %2313, 48 store i8 %2314, ptr addrspace(5) %2309, align 1, !tbaa !19, !noalias !89 br label %2315 2315: ; preds = %2306, %2300 %2316 = phi i64 [ %2310, %2306 ], [ %2301, %2300 ] %2317 = phi i64 [ %2310, %2306 ], [ 11, %2300 ] %2318 = icmp ult i32 %2303, 10 %2319 = select i1 %2304, i1 true, i1 %2318 br i1 %2319, label %2320, label %2300, !llvm.loop !201 2320: ; preds = %2315, %2290 %2321 = phi i64 [ 0, %2290 ], [ %2316, %2315 ] %2322 = phi i1 [ false, %2290 ], [ %2304, %2315 ] %2323 = icmp ne i64 %2321, 0 %2324 = select i1 %2322, i1 true, i1 %2323 br i1 %2324, label %2326, label %2325 2325: ; preds = %2320 store i8 48, ptr addrspace(5) %518, align 2, !tbaa !19, !noalias !89 br label %2326 2326: ; preds = %2325, %2320 %2327 = phi i64 [ %2321, %2320 ], [ 1, %2325 ] store i64 %2327, ptr addrspace(5) %524, align 8, !tbaa !202, !noalias !89 %2328 = icmp ult i64 %2292, 32 br i1 %2328, label %2329, label %2332 2329: ; preds = %2326 %2330 = sub i64 0, %2327 %2331 = getelementptr inbounds i8, ptr %525, i64 %2330 br label %2335 2332: ; preds = %2335, %2326 %2333 = phi i64 [ 32, %2326 ], [ %2343, %2335 ] %2334 = icmp ugt i64 %2333, 31 br i1 %2334, label %2347, label %2374 2335: ; preds = %2335, %2329 %2336 = phi i64 [ %2292, %2329 ], [ %2343, %2335 ] %2337 = phi i64 [ 0, %2329 ], [ %2338, %2335 ] %2338 = add nuw nsw i64 %2337, 1 %2339 = getelementptr inbounds nuw i8, ptr %2331, i64 %2338 %2340 = load i8, ptr %2339, align 1, !tbaa !19, !noalias !89 %2341 = trunc nuw i64 %2336 to i32 %2342 = getelementptr inbounds [32 x i8], ptr addrspace(5) %20, i32 0, i32 %2341 store i8 %2340, ptr addrspace(5) %2342, align 1, !tbaa !19, !noalias !89 %2343 = add nuw nsw i64 %2336, 1 %2344 = icmp samesign ult i64 %2337, 8 %2345 = icmp ult i64 %2336, 31 %2346 = and i1 %2344, %2345 br i1 %2346, label %2335, label %2332, !llvm.loop !205 2347: ; preds = %2332 %2348 = icmp ne i64 %2297, 0 %2349 = or i1 %526, %2348 br i1 %2349, label %2354, label %2350 2350: ; preds = %2347 %2351 = urem i32 %2296, 10000 %2352 = icmp ne i32 %2351, 0 %2353 = or i1 %527, %2352 br i1 %2353, label %2364, label %2374 2354: ; preds = %2354, %2347 %2355 = phi ptr addrspace(4) [ %2358, %2354 ], [ @.str.9.26, %2347 ] %2356 = load i8, ptr addrspace(4) %2355, align 1, !tbaa !19, !noalias !89 %2357 = icmp eq i8 %2356, 0 %2358 = getelementptr inbounds i8, ptr addrspace(4) %2355, i64 1 br i1 %2357, label %2359, label %2354, !llvm.loop !200 2359: ; preds = %2354 %2360 = phi ptr addrspace(4) [ %2355, %2354 ] %2361 = addrspacecast ptr addrspace(4) %2360 to ptr %2362 = ptrtoint ptr %2361 to i64 %2363 = sub i64 %2362, ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.9.26 to ptr) to i64) call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.9.26 to ptr), i64 %2363) #23 call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @__PRETTY_FUNCTION__._ZN22__llvm_libc_20_0_0_git11printf_core13convert_fixedEPNS0_6WriterERKNS0_13FormatSectionE to ptr), i64 sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) getelementptr inbounds nuw (i8, ptr addrspace(4) @__PRETTY_FUNCTION__._ZN22__llvm_libc_20_0_0_git11printf_core13convert_fixedEPNS0_6WriterERKNS0_13FormatSectionE, i64 87) to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) @__PRETTY_FUNCTION__._ZN22__llvm_libc_20_0_0_git11printf_core13convert_fixedEPNS0_6WriterERKNS0_13FormatSectionE to ptr) to i64))) #23 call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.3.19 to ptr), i64 sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) getelementptr inbounds nuw (i8, ptr addrspace(4) @.str.3.19, i64 2) to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.3.19 to ptr) to i64))) #23 call fastcc void @_ZN22__llvm_libc_20_0_0_git8internal4exitEi(i32 noundef 255) #24 unreachable 2364: ; preds = %2364, %2350 %2365 = phi ptr addrspace(4) [ %2368, %2364 ], [ @.str.11.27, %2350 ] %2366 = load i8, ptr addrspace(4) %2365, align 1, !tbaa !19, !noalias !89 %2367 = icmp eq i8 %2366, 0 %2368 = getelementptr inbounds i8, ptr addrspace(4) %2365, i64 1 br i1 %2367, label %2369, label %2364, !llvm.loop !200 2369: ; preds = %2364 %2370 = phi ptr addrspace(4) [ %2365, %2364 ] %2371 = addrspacecast ptr addrspace(4) %2370 to ptr %2372 = ptrtoint ptr %2371 to i64 %2373 = sub i64 %2372, ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.11.27 to ptr) to i64) call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.11.27 to ptr), i64 %2373) #23 call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @__PRETTY_FUNCTION__._ZN22__llvm_libc_20_0_0_git11printf_core13convert_fixedEPNS0_6WriterERKNS0_13FormatSectionE to ptr), i64 sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) getelementptr inbounds nuw (i8, ptr addrspace(4) @__PRETTY_FUNCTION__._ZN22__llvm_libc_20_0_0_git11printf_core13convert_fixedEPNS0_6WriterERKNS0_13FormatSectionE, i64 87) to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) @__PRETTY_FUNCTION__._ZN22__llvm_libc_20_0_0_git11printf_core13convert_fixedEPNS0_6WriterERKNS0_13FormatSectionE to ptr) to i64))) #23 call fastcc void @_ZN22__llvm_libc_20_0_0_git15write_to_stderrENS_3cpp11string_viewE(ptr addrspacecast (ptr addrspace(4) @.str.3.19 to ptr), i64 sub (i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) getelementptr inbounds nuw (i8, ptr addrspace(4) @.str.3.19, i64 2) to ptr) to i64), i64 ptrtoint (ptr addrspacecast (ptr addrspace(4) @.str.3.19 to ptr) to i64))) #23 call fastcc void @_ZN22__llvm_libc_20_0_0_git8internal4exitEi(i32 noundef 255) #24 unreachable 2374: ; preds = %2350, %2332 %2375 = phi i64 [ %2333, %2332 ], [ 32, %2350 ] call void @llvm.lifetime.end.p5(i64 24, ptr addrspace(5) %21) #21, !noalias !89 %2376 = icmp eq i64 %2297, 0 br i1 %2376, label %2377, label %2290, !llvm.loop !206 2377: ; preds = %2374, %2278 %2378 = phi i64 [ 0, %2278 ], [ %2375, %2374 ] %2379 = icmp ugt i64 %2378, %2281 br i1 %2379, label %2380, label %2429 2380: ; preds = %2377 %2381 = getelementptr inbounds [32 x i8], ptr addrspace(5) %20, i32 0, i32 %2280 %2382 = load i8, ptr addrspace(5) %2381, align 1, !tbaa !19, !noalias !89 %2383 = icmp sgt i8 %2382, 53 br i1 %2383, label %2397, label %2384 2384: ; preds = %2380 %2385 = icmp eq i8 %2382, 53 br i1 %2385, label %2386, label %2397 2386: ; preds = %2384 %2387 = add nuw nsw i64 %2281, 1 br label %2388 2388: ; preds = %2392, %2386 %2389 = phi i64 [ %2387, %2386 ], [ %2390, %2392 ] %2390 = add nuw nsw i64 %2389, 1 %2391 = icmp ult i64 %2390, %2378 br i1 %2391, label %2392, label %2397 2392: ; preds = %2388 %2393 = trunc nuw nsw i64 %2389 to i32 %2394 = getelementptr inbounds [32 x i8], ptr addrspace(5) %20, i32 0, i32 %2393 %2395 = load i8, ptr addrspace(5) %2394, align 1, !tbaa !19, !noalias !89 %2396 = icmp eq i8 %2395, 48 br i1 %2396, label %2388, label %2397, !llvm.loop !207 2397: ; preds = %2392, %2388, %2384, %2380 %2398 = phi i1 [ true, %2380 ], [ false, %2384 ], [ true, %2392 ], [ false, %2388 ] %2399 = phi i1 [ true, %2380 ], [ true, %2384 ], [ true, %2392 ], [ false, %2388 ] %2400 = phi i32 [ 0, %2380 ], [ 1, %2384 ], [ 0, %2392 ], [ 2, %2388 ] switch i32 %2400, label %2429 [ i32 2, label %2401 i32 0, label %2401 ] 2401: ; preds = %2397, %2397 br label %2402 2402: ; preds = %2418, %2401 %2403 = phi i32 [ %2405, %2418 ], [ %2280, %2401 ] %2404 = phi i1 [ %2419, %2418 ], [ true, %2401 ] %2405 = add nsw i32 %2403, -1 %2406 = icmp sgt i32 %2403, 0 %2407 = and i1 %2406, %2404 br i1 %2407, label %2408, label %2420 2408: ; preds = %2402 %2409 = getelementptr inbounds [32 x i8], ptr addrspace(5) %20, i32 0, i32 %2405 %2410 = load i8, ptr addrspace(5) %2409, align 1, !tbaa !19, !noalias !89 %2411 = and i8 %2410, 1 %2412 = icmp ne i8 %2411, 0 %2413 = select i1 %2399, i1 true, i1 %2412 br i1 %2413, label %2414, label %2418 2414: ; preds = %2408 %2415 = icmp eq i8 %2410, 57 %2416 = add i8 %2410, 1 %2417 = select i1 %2415, i8 48, i8 %2416 store i8 %2417, ptr addrspace(5) %2409, align 1, !tbaa !19, !noalias !89 br label %2418 2418: ; preds = %2414, %2408 %2419 = phi i1 [ %2415, %2414 ], [ false, %2408 ] br i1 %2413, label %2402, label %2420, !llvm.loop !208 2420: ; preds = %2418, %2402 %2421 = phi i1 [ %2419, %2418 ], [ %2404, %2402 ] br i1 %2421, label %2422, label %2429 2422: ; preds = %2420 br i1 %2398, label %2427, label %2423 2423: ; preds = %2422 %2424 = and i64 %2265, 1 %2425 = icmp eq i64 %2424, 0 %2426 = or i1 %2425, %2399 br i1 %2426, label %2429, label %2427 2427: ; preds = %2423, %2422 %2428 = add nuw nsw i64 %2265, 1 br label %2429 2429: ; preds = %2427, %2423, %2420, %2397, %2377 %2430 = phi i64 [ %2378, %2377 ], [ %2281, %2420 ], [ %2281, %2423 ], [ %2281, %2427 ], [ %2281, %2397 ] %2431 = phi i64 [ %2265, %2377 ], [ %2265, %2420 ], [ %2265, %2423 ], [ %2428, %2427 ], [ %2265, %2397 ] %2432 = freeze i64 %2431 call void @llvm.lifetime.start.p5(i64 32, ptr addrspace(5) %22) #21, !noalias !89 store i8 -86, ptr addrspace(5) %22, align 8, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %528, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %529, align 2, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %530, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %531, align 4, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %532, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %533, align 2, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %534, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %535, align 8, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %536, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %537, align 2, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %538, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %539, align 4, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %540, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %541, align 2, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %542, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %543, align 8, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %544, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %545, align 2, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %546, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %547, align 4, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %548, align 1, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %549, align 2, !noalias !89, !annotation !23 store i8 -86, ptr addrspace(5) %550, align 1, !noalias !89, !annotation !23 %2433 = icmp eq i64 %2432, 0 br i1 %2433, label %2454, label %2434 2434: ; preds = %2449, %2429 %2435 = phi i64 [ %2450, %2449 ], [ 0, %2429 ] %2436 = phi i64 [ %2451, %2449 ], [ 0, %2429 ] %2437 = phi i64 [ %2439, %2449 ], [ %2432, %2429 ] %2438 = icmp eq i64 %2436, 21 %2439 = udiv i64 %2437, 10 br i1 %2438, label %2449, label %2440 2440: ; preds = %2434 %2441 = trunc i64 %2436 to i32 %2442 = xor i32 %2441, -1 %2443 = getelementptr i8, ptr addrspace(5) %548, i32 %2442 %2444 = add i64 %2435, 1 %2445 = mul i64 %2439, 246 %2446 = add i64 %2445, %2437 %2447 = trunc i64 %2446 to i8 %2448 = or disjoint i8 %2447, 48 store i8 %2448, ptr addrspace(5) %2443, align 1, !tbaa !19, !noalias !89 br label %2449 2449: ; preds = %2440, %2434 %2450 = phi i64 [ %2444, %2440 ], [ %2435, %2434 ] %2451 = phi i64 [ %2444, %2440 ], [ 21, %2434 ] %2452 = icmp ult i64 %2437, 10 %2453 = select i1 %2438, i1 true, i1 %2452 br i1 %2453, label %2454, label %2434, !llvm.loop !135 2454: ; preds = %2449, %2429 %2455 = phi i64 [ 0, %2429 ], [ %2450, %2449 ] %2456 = phi i1 [ false, %2429 ], [ %2438, %2449 ] %2457 = icmp ne i64 %2455, 0 %2458 = select i1 %2456, i1 true, i1 %2457 br i1 %2458, label %2460, label %2459 2459: ; preds = %2454 store i8 48, ptr addrspace(5) %547, align 4, !tbaa !19, !noalias !89 br label %2460 2460: ; preds = %2459, %2454 %2461 = phi i64 [ %2455, %2454 ], [ 1, %2459 ] store i64 %2461, ptr addrspace(5) %551, align 8, !tbaa !209, !noalias !89 %2462 = call i64 @llvm.usub.sat.i64(i64 %2281, i64 %2430) %2463 = icmp eq i8 %2183, 0 %2464 = and i8 %576, -7 %2465 = select i1 %2463, i8 %2464, i8 %576 %2466 = zext nneg i8 %2465 to i32 br i1 %2267, label %2475, label %2467 2467: ; preds = %2460 %2468 = and i32 %2466, 2 %2469 = icmp eq i32 %2468, 0 %2470 = shl nuw i8 %2465, 3 %2471 = and i8 %2470, 32 %2472 = and i32 %2466, 6 %2473 = icmp eq i32 %2472, 0 %2474 = select i1 %2469, i8 %2471, i8 43 br label %2475 2475: ; preds = %2467, %2460 %2476 = phi i1 [ %2473, %2467 ], [ false, %2460 ] %2477 = phi i8 [ %2474, %2467 ], [ 45, %2460 ] %2478 = xor i1 %2476, true %2479 = sext i1 %2478 to i32 %2480 = add i32 %579, %2479 %2481 = sext i1 %2285 to i64 %2482 = add nuw nsw i64 %2430, %2462 %2483 = add i64 %2482, %2461 %2484 = sub i64 %2481, %2483 %2485 = trunc i64 %2484 to i32 %2486 = add i32 %2480, %2485 %2487 = call i32 @llvm.smax.i32(i32 %2486, i32 0) %2488 = and i32 %2466, 1 %2489 = icmp eq i32 %2488, 0 br i1 %2489, label %3011, label %2490 2490: ; preds = %2475 %2491 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2492 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 br i1 %2476, label %2550, label %2493 2493: ; preds = %2490 call void @llvm.lifetime.start.p5(i64 1, ptr addrspace(5) %19), !noalias !89 store i8 %2477, ptr addrspace(5) %19, align 1, !tbaa !19, !noalias !89 %2494 = add nsw i32 %2492, 1 store i32 %2494, ptr %456, align 8, !tbaa !75, !noalias !89 %2495 = getelementptr inbounds nuw i8, ptr %2491, i64 24 %2496 = load i64, ptr %2495, align 8, !tbaa !70 %2497 = add i64 %2496, 1 %2498 = getelementptr inbounds nuw i8, ptr %2491, i64 16 %2499 = load i64, ptr %2498, align 8, !tbaa !69 %2500 = icmp ugt i64 %2497, %2499 br i1 %2500, label %2508, label %2501 2501: ; preds = %2493 %2502 = load ptr, ptr %2491, align 8, !tbaa !65 %2503 = getelementptr inbounds nuw i8, ptr %2502, i64 %2496 store i8 %2477, ptr %2503, align 1, !tbaa !19 %2504 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2505 = getelementptr inbounds nuw i8, ptr %2504, i64 24 %2506 = load i64, ptr %2505, align 8, !tbaa !70 %2507 = add i64 %2506, 1 store i64 %2507, ptr %2505, align 8, !tbaa !70 br label %2543 2508: ; preds = %2493 %2509 = getelementptr inbounds nuw i8, ptr %2491, i64 48 %2510 = load i32, ptr %2509, align 8, !tbaa !96 switch i32 %2510, label %2542 [ i32 0, label %2511 i32 1, label %2518 i32 2, label %2536 ] 2511: ; preds = %2508 %2512 = icmp ult i64 %2496, %2499 br i1 %2512, label %2513, label %2543 2513: ; preds = %2511 %2514 = load ptr, ptr %2491, align 8, !tbaa !65 %2515 = getelementptr inbounds nuw i8, ptr %2514, i64 %2496 store i8 %2477, ptr %2515, align 1, !alias.scope !212 %2516 = load i64, ptr %2495, align 8, !tbaa !70 %2517 = add i64 %2516, 1 store i64 %2517, ptr %2495, align 8, !tbaa !70 br label %2543 2518: ; preds = %2508 %2519 = icmp eq i64 %2496, 0 br i1 %2519, label %2528, label %2520 2520: ; preds = %2518 %2521 = getelementptr inbounds nuw i8, ptr %2491, i64 32 %2522 = load ptr, ptr %2521, align 8, !tbaa !71 %2523 = load ptr, ptr %2491, align 8, !tbaa !65 %2524 = getelementptr inbounds nuw i8, ptr %2491, i64 40 %2525 = load ptr, ptr %2524, align 8, !tbaa !72 %2526 = call noundef i32 %2522(ptr %2523, i64 %2496, ptr noundef %2525) #23 %2527 = icmp sgt i32 %2526, -1 br i1 %2527, label %2528, label %2543 2528: ; preds = %2520, %2518 %2529 = getelementptr inbounds nuw i8, ptr %2491, i64 32 %2530 = load ptr, ptr %2529, align 8, !tbaa !71 %2531 = getelementptr inbounds nuw i8, ptr %2491, i64 40 %2532 = load ptr, ptr %2531, align 8, !tbaa !72 %2533 = call noundef i32 %2530(ptr %552, i64 1, ptr noundef %2532) #23 %2534 = icmp sgt i32 %2533, -1 br i1 %2534, label %2535, label %2543 2535: ; preds = %2528 store i64 0, ptr %2495, align 8, !tbaa !70 br label %2543 2536: ; preds = %2508 %2537 = getelementptr inbounds nuw i8, ptr %2491, i64 32 %2538 = load ptr, ptr %2537, align 8, !tbaa !71 %2539 = getelementptr inbounds nuw i8, ptr %2491, i64 40 %2540 = load ptr, ptr %2539, align 8, !tbaa !72 %2541 = call noundef i32 %2538(ptr %552, i64 1, ptr noundef %2540) #23 br label %2543 2542: ; preds = %2508 unreachable 2543: ; preds = %2536, %2535, %2528, %2520, %2513, %2511, %2501 %2544 = phi i32 [ 0, %2501 ], [ %2541, %2536 ], [ 0, %2511 ], [ 0, %2513 ], [ %2526, %2520 ], [ %2533, %2528 ], [ 0, %2535 ] call void @llvm.lifetime.end.p5(i64 1, ptr addrspace(5) %19), !noalias !89 %2545 = icmp sgt i32 %2544, -1 br i1 %2545, label %2546, label %3683 2546: ; preds = %2543 %2547 = load i64, ptr addrspace(5) %551, align 8, !tbaa !209, !noalias !89 %2548 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2549 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 br label %2550 2550: ; preds = %2546, %2490 %2551 = phi i32 [ %2549, %2546 ], [ %2492, %2490 ] %2552 = phi ptr [ %2548, %2546 ], [ %2491, %2490 ] %2553 = phi i64 [ %2547, %2546 ], [ %2461, %2490 ] %2554 = sub i64 0, %2553 %2555 = getelementptr inbounds i8, ptr %553, i64 %2554 %2556 = trunc i64 %2553 to i32 %2557 = add nsw i32 %2551, %2556 store i32 %2557, ptr %456, align 8, !tbaa !75, !noalias !89 %2558 = getelementptr inbounds nuw i8, ptr %2552, i64 24 %2559 = load i64, ptr %2558, align 8, !tbaa !70 %2560 = add i64 %2559, %2553 %2561 = getelementptr inbounds nuw i8, ptr %2552, i64 16 %2562 = load i64, ptr %2561, align 8, !tbaa !69 %2563 = icmp ugt i64 %2560, %2562 br i1 %2563, label %2571, label %2564 2564: ; preds = %2550 %2565 = load ptr, ptr %2552, align 8, !tbaa !65 %2566 = getelementptr inbounds nuw i8, ptr %2565, i64 %2559 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %2566, ptr align 1 %2555, i64 %2553, i1 false), !alias.scope !216 %2567 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2568 = getelementptr inbounds nuw i8, ptr %2567, i64 24 %2569 = load i64, ptr %2568, align 8, !tbaa !70 %2570 = add i64 %2569, %2553 store i64 %2570, ptr %2568, align 8, !tbaa !70 br label %2610 2571: ; preds = %2550 %2572 = getelementptr inbounds nuw i8, ptr %2552, i64 48 %2573 = load i32, ptr %2572, align 8, !tbaa !96 switch i32 %2573, label %2609 [ i32 0, label %2574 i32 1, label %2583 i32 2, label %2603 ] 2574: ; preds = %2571 %2575 = icmp ult i64 %2559, %2562 br i1 %2575, label %2576, label %2610 2576: ; preds = %2574 %2577 = sub nuw i64 %2562, %2559 %2578 = call i64 @llvm.umin.i64(i64 %2577, i64 %2553) %2579 = load ptr, ptr %2552, align 8, !tbaa !65 %2580 = getelementptr inbounds nuw i8, ptr %2579, i64 %2559 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %2580, ptr align 1 %2555, i64 %2578, i1 false), !alias.scope !220 %2581 = load i64, ptr %2558, align 8, !tbaa !70 %2582 = add i64 %2581, %2578 store i64 %2582, ptr %2558, align 8, !tbaa !70 br label %2610 2583: ; preds = %2571 %2584 = icmp eq i64 %2559, 0 br i1 %2584, label %2593, label %2585 2585: ; preds = %2583 %2586 = getelementptr inbounds nuw i8, ptr %2552, i64 32 %2587 = load ptr, ptr %2586, align 8, !tbaa !71 %2588 = load ptr, ptr %2552, align 8, !tbaa !65 %2589 = getelementptr inbounds nuw i8, ptr %2552, i64 40 %2590 = load ptr, ptr %2589, align 8, !tbaa !72 %2591 = call noundef i32 %2587(ptr %2588, i64 %2559, ptr noundef %2590) #23 %2592 = icmp sgt i32 %2591, -1 br i1 %2592, label %2593, label %2610 2593: ; preds = %2585, %2583 %2594 = icmp eq i64 %2553, 0 br i1 %2594, label %2602, label %2595 2595: ; preds = %2593 %2596 = getelementptr inbounds nuw i8, ptr %2552, i64 32 %2597 = load ptr, ptr %2596, align 8, !tbaa !71 %2598 = getelementptr inbounds nuw i8, ptr %2552, i64 40 %2599 = load ptr, ptr %2598, align 8, !tbaa !72 %2600 = call noundef i32 %2597(ptr nonnull %2555, i64 %2553, ptr noundef %2599) #23 %2601 = icmp sgt i32 %2600, -1 br i1 %2601, label %2602, label %2610 2602: ; preds = %2595, %2593 store i64 0, ptr %2558, align 8, !tbaa !70 br label %2610 2603: ; preds = %2571 %2604 = getelementptr inbounds nuw i8, ptr %2552, i64 32 %2605 = load ptr, ptr %2604, align 8, !tbaa !71 %2606 = getelementptr inbounds nuw i8, ptr %2552, i64 40 %2607 = load ptr, ptr %2606, align 8, !tbaa !72 %2608 = call noundef i32 %2605(ptr %2555, i64 %2553, ptr noundef %2607) #23 br label %2610 2609: ; preds = %2571 unreachable 2610: ; preds = %2603, %2602, %2595, %2585, %2576, %2574, %2564 %2611 = phi i32 [ 0, %2564 ], [ %2608, %2603 ], [ 0, %2574 ], [ 0, %2576 ], [ %2591, %2585 ], [ %2600, %2595 ], [ 0, %2602 ] %2612 = icmp sgt i32 %2611, -1 br i1 %2612, label %2613, label %3683 2613: ; preds = %2610 br i1 %2285, label %2614, label %2669 2614: ; preds = %2613 %2615 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %2616 = add nsw i32 %2615, 1 store i32 %2616, ptr %456, align 8, !tbaa !75, !noalias !89 %2617 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2618 = getelementptr inbounds nuw i8, ptr %2617, i64 24 %2619 = load i64, ptr %2618, align 8, !tbaa !70 %2620 = add i64 %2619, 1 %2621 = getelementptr inbounds nuw i8, ptr %2617, i64 16 %2622 = load i64, ptr %2621, align 8, !tbaa !69 %2623 = icmp ugt i64 %2620, %2622 br i1 %2623, label %2631, label %2624 2624: ; preds = %2614 %2625 = load ptr, ptr %2617, align 8, !tbaa !65 %2626 = getelementptr inbounds nuw i8, ptr %2625, i64 %2619 store i8 46, ptr %2626, align 1, !alias.scope !224 %2627 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2628 = getelementptr inbounds nuw i8, ptr %2627, i64 24 %2629 = load i64, ptr %2628, align 8, !tbaa !70 %2630 = add i64 %2629, 1 store i64 %2630, ptr %2628, align 8, !tbaa !70 br label %2666 2631: ; preds = %2614 %2632 = getelementptr inbounds nuw i8, ptr %2617, i64 48 %2633 = load i32, ptr %2632, align 8, !tbaa !96 switch i32 %2633, label %2665 [ i32 0, label %2634 i32 1, label %2641 i32 2, label %2659 ] 2634: ; preds = %2631 %2635 = icmp ult i64 %2619, %2622 br i1 %2635, label %2636, label %2666 2636: ; preds = %2634 %2637 = load ptr, ptr %2617, align 8, !tbaa !65 %2638 = getelementptr inbounds nuw i8, ptr %2637, i64 %2619 store i8 46, ptr %2638, align 1, !alias.scope !228 %2639 = load i64, ptr %2618, align 8, !tbaa !70 %2640 = add i64 %2639, 1 store i64 %2640, ptr %2618, align 8, !tbaa !70 br label %2666 2641: ; preds = %2631 %2642 = icmp eq i64 %2619, 0 br i1 %2642, label %2651, label %2643 2643: ; preds = %2641 %2644 = getelementptr inbounds nuw i8, ptr %2617, i64 32 %2645 = load ptr, ptr %2644, align 8, !tbaa !71 %2646 = load ptr, ptr %2617, align 8, !tbaa !65 %2647 = getelementptr inbounds nuw i8, ptr %2617, i64 40 %2648 = load ptr, ptr %2647, align 8, !tbaa !72 %2649 = call noundef i32 %2645(ptr %2646, i64 %2619, ptr noundef %2648) #23 %2650 = icmp sgt i32 %2649, -1 br i1 %2650, label %2651, label %2666 2651: ; preds = %2643, %2641 %2652 = getelementptr inbounds nuw i8, ptr %2617, i64 32 %2653 = load ptr, ptr %2652, align 8, !tbaa !71 %2654 = getelementptr inbounds nuw i8, ptr %2617, i64 40 %2655 = load ptr, ptr %2654, align 8, !tbaa !72 %2656 = call noundef i32 %2653(ptr addrspacecast (ptr addrspace(4) @.str.12.28 to ptr), i64 1, ptr noundef %2655) #23 %2657 = icmp sgt i32 %2656, -1 br i1 %2657, label %2658, label %2666 2658: ; preds = %2651 store i64 0, ptr %2618, align 8, !tbaa !70 br label %2666 2659: ; preds = %2631 %2660 = getelementptr inbounds nuw i8, ptr %2617, i64 32 %2661 = load ptr, ptr %2660, align 8, !tbaa !71 %2662 = getelementptr inbounds nuw i8, ptr %2617, i64 40 %2663 = load ptr, ptr %2662, align 8, !tbaa !72 %2664 = call noundef i32 %2661(ptr addrspacecast (ptr addrspace(4) @.str.12.28 to ptr), i64 1, ptr noundef %2663) #23 br label %2666 2665: ; preds = %2631 unreachable 2666: ; preds = %2659, %2658, %2651, %2643, %2636, %2634, %2624 %2667 = phi i32 [ 0, %2624 ], [ %2664, %2659 ], [ 0, %2634 ], [ 0, %2636 ], [ %2649, %2643 ], [ %2656, %2651 ], [ 0, %2658 ] %2668 = icmp sgt i32 %2667, -1 br i1 %2668, label %2669, label %3683 2669: ; preds = %2666, %2613 %2670 = icmp eq i64 %2430, 0 br i1 %2670, label %2729, label %2671 2671: ; preds = %2669 %2672 = trunc nuw nsw i64 %2430 to i32 %2673 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %2674 = add nsw i32 %2673, %2672 store i32 %2674, ptr %456, align 8, !tbaa !75, !noalias !89 %2675 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2676 = getelementptr inbounds nuw i8, ptr %2675, i64 24 %2677 = load i64, ptr %2676, align 8, !tbaa !70 %2678 = add i64 %2677, %2430 %2679 = getelementptr inbounds nuw i8, ptr %2675, i64 16 %2680 = load i64, ptr %2679, align 8, !tbaa !69 %2681 = icmp ugt i64 %2678, %2680 br i1 %2681, label %2689, label %2682 2682: ; preds = %2671 %2683 = load ptr, ptr %2675, align 8, !tbaa !65 %2684 = getelementptr inbounds nuw i8, ptr %2683, i64 %2677 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %2684, ptr align 1 %476, i64 %2430, i1 false), !alias.scope !232 %2685 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2686 = getelementptr inbounds nuw i8, ptr %2685, i64 24 %2687 = load i64, ptr %2686, align 8, !tbaa !70 %2688 = add i64 %2687, %2430 store i64 %2688, ptr %2686, align 8, !tbaa !70 br label %2726 2689: ; preds = %2671 %2690 = getelementptr inbounds nuw i8, ptr %2675, i64 48 %2691 = load i32, ptr %2690, align 8, !tbaa !96 switch i32 %2691, label %2725 [ i32 0, label %2692 i32 1, label %2701 i32 2, label %2719 ] 2692: ; preds = %2689 %2693 = icmp ult i64 %2677, %2680 br i1 %2693, label %2694, label %2726 2694: ; preds = %2692 %2695 = sub nuw i64 %2680, %2677 %2696 = call i64 @llvm.umin.i64(i64 %2695, i64 %2430) %2697 = load ptr, ptr %2675, align 8, !tbaa !65 %2698 = getelementptr inbounds nuw i8, ptr %2697, i64 %2677 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %2698, ptr align 1 %476, i64 %2696, i1 false), !alias.scope !236 %2699 = load i64, ptr %2676, align 8, !tbaa !70 %2700 = add i64 %2699, %2696 store i64 %2700, ptr %2676, align 8, !tbaa !70 br label %2726 2701: ; preds = %2689 %2702 = icmp eq i64 %2677, 0 br i1 %2702, label %2711, label %2703 2703: ; preds = %2701 %2704 = getelementptr inbounds nuw i8, ptr %2675, i64 32 %2705 = load ptr, ptr %2704, align 8, !tbaa !71 %2706 = load ptr, ptr %2675, align 8, !tbaa !65 %2707 = getelementptr inbounds nuw i8, ptr %2675, i64 40 %2708 = load ptr, ptr %2707, align 8, !tbaa !72 %2709 = call noundef i32 %2705(ptr %2706, i64 %2677, ptr noundef %2708) #23 %2710 = icmp sgt i32 %2709, -1 br i1 %2710, label %2711, label %2726 2711: ; preds = %2703, %2701 %2712 = getelementptr inbounds nuw i8, ptr %2675, i64 32 %2713 = load ptr, ptr %2712, align 8, !tbaa !71 %2714 = getelementptr inbounds nuw i8, ptr %2675, i64 40 %2715 = load ptr, ptr %2714, align 8, !tbaa !72 %2716 = call noundef i32 %2713(ptr %476, i64 %2430, ptr noundef %2715) #23 %2717 = icmp sgt i32 %2716, -1 br i1 %2717, label %2718, label %2726 2718: ; preds = %2711 store i64 0, ptr %2676, align 8, !tbaa !70 br label %2726 2719: ; preds = %2689 %2720 = getelementptr inbounds nuw i8, ptr %2675, i64 32 %2721 = load ptr, ptr %2720, align 8, !tbaa !71 %2722 = getelementptr inbounds nuw i8, ptr %2675, i64 40 %2723 = load ptr, ptr %2722, align 8, !tbaa !72 %2724 = call noundef i32 %2721(ptr %476, i64 %2430, ptr noundef %2723) #23 br label %2726 2725: ; preds = %2689 unreachable 2726: ; preds = %2719, %2718, %2711, %2703, %2694, %2692, %2682 %2727 = phi i32 [ 0, %2682 ], [ %2724, %2719 ], [ 0, %2692 ], [ 0, %2694 ], [ %2709, %2703 ], [ %2716, %2711 ], [ 0, %2718 ] %2728 = icmp sgt i32 %2727, -1 br i1 %2728, label %2729, label %3683 2729: ; preds = %2726, %2669 %2730 = icmp ult i64 %2430, %2281 br i1 %2730, label %2731, label %2870 2731: ; preds = %2729 %2732 = trunc nuw nsw i64 %2462 to i32 %2733 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %2734 = add nsw i32 %2733, %2732 store i32 %2734, ptr %456, align 8, !tbaa !75, !noalias !89 %2735 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2736 = getelementptr inbounds nuw i8, ptr %2735, i64 24 %2737 = load i64, ptr %2736, align 8, !tbaa !70 %2738 = add i64 %2737, %2462 %2739 = getelementptr inbounds nuw i8, ptr %2735, i64 16 %2740 = load i64, ptr %2739, align 8, !tbaa !69 %2741 = icmp ugt i64 %2738, %2740 br i1 %2741, label %2749, label %2742 2742: ; preds = %2731 %2743 = load ptr, ptr %2735, align 8, !tbaa !65 %2744 = getelementptr inbounds nuw i8, ptr %2743, i64 %2737 call void @llvm.memset.p0.i64(ptr align 1 %2744, i8 48, i64 %2462, i1 false) %2745 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2746 = getelementptr inbounds nuw i8, ptr %2745, i64 24 %2747 = load i64, ptr %2746, align 8, !tbaa !70 %2748 = add i64 %2747, %2462 store i64 %2748, ptr %2746, align 8, !tbaa !70 br label %2867 2749: ; preds = %2731 %2750 = load <2 x i64>, ptr %2739, align 8, !tbaa !15 %2751 = extractelement <2 x i64> %2750, i64 0 %2752 = extractelement <2 x i64> %2750, i64 1 %2753 = sub i64 %2751, %2752 %2754 = icmp eq i64 %2753, 0 br i1 %2754, label %2762, label %2755 2755: ; preds = %2749 %2756 = load ptr, ptr %2735, align 8, !tbaa !65 %2757 = getelementptr inbounds nuw i8, ptr %2756, i64 %2752 call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %2757, i8 48, i64 range(i64 1, 0) %2753, i1 false) %2758 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2759 = getelementptr inbounds nuw i8, ptr %2758, i64 24 %2760 = load i64, ptr %2759, align 8, !tbaa !70 %2761 = add i64 %2760, %2753 store i64 %2761, ptr %2759, align 8, !tbaa !70 br label %2762 2762: ; preds = %2755, %2749 call void @llvm.lifetime.start.p5(i64 64, ptr addrspace(5) %17) #21, !noalias !89 call void @llvm.memset.p5.i64(ptr addrspace(5) noundef align 1 dereferenceable(64) %17, i8 48, i64 64, i1 false), !noalias !89 br label %2763 2763: ; preds = %2812, %2762 %2764 = phi i64 [ %2753, %2762 ], [ %2765, %2812 ] %2765 = add i64 %2764, 64 %2766 = icmp ult i64 %2765, %2462 br i1 %2766, label %2767, label %2815 2767: ; preds = %2763 %2768 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2769 = getelementptr inbounds nuw i8, ptr %2768, i64 48 %2770 = load i32, ptr %2769, align 8, !tbaa !96 switch i32 %2770, label %2811 [ i32 0, label %2771 i32 1, label %2785 i32 2, label %2805 ] 2771: ; preds = %2767 %2772 = getelementptr inbounds nuw i8, ptr %2768, i64 16 %2773 = load <2 x i64>, ptr %2772, align 8, !tbaa !15 %2774 = extractelement <2 x i64> %2773, i64 0 %2775 = extractelement <2 x i64> %2773, i64 1 %2776 = icmp ult i64 %2775, %2774 br i1 %2776, label %2777, label %2812 2777: ; preds = %2771 %2778 = getelementptr inbounds nuw i8, ptr %2768, i64 24 %2779 = sub nuw i64 %2774, %2775 %2780 = call i64 @llvm.umin.i64(i64 %2779, i64 64) %2781 = load ptr, ptr %2768, align 8, !tbaa !65 %2782 = getelementptr inbounds nuw i8, ptr %2781, i64 %2775 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %2782, ptr align 1 %554, i64 %2780, i1 false), !alias.scope !240 %2783 = load i64, ptr %2778, align 8, !tbaa !70 %2784 = add i64 %2783, %2780 store i64 %2784, ptr %2778, align 8, !tbaa !70 br label %2812 2785: ; preds = %2767 %2786 = getelementptr inbounds nuw i8, ptr %2768, i64 24 %2787 = load i64, ptr %2786, align 8, !tbaa !70 %2788 = icmp eq i64 %2787, 0 br i1 %2788, label %2797, label %2789 2789: ; preds = %2785 %2790 = getelementptr inbounds nuw i8, ptr %2768, i64 32 %2791 = load ptr, ptr %2790, align 8, !tbaa !71 %2792 = load ptr, ptr %2768, align 8, !tbaa !65 %2793 = getelementptr inbounds nuw i8, ptr %2768, i64 40 %2794 = load ptr, ptr %2793, align 8, !tbaa !72 %2795 = call noundef i32 %2791(ptr %2792, i64 %2787, ptr noundef %2794) #23 %2796 = icmp sgt i32 %2795, -1 br i1 %2796, label %2797, label %2812 2797: ; preds = %2789, %2785 %2798 = getelementptr inbounds nuw i8, ptr %2768, i64 32 %2799 = load ptr, ptr %2798, align 8, !tbaa !71 %2800 = getelementptr inbounds nuw i8, ptr %2768, i64 40 %2801 = load ptr, ptr %2800, align 8, !tbaa !72 %2802 = call noundef i32 %2799(ptr %554, i64 64, ptr noundef %2801) #23 %2803 = icmp sgt i32 %2802, -1 br i1 %2803, label %2804, label %2812 2804: ; preds = %2797 store i64 0, ptr %2786, align 8, !tbaa !70 br label %2812 2805: ; preds = %2767 %2806 = getelementptr inbounds nuw i8, ptr %2768, i64 32 %2807 = load ptr, ptr %2806, align 8, !tbaa !71 %2808 = getelementptr inbounds nuw i8, ptr %2768, i64 40 %2809 = load ptr, ptr %2808, align 8, !tbaa !72 %2810 = call noundef i32 %2807(ptr %554, i64 64, ptr noundef %2809) #23 br label %2812 2811: ; preds = %2767 unreachable 2812: ; preds = %2805, %2804, %2797, %2789, %2777, %2771 %2813 = phi i32 [ %2810, %2805 ], [ 0, %2771 ], [ 0, %2777 ], [ %2795, %2789 ], [ %2802, %2797 ], [ 0, %2804 ] %2814 = icmp eq i32 %2813, 0 br i1 %2814, label %2763, label %2865, !llvm.loop !105 2815: ; preds = %2763 %2816 = phi i64 [ %2764, %2763 ] %2817 = sub i64 %2462, %2816 %2818 = call noundef i64 @llvm.umin.i64(i64 %2817, i64 64) %2819 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2820 = getelementptr inbounds nuw i8, ptr %2819, i64 48 %2821 = load i32, ptr %2820, align 8, !tbaa !96 switch i32 %2821, label %2864 [ i32 0, label %2822 i32 1, label %2836 i32 2, label %2858 ] 2822: ; preds = %2815 %2823 = getelementptr inbounds nuw i8, ptr %2819, i64 16 %2824 = load <2 x i64>, ptr %2823, align 8, !tbaa !15 %2825 = extractelement <2 x i64> %2824, i64 0 %2826 = extractelement <2 x i64> %2824, i64 1 %2827 = icmp ult i64 %2826, %2825 br i1 %2827, label %2828, label %2865 2828: ; preds = %2822 %2829 = getelementptr inbounds nuw i8, ptr %2819, i64 24 %2830 = sub nuw i64 %2825, %2826 %2831 = call i64 @llvm.umin.i64(i64 %2830, i64 %2818) %2832 = load ptr, ptr %2819, align 8, !tbaa !65 %2833 = getelementptr inbounds nuw i8, ptr %2832, i64 %2826 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %2833, ptr align 1 %554, i64 %2831, i1 false), !alias.scope !244 %2834 = load i64, ptr %2829, align 8, !tbaa !70 %2835 = add i64 %2834, %2831 store i64 %2835, ptr %2829, align 8, !tbaa !70 br label %2865 2836: ; preds = %2815 %2837 = getelementptr inbounds nuw i8, ptr %2819, i64 24 %2838 = load i64, ptr %2837, align 8, !tbaa !70 %2839 = icmp eq i64 %2838, 0 br i1 %2839, label %2848, label %2840 2840: ; preds = %2836 %2841 = getelementptr inbounds nuw i8, ptr %2819, i64 32 %2842 = load ptr, ptr %2841, align 8, !tbaa !71 %2843 = load ptr, ptr %2819, align 8, !tbaa !65 %2844 = getelementptr inbounds nuw i8, ptr %2819, i64 40 %2845 = load ptr, ptr %2844, align 8, !tbaa !72 %2846 = call noundef i32 %2842(ptr %2843, i64 %2838, ptr noundef %2845) #23 %2847 = icmp sgt i32 %2846, -1 br i1 %2847, label %2848, label %2865 2848: ; preds = %2840, %2836 %2849 = icmp eq i64 %2462, %2816 br i1 %2849, label %2857, label %2850 2850: ; preds = %2848 %2851 = getelementptr inbounds nuw i8, ptr %2819, i64 32 %2852 = load ptr, ptr %2851, align 8, !tbaa !71 %2853 = getelementptr inbounds nuw i8, ptr %2819, i64 40 %2854 = load ptr, ptr %2853, align 8, !tbaa !72 %2855 = call noundef i32 %2852(ptr %554, i64 %2818, ptr noundef %2854) #23 %2856 = icmp sgt i32 %2855, -1 br i1 %2856, label %2857, label %2865 2857: ; preds = %2850, %2848 store i64 0, ptr %2837, align 8, !tbaa !70 br label %2865 2858: ; preds = %2815 %2859 = getelementptr inbounds nuw i8, ptr %2819, i64 32 %2860 = load ptr, ptr %2859, align 8, !tbaa !71 %2861 = getelementptr inbounds nuw i8, ptr %2819, i64 40 %2862 = load ptr, ptr %2861, align 8, !tbaa !72 %2863 = call noundef i32 %2860(ptr %554, i64 %2818, ptr noundef %2862) #23 br label %2865 2864: ; preds = %2815 unreachable 2865: ; preds = %2858, %2857, %2850, %2840, %2828, %2822, %2812 %2866 = phi i32 [ %2863, %2858 ], [ 0, %2822 ], [ 0, %2828 ], [ %2846, %2840 ], [ %2855, %2850 ], [ 0, %2857 ], [ %2813, %2812 ] call void @llvm.lifetime.end.p5(i64 64, ptr addrspace(5) %17) #21, !noalias !89 br label %2867 2867: ; preds = %2865, %2742 %2868 = phi i32 [ 0, %2742 ], [ %2866, %2865 ] %2869 = icmp sgt i32 %2868, -1 br i1 %2869, label %2870, label %3683 2870: ; preds = %2867, %2729 %2871 = icmp slt i32 %2486, 1 br i1 %2871, label %3682, label %2872 2872: ; preds = %2870 %2873 = zext nneg i32 %2487 to i64 %2874 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %2875 = add nsw i32 %2874, %2487 store i32 %2875, ptr %456, align 8, !tbaa !75, !noalias !89 %2876 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2877 = getelementptr inbounds nuw i8, ptr %2876, i64 24 %2878 = load i64, ptr %2877, align 8, !tbaa !70 %2879 = add i64 %2878, %2873 %2880 = getelementptr inbounds nuw i8, ptr %2876, i64 16 %2881 = load i64, ptr %2880, align 8, !tbaa !69 %2882 = icmp ugt i64 %2879, %2881 br i1 %2882, label %2890, label %2883 2883: ; preds = %2872 %2884 = load ptr, ptr %2876, align 8, !tbaa !65 %2885 = getelementptr inbounds nuw i8, ptr %2884, i64 %2878 call void @llvm.memset.p0.i64(ptr align 1 %2885, i8 32, i64 %2873, i1 false) %2886 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2887 = getelementptr inbounds nuw i8, ptr %2886, i64 24 %2888 = load i64, ptr %2887, align 8, !tbaa !70 %2889 = add i64 %2888, %2873 store i64 %2889, ptr %2887, align 8, !tbaa !70 br label %3008 2890: ; preds = %2872 %2891 = load <2 x i64>, ptr %2880, align 8, !tbaa !15 %2892 = extractelement <2 x i64> %2891, i64 0 %2893 = extractelement <2 x i64> %2891, i64 1 %2894 = sub i64 %2892, %2893 %2895 = icmp eq i64 %2894, 0 br i1 %2895, label %2903, label %2896 2896: ; preds = %2890 %2897 = load ptr, ptr %2876, align 8, !tbaa !65 %2898 = getelementptr inbounds nuw i8, ptr %2897, i64 %2893 call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %2898, i8 32, i64 range(i64 1, 0) %2894, i1 false) %2899 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2900 = getelementptr inbounds nuw i8, ptr %2899, i64 24 %2901 = load i64, ptr %2900, align 8, !tbaa !70 %2902 = add i64 %2901, %2894 store i64 %2902, ptr %2900, align 8, !tbaa !70 br label %2903 2903: ; preds = %2896, %2890 call void @llvm.lifetime.start.p5(i64 64, ptr addrspace(5) %16) #21, !noalias !89 call void @llvm.memset.p5.i64(ptr addrspace(5) noundef align 1 dereferenceable(64) %16, i8 32, i64 64, i1 false), !noalias !89 br label %2904 2904: ; preds = %2953, %2903 %2905 = phi i64 [ %2894, %2903 ], [ %2906, %2953 ] %2906 = add i64 %2905, 64 %2907 = icmp ult i64 %2906, %2873 br i1 %2907, label %2908, label %2956 2908: ; preds = %2904 %2909 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2910 = getelementptr inbounds nuw i8, ptr %2909, i64 48 %2911 = load i32, ptr %2910, align 8, !tbaa !96 switch i32 %2911, label %2952 [ i32 0, label %2912 i32 1, label %2926 i32 2, label %2946 ] 2912: ; preds = %2908 %2913 = getelementptr inbounds nuw i8, ptr %2909, i64 16 %2914 = load <2 x i64>, ptr %2913, align 8, !tbaa !15 %2915 = extractelement <2 x i64> %2914, i64 0 %2916 = extractelement <2 x i64> %2914, i64 1 %2917 = icmp ult i64 %2916, %2915 br i1 %2917, label %2918, label %2953 2918: ; preds = %2912 %2919 = getelementptr inbounds nuw i8, ptr %2909, i64 24 %2920 = sub nuw i64 %2915, %2916 %2921 = call i64 @llvm.umin.i64(i64 %2920, i64 64) %2922 = load ptr, ptr %2909, align 8, !tbaa !65 %2923 = getelementptr inbounds nuw i8, ptr %2922, i64 %2916 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %2923, ptr align 1 %555, i64 %2921, i1 false), !alias.scope !248 %2924 = load i64, ptr %2919, align 8, !tbaa !70 %2925 = add i64 %2924, %2921 store i64 %2925, ptr %2919, align 8, !tbaa !70 br label %2953 2926: ; preds = %2908 %2927 = getelementptr inbounds nuw i8, ptr %2909, i64 24 %2928 = load i64, ptr %2927, align 8, !tbaa !70 %2929 = icmp eq i64 %2928, 0 br i1 %2929, label %2938, label %2930 2930: ; preds = %2926 %2931 = getelementptr inbounds nuw i8, ptr %2909, i64 32 %2932 = load ptr, ptr %2931, align 8, !tbaa !71 %2933 = load ptr, ptr %2909, align 8, !tbaa !65 %2934 = getelementptr inbounds nuw i8, ptr %2909, i64 40 %2935 = load ptr, ptr %2934, align 8, !tbaa !72 %2936 = call noundef i32 %2932(ptr %2933, i64 %2928, ptr noundef %2935) #23 %2937 = icmp sgt i32 %2936, -1 br i1 %2937, label %2938, label %2953 2938: ; preds = %2930, %2926 %2939 = getelementptr inbounds nuw i8, ptr %2909, i64 32 %2940 = load ptr, ptr %2939, align 8, !tbaa !71 %2941 = getelementptr inbounds nuw i8, ptr %2909, i64 40 %2942 = load ptr, ptr %2941, align 8, !tbaa !72 %2943 = call noundef i32 %2940(ptr %555, i64 64, ptr noundef %2942) #23 %2944 = icmp sgt i32 %2943, -1 br i1 %2944, label %2945, label %2953 2945: ; preds = %2938 store i64 0, ptr %2927, align 8, !tbaa !70 br label %2953 2946: ; preds = %2908 %2947 = getelementptr inbounds nuw i8, ptr %2909, i64 32 %2948 = load ptr, ptr %2947, align 8, !tbaa !71 %2949 = getelementptr inbounds nuw i8, ptr %2909, i64 40 %2950 = load ptr, ptr %2949, align 8, !tbaa !72 %2951 = call noundef i32 %2948(ptr %555, i64 64, ptr noundef %2950) #23 br label %2953 2952: ; preds = %2908 unreachable 2953: ; preds = %2946, %2945, %2938, %2930, %2918, %2912 %2954 = phi i32 [ %2951, %2946 ], [ 0, %2912 ], [ 0, %2918 ], [ %2936, %2930 ], [ %2943, %2938 ], [ 0, %2945 ] %2955 = icmp eq i32 %2954, 0 br i1 %2955, label %2904, label %3006, !llvm.loop !105 2956: ; preds = %2904 %2957 = phi i64 [ %2905, %2904 ] %2958 = sub i64 %2873, %2957 %2959 = call noundef i64 @llvm.umin.i64(i64 %2958, i64 64) %2960 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %2961 = getelementptr inbounds nuw i8, ptr %2960, i64 48 %2962 = load i32, ptr %2961, align 8, !tbaa !96 switch i32 %2962, label %3005 [ i32 0, label %2963 i32 1, label %2977 i32 2, label %2999 ] 2963: ; preds = %2956 %2964 = getelementptr inbounds nuw i8, ptr %2960, i64 16 %2965 = load <2 x i64>, ptr %2964, align 8, !tbaa !15 %2966 = extractelement <2 x i64> %2965, i64 0 %2967 = extractelement <2 x i64> %2965, i64 1 %2968 = icmp ult i64 %2967, %2966 br i1 %2968, label %2969, label %3006 2969: ; preds = %2963 %2970 = getelementptr inbounds nuw i8, ptr %2960, i64 24 %2971 = sub nuw i64 %2966, %2967 %2972 = call i64 @llvm.umin.i64(i64 %2971, i64 %2959) %2973 = load ptr, ptr %2960, align 8, !tbaa !65 %2974 = getelementptr inbounds nuw i8, ptr %2973, i64 %2967 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %2974, ptr align 1 %555, i64 %2972, i1 false), !alias.scope !252 %2975 = load i64, ptr %2970, align 8, !tbaa !70 %2976 = add i64 %2975, %2972 store i64 %2976, ptr %2970, align 8, !tbaa !70 br label %3006 2977: ; preds = %2956 %2978 = getelementptr inbounds nuw i8, ptr %2960, i64 24 %2979 = load i64, ptr %2978, align 8, !tbaa !70 %2980 = icmp eq i64 %2979, 0 br i1 %2980, label %2989, label %2981 2981: ; preds = %2977 %2982 = getelementptr inbounds nuw i8, ptr %2960, i64 32 %2983 = load ptr, ptr %2982, align 8, !tbaa !71 %2984 = load ptr, ptr %2960, align 8, !tbaa !65 %2985 = getelementptr inbounds nuw i8, ptr %2960, i64 40 %2986 = load ptr, ptr %2985, align 8, !tbaa !72 %2987 = call noundef i32 %2983(ptr %2984, i64 %2979, ptr noundef %2986) #23 %2988 = icmp sgt i32 %2987, -1 br i1 %2988, label %2989, label %3006 2989: ; preds = %2981, %2977 %2990 = icmp eq i64 %2957, %2873 br i1 %2990, label %2998, label %2991 2991: ; preds = %2989 %2992 = getelementptr inbounds nuw i8, ptr %2960, i64 32 %2993 = load ptr, ptr %2992, align 8, !tbaa !71 %2994 = getelementptr inbounds nuw i8, ptr %2960, i64 40 %2995 = load ptr, ptr %2994, align 8, !tbaa !72 %2996 = call noundef i32 %2993(ptr %555, i64 %2959, ptr noundef %2995) #23 %2997 = icmp sgt i32 %2996, -1 br i1 %2997, label %2998, label %3006 2998: ; preds = %2991, %2989 store i64 0, ptr %2978, align 8, !tbaa !70 br label %3006 2999: ; preds = %2956 %3000 = getelementptr inbounds nuw i8, ptr %2960, i64 32 %3001 = load ptr, ptr %3000, align 8, !tbaa !71 %3002 = getelementptr inbounds nuw i8, ptr %2960, i64 40 %3003 = load ptr, ptr %3002, align 8, !tbaa !72 %3004 = call noundef i32 %3001(ptr %555, i64 %2959, ptr noundef %3003) #23 br label %3006 3005: ; preds = %2956 unreachable 3006: ; preds = %2999, %2998, %2991, %2981, %2969, %2963, %2953 %3007 = phi i32 [ %3004, %2999 ], [ 0, %2963 ], [ 0, %2969 ], [ %2987, %2981 ], [ %2996, %2991 ], [ 0, %2998 ], [ %2954, %2953 ] call void @llvm.lifetime.end.p5(i64 64, ptr addrspace(5) %16) #21, !noalias !89 br label %3008 3008: ; preds = %3006, %2883 %3009 = phi i32 [ 0, %2883 ], [ %3007, %3006 ] %3010 = icmp sgt i32 %3009, -1 br i1 %3010, label %3682, label %3683 3011: ; preds = %2475 %3012 = icmp slt i32 %2486, 1 %3013 = xor i1 %3012, true %3014 = and i32 %2466, 16 %3015 = icmp eq i32 %3014, 0 %3016 = and i1 %3015, %3013 %3017 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3018 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 br i1 %3016, label %3019, label %3159 3019: ; preds = %3011 %3020 = zext nneg i32 %2487 to i64 %3021 = add nsw i32 %3018, %2487 store i32 %3021, ptr %456, align 8, !tbaa !75, !noalias !89 %3022 = getelementptr inbounds nuw i8, ptr %3017, i64 24 %3023 = load i64, ptr %3022, align 8, !tbaa !70 %3024 = add i64 %3023, %3020 %3025 = getelementptr inbounds nuw i8, ptr %3017, i64 16 %3026 = load i64, ptr %3025, align 8, !tbaa !69 %3027 = icmp ugt i64 %3024, %3026 br i1 %3027, label %3035, label %3028 3028: ; preds = %3019 %3029 = load ptr, ptr %3017, align 8, !tbaa !65 %3030 = getelementptr inbounds nuw i8, ptr %3029, i64 %3023 call void @llvm.memset.p0.i64(ptr align 1 %3030, i8 32, i64 %3020, i1 false) %3031 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3032 = getelementptr inbounds nuw i8, ptr %3031, i64 24 %3033 = load i64, ptr %3032, align 8, !tbaa !70 %3034 = add i64 %3033, %3020 store i64 %3034, ptr %3032, align 8, !tbaa !70 br label %3153 3035: ; preds = %3019 %3036 = load <2 x i64>, ptr %3025, align 8, !tbaa !15 %3037 = extractelement <2 x i64> %3036, i64 0 %3038 = extractelement <2 x i64> %3036, i64 1 %3039 = sub i64 %3037, %3038 %3040 = icmp eq i64 %3039, 0 br i1 %3040, label %3048, label %3041 3041: ; preds = %3035 %3042 = load ptr, ptr %3017, align 8, !tbaa !65 %3043 = getelementptr inbounds nuw i8, ptr %3042, i64 %3038 call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %3043, i8 32, i64 range(i64 1, 0) %3039, i1 false) %3044 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3045 = getelementptr inbounds nuw i8, ptr %3044, i64 24 %3046 = load i64, ptr %3045, align 8, !tbaa !70 %3047 = add i64 %3046, %3039 store i64 %3047, ptr %3045, align 8, !tbaa !70 br label %3048 3048: ; preds = %3041, %3035 call void @llvm.lifetime.start.p5(i64 64, ptr addrspace(5) %15) #21, !noalias !89 call void @llvm.memset.p5.i64(ptr addrspace(5) noundef align 1 dereferenceable(64) %15, i8 32, i64 64, i1 false), !noalias !89 br label %3049 3049: ; preds = %3098, %3048 %3050 = phi i64 [ %3039, %3048 ], [ %3051, %3098 ] %3051 = add i64 %3050, 64 %3052 = icmp ult i64 %3051, %3020 br i1 %3052, label %3053, label %3101 3053: ; preds = %3049 %3054 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3055 = getelementptr inbounds nuw i8, ptr %3054, i64 48 %3056 = load i32, ptr %3055, align 8, !tbaa !96 switch i32 %3056, label %3097 [ i32 0, label %3057 i32 1, label %3071 i32 2, label %3091 ] 3057: ; preds = %3053 %3058 = getelementptr inbounds nuw i8, ptr %3054, i64 16 %3059 = load <2 x i64>, ptr %3058, align 8, !tbaa !15 %3060 = extractelement <2 x i64> %3059, i64 0 %3061 = extractelement <2 x i64> %3059, i64 1 %3062 = icmp ult i64 %3061, %3060 br i1 %3062, label %3063, label %3098 3063: ; preds = %3057 %3064 = getelementptr inbounds nuw i8, ptr %3054, i64 24 %3065 = sub nuw i64 %3060, %3061 %3066 = call i64 @llvm.umin.i64(i64 %3065, i64 64) %3067 = load ptr, ptr %3054, align 8, !tbaa !65 %3068 = getelementptr inbounds nuw i8, ptr %3067, i64 %3061 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %3068, ptr align 1 %556, i64 %3066, i1 false), !alias.scope !256 %3069 = load i64, ptr %3064, align 8, !tbaa !70 %3070 = add i64 %3069, %3066 store i64 %3070, ptr %3064, align 8, !tbaa !70 br label %3098 3071: ; preds = %3053 %3072 = getelementptr inbounds nuw i8, ptr %3054, i64 24 %3073 = load i64, ptr %3072, align 8, !tbaa !70 %3074 = icmp eq i64 %3073, 0 br i1 %3074, label %3083, label %3075 3075: ; preds = %3071 %3076 = getelementptr inbounds nuw i8, ptr %3054, i64 32 %3077 = load ptr, ptr %3076, align 8, !tbaa !71 %3078 = load ptr, ptr %3054, align 8, !tbaa !65 %3079 = getelementptr inbounds nuw i8, ptr %3054, i64 40 %3080 = load ptr, ptr %3079, align 8, !tbaa !72 %3081 = call noundef i32 %3077(ptr %3078, i64 %3073, ptr noundef %3080) #23 %3082 = icmp sgt i32 %3081, -1 br i1 %3082, label %3083, label %3098 3083: ; preds = %3075, %3071 %3084 = getelementptr inbounds nuw i8, ptr %3054, i64 32 %3085 = load ptr, ptr %3084, align 8, !tbaa !71 %3086 = getelementptr inbounds nuw i8, ptr %3054, i64 40 %3087 = load ptr, ptr %3086, align 8, !tbaa !72 %3088 = call noundef i32 %3085(ptr %556, i64 64, ptr noundef %3087) #23 %3089 = icmp sgt i32 %3088, -1 br i1 %3089, label %3090, label %3098 3090: ; preds = %3083 store i64 0, ptr %3072, align 8, !tbaa !70 br label %3098 3091: ; preds = %3053 %3092 = getelementptr inbounds nuw i8, ptr %3054, i64 32 %3093 = load ptr, ptr %3092, align 8, !tbaa !71 %3094 = getelementptr inbounds nuw i8, ptr %3054, i64 40 %3095 = load ptr, ptr %3094, align 8, !tbaa !72 %3096 = call noundef i32 %3093(ptr %556, i64 64, ptr noundef %3095) #23 br label %3098 3097: ; preds = %3053 unreachable 3098: ; preds = %3091, %3090, %3083, %3075, %3063, %3057 %3099 = phi i32 [ %3096, %3091 ], [ 0, %3057 ], [ 0, %3063 ], [ %3081, %3075 ], [ %3088, %3083 ], [ 0, %3090 ] %3100 = icmp eq i32 %3099, 0 br i1 %3100, label %3049, label %3151, !llvm.loop !105 3101: ; preds = %3049 %3102 = phi i64 [ %3050, %3049 ] %3103 = sub i64 %3020, %3102 %3104 = call noundef i64 @llvm.umin.i64(i64 %3103, i64 64) %3105 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3106 = getelementptr inbounds nuw i8, ptr %3105, i64 48 %3107 = load i32, ptr %3106, align 8, !tbaa !96 switch i32 %3107, label %3150 [ i32 0, label %3108 i32 1, label %3122 i32 2, label %3144 ] 3108: ; preds = %3101 %3109 = getelementptr inbounds nuw i8, ptr %3105, i64 16 %3110 = load <2 x i64>, ptr %3109, align 8, !tbaa !15 %3111 = extractelement <2 x i64> %3110, i64 0 %3112 = extractelement <2 x i64> %3110, i64 1 %3113 = icmp ult i64 %3112, %3111 br i1 %3113, label %3114, label %3151 3114: ; preds = %3108 %3115 = getelementptr inbounds nuw i8, ptr %3105, i64 24 %3116 = sub nuw i64 %3111, %3112 %3117 = call i64 @llvm.umin.i64(i64 %3116, i64 %3104) %3118 = load ptr, ptr %3105, align 8, !tbaa !65 %3119 = getelementptr inbounds nuw i8, ptr %3118, i64 %3112 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %3119, ptr align 1 %556, i64 %3117, i1 false), !alias.scope !260 %3120 = load i64, ptr %3115, align 8, !tbaa !70 %3121 = add i64 %3120, %3117 store i64 %3121, ptr %3115, align 8, !tbaa !70 br label %3151 3122: ; preds = %3101 %3123 = getelementptr inbounds nuw i8, ptr %3105, i64 24 %3124 = load i64, ptr %3123, align 8, !tbaa !70 %3125 = icmp eq i64 %3124, 0 br i1 %3125, label %3134, label %3126 3126: ; preds = %3122 %3127 = getelementptr inbounds nuw i8, ptr %3105, i64 32 %3128 = load ptr, ptr %3127, align 8, !tbaa !71 %3129 = load ptr, ptr %3105, align 8, !tbaa !65 %3130 = getelementptr inbounds nuw i8, ptr %3105, i64 40 %3131 = load ptr, ptr %3130, align 8, !tbaa !72 %3132 = call noundef i32 %3128(ptr %3129, i64 %3124, ptr noundef %3131) #23 %3133 = icmp sgt i32 %3132, -1 br i1 %3133, label %3134, label %3151 3134: ; preds = %3126, %3122 %3135 = icmp eq i64 %3102, %3020 br i1 %3135, label %3143, label %3136 3136: ; preds = %3134 %3137 = getelementptr inbounds nuw i8, ptr %3105, i64 32 %3138 = load ptr, ptr %3137, align 8, !tbaa !71 %3139 = getelementptr inbounds nuw i8, ptr %3105, i64 40 %3140 = load ptr, ptr %3139, align 8, !tbaa !72 %3141 = call noundef i32 %3138(ptr %556, i64 %3104, ptr noundef %3140) #23 %3142 = icmp sgt i32 %3141, -1 br i1 %3142, label %3143, label %3151 3143: ; preds = %3136, %3134 store i64 0, ptr %3123, align 8, !tbaa !70 br label %3151 3144: ; preds = %3101 %3145 = getelementptr inbounds nuw i8, ptr %3105, i64 32 %3146 = load ptr, ptr %3145, align 8, !tbaa !71 %3147 = getelementptr inbounds nuw i8, ptr %3105, i64 40 %3148 = load ptr, ptr %3147, align 8, !tbaa !72 %3149 = call noundef i32 %3146(ptr %556, i64 %3104, ptr noundef %3148) #23 br label %3151 3150: ; preds = %3101 unreachable 3151: ; preds = %3144, %3143, %3136, %3126, %3114, %3108, %3098 %3152 = phi i32 [ %3149, %3144 ], [ 0, %3108 ], [ 0, %3114 ], [ %3132, %3126 ], [ %3141, %3136 ], [ 0, %3143 ], [ %3099, %3098 ] call void @llvm.lifetime.end.p5(i64 64, ptr addrspace(5) %15) #21, !noalias !89 br label %3153 3153: ; preds = %3151, %3028 %3154 = phi i32 [ 0, %3028 ], [ %3152, %3151 ] %3155 = icmp sgt i32 %3154, -1 br i1 %3155, label %3156, label %3683 3156: ; preds = %3153 %3157 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3158 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 br label %3159 3159: ; preds = %3156, %3011 %3160 = phi i32 [ %3158, %3156 ], [ %3018, %3011 ] %3161 = phi ptr [ %3157, %3156 ], [ %3017, %3011 ] br i1 %2476, label %3218, label %3162 3162: ; preds = %3159 call void @llvm.lifetime.start.p5(i64 1, ptr addrspace(5) %18), !noalias !89 store i8 %2477, ptr addrspace(5) %18, align 1, !tbaa !19, !noalias !89 %3163 = add nsw i32 %3160, 1 store i32 %3163, ptr %456, align 8, !tbaa !75, !noalias !89 %3164 = getelementptr inbounds nuw i8, ptr %3161, i64 24 %3165 = load i64, ptr %3164, align 8, !tbaa !70 %3166 = add i64 %3165, 1 %3167 = getelementptr inbounds nuw i8, ptr %3161, i64 16 %3168 = load i64, ptr %3167, align 8, !tbaa !69 %3169 = icmp ugt i64 %3166, %3168 br i1 %3169, label %3177, label %3170 3170: ; preds = %3162 %3171 = load ptr, ptr %3161, align 8, !tbaa !65 %3172 = getelementptr inbounds nuw i8, ptr %3171, i64 %3165 store i8 %2477, ptr %3172, align 1, !tbaa !19 %3173 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3174 = getelementptr inbounds nuw i8, ptr %3173, i64 24 %3175 = load i64, ptr %3174, align 8, !tbaa !70 %3176 = add i64 %3175, 1 store i64 %3176, ptr %3174, align 8, !tbaa !70 br label %3212 3177: ; preds = %3162 %3178 = getelementptr inbounds nuw i8, ptr %3161, i64 48 %3179 = load i32, ptr %3178, align 8, !tbaa !96 switch i32 %3179, label %3211 [ i32 0, label %3180 i32 1, label %3187 i32 2, label %3205 ] 3180: ; preds = %3177 %3181 = icmp ult i64 %3165, %3168 br i1 %3181, label %3182, label %3212 3182: ; preds = %3180 %3183 = load ptr, ptr %3161, align 8, !tbaa !65 %3184 = getelementptr inbounds nuw i8, ptr %3183, i64 %3165 store i8 %2477, ptr %3184, align 1, !alias.scope !264 %3185 = load i64, ptr %3164, align 8, !tbaa !70 %3186 = add i64 %3185, 1 store i64 %3186, ptr %3164, align 8, !tbaa !70 br label %3212 3187: ; preds = %3177 %3188 = icmp eq i64 %3165, 0 br i1 %3188, label %3197, label %3189 3189: ; preds = %3187 %3190 = getelementptr inbounds nuw i8, ptr %3161, i64 32 %3191 = load ptr, ptr %3190, align 8, !tbaa !71 %3192 = load ptr, ptr %3161, align 8, !tbaa !65 %3193 = getelementptr inbounds nuw i8, ptr %3161, i64 40 %3194 = load ptr, ptr %3193, align 8, !tbaa !72 %3195 = call noundef i32 %3191(ptr %3192, i64 %3165, ptr noundef %3194) #23 %3196 = icmp sgt i32 %3195, -1 br i1 %3196, label %3197, label %3212 3197: ; preds = %3189, %3187 %3198 = getelementptr inbounds nuw i8, ptr %3161, i64 32 %3199 = load ptr, ptr %3198, align 8, !tbaa !71 %3200 = getelementptr inbounds nuw i8, ptr %3161, i64 40 %3201 = load ptr, ptr %3200, align 8, !tbaa !72 %3202 = call noundef i32 %3199(ptr %557, i64 1, ptr noundef %3201) #23 %3203 = icmp sgt i32 %3202, -1 br i1 %3203, label %3204, label %3212 3204: ; preds = %3197 store i64 0, ptr %3164, align 8, !tbaa !70 br label %3212 3205: ; preds = %3177 %3206 = getelementptr inbounds nuw i8, ptr %3161, i64 32 %3207 = load ptr, ptr %3206, align 8, !tbaa !71 %3208 = getelementptr inbounds nuw i8, ptr %3161, i64 40 %3209 = load ptr, ptr %3208, align 8, !tbaa !72 %3210 = call noundef i32 %3207(ptr %557, i64 1, ptr noundef %3209) #23 br label %3212 3211: ; preds = %3177 unreachable 3212: ; preds = %3205, %3204, %3197, %3189, %3182, %3180, %3170 %3213 = phi i32 [ 0, %3170 ], [ %3210, %3205 ], [ 0, %3180 ], [ 0, %3182 ], [ %3195, %3189 ], [ %3202, %3197 ], [ 0, %3204 ] call void @llvm.lifetime.end.p5(i64 1, ptr addrspace(5) %18), !noalias !89 %3214 = icmp sgt i32 %3213, -1 br i1 %3214, label %3215, label %3683 3215: ; preds = %3212 %3216 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3217 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 br label %3218 3218: ; preds = %3215, %3159 %3219 = phi i32 [ %3217, %3215 ], [ %3160, %3159 ] %3220 = phi ptr [ %3216, %3215 ], [ %3161, %3159 ] %3221 = or i1 %3015, %3012 br i1 %3221, label %3362, label %3222 3222: ; preds = %3218 %3223 = zext nneg i32 %2487 to i64 %3224 = add nsw i32 %3219, %2487 store i32 %3224, ptr %456, align 8, !tbaa !75, !noalias !89 %3225 = getelementptr inbounds nuw i8, ptr %3220, i64 24 %3226 = load i64, ptr %3225, align 8, !tbaa !70 %3227 = add i64 %3226, %3223 %3228 = getelementptr inbounds nuw i8, ptr %3220, i64 16 %3229 = load i64, ptr %3228, align 8, !tbaa !69 %3230 = icmp ugt i64 %3227, %3229 br i1 %3230, label %3238, label %3231 3231: ; preds = %3222 %3232 = load ptr, ptr %3220, align 8, !tbaa !65 %3233 = getelementptr inbounds nuw i8, ptr %3232, i64 %3226 call void @llvm.memset.p0.i64(ptr align 1 %3233, i8 48, i64 %3223, i1 false) %3234 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3235 = getelementptr inbounds nuw i8, ptr %3234, i64 24 %3236 = load i64, ptr %3235, align 8, !tbaa !70 %3237 = add i64 %3236, %3223 store i64 %3237, ptr %3235, align 8, !tbaa !70 br label %3356 3238: ; preds = %3222 %3239 = load <2 x i64>, ptr %3228, align 8, !tbaa !15 %3240 = extractelement <2 x i64> %3239, i64 0 %3241 = extractelement <2 x i64> %3239, i64 1 %3242 = sub i64 %3240, %3241 %3243 = icmp eq i64 %3242, 0 br i1 %3243, label %3251, label %3244 3244: ; preds = %3238 %3245 = load ptr, ptr %3220, align 8, !tbaa !65 %3246 = getelementptr inbounds nuw i8, ptr %3245, i64 %3241 call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %3246, i8 48, i64 range(i64 1, 0) %3242, i1 false) %3247 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3248 = getelementptr inbounds nuw i8, ptr %3247, i64 24 %3249 = load i64, ptr %3248, align 8, !tbaa !70 %3250 = add i64 %3249, %3242 store i64 %3250, ptr %3248, align 8, !tbaa !70 br label %3251 3251: ; preds = %3244, %3238 call void @llvm.lifetime.start.p5(i64 64, ptr addrspace(5) %14) #21, !noalias !89 call void @llvm.memset.p5.i64(ptr addrspace(5) noundef align 1 dereferenceable(64) %14, i8 48, i64 64, i1 false), !noalias !89 br label %3252 3252: ; preds = %3301, %3251 %3253 = phi i64 [ %3242, %3251 ], [ %3254, %3301 ] %3254 = add i64 %3253, 64 %3255 = icmp ult i64 %3254, %3223 br i1 %3255, label %3256, label %3304 3256: ; preds = %3252 %3257 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3258 = getelementptr inbounds nuw i8, ptr %3257, i64 48 %3259 = load i32, ptr %3258, align 8, !tbaa !96 switch i32 %3259, label %3300 [ i32 0, label %3260 i32 1, label %3274 i32 2, label %3294 ] 3260: ; preds = %3256 %3261 = getelementptr inbounds nuw i8, ptr %3257, i64 16 %3262 = load <2 x i64>, ptr %3261, align 8, !tbaa !15 %3263 = extractelement <2 x i64> %3262, i64 0 %3264 = extractelement <2 x i64> %3262, i64 1 %3265 = icmp ult i64 %3264, %3263 br i1 %3265, label %3266, label %3301 3266: ; preds = %3260 %3267 = getelementptr inbounds nuw i8, ptr %3257, i64 24 %3268 = sub nuw i64 %3263, %3264 %3269 = call i64 @llvm.umin.i64(i64 %3268, i64 64) %3270 = load ptr, ptr %3257, align 8, !tbaa !65 %3271 = getelementptr inbounds nuw i8, ptr %3270, i64 %3264 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %3271, ptr align 1 %558, i64 %3269, i1 false), !alias.scope !268 %3272 = load i64, ptr %3267, align 8, !tbaa !70 %3273 = add i64 %3272, %3269 store i64 %3273, ptr %3267, align 8, !tbaa !70 br label %3301 3274: ; preds = %3256 %3275 = getelementptr inbounds nuw i8, ptr %3257, i64 24 %3276 = load i64, ptr %3275, align 8, !tbaa !70 %3277 = icmp eq i64 %3276, 0 br i1 %3277, label %3286, label %3278 3278: ; preds = %3274 %3279 = getelementptr inbounds nuw i8, ptr %3257, i64 32 %3280 = load ptr, ptr %3279, align 8, !tbaa !71 %3281 = load ptr, ptr %3257, align 8, !tbaa !65 %3282 = getelementptr inbounds nuw i8, ptr %3257, i64 40 %3283 = load ptr, ptr %3282, align 8, !tbaa !72 %3284 = call noundef i32 %3280(ptr %3281, i64 %3276, ptr noundef %3283) #23 %3285 = icmp sgt i32 %3284, -1 br i1 %3285, label %3286, label %3301 3286: ; preds = %3278, %3274 %3287 = getelementptr inbounds nuw i8, ptr %3257, i64 32 %3288 = load ptr, ptr %3287, align 8, !tbaa !71 %3289 = getelementptr inbounds nuw i8, ptr %3257, i64 40 %3290 = load ptr, ptr %3289, align 8, !tbaa !72 %3291 = call noundef i32 %3288(ptr %558, i64 64, ptr noundef %3290) #23 %3292 = icmp sgt i32 %3291, -1 br i1 %3292, label %3293, label %3301 3293: ; preds = %3286 store i64 0, ptr %3275, align 8, !tbaa !70 br label %3301 3294: ; preds = %3256 %3295 = getelementptr inbounds nuw i8, ptr %3257, i64 32 %3296 = load ptr, ptr %3295, align 8, !tbaa !71 %3297 = getelementptr inbounds nuw i8, ptr %3257, i64 40 %3298 = load ptr, ptr %3297, align 8, !tbaa !72 %3299 = call noundef i32 %3296(ptr %558, i64 64, ptr noundef %3298) #23 br label %3301 3300: ; preds = %3256 unreachable 3301: ; preds = %3294, %3293, %3286, %3278, %3266, %3260 %3302 = phi i32 [ %3299, %3294 ], [ 0, %3260 ], [ 0, %3266 ], [ %3284, %3278 ], [ %3291, %3286 ], [ 0, %3293 ] %3303 = icmp eq i32 %3302, 0 br i1 %3303, label %3252, label %3354, !llvm.loop !105 3304: ; preds = %3252 %3305 = phi i64 [ %3253, %3252 ] %3306 = sub i64 %3223, %3305 %3307 = call noundef i64 @llvm.umin.i64(i64 %3306, i64 64) %3308 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3309 = getelementptr inbounds nuw i8, ptr %3308, i64 48 %3310 = load i32, ptr %3309, align 8, !tbaa !96 switch i32 %3310, label %3353 [ i32 0, label %3311 i32 1, label %3325 i32 2, label %3347 ] 3311: ; preds = %3304 %3312 = getelementptr inbounds nuw i8, ptr %3308, i64 16 %3313 = load <2 x i64>, ptr %3312, align 8, !tbaa !15 %3314 = extractelement <2 x i64> %3313, i64 0 %3315 = extractelement <2 x i64> %3313, i64 1 %3316 = icmp ult i64 %3315, %3314 br i1 %3316, label %3317, label %3354 3317: ; preds = %3311 %3318 = getelementptr inbounds nuw i8, ptr %3308, i64 24 %3319 = sub nuw i64 %3314, %3315 %3320 = call i64 @llvm.umin.i64(i64 %3319, i64 %3307) %3321 = load ptr, ptr %3308, align 8, !tbaa !65 %3322 = getelementptr inbounds nuw i8, ptr %3321, i64 %3315 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %3322, ptr align 1 %558, i64 %3320, i1 false), !alias.scope !272 %3323 = load i64, ptr %3318, align 8, !tbaa !70 %3324 = add i64 %3323, %3320 store i64 %3324, ptr %3318, align 8, !tbaa !70 br label %3354 3325: ; preds = %3304 %3326 = getelementptr inbounds nuw i8, ptr %3308, i64 24 %3327 = load i64, ptr %3326, align 8, !tbaa !70 %3328 = icmp eq i64 %3327, 0 br i1 %3328, label %3337, label %3329 3329: ; preds = %3325 %3330 = getelementptr inbounds nuw i8, ptr %3308, i64 32 %3331 = load ptr, ptr %3330, align 8, !tbaa !71 %3332 = load ptr, ptr %3308, align 8, !tbaa !65 %3333 = getelementptr inbounds nuw i8, ptr %3308, i64 40 %3334 = load ptr, ptr %3333, align 8, !tbaa !72 %3335 = call noundef i32 %3331(ptr %3332, i64 %3327, ptr noundef %3334) #23 %3336 = icmp sgt i32 %3335, -1 br i1 %3336, label %3337, label %3354 3337: ; preds = %3329, %3325 %3338 = icmp eq i64 %3305, %3223 br i1 %3338, label %3346, label %3339 3339: ; preds = %3337 %3340 = getelementptr inbounds nuw i8, ptr %3308, i64 32 %3341 = load ptr, ptr %3340, align 8, !tbaa !71 %3342 = getelementptr inbounds nuw i8, ptr %3308, i64 40 %3343 = load ptr, ptr %3342, align 8, !tbaa !72 %3344 = call noundef i32 %3341(ptr %558, i64 %3307, ptr noundef %3343) #23 %3345 = icmp sgt i32 %3344, -1 br i1 %3345, label %3346, label %3354 3346: ; preds = %3339, %3337 store i64 0, ptr %3326, align 8, !tbaa !70 br label %3354 3347: ; preds = %3304 %3348 = getelementptr inbounds nuw i8, ptr %3308, i64 32 %3349 = load ptr, ptr %3348, align 8, !tbaa !71 %3350 = getelementptr inbounds nuw i8, ptr %3308, i64 40 %3351 = load ptr, ptr %3350, align 8, !tbaa !72 %3352 = call noundef i32 %3349(ptr %558, i64 %3307, ptr noundef %3351) #23 br label %3354 3353: ; preds = %3304 unreachable 3354: ; preds = %3347, %3346, %3339, %3329, %3317, %3311, %3301 %3355 = phi i32 [ %3352, %3347 ], [ 0, %3311 ], [ 0, %3317 ], [ %3335, %3329 ], [ %3344, %3339 ], [ 0, %3346 ], [ %3302, %3301 ] call void @llvm.lifetime.end.p5(i64 64, ptr addrspace(5) %14) #21, !noalias !89 br label %3356 3356: ; preds = %3354, %3231 %3357 = phi i32 [ 0, %3231 ], [ %3355, %3354 ] %3358 = icmp sgt i32 %3357, -1 br i1 %3358, label %3359, label %3683 3359: ; preds = %3356 %3360 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3361 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 br label %3362 3362: ; preds = %3359, %3218 %3363 = phi i32 [ %3361, %3359 ], [ %3219, %3218 ] %3364 = phi ptr [ %3360, %3359 ], [ %3220, %3218 ] %3365 = load i64, ptr addrspace(5) %551, align 8, !tbaa !209, !noalias !89 %3366 = sub i64 0, %3365 %3367 = getelementptr inbounds i8, ptr %553, i64 %3366 %3368 = trunc i64 %3365 to i32 %3369 = add nsw i32 %3363, %3368 store i32 %3369, ptr %456, align 8, !tbaa !75, !noalias !89 %3370 = getelementptr inbounds nuw i8, ptr %3364, i64 24 %3371 = load i64, ptr %3370, align 8, !tbaa !70 %3372 = add i64 %3371, %3365 %3373 = getelementptr inbounds nuw i8, ptr %3364, i64 16 %3374 = load i64, ptr %3373, align 8, !tbaa !69 %3375 = icmp ugt i64 %3372, %3374 br i1 %3375, label %3383, label %3376 3376: ; preds = %3362 %3377 = load ptr, ptr %3364, align 8, !tbaa !65 %3378 = getelementptr inbounds nuw i8, ptr %3377, i64 %3371 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %3378, ptr align 1 %3367, i64 %3365, i1 false), !alias.scope !276 %3379 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3380 = getelementptr inbounds nuw i8, ptr %3379, i64 24 %3381 = load i64, ptr %3380, align 8, !tbaa !70 %3382 = add i64 %3381, %3365 store i64 %3382, ptr %3380, align 8, !tbaa !70 br label %3422 3383: ; preds = %3362 %3384 = getelementptr inbounds nuw i8, ptr %3364, i64 48 %3385 = load i32, ptr %3384, align 8, !tbaa !96 switch i32 %3385, label %3421 [ i32 0, label %3386 i32 1, label %3395 i32 2, label %3415 ] 3386: ; preds = %3383 %3387 = icmp ult i64 %3371, %3374 br i1 %3387, label %3388, label %3422 3388: ; preds = %3386 %3389 = sub nuw i64 %3374, %3371 %3390 = call i64 @llvm.umin.i64(i64 %3389, i64 %3365) %3391 = load ptr, ptr %3364, align 8, !tbaa !65 %3392 = getelementptr inbounds nuw i8, ptr %3391, i64 %3371 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %3392, ptr align 1 %3367, i64 %3390, i1 false), !alias.scope !280 %3393 = load i64, ptr %3370, align 8, !tbaa !70 %3394 = add i64 %3393, %3390 store i64 %3394, ptr %3370, align 8, !tbaa !70 br label %3422 3395: ; preds = %3383 %3396 = icmp eq i64 %3371, 0 br i1 %3396, label %3405, label %3397 3397: ; preds = %3395 %3398 = getelementptr inbounds nuw i8, ptr %3364, i64 32 %3399 = load ptr, ptr %3398, align 8, !tbaa !71 %3400 = load ptr, ptr %3364, align 8, !tbaa !65 %3401 = getelementptr inbounds nuw i8, ptr %3364, i64 40 %3402 = load ptr, ptr %3401, align 8, !tbaa !72 %3403 = call noundef i32 %3399(ptr %3400, i64 %3371, ptr noundef %3402) #23 %3404 = icmp sgt i32 %3403, -1 br i1 %3404, label %3405, label %3422 3405: ; preds = %3397, %3395 %3406 = icmp eq i64 %3365, 0 br i1 %3406, label %3414, label %3407 3407: ; preds = %3405 %3408 = getelementptr inbounds nuw i8, ptr %3364, i64 32 %3409 = load ptr, ptr %3408, align 8, !tbaa !71 %3410 = getelementptr inbounds nuw i8, ptr %3364, i64 40 %3411 = load ptr, ptr %3410, align 8, !tbaa !72 %3412 = call noundef i32 %3409(ptr nonnull %3367, i64 %3365, ptr noundef %3411) #23 %3413 = icmp sgt i32 %3412, -1 br i1 %3413, label %3414, label %3422 3414: ; preds = %3407, %3405 store i64 0, ptr %3370, align 8, !tbaa !70 br label %3422 3415: ; preds = %3383 %3416 = getelementptr inbounds nuw i8, ptr %3364, i64 32 %3417 = load ptr, ptr %3416, align 8, !tbaa !71 %3418 = getelementptr inbounds nuw i8, ptr %3364, i64 40 %3419 = load ptr, ptr %3418, align 8, !tbaa !72 %3420 = call noundef i32 %3417(ptr %3367, i64 %3365, ptr noundef %3419) #23 br label %3422 3421: ; preds = %3383 unreachable 3422: ; preds = %3415, %3414, %3407, %3397, %3388, %3386, %3376 %3423 = phi i32 [ 0, %3376 ], [ %3420, %3415 ], [ 0, %3386 ], [ 0, %3388 ], [ %3403, %3397 ], [ %3412, %3407 ], [ 0, %3414 ] %3424 = icmp sgt i32 %3423, -1 br i1 %3424, label %3425, label %3683 3425: ; preds = %3422 br i1 %2285, label %3426, label %3481 3426: ; preds = %3425 %3427 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %3428 = add nsw i32 %3427, 1 store i32 %3428, ptr %456, align 8, !tbaa !75, !noalias !89 %3429 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3430 = getelementptr inbounds nuw i8, ptr %3429, i64 24 %3431 = load i64, ptr %3430, align 8, !tbaa !70 %3432 = add i64 %3431, 1 %3433 = getelementptr inbounds nuw i8, ptr %3429, i64 16 %3434 = load i64, ptr %3433, align 8, !tbaa !69 %3435 = icmp ugt i64 %3432, %3434 br i1 %3435, label %3443, label %3436 3436: ; preds = %3426 %3437 = load ptr, ptr %3429, align 8, !tbaa !65 %3438 = getelementptr inbounds nuw i8, ptr %3437, i64 %3431 store i8 46, ptr %3438, align 1, !alias.scope !284 %3439 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3440 = getelementptr inbounds nuw i8, ptr %3439, i64 24 %3441 = load i64, ptr %3440, align 8, !tbaa !70 %3442 = add i64 %3441, 1 store i64 %3442, ptr %3440, align 8, !tbaa !70 br label %3478 3443: ; preds = %3426 %3444 = getelementptr inbounds nuw i8, ptr %3429, i64 48 %3445 = load i32, ptr %3444, align 8, !tbaa !96 switch i32 %3445, label %3477 [ i32 0, label %3446 i32 1, label %3453 i32 2, label %3471 ] 3446: ; preds = %3443 %3447 = icmp ult i64 %3431, %3434 br i1 %3447, label %3448, label %3478 3448: ; preds = %3446 %3449 = load ptr, ptr %3429, align 8, !tbaa !65 %3450 = getelementptr inbounds nuw i8, ptr %3449, i64 %3431 store i8 46, ptr %3450, align 1, !alias.scope !288 %3451 = load i64, ptr %3430, align 8, !tbaa !70 %3452 = add i64 %3451, 1 store i64 %3452, ptr %3430, align 8, !tbaa !70 br label %3478 3453: ; preds = %3443 %3454 = icmp eq i64 %3431, 0 br i1 %3454, label %3463, label %3455 3455: ; preds = %3453 %3456 = getelementptr inbounds nuw i8, ptr %3429, i64 32 %3457 = load ptr, ptr %3456, align 8, !tbaa !71 %3458 = load ptr, ptr %3429, align 8, !tbaa !65 %3459 = getelementptr inbounds nuw i8, ptr %3429, i64 40 %3460 = load ptr, ptr %3459, align 8, !tbaa !72 %3461 = call noundef i32 %3457(ptr %3458, i64 %3431, ptr noundef %3460) #23 %3462 = icmp sgt i32 %3461, -1 br i1 %3462, label %3463, label %3478 3463: ; preds = %3455, %3453 %3464 = getelementptr inbounds nuw i8, ptr %3429, i64 32 %3465 = load ptr, ptr %3464, align 8, !tbaa !71 %3466 = getelementptr inbounds nuw i8, ptr %3429, i64 40 %3467 = load ptr, ptr %3466, align 8, !tbaa !72 %3468 = call noundef i32 %3465(ptr addrspacecast (ptr addrspace(4) @.str.12.28 to ptr), i64 1, ptr noundef %3467) #23 %3469 = icmp sgt i32 %3468, -1 br i1 %3469, label %3470, label %3478 3470: ; preds = %3463 store i64 0, ptr %3430, align 8, !tbaa !70 br label %3478 3471: ; preds = %3443 %3472 = getelementptr inbounds nuw i8, ptr %3429, i64 32 %3473 = load ptr, ptr %3472, align 8, !tbaa !71 %3474 = getelementptr inbounds nuw i8, ptr %3429, i64 40 %3475 = load ptr, ptr %3474, align 8, !tbaa !72 %3476 = call noundef i32 %3473(ptr addrspacecast (ptr addrspace(4) @.str.12.28 to ptr), i64 1, ptr noundef %3475) #23 br label %3478 3477: ; preds = %3443 unreachable 3478: ; preds = %3471, %3470, %3463, %3455, %3448, %3446, %3436 %3479 = phi i32 [ 0, %3436 ], [ %3476, %3471 ], [ 0, %3446 ], [ 0, %3448 ], [ %3461, %3455 ], [ %3468, %3463 ], [ 0, %3470 ] %3480 = icmp sgt i32 %3479, -1 br i1 %3480, label %3481, label %3683 3481: ; preds = %3478, %3425 %3482 = icmp eq i64 %2430, 0 br i1 %3482, label %3541, label %3483 3483: ; preds = %3481 %3484 = trunc nuw nsw i64 %2430 to i32 %3485 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %3486 = add nsw i32 %3485, %3484 store i32 %3486, ptr %456, align 8, !tbaa !75, !noalias !89 %3487 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3488 = getelementptr inbounds nuw i8, ptr %3487, i64 24 %3489 = load i64, ptr %3488, align 8, !tbaa !70 %3490 = add i64 %3489, %2430 %3491 = getelementptr inbounds nuw i8, ptr %3487, i64 16 %3492 = load i64, ptr %3491, align 8, !tbaa !69 %3493 = icmp ugt i64 %3490, %3492 br i1 %3493, label %3501, label %3494 3494: ; preds = %3483 %3495 = load ptr, ptr %3487, align 8, !tbaa !65 %3496 = getelementptr inbounds nuw i8, ptr %3495, i64 %3489 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %3496, ptr align 1 %476, i64 %2430, i1 false), !alias.scope !292 %3497 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3498 = getelementptr inbounds nuw i8, ptr %3497, i64 24 %3499 = load i64, ptr %3498, align 8, !tbaa !70 %3500 = add i64 %3499, %2430 store i64 %3500, ptr %3498, align 8, !tbaa !70 br label %3538 3501: ; preds = %3483 %3502 = getelementptr inbounds nuw i8, ptr %3487, i64 48 %3503 = load i32, ptr %3502, align 8, !tbaa !96 switch i32 %3503, label %3537 [ i32 0, label %3504 i32 1, label %3513 i32 2, label %3531 ] 3504: ; preds = %3501 %3505 = icmp ult i64 %3489, %3492 br i1 %3505, label %3506, label %3538 3506: ; preds = %3504 %3507 = sub nuw i64 %3492, %3489 %3508 = call i64 @llvm.umin.i64(i64 %3507, i64 %2430) %3509 = load ptr, ptr %3487, align 8, !tbaa !65 %3510 = getelementptr inbounds nuw i8, ptr %3509, i64 %3489 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %3510, ptr align 1 %476, i64 %3508, i1 false), !alias.scope !296 %3511 = load i64, ptr %3488, align 8, !tbaa !70 %3512 = add i64 %3511, %3508 store i64 %3512, ptr %3488, align 8, !tbaa !70 br label %3538 3513: ; preds = %3501 %3514 = icmp eq i64 %3489, 0 br i1 %3514, label %3523, label %3515 3515: ; preds = %3513 %3516 = getelementptr inbounds nuw i8, ptr %3487, i64 32 %3517 = load ptr, ptr %3516, align 8, !tbaa !71 %3518 = load ptr, ptr %3487, align 8, !tbaa !65 %3519 = getelementptr inbounds nuw i8, ptr %3487, i64 40 %3520 = load ptr, ptr %3519, align 8, !tbaa !72 %3521 = call noundef i32 %3517(ptr %3518, i64 %3489, ptr noundef %3520) #23 %3522 = icmp sgt i32 %3521, -1 br i1 %3522, label %3523, label %3538 3523: ; preds = %3515, %3513 %3524 = getelementptr inbounds nuw i8, ptr %3487, i64 32 %3525 = load ptr, ptr %3524, align 8, !tbaa !71 %3526 = getelementptr inbounds nuw i8, ptr %3487, i64 40 %3527 = load ptr, ptr %3526, align 8, !tbaa !72 %3528 = call noundef i32 %3525(ptr %476, i64 %2430, ptr noundef %3527) #23 %3529 = icmp sgt i32 %3528, -1 br i1 %3529, label %3530, label %3538 3530: ; preds = %3523 store i64 0, ptr %3488, align 8, !tbaa !70 br label %3538 3531: ; preds = %3501 %3532 = getelementptr inbounds nuw i8, ptr %3487, i64 32 %3533 = load ptr, ptr %3532, align 8, !tbaa !71 %3534 = getelementptr inbounds nuw i8, ptr %3487, i64 40 %3535 = load ptr, ptr %3534, align 8, !tbaa !72 %3536 = call noundef i32 %3533(ptr %476, i64 %2430, ptr noundef %3535) #23 br label %3538 3537: ; preds = %3501 unreachable 3538: ; preds = %3531, %3530, %3523, %3515, %3506, %3504, %3494 %3539 = phi i32 [ 0, %3494 ], [ %3536, %3531 ], [ 0, %3504 ], [ 0, %3506 ], [ %3521, %3515 ], [ %3528, %3523 ], [ 0, %3530 ] %3540 = icmp sgt i32 %3539, -1 br i1 %3540, label %3541, label %3683 3541: ; preds = %3538, %3481 %3542 = icmp ult i64 %2430, %2281 br i1 %3542, label %3543, label %3682 3543: ; preds = %3541 %3544 = trunc nuw nsw i64 %2462 to i32 %3545 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %3546 = add nsw i32 %3545, %3544 store i32 %3546, ptr %456, align 8, !tbaa !75, !noalias !89 %3547 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3548 = getelementptr inbounds nuw i8, ptr %3547, i64 24 %3549 = load i64, ptr %3548, align 8, !tbaa !70 %3550 = add i64 %3549, %2462 %3551 = getelementptr inbounds nuw i8, ptr %3547, i64 16 %3552 = load i64, ptr %3551, align 8, !tbaa !69 %3553 = icmp ugt i64 %3550, %3552 br i1 %3553, label %3561, label %3554 3554: ; preds = %3543 %3555 = load ptr, ptr %3547, align 8, !tbaa !65 %3556 = getelementptr inbounds nuw i8, ptr %3555, i64 %3549 call void @llvm.memset.p0.i64(ptr align 1 %3556, i8 48, i64 %2462, i1 false) %3557 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3558 = getelementptr inbounds nuw i8, ptr %3557, i64 24 %3559 = load i64, ptr %3558, align 8, !tbaa !70 %3560 = add i64 %3559, %2462 store i64 %3560, ptr %3558, align 8, !tbaa !70 br label %3679 3561: ; preds = %3543 %3562 = load <2 x i64>, ptr %3551, align 8, !tbaa !15 %3563 = extractelement <2 x i64> %3562, i64 0 %3564 = extractelement <2 x i64> %3562, i64 1 %3565 = sub i64 %3563, %3564 %3566 = icmp eq i64 %3565, 0 br i1 %3566, label %3574, label %3567 3567: ; preds = %3561 %3568 = load ptr, ptr %3547, align 8, !tbaa !65 %3569 = getelementptr inbounds nuw i8, ptr %3568, i64 %3564 call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %3569, i8 48, i64 range(i64 1, 0) %3565, i1 false) %3570 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3571 = getelementptr inbounds nuw i8, ptr %3570, i64 24 %3572 = load i64, ptr %3571, align 8, !tbaa !70 %3573 = add i64 %3572, %3565 store i64 %3573, ptr %3571, align 8, !tbaa !70 br label %3574 3574: ; preds = %3567, %3561 call void @llvm.lifetime.start.p5(i64 64, ptr addrspace(5) %13) #21, !noalias !89 call void @llvm.memset.p5.i64(ptr addrspace(5) noundef align 1 dereferenceable(64) %13, i8 48, i64 64, i1 false), !noalias !89 br label %3575 3575: ; preds = %3624, %3574 %3576 = phi i64 [ %3565, %3574 ], [ %3577, %3624 ] %3577 = add i64 %3576, 64 %3578 = icmp ult i64 %3577, %2462 br i1 %3578, label %3579, label %3627 3579: ; preds = %3575 %3580 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3581 = getelementptr inbounds nuw i8, ptr %3580, i64 48 %3582 = load i32, ptr %3581, align 8, !tbaa !96 switch i32 %3582, label %3623 [ i32 0, label %3583 i32 1, label %3597 i32 2, label %3617 ] 3583: ; preds = %3579 %3584 = getelementptr inbounds nuw i8, ptr %3580, i64 16 %3585 = load <2 x i64>, ptr %3584, align 8, !tbaa !15 %3586 = extractelement <2 x i64> %3585, i64 0 %3587 = extractelement <2 x i64> %3585, i64 1 %3588 = icmp ult i64 %3587, %3586 br i1 %3588, label %3589, label %3624 3589: ; preds = %3583 %3590 = getelementptr inbounds nuw i8, ptr %3580, i64 24 %3591 = sub nuw i64 %3586, %3587 %3592 = call i64 @llvm.umin.i64(i64 %3591, i64 64) %3593 = load ptr, ptr %3580, align 8, !tbaa !65 %3594 = getelementptr inbounds nuw i8, ptr %3593, i64 %3587 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %3594, ptr align 1 %559, i64 %3592, i1 false), !alias.scope !300 %3595 = load i64, ptr %3590, align 8, !tbaa !70 %3596 = add i64 %3595, %3592 store i64 %3596, ptr %3590, align 8, !tbaa !70 br label %3624 3597: ; preds = %3579 %3598 = getelementptr inbounds nuw i8, ptr %3580, i64 24 %3599 = load i64, ptr %3598, align 8, !tbaa !70 %3600 = icmp eq i64 %3599, 0 br i1 %3600, label %3609, label %3601 3601: ; preds = %3597 %3602 = getelementptr inbounds nuw i8, ptr %3580, i64 32 %3603 = load ptr, ptr %3602, align 8, !tbaa !71 %3604 = load ptr, ptr %3580, align 8, !tbaa !65 %3605 = getelementptr inbounds nuw i8, ptr %3580, i64 40 %3606 = load ptr, ptr %3605, align 8, !tbaa !72 %3607 = call noundef i32 %3603(ptr %3604, i64 %3599, ptr noundef %3606) #23 %3608 = icmp sgt i32 %3607, -1 br i1 %3608, label %3609, label %3624 3609: ; preds = %3601, %3597 %3610 = getelementptr inbounds nuw i8, ptr %3580, i64 32 %3611 = load ptr, ptr %3610, align 8, !tbaa !71 %3612 = getelementptr inbounds nuw i8, ptr %3580, i64 40 %3613 = load ptr, ptr %3612, align 8, !tbaa !72 %3614 = call noundef i32 %3611(ptr %559, i64 64, ptr noundef %3613) #23 %3615 = icmp sgt i32 %3614, -1 br i1 %3615, label %3616, label %3624 3616: ; preds = %3609 store i64 0, ptr %3598, align 8, !tbaa !70 br label %3624 3617: ; preds = %3579 %3618 = getelementptr inbounds nuw i8, ptr %3580, i64 32 %3619 = load ptr, ptr %3618, align 8, !tbaa !71 %3620 = getelementptr inbounds nuw i8, ptr %3580, i64 40 %3621 = load ptr, ptr %3620, align 8, !tbaa !72 %3622 = call noundef i32 %3619(ptr %559, i64 64, ptr noundef %3621) #23 br label %3624 3623: ; preds = %3579 unreachable 3624: ; preds = %3617, %3616, %3609, %3601, %3589, %3583 %3625 = phi i32 [ %3622, %3617 ], [ 0, %3583 ], [ 0, %3589 ], [ %3607, %3601 ], [ %3614, %3609 ], [ 0, %3616 ] %3626 = icmp eq i32 %3625, 0 br i1 %3626, label %3575, label %3677, !llvm.loop !105 3627: ; preds = %3575 %3628 = phi i64 [ %3576, %3575 ] %3629 = sub i64 %2462, %3628 %3630 = call noundef i64 @llvm.umin.i64(i64 %3629, i64 64) %3631 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3632 = getelementptr inbounds nuw i8, ptr %3631, i64 48 %3633 = load i32, ptr %3632, align 8, !tbaa !96 switch i32 %3633, label %3676 [ i32 0, label %3634 i32 1, label %3648 i32 2, label %3670 ] 3634: ; preds = %3627 %3635 = getelementptr inbounds nuw i8, ptr %3631, i64 16 %3636 = load <2 x i64>, ptr %3635, align 8, !tbaa !15 %3637 = extractelement <2 x i64> %3636, i64 0 %3638 = extractelement <2 x i64> %3636, i64 1 %3639 = icmp ult i64 %3638, %3637 br i1 %3639, label %3640, label %3677 3640: ; preds = %3634 %3641 = getelementptr inbounds nuw i8, ptr %3631, i64 24 %3642 = sub nuw i64 %3637, %3638 %3643 = call i64 @llvm.umin.i64(i64 %3642, i64 %3630) %3644 = load ptr, ptr %3631, align 8, !tbaa !65 %3645 = getelementptr inbounds nuw i8, ptr %3644, i64 %3638 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %3645, ptr align 1 %559, i64 %3643, i1 false), !alias.scope !304 %3646 = load i64, ptr %3641, align 8, !tbaa !70 %3647 = add i64 %3646, %3643 store i64 %3647, ptr %3641, align 8, !tbaa !70 br label %3677 3648: ; preds = %3627 %3649 = getelementptr inbounds nuw i8, ptr %3631, i64 24 %3650 = load i64, ptr %3649, align 8, !tbaa !70 %3651 = icmp eq i64 %3650, 0 br i1 %3651, label %3660, label %3652 3652: ; preds = %3648 %3653 = getelementptr inbounds nuw i8, ptr %3631, i64 32 %3654 = load ptr, ptr %3653, align 8, !tbaa !71 %3655 = load ptr, ptr %3631, align 8, !tbaa !65 %3656 = getelementptr inbounds nuw i8, ptr %3631, i64 40 %3657 = load ptr, ptr %3656, align 8, !tbaa !72 %3658 = call noundef i32 %3654(ptr %3655, i64 %3650, ptr noundef %3657) #23 %3659 = icmp sgt i32 %3658, -1 br i1 %3659, label %3660, label %3677 3660: ; preds = %3652, %3648 %3661 = icmp eq i64 %2462, %3628 br i1 %3661, label %3669, label %3662 3662: ; preds = %3660 %3663 = getelementptr inbounds nuw i8, ptr %3631, i64 32 %3664 = load ptr, ptr %3663, align 8, !tbaa !71 %3665 = getelementptr inbounds nuw i8, ptr %3631, i64 40 %3666 = load ptr, ptr %3665, align 8, !tbaa !72 %3667 = call noundef i32 %3664(ptr %559, i64 %3630, ptr noundef %3666) #23 %3668 = icmp sgt i32 %3667, -1 br i1 %3668, label %3669, label %3677 3669: ; preds = %3662, %3660 store i64 0, ptr %3649, align 8, !tbaa !70 br label %3677 3670: ; preds = %3627 %3671 = getelementptr inbounds nuw i8, ptr %3631, i64 32 %3672 = load ptr, ptr %3671, align 8, !tbaa !71 %3673 = getelementptr inbounds nuw i8, ptr %3631, i64 40 %3674 = load ptr, ptr %3673, align 8, !tbaa !72 %3675 = call noundef i32 %3672(ptr %559, i64 %3630, ptr noundef %3674) #23 br label %3677 3676: ; preds = %3627 unreachable 3677: ; preds = %3670, %3669, %3662, %3652, %3640, %3634, %3624 %3678 = phi i32 [ %3675, %3670 ], [ 0, %3634 ], [ 0, %3640 ], [ %3658, %3652 ], [ %3667, %3662 ], [ 0, %3669 ], [ %3625, %3624 ] call void @llvm.lifetime.end.p5(i64 64, ptr addrspace(5) %13) #21, !noalias !89 br label %3679 3679: ; preds = %3677, %3554 %3680 = phi i32 [ 0, %3554 ], [ %3678, %3677 ] %3681 = icmp sgt i32 %3680, -1 br i1 %3681, label %3682, label %3683 3682: ; preds = %3679, %3541, %3008, %2870 br label %3683 3683: ; preds = %3682, %3679, %3538, %3478, %3422, %3356, %3212, %3153, %3008, %2867, %2726, %2666, %2610, %2543 %3684 = phi i32 [ 0, %3682 ], [ %3009, %3008 ], [ %2868, %2867 ], [ %2727, %2726 ], [ %2667, %2666 ], [ %2611, %2610 ], [ %2544, %2543 ], [ %3680, %3679 ], [ %3539, %3538 ], [ %3479, %3478 ], [ %3423, %3422 ], [ %3357, %3356 ], [ %3213, %3212 ], [ %3154, %3153 ] call void @llvm.lifetime.end.p5(i64 32, ptr addrspace(5) %22) #21, !noalias !89 call void @llvm.lifetime.end.p5(i64 32, ptr addrspace(5) %20) #21, !noalias !89 br label %4678 3685: ; preds = %585 %3686 = icmp eq ptr %582, null br i1 %3686, label %3687, label %3823 3687: ; preds = %3685 call void @llvm.lifetime.start.p5(i64 10, ptr addrspace(5) %25) #21, !noalias !89 store i8 40, ptr addrspace(5) %25, align 1, !noalias !89 store i8 110, ptr addrspace(5) %465, align 1, !noalias !89 store i8 117, ptr addrspace(5) %466, align 1, !noalias !89 store i8 108, ptr addrspace(5) %467, align 1, !noalias !89 store i8 108, ptr addrspace(5) %468, align 1, !noalias !89 store i8 112, ptr addrspace(5) %469, align 1, !noalias !89 store i8 116, ptr addrspace(5) %470, align 1, !noalias !89 store i8 114, ptr addrspace(5) %471, align 1, !noalias !89 store i8 41, ptr addrspace(5) %472, align 1, !noalias !89 store i8 0, ptr addrspace(5) %473, align 1, !noalias !89 br label %3688 3688: ; preds = %3688, %3687 %3689 = phi i64 [ 0, %3687 ], [ %3693, %3688 ] %3690 = getelementptr inbounds nuw i8, ptr %475, i64 %3689 %3691 = load i8, ptr %3690, align 1, !tbaa !19, !noalias !89 %3692 = icmp eq i8 %3691, 0 %3693 = add i64 %3689, 1 br i1 %3692, label %3694, label %3688, !llvm.loop !114 3694: ; preds = %3688 %3695 = phi i64 [ %3689, %3688 ] %3696 = zext nneg i32 %580 to i64 %3697 = call i64 @llvm.umin.i64(i64 %3695, i64 %3696) %3698 = icmp slt i32 %580, 0 %3699 = select i1 %3698, i64 %3695, i64 %3697 %3700 = trunc i64 %3699 to i32 %3701 = icmp sgt i32 %579, %3700 %3702 = sext i32 %579 to i64 %3703 = sub i64 %3702, %3699 %3704 = select i1 %3701, i64 %3703, i64 0 %3705 = icmp eq i64 %3704, 0 %3706 = and i8 %576, 1 %3707 = icmp ne i8 %3706, 0 %3708 = select i1 %3705, i1 true, i1 %3707 %3709 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3710 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 br i1 %3708, label %3735, label %3711 3711: ; preds = %3694 %3712 = trunc i64 %3704 to i32 %3713 = add nsw i32 %3710, %3712 store i32 %3713, ptr %456, align 8, !tbaa !75, !noalias !89 %3714 = getelementptr inbounds nuw i8, ptr %3709, i64 24 %3715 = load i64, ptr %3714, align 8, !tbaa !70 %3716 = add i64 %3715, %3704 %3717 = getelementptr inbounds nuw i8, ptr %3709, i64 16 %3718 = load i64, ptr %3717, align 8, !tbaa !69 %3719 = icmp ugt i64 %3716, %3718 br i1 %3719, label %3727, label %3720 3720: ; preds = %3711 %3721 = load ptr, ptr %3709, align 8, !tbaa !65 %3722 = getelementptr inbounds nuw i8, ptr %3721, i64 %3715 call void @llvm.memset.p0.i64(ptr align 1 %3722, i8 32, i64 %3704, i1 false) %3723 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3724 = getelementptr inbounds nuw i8, ptr %3723, i64 24 %3725 = load i64, ptr %3724, align 8, !tbaa !70 %3726 = add i64 %3725, %3704 store i64 %3726, ptr %3724, align 8, !tbaa !70 br label %3729 3727: ; preds = %3711 %3728 = call fastcc noundef i32 @_ZN22__llvm_libc_20_0_0_git11printf_core6Writer3padEcm(ptr noundef nonnull align 8 dereferenceable(16) %32, i8 noundef signext 32, i64 noundef %3704) #23 br label %3729 3729: ; preds = %3727, %3720 %3730 = phi i32 [ 0, %3720 ], [ %3728, %3727 ] %3731 = icmp sgt i32 %3730, -1 br i1 %3731, label %3732, label %3821 3732: ; preds = %3729 %3733 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3734 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 br label %3735 3735: ; preds = %3732, %3694 %3736 = phi i32 [ %3734, %3732 ], [ %3710, %3694 ] %3737 = phi ptr [ %3733, %3732 ], [ %3709, %3694 ] %3738 = add nsw i32 %3736, %3700 store i32 %3738, ptr %456, align 8, !tbaa !75, !noalias !89 %3739 = getelementptr inbounds nuw i8, ptr %3737, i64 24 %3740 = load i64, ptr %3739, align 8, !tbaa !70 %3741 = add i64 %3740, %3699 %3742 = getelementptr inbounds nuw i8, ptr %3737, i64 16 %3743 = load i64, ptr %3742, align 8, !tbaa !69 %3744 = icmp ugt i64 %3741, %3743 br i1 %3744, label %3752, label %3745 3745: ; preds = %3735 %3746 = load ptr, ptr %3737, align 8, !tbaa !65 %3747 = getelementptr inbounds nuw i8, ptr %3746, i64 %3740 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %3747, ptr nonnull align 1 %475, i64 %3699, i1 false), !alias.scope !308 %3748 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3749 = getelementptr inbounds nuw i8, ptr %3748, i64 24 %3750 = load i64, ptr %3749, align 8, !tbaa !70 %3751 = add i64 %3750, %3699 store i64 %3751, ptr %3749, align 8, !tbaa !70 br label %3791 3752: ; preds = %3735 %3753 = getelementptr inbounds nuw i8, ptr %3737, i64 48 %3754 = load i32, ptr %3753, align 8, !tbaa !96 switch i32 %3754, label %3790 [ i32 0, label %3755 i32 1, label %3764 i32 2, label %3784 ] 3755: ; preds = %3752 %3756 = icmp ult i64 %3740, %3743 br i1 %3756, label %3757, label %3791 3757: ; preds = %3755 %3758 = sub nuw i64 %3743, %3740 %3759 = call i64 @llvm.umin.i64(i64 %3758, i64 %3699) %3760 = load ptr, ptr %3737, align 8, !tbaa !65 %3761 = getelementptr inbounds nuw i8, ptr %3760, i64 %3740 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %3761, ptr nonnull align 1 %475, i64 %3759, i1 false), !alias.scope !312 %3762 = load i64, ptr %3739, align 8, !tbaa !70 %3763 = add i64 %3762, %3759 store i64 %3763, ptr %3739, align 8, !tbaa !70 br label %3791 3764: ; preds = %3752 %3765 = icmp eq i64 %3740, 0 br i1 %3765, label %3774, label %3766 3766: ; preds = %3764 %3767 = getelementptr inbounds nuw i8, ptr %3737, i64 32 %3768 = load ptr, ptr %3767, align 8, !tbaa !71 %3769 = load ptr, ptr %3737, align 8, !tbaa !65 %3770 = getelementptr inbounds nuw i8, ptr %3737, i64 40 %3771 = load ptr, ptr %3770, align 8, !tbaa !72 %3772 = call noundef i32 %3768(ptr %3769, i64 %3740, ptr noundef %3771) #23 %3773 = icmp sgt i32 %3772, -1 br i1 %3773, label %3774, label %3791 3774: ; preds = %3766, %3764 %3775 = icmp eq i64 %3699, 0 br i1 %3775, label %3783, label %3776 3776: ; preds = %3774 %3777 = getelementptr inbounds nuw i8, ptr %3737, i64 32 %3778 = load ptr, ptr %3777, align 8, !tbaa !71 %3779 = getelementptr inbounds nuw i8, ptr %3737, i64 40 %3780 = load ptr, ptr %3779, align 8, !tbaa !72 %3781 = call noundef i32 %3778(ptr nonnull %475, i64 %3699, ptr noundef %3780) #23 %3782 = icmp sgt i32 %3781, -1 br i1 %3782, label %3783, label %3791 3783: ; preds = %3776, %3774 store i64 0, ptr %3739, align 8, !tbaa !70 br label %3791 3784: ; preds = %3752 %3785 = getelementptr inbounds nuw i8, ptr %3737, i64 32 %3786 = load ptr, ptr %3785, align 8, !tbaa !71 %3787 = getelementptr inbounds nuw i8, ptr %3737, i64 40 %3788 = load ptr, ptr %3787, align 8, !tbaa !72 %3789 = call noundef i32 %3786(ptr nonnull %475, i64 %3699, ptr noundef %3788) #23 br label %3791 3790: ; preds = %3752 unreachable 3791: ; preds = %3784, %3783, %3776, %3766, %3757, %3755, %3745 %3792 = phi i32 [ 0, %3745 ], [ %3789, %3784 ], [ 0, %3755 ], [ 0, %3757 ], [ %3772, %3766 ], [ %3781, %3776 ], [ 0, %3783 ] %3793 = icmp sgt i32 %3792, -1 br i1 %3793, label %3794, label %3821 3794: ; preds = %3791 %3795 = icmp eq i8 %3706, 0 %3796 = select i1 %3705, i1 true, i1 %3795 br i1 %3796, label %3820, label %3797 3797: ; preds = %3794 %3798 = trunc i64 %3704 to i32 %3799 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %3800 = add nsw i32 %3799, %3798 store i32 %3800, ptr %456, align 8, !tbaa !75, !noalias !89 %3801 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3802 = getelementptr inbounds nuw i8, ptr %3801, i64 24 %3803 = load i64, ptr %3802, align 8, !tbaa !70 %3804 = add i64 %3803, %3704 %3805 = getelementptr inbounds nuw i8, ptr %3801, i64 16 %3806 = load i64, ptr %3805, align 8, !tbaa !69 %3807 = icmp ugt i64 %3804, %3806 br i1 %3807, label %3815, label %3808 3808: ; preds = %3797 %3809 = load ptr, ptr %3801, align 8, !tbaa !65 %3810 = getelementptr inbounds nuw i8, ptr %3809, i64 %3803 call void @llvm.memset.p0.i64(ptr align 1 %3810, i8 32, i64 %3704, i1 false) %3811 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3812 = getelementptr inbounds nuw i8, ptr %3811, i64 24 %3813 = load i64, ptr %3812, align 8, !tbaa !70 %3814 = add i64 %3813, %3704 store i64 %3814, ptr %3812, align 8, !tbaa !70 br label %3817 3815: ; preds = %3797 %3816 = call fastcc noundef i32 @_ZN22__llvm_libc_20_0_0_git11printf_core6Writer3padEcm(ptr noundef nonnull align 8 dereferenceable(16) %32, i8 noundef signext 32, i64 noundef %3704) #23 br label %3817 3817: ; preds = %3815, %3808 %3818 = phi i32 [ 0, %3808 ], [ %3816, %3815 ] %3819 = icmp sgt i32 %3818, -1 br i1 %3819, label %3820, label %3821 3820: ; preds = %3817, %3794 br label %3821 3821: ; preds = %3820, %3817, %3791, %3729 %3822 = phi i32 [ 0, %3820 ], [ %3818, %3817 ], [ %3792, %3791 ], [ %3730, %3729 ] call void @llvm.lifetime.end.p5(i64 10, ptr addrspace(5) %25) #21, !noalias !89 br label %4678 3823: ; preds = %3685 %3824 = ptrtoint ptr %582 to i64 call void @llvm.lifetime.start.p5(i64 64, ptr addrspace(5) %23) #21, !noalias !89 call void @llvm.memset.p5.i64(ptr addrspace(5) noundef align 1 dereferenceable(64) %23, i8 -86, i64 64, i1 false), !noalias !89 br label %3825 3825: ; preds = %3841, %3823 %3826 = phi i64 [ %3842, %3841 ], [ 0, %3823 ] %3827 = phi i64 [ %3843, %3841 ], [ 0, %3823 ] %3828 = phi i64 [ %3844, %3841 ], [ %3824, %3823 ] %3829 = icmp eq i64 %3827, 64 br i1 %3829, label %3841, label %3830 3830: ; preds = %3825 %3831 = trunc i64 %3828 to i8 %3832 = and i8 %3831, 15 %3833 = icmp samesign ult i8 %3832, 10 %3834 = or disjoint i8 %3832, 48 %3835 = add nuw nsw i8 %3832, 87 %3836 = select i1 %3833, i8 %3834, i8 %3835 %3837 = trunc i64 %3827 to i32 %3838 = xor i32 %3837, -1 %3839 = getelementptr i8, ptr addrspace(5) %457, i32 %3838 store i8 %3836, ptr addrspace(5) %3839, align 1, !tbaa !19, !noalias !89 %3840 = add i64 %3826, 1 br label %3841 3841: ; preds = %3830, %3825 %3842 = phi i64 [ %3840, %3830 ], [ %3826, %3825 ] %3843 = phi i64 [ %3840, %3830 ], [ 64, %3825 ] %3844 = lshr i64 %3828, 4 %3845 = icmp ult i64 %3828, 16 %3846 = select i1 %3829, i1 true, i1 %3845 br i1 %3846, label %3847, label %3825, !llvm.loop !131 3847: ; preds = %3841 br i1 %3829, label %3853, label %3848 3848: ; preds = %3847 %3849 = call i64 @llvm.umax.i64(i64 %3842, i64 1) %3850 = icmp eq i64 %3842, 0 %3851 = load i8, ptr addrspace(5) %459, align 1, !tbaa !19, !noalias !89 %3852 = select i1 %3850, i8 48, i8 %3851 store i8 %3852, ptr addrspace(5) %459, align 1, !tbaa !19, !noalias !89 br label %3853 3853: ; preds = %3848, %3847 %3854 = phi i64 [ %3842, %3847 ], [ %3849, %3848 ] %3855 = trunc i64 %3854 to i32 %3856 = sub i32 0, %3855 %3857 = getelementptr inbounds i8, ptr addrspace(5) %457, i32 %3856 %3858 = addrspacecast ptr addrspace(5) %3857 to ptr br i1 %3829, label %4566, label %3859 3859: ; preds = %3853 call void @llvm.lifetime.start.p5(i64 2, ptr addrspace(5) %24) #21, !noalias !89 store i8 48, ptr addrspace(5) %24, align 2, !tbaa !19, !noalias !89 store i8 120, ptr addrspace(5) %460, align 1, !tbaa !19, !noalias !89 %3860 = icmp slt i32 %580, 0 %3861 = add i32 %579, -2 br i1 %3860, label %3862, label %3868 3862: ; preds = %3859 %3863 = and i8 %576, 17 %3864 = icmp eq i8 %3863, 16 %3865 = sub i32 %3861, %3855 %3866 = select i1 %3864, i32 0, i32 %3865 %3867 = select i1 %3864, i32 %3865, i32 0 br label %3873 3868: ; preds = %3859 %3869 = sub i32 %580, %3855 %3870 = call i32 @llvm.smax.i32(i32 %3869, i32 0) %3871 = add i32 %3870, %3855 %3872 = sub i32 %3861, %3871 br label %3873 3873: ; preds = %3868, %3862 %3874 = phi i32 [ %3872, %3868 ], [ %3866, %3862 ] %3875 = phi i32 [ %3870, %3868 ], [ %3867, %3862 ] %3876 = and i8 %576, 1 %3877 = icmp eq i8 %3876, 0 br i1 %3877, label %4161, label %3878 3878: ; preds = %3873 %3879 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %3880 = add nsw i32 %3879, 2 store i32 %3880, ptr %456, align 8, !tbaa !75, !noalias !89 %3881 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3882 = getelementptr inbounds nuw i8, ptr %3881, i64 24 %3883 = load i64, ptr %3882, align 8, !tbaa !70 %3884 = add i64 %3883, 2 %3885 = getelementptr inbounds nuw i8, ptr %3881, i64 16 %3886 = load i64, ptr %3885, align 8, !tbaa !69 %3887 = icmp ugt i64 %3884, %3886 br i1 %3887, label %3896, label %3888 3888: ; preds = %3878 %3889 = load ptr, ptr %3881, align 8, !tbaa !65 %3890 = getelementptr inbounds nuw i8, ptr %3889, i64 %3883 %3891 = load i16, ptr addrspace(5) %24, align 2, !alias.scope !316, !noalias !89 store i16 %3891, ptr %3890, align 1, !alias.scope !316 %3892 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3893 = getelementptr inbounds nuw i8, ptr %3892, i64 24 %3894 = load i64, ptr %3893, align 8, !tbaa !70 %3895 = add i64 %3894, 2 store i64 %3895, ptr %3893, align 8, !tbaa !70 br label %3933 3896: ; preds = %3878 %3897 = getelementptr inbounds nuw i8, ptr %3881, i64 48 %3898 = load i32, ptr %3897, align 8, !tbaa !96 switch i32 %3898, label %3932 [ i32 0, label %3899 i32 1, label %3908 i32 2, label %3926 ] 3899: ; preds = %3896 %3900 = icmp ult i64 %3883, %3886 br i1 %3900, label %3901, label %3933 3901: ; preds = %3899 %3902 = sub nuw i64 %3886, %3883 %3903 = call i64 @llvm.umin.i64(i64 %3902, i64 2) %3904 = load ptr, ptr %3881, align 8, !tbaa !65 %3905 = getelementptr inbounds nuw i8, ptr %3904, i64 %3883 call void @llvm.memcpy.p0.p5.i64(ptr align 1 %3905, ptr addrspace(5) align 2 %24, i64 %3903, i1 false), !alias.scope !320 %3906 = load i64, ptr %3882, align 8, !tbaa !70 %3907 = add i64 %3906, %3903 store i64 %3907, ptr %3882, align 8, !tbaa !70 br label %3933 3908: ; preds = %3896 %3909 = icmp eq i64 %3883, 0 br i1 %3909, label %3918, label %3910 3910: ; preds = %3908 %3911 = getelementptr inbounds nuw i8, ptr %3881, i64 32 %3912 = load ptr, ptr %3911, align 8, !tbaa !71 %3913 = load ptr, ptr %3881, align 8, !tbaa !65 %3914 = getelementptr inbounds nuw i8, ptr %3881, i64 40 %3915 = load ptr, ptr %3914, align 8, !tbaa !72 %3916 = call noundef i32 %3912(ptr %3913, i64 %3883, ptr noundef %3915) #23 %3917 = icmp sgt i32 %3916, -1 br i1 %3917, label %3918, label %3933 3918: ; preds = %3910, %3908 %3919 = getelementptr inbounds nuw i8, ptr %3881, i64 32 %3920 = load ptr, ptr %3919, align 8, !tbaa !71 %3921 = getelementptr inbounds nuw i8, ptr %3881, i64 40 %3922 = load ptr, ptr %3921, align 8, !tbaa !72 %3923 = call noundef i32 %3920(ptr %458, i64 2, ptr noundef %3922) #23 %3924 = icmp sgt i32 %3923, -1 br i1 %3924, label %3925, label %3933 3925: ; preds = %3918 store i64 0, ptr %3882, align 8, !tbaa !70 br label %3933 3926: ; preds = %3896 %3927 = getelementptr inbounds nuw i8, ptr %3881, i64 32 %3928 = load ptr, ptr %3927, align 8, !tbaa !71 %3929 = getelementptr inbounds nuw i8, ptr %3881, i64 40 %3930 = load ptr, ptr %3929, align 8, !tbaa !72 %3931 = call noundef i32 %3928(ptr %458, i64 2, ptr noundef %3930) #23 br label %3933 3932: ; preds = %3896 unreachable 3933: ; preds = %3926, %3925, %3918, %3910, %3901, %3899, %3888 %3934 = phi i32 [ 0, %3888 ], [ %3931, %3926 ], [ 0, %3899 ], [ 0, %3901 ], [ %3916, %3910 ], [ %3923, %3918 ], [ 0, %3925 ] %3935 = icmp sgt i32 %3934, -1 br i1 %3935, label %3936, label %4564 3936: ; preds = %3933 %3937 = icmp sgt i32 %3875, 0 br i1 %3937, label %3938, label %3961 3938: ; preds = %3936 %3939 = zext nneg i32 %3875 to i64 %3940 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %3941 = add nsw i32 %3940, %3875 store i32 %3941, ptr %456, align 8, !tbaa !75, !noalias !89 %3942 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3943 = getelementptr inbounds nuw i8, ptr %3942, i64 24 %3944 = load i64, ptr %3943, align 8, !tbaa !70 %3945 = add i64 %3944, %3939 %3946 = getelementptr inbounds nuw i8, ptr %3942, i64 16 %3947 = load i64, ptr %3946, align 8, !tbaa !69 %3948 = icmp ugt i64 %3945, %3947 br i1 %3948, label %3956, label %3949 3949: ; preds = %3938 %3950 = load ptr, ptr %3942, align 8, !tbaa !65 %3951 = getelementptr inbounds nuw i8, ptr %3950, i64 %3944 call void @llvm.memset.p0.i64(ptr align 1 %3951, i8 48, i64 %3939, i1 false) %3952 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3953 = getelementptr inbounds nuw i8, ptr %3952, i64 24 %3954 = load i64, ptr %3953, align 8, !tbaa !70 %3955 = add i64 %3954, %3939 store i64 %3955, ptr %3953, align 8, !tbaa !70 br label %3958 3956: ; preds = %3938 %3957 = call fastcc noundef i32 @_ZN22__llvm_libc_20_0_0_git11printf_core6Writer3padEcm(ptr noundef nonnull align 8 dereferenceable(16) %32, i8 noundef signext 48, i64 noundef %3939) #23 br label %3958 3958: ; preds = %3956, %3949 %3959 = phi i32 [ 0, %3949 ], [ %3957, %3956 ] %3960 = icmp sgt i32 %3959, -1 br i1 %3960, label %3961, label %4564 3961: ; preds = %3958, %3936 %3962 = icmp eq i64 %3854, 0 br i1 %3962, label %4020, label %3963 3963: ; preds = %3961 %3964 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %3965 = add nsw i32 %3964, %3855 store i32 %3965, ptr %456, align 8, !tbaa !75, !noalias !89 %3966 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3967 = getelementptr inbounds nuw i8, ptr %3966, i64 24 %3968 = load i64, ptr %3967, align 8, !tbaa !70 %3969 = add i64 %3968, %3854 %3970 = getelementptr inbounds nuw i8, ptr %3966, i64 16 %3971 = load i64, ptr %3970, align 8, !tbaa !69 %3972 = icmp ugt i64 %3969, %3971 br i1 %3972, label %3980, label %3973 3973: ; preds = %3963 %3974 = load ptr, ptr %3966, align 8, !tbaa !65 %3975 = getelementptr inbounds nuw i8, ptr %3974, i64 %3968 call void @llvm.memcpy.p0.p5.i64(ptr align 1 %3975, ptr addrspace(5) align 1 %3857, i64 %3854, i1 false), !alias.scope !324 %3976 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %3977 = getelementptr inbounds nuw i8, ptr %3976, i64 24 %3978 = load i64, ptr %3977, align 8, !tbaa !70 %3979 = add i64 %3978, %3854 store i64 %3979, ptr %3977, align 8, !tbaa !70 br label %4017 3980: ; preds = %3963 %3981 = getelementptr inbounds nuw i8, ptr %3966, i64 48 %3982 = load i32, ptr %3981, align 8, !tbaa !96 switch i32 %3982, label %4016 [ i32 0, label %3983 i32 1, label %3992 i32 2, label %4010 ] 3983: ; preds = %3980 %3984 = icmp ult i64 %3968, %3971 br i1 %3984, label %3985, label %4017 3985: ; preds = %3983 %3986 = sub nuw i64 %3971, %3968 %3987 = call i64 @llvm.umin.i64(i64 %3986, i64 %3854) %3988 = load ptr, ptr %3966, align 8, !tbaa !65 %3989 = getelementptr inbounds nuw i8, ptr %3988, i64 %3968 call void @llvm.memcpy.p0.p5.i64(ptr align 1 %3989, ptr addrspace(5) align 1 %3857, i64 %3987, i1 false), !alias.scope !328 %3990 = load i64, ptr %3967, align 8, !tbaa !70 %3991 = add i64 %3990, %3987 store i64 %3991, ptr %3967, align 8, !tbaa !70 br label %4017 3992: ; preds = %3980 %3993 = icmp eq i64 %3968, 0 br i1 %3993, label %4002, label %3994 3994: ; preds = %3992 %3995 = getelementptr inbounds nuw i8, ptr %3966, i64 32 %3996 = load ptr, ptr %3995, align 8, !tbaa !71 %3997 = load ptr, ptr %3966, align 8, !tbaa !65 %3998 = getelementptr inbounds nuw i8, ptr %3966, i64 40 %3999 = load ptr, ptr %3998, align 8, !tbaa !72 %4000 = call noundef i32 %3996(ptr %3997, i64 %3968, ptr noundef %3999) #23 %4001 = icmp sgt i32 %4000, -1 br i1 %4001, label %4002, label %4017 4002: ; preds = %3994, %3992 %4003 = getelementptr inbounds nuw i8, ptr %3966, i64 32 %4004 = load ptr, ptr %4003, align 8, !tbaa !71 %4005 = getelementptr inbounds nuw i8, ptr %3966, i64 40 %4006 = load ptr, ptr %4005, align 8, !tbaa !72 %4007 = call noundef i32 %4004(ptr nonnull %3858, i64 %3854, ptr noundef %4006) #23 %4008 = icmp sgt i32 %4007, -1 br i1 %4008, label %4009, label %4017 4009: ; preds = %4002 store i64 0, ptr %3967, align 8, !tbaa !70 br label %4017 4010: ; preds = %3980 %4011 = getelementptr inbounds nuw i8, ptr %3966, i64 32 %4012 = load ptr, ptr %4011, align 8, !tbaa !71 %4013 = getelementptr inbounds nuw i8, ptr %3966, i64 40 %4014 = load ptr, ptr %4013, align 8, !tbaa !72 %4015 = call noundef i32 %4012(ptr nonnull %3858, i64 %3854, ptr noundef %4014) #23 br label %4017 4016: ; preds = %3980 unreachable 4017: ; preds = %4010, %4009, %4002, %3994, %3985, %3983, %3973 %4018 = phi i32 [ 0, %3973 ], [ %4015, %4010 ], [ 0, %3983 ], [ 0, %3985 ], [ %4000, %3994 ], [ %4007, %4002 ], [ 0, %4009 ] %4019 = icmp sgt i32 %4018, -1 br i1 %4019, label %4020, label %4564 4020: ; preds = %4017, %3961 %4021 = icmp sgt i32 %3874, 0 br i1 %4021, label %4022, label %4563 4022: ; preds = %4020 %4023 = zext nneg i32 %3874 to i64 %4024 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %4025 = add nsw i32 %4024, %3874 store i32 %4025, ptr %456, align 8, !tbaa !75, !noalias !89 %4026 = load ptr, ptr %32, align 8, !tbaa !73 %4027 = getelementptr inbounds nuw i8, ptr %4026, i64 24 %4028 = load i64, ptr %4027, align 8, !tbaa !70 %4029 = add i64 %4028, %4023 %4030 = getelementptr inbounds nuw i8, ptr %4026, i64 16 %4031 = load i64, ptr %4030, align 8, !tbaa !69 %4032 = icmp ugt i64 %4029, %4031 br i1 %4032, label %4040, label %4033 4033: ; preds = %4022 %4034 = load ptr, ptr %4026, align 8, !tbaa !65 %4035 = getelementptr inbounds nuw i8, ptr %4034, i64 %4028 call void @llvm.memset.p0.i64(ptr align 1 %4035, i8 32, i64 %4023, i1 false) %4036 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %4037 = getelementptr inbounds nuw i8, ptr %4036, i64 24 %4038 = load i64, ptr %4037, align 8, !tbaa !70 %4039 = add i64 %4038, %4023 store i64 %4039, ptr %4037, align 8, !tbaa !70 br label %4158 4040: ; preds = %4022 %4041 = load <2 x i64>, ptr %4030, align 8, !tbaa !15 %4042 = extractelement <2 x i64> %4041, i64 0 %4043 = extractelement <2 x i64> %4041, i64 1 %4044 = sub i64 %4042, %4043 %4045 = icmp eq i64 %4044, 0 br i1 %4045, label %4053, label %4046 4046: ; preds = %4040 %4047 = load ptr, ptr %4026, align 8, !tbaa !65 %4048 = getelementptr inbounds nuw i8, ptr %4047, i64 %4043 call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %4048, i8 32, i64 range(i64 1, 0) %4044, i1 false) %4049 = load ptr, ptr %32, align 8, !tbaa !73 %4050 = getelementptr inbounds nuw i8, ptr %4049, i64 24 %4051 = load i64, ptr %4050, align 8, !tbaa !70 %4052 = add i64 %4051, %4044 store i64 %4052, ptr %4050, align 8, !tbaa !70 br label %4053 4053: ; preds = %4046, %4040 call void @llvm.lifetime.start.p5(i64 64, ptr addrspace(5) %4) #21 call void @llvm.memset.p5.i64(ptr addrspace(5) noundef align 1 dereferenceable(64) %4, i8 32, i64 64, i1 false) br label %4054 4054: ; preds = %4103, %4053 %4055 = phi i64 [ %4044, %4053 ], [ %4056, %4103 ] %4056 = add i64 %4055, 64 %4057 = icmp ult i64 %4056, %4023 br i1 %4057, label %4058, label %4106 4058: ; preds = %4054 %4059 = load ptr, ptr %32, align 8, !tbaa !73 %4060 = getelementptr inbounds nuw i8, ptr %4059, i64 48 %4061 = load i32, ptr %4060, align 8, !tbaa !96 switch i32 %4061, label %4102 [ i32 0, label %4062 i32 1, label %4076 i32 2, label %4096 ] 4062: ; preds = %4058 %4063 = getelementptr inbounds nuw i8, ptr %4059, i64 16 %4064 = load <2 x i64>, ptr %4063, align 8, !tbaa !15 %4065 = extractelement <2 x i64> %4064, i64 0 %4066 = extractelement <2 x i64> %4064, i64 1 %4067 = icmp ult i64 %4066, %4065 br i1 %4067, label %4068, label %4103 4068: ; preds = %4062 %4069 = getelementptr inbounds nuw i8, ptr %4059, i64 24 %4070 = sub nuw i64 %4065, %4066 %4071 = call i64 @llvm.umin.i64(i64 %4070, i64 64) %4072 = load ptr, ptr %4059, align 8, !tbaa !65 %4073 = getelementptr inbounds nuw i8, ptr %4072, i64 %4066 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %4073, ptr align 1 %461, i64 %4071, i1 false), !alias.scope !332 %4074 = load i64, ptr %4069, align 8, !tbaa !70 %4075 = add i64 %4074, %4071 store i64 %4075, ptr %4069, align 8, !tbaa !70 br label %4103 4076: ; preds = %4058 %4077 = getelementptr inbounds nuw i8, ptr %4059, i64 24 %4078 = load i64, ptr %4077, align 8, !tbaa !70 %4079 = icmp eq i64 %4078, 0 br i1 %4079, label %4088, label %4080 4080: ; preds = %4076 %4081 = getelementptr inbounds nuw i8, ptr %4059, i64 32 %4082 = load ptr, ptr %4081, align 8, !tbaa !71 %4083 = load ptr, ptr %4059, align 8, !tbaa !65 %4084 = getelementptr inbounds nuw i8, ptr %4059, i64 40 %4085 = load ptr, ptr %4084, align 8, !tbaa !72 %4086 = call noundef i32 %4082(ptr %4083, i64 %4078, ptr noundef %4085) #23 %4087 = icmp sgt i32 %4086, -1 br i1 %4087, label %4088, label %4103 4088: ; preds = %4080, %4076 %4089 = getelementptr inbounds nuw i8, ptr %4059, i64 32 %4090 = load ptr, ptr %4089, align 8, !tbaa !71 %4091 = getelementptr inbounds nuw i8, ptr %4059, i64 40 %4092 = load ptr, ptr %4091, align 8, !tbaa !72 %4093 = call noundef i32 %4090(ptr %461, i64 64, ptr noundef %4092) #23 %4094 = icmp sgt i32 %4093, -1 br i1 %4094, label %4095, label %4103 4095: ; preds = %4088 store i64 0, ptr %4077, align 8, !tbaa !70 br label %4103 4096: ; preds = %4058 %4097 = getelementptr inbounds nuw i8, ptr %4059, i64 32 %4098 = load ptr, ptr %4097, align 8, !tbaa !71 %4099 = getelementptr inbounds nuw i8, ptr %4059, i64 40 %4100 = load ptr, ptr %4099, align 8, !tbaa !72 %4101 = call noundef i32 %4098(ptr %461, i64 64, ptr noundef %4100) #23 br label %4103 4102: ; preds = %4058 unreachable 4103: ; preds = %4096, %4095, %4088, %4080, %4068, %4062 %4104 = phi i32 [ %4101, %4096 ], [ 0, %4062 ], [ 0, %4068 ], [ %4086, %4080 ], [ %4093, %4088 ], [ 0, %4095 ] %4105 = icmp eq i32 %4104, 0 br i1 %4105, label %4054, label %4156, !llvm.loop !105 4106: ; preds = %4054 %4107 = phi i64 [ %4055, %4054 ] %4108 = sub i64 %4023, %4107 %4109 = call noundef i64 @llvm.umin.i64(i64 %4108, i64 64) %4110 = load ptr, ptr %32, align 8, !tbaa !73 %4111 = getelementptr inbounds nuw i8, ptr %4110, i64 48 %4112 = load i32, ptr %4111, align 8, !tbaa !96 switch i32 %4112, label %4155 [ i32 0, label %4113 i32 1, label %4127 i32 2, label %4149 ] 4113: ; preds = %4106 %4114 = getelementptr inbounds nuw i8, ptr %4110, i64 16 %4115 = load <2 x i64>, ptr %4114, align 8, !tbaa !15 %4116 = extractelement <2 x i64> %4115, i64 0 %4117 = extractelement <2 x i64> %4115, i64 1 %4118 = icmp ult i64 %4117, %4116 br i1 %4118, label %4119, label %4156 4119: ; preds = %4113 %4120 = getelementptr inbounds nuw i8, ptr %4110, i64 24 %4121 = sub nuw i64 %4116, %4117 %4122 = call i64 @llvm.umin.i64(i64 %4121, i64 %4109) %4123 = load ptr, ptr %4110, align 8, !tbaa !65 %4124 = getelementptr inbounds nuw i8, ptr %4123, i64 %4117 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %4124, ptr align 1 %461, i64 %4122, i1 false), !alias.scope !336 %4125 = load i64, ptr %4120, align 8, !tbaa !70 %4126 = add i64 %4125, %4122 store i64 %4126, ptr %4120, align 8, !tbaa !70 br label %4156 4127: ; preds = %4106 %4128 = getelementptr inbounds nuw i8, ptr %4110, i64 24 %4129 = load i64, ptr %4128, align 8, !tbaa !70 %4130 = icmp eq i64 %4129, 0 br i1 %4130, label %4139, label %4131 4131: ; preds = %4127 %4132 = getelementptr inbounds nuw i8, ptr %4110, i64 32 %4133 = load ptr, ptr %4132, align 8, !tbaa !71 %4134 = load ptr, ptr %4110, align 8, !tbaa !65 %4135 = getelementptr inbounds nuw i8, ptr %4110, i64 40 %4136 = load ptr, ptr %4135, align 8, !tbaa !72 %4137 = call noundef i32 %4133(ptr %4134, i64 %4129, ptr noundef %4136) #23 %4138 = icmp sgt i32 %4137, -1 br i1 %4138, label %4139, label %4156 4139: ; preds = %4131, %4127 %4140 = icmp eq i64 %4107, %4023 br i1 %4140, label %4148, label %4141 4141: ; preds = %4139 %4142 = getelementptr inbounds nuw i8, ptr %4110, i64 32 %4143 = load ptr, ptr %4142, align 8, !tbaa !71 %4144 = getelementptr inbounds nuw i8, ptr %4110, i64 40 %4145 = load ptr, ptr %4144, align 8, !tbaa !72 %4146 = call noundef i32 %4143(ptr %461, i64 %4109, ptr noundef %4145) #23 %4147 = icmp sgt i32 %4146, -1 br i1 %4147, label %4148, label %4156 4148: ; preds = %4141, %4139 store i64 0, ptr %4128, align 8, !tbaa !70 br label %4156 4149: ; preds = %4106 %4150 = getelementptr inbounds nuw i8, ptr %4110, i64 32 %4151 = load ptr, ptr %4150, align 8, !tbaa !71 %4152 = getelementptr inbounds nuw i8, ptr %4110, i64 40 %4153 = load ptr, ptr %4152, align 8, !tbaa !72 %4154 = call noundef i32 %4151(ptr %461, i64 %4109, ptr noundef %4153) #23 br label %4156 4155: ; preds = %4106 unreachable 4156: ; preds = %4149, %4148, %4141, %4131, %4119, %4113, %4103 %4157 = phi i32 [ %4154, %4149 ], [ 0, %4113 ], [ 0, %4119 ], [ %4137, %4131 ], [ %4146, %4141 ], [ 0, %4148 ], [ %4104, %4103 ] call void @llvm.lifetime.end.p5(i64 64, ptr addrspace(5) %4) #21 br label %4158 4158: ; preds = %4156, %4033 %4159 = phi i32 [ 0, %4033 ], [ %4157, %4156 ] %4160 = icmp sgt i32 %4159, -1 br i1 %4160, label %4563, label %4564 4161: ; preds = %3873 %4162 = icmp sgt i32 %3874, 0 %4163 = load ptr, ptr %32, align 8, !tbaa !73 %4164 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 br i1 %4162, label %4165, label %4305 4165: ; preds = %4161 %4166 = zext nneg i32 %3874 to i64 %4167 = add nsw i32 %4164, %3874 store i32 %4167, ptr %456, align 8, !tbaa !75, !noalias !89 %4168 = getelementptr inbounds nuw i8, ptr %4163, i64 24 %4169 = load i64, ptr %4168, align 8, !tbaa !70 %4170 = add i64 %4169, %4166 %4171 = getelementptr inbounds nuw i8, ptr %4163, i64 16 %4172 = load i64, ptr %4171, align 8, !tbaa !69 %4173 = icmp ugt i64 %4170, %4172 br i1 %4173, label %4181, label %4174 4174: ; preds = %4165 %4175 = load ptr, ptr %4163, align 8, !tbaa !65 %4176 = getelementptr inbounds nuw i8, ptr %4175, i64 %4169 call void @llvm.memset.p0.i64(ptr align 1 %4176, i8 32, i64 %4166, i1 false) %4177 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %4178 = getelementptr inbounds nuw i8, ptr %4177, i64 24 %4179 = load i64, ptr %4178, align 8, !tbaa !70 %4180 = add i64 %4179, %4166 store i64 %4180, ptr %4178, align 8, !tbaa !70 br label %4299 4181: ; preds = %4165 %4182 = load <2 x i64>, ptr %4171, align 8, !tbaa !15 %4183 = extractelement <2 x i64> %4182, i64 0 %4184 = extractelement <2 x i64> %4182, i64 1 %4185 = sub i64 %4183, %4184 %4186 = icmp eq i64 %4185, 0 br i1 %4186, label %4194, label %4187 4187: ; preds = %4181 %4188 = load ptr, ptr %4163, align 8, !tbaa !65 %4189 = getelementptr inbounds nuw i8, ptr %4188, i64 %4184 call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %4189, i8 32, i64 range(i64 1, 0) %4185, i1 false) %4190 = load ptr, ptr %32, align 8, !tbaa !73 %4191 = getelementptr inbounds nuw i8, ptr %4190, i64 24 %4192 = load i64, ptr %4191, align 8, !tbaa !70 %4193 = add i64 %4192, %4185 store i64 %4193, ptr %4191, align 8, !tbaa !70 br label %4194 4194: ; preds = %4187, %4181 call void @llvm.lifetime.start.p5(i64 64, ptr addrspace(5) %5) #21 call void @llvm.memset.p5.i64(ptr addrspace(5) noundef align 1 dereferenceable(64) %5, i8 32, i64 64, i1 false) br label %4195 4195: ; preds = %4244, %4194 %4196 = phi i64 [ %4185, %4194 ], [ %4197, %4244 ] %4197 = add i64 %4196, 64 %4198 = icmp ult i64 %4197, %4166 br i1 %4198, label %4199, label %4247 4199: ; preds = %4195 %4200 = load ptr, ptr %32, align 8, !tbaa !73 %4201 = getelementptr inbounds nuw i8, ptr %4200, i64 48 %4202 = load i32, ptr %4201, align 8, !tbaa !96 switch i32 %4202, label %4243 [ i32 0, label %4203 i32 1, label %4217 i32 2, label %4237 ] 4203: ; preds = %4199 %4204 = getelementptr inbounds nuw i8, ptr %4200, i64 16 %4205 = load <2 x i64>, ptr %4204, align 8, !tbaa !15 %4206 = extractelement <2 x i64> %4205, i64 0 %4207 = extractelement <2 x i64> %4205, i64 1 %4208 = icmp ult i64 %4207, %4206 br i1 %4208, label %4209, label %4244 4209: ; preds = %4203 %4210 = getelementptr inbounds nuw i8, ptr %4200, i64 24 %4211 = sub nuw i64 %4206, %4207 %4212 = call i64 @llvm.umin.i64(i64 %4211, i64 64) %4213 = load ptr, ptr %4200, align 8, !tbaa !65 %4214 = getelementptr inbounds nuw i8, ptr %4213, i64 %4207 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %4214, ptr align 1 %462, i64 %4212, i1 false), !alias.scope !340 %4215 = load i64, ptr %4210, align 8, !tbaa !70 %4216 = add i64 %4215, %4212 store i64 %4216, ptr %4210, align 8, !tbaa !70 br label %4244 4217: ; preds = %4199 %4218 = getelementptr inbounds nuw i8, ptr %4200, i64 24 %4219 = load i64, ptr %4218, align 8, !tbaa !70 %4220 = icmp eq i64 %4219, 0 br i1 %4220, label %4229, label %4221 4221: ; preds = %4217 %4222 = getelementptr inbounds nuw i8, ptr %4200, i64 32 %4223 = load ptr, ptr %4222, align 8, !tbaa !71 %4224 = load ptr, ptr %4200, align 8, !tbaa !65 %4225 = getelementptr inbounds nuw i8, ptr %4200, i64 40 %4226 = load ptr, ptr %4225, align 8, !tbaa !72 %4227 = call noundef i32 %4223(ptr %4224, i64 %4219, ptr noundef %4226) #23 %4228 = icmp sgt i32 %4227, -1 br i1 %4228, label %4229, label %4244 4229: ; preds = %4221, %4217 %4230 = getelementptr inbounds nuw i8, ptr %4200, i64 32 %4231 = load ptr, ptr %4230, align 8, !tbaa !71 %4232 = getelementptr inbounds nuw i8, ptr %4200, i64 40 %4233 = load ptr, ptr %4232, align 8, !tbaa !72 %4234 = call noundef i32 %4231(ptr %462, i64 64, ptr noundef %4233) #23 %4235 = icmp sgt i32 %4234, -1 br i1 %4235, label %4236, label %4244 4236: ; preds = %4229 store i64 0, ptr %4218, align 8, !tbaa !70 br label %4244 4237: ; preds = %4199 %4238 = getelementptr inbounds nuw i8, ptr %4200, i64 32 %4239 = load ptr, ptr %4238, align 8, !tbaa !71 %4240 = getelementptr inbounds nuw i8, ptr %4200, i64 40 %4241 = load ptr, ptr %4240, align 8, !tbaa !72 %4242 = call noundef i32 %4239(ptr %462, i64 64, ptr noundef %4241) #23 br label %4244 4243: ; preds = %4199 unreachable 4244: ; preds = %4237, %4236, %4229, %4221, %4209, %4203 %4245 = phi i32 [ %4242, %4237 ], [ 0, %4203 ], [ 0, %4209 ], [ %4227, %4221 ], [ %4234, %4229 ], [ 0, %4236 ] %4246 = icmp eq i32 %4245, 0 br i1 %4246, label %4195, label %4297, !llvm.loop !105 4247: ; preds = %4195 %4248 = phi i64 [ %4196, %4195 ] %4249 = sub i64 %4166, %4248 %4250 = call noundef i64 @llvm.umin.i64(i64 %4249, i64 64) %4251 = load ptr, ptr %32, align 8, !tbaa !73 %4252 = getelementptr inbounds nuw i8, ptr %4251, i64 48 %4253 = load i32, ptr %4252, align 8, !tbaa !96 switch i32 %4253, label %4296 [ i32 0, label %4254 i32 1, label %4268 i32 2, label %4290 ] 4254: ; preds = %4247 %4255 = getelementptr inbounds nuw i8, ptr %4251, i64 16 %4256 = load <2 x i64>, ptr %4255, align 8, !tbaa !15 %4257 = extractelement <2 x i64> %4256, i64 0 %4258 = extractelement <2 x i64> %4256, i64 1 %4259 = icmp ult i64 %4258, %4257 br i1 %4259, label %4260, label %4297 4260: ; preds = %4254 %4261 = getelementptr inbounds nuw i8, ptr %4251, i64 24 %4262 = sub nuw i64 %4257, %4258 %4263 = call i64 @llvm.umin.i64(i64 %4262, i64 %4250) %4264 = load ptr, ptr %4251, align 8, !tbaa !65 %4265 = getelementptr inbounds nuw i8, ptr %4264, i64 %4258 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %4265, ptr align 1 %462, i64 %4263, i1 false), !alias.scope !344 %4266 = load i64, ptr %4261, align 8, !tbaa !70 %4267 = add i64 %4266, %4263 store i64 %4267, ptr %4261, align 8, !tbaa !70 br label %4297 4268: ; preds = %4247 %4269 = getelementptr inbounds nuw i8, ptr %4251, i64 24 %4270 = load i64, ptr %4269, align 8, !tbaa !70 %4271 = icmp eq i64 %4270, 0 br i1 %4271, label %4280, label %4272 4272: ; preds = %4268 %4273 = getelementptr inbounds nuw i8, ptr %4251, i64 32 %4274 = load ptr, ptr %4273, align 8, !tbaa !71 %4275 = load ptr, ptr %4251, align 8, !tbaa !65 %4276 = getelementptr inbounds nuw i8, ptr %4251, i64 40 %4277 = load ptr, ptr %4276, align 8, !tbaa !72 %4278 = call noundef i32 %4274(ptr %4275, i64 %4270, ptr noundef %4277) #23 %4279 = icmp sgt i32 %4278, -1 br i1 %4279, label %4280, label %4297 4280: ; preds = %4272, %4268 %4281 = icmp eq i64 %4248, %4166 br i1 %4281, label %4289, label %4282 4282: ; preds = %4280 %4283 = getelementptr inbounds nuw i8, ptr %4251, i64 32 %4284 = load ptr, ptr %4283, align 8, !tbaa !71 %4285 = getelementptr inbounds nuw i8, ptr %4251, i64 40 %4286 = load ptr, ptr %4285, align 8, !tbaa !72 %4287 = call noundef i32 %4284(ptr %462, i64 %4250, ptr noundef %4286) #23 %4288 = icmp sgt i32 %4287, -1 br i1 %4288, label %4289, label %4297 4289: ; preds = %4282, %4280 store i64 0, ptr %4269, align 8, !tbaa !70 br label %4297 4290: ; preds = %4247 %4291 = getelementptr inbounds nuw i8, ptr %4251, i64 32 %4292 = load ptr, ptr %4291, align 8, !tbaa !71 %4293 = getelementptr inbounds nuw i8, ptr %4251, i64 40 %4294 = load ptr, ptr %4293, align 8, !tbaa !72 %4295 = call noundef i32 %4292(ptr %462, i64 %4250, ptr noundef %4294) #23 br label %4297 4296: ; preds = %4247 unreachable 4297: ; preds = %4290, %4289, %4282, %4272, %4260, %4254, %4244 %4298 = phi i32 [ %4295, %4290 ], [ 0, %4254 ], [ 0, %4260 ], [ %4278, %4272 ], [ %4287, %4282 ], [ 0, %4289 ], [ %4245, %4244 ] call void @llvm.lifetime.end.p5(i64 64, ptr addrspace(5) %5) #21 br label %4299 4299: ; preds = %4297, %4174 %4300 = phi i32 [ 0, %4174 ], [ %4298, %4297 ] %4301 = icmp sgt i32 %4300, -1 br i1 %4301, label %4302, label %4564 4302: ; preds = %4299 %4303 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %4304 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 br label %4305 4305: ; preds = %4302, %4161 %4306 = phi i32 [ %4304, %4302 ], [ %4164, %4161 ] %4307 = phi ptr [ %4303, %4302 ], [ %4163, %4161 ] %4308 = add nsw i32 %4306, 2 store i32 %4308, ptr %456, align 8, !tbaa !75, !noalias !89 %4309 = getelementptr inbounds nuw i8, ptr %4307, i64 24 %4310 = load i64, ptr %4309, align 8, !tbaa !70 %4311 = add i64 %4310, 2 %4312 = getelementptr inbounds nuw i8, ptr %4307, i64 16 %4313 = load i64, ptr %4312, align 8, !tbaa !69 %4314 = icmp ugt i64 %4311, %4313 br i1 %4314, label %4323, label %4315 4315: ; preds = %4305 %4316 = load ptr, ptr %4307, align 8, !tbaa !65 %4317 = getelementptr inbounds nuw i8, ptr %4316, i64 %4310 %4318 = load i16, ptr addrspace(5) %24, align 2, !alias.scope !348, !noalias !89 store i16 %4318, ptr %4317, align 1, !alias.scope !348 %4319 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %4320 = getelementptr inbounds nuw i8, ptr %4319, i64 24 %4321 = load i64, ptr %4320, align 8, !tbaa !70 %4322 = add i64 %4321, 2 store i64 %4322, ptr %4320, align 8, !tbaa !70 br label %4360 4323: ; preds = %4305 %4324 = getelementptr inbounds nuw i8, ptr %4307, i64 48 %4325 = load i32, ptr %4324, align 8, !tbaa !96 switch i32 %4325, label %4359 [ i32 0, label %4326 i32 1, label %4335 i32 2, label %4353 ] 4326: ; preds = %4323 %4327 = icmp ult i64 %4310, %4313 br i1 %4327, label %4328, label %4360 4328: ; preds = %4326 %4329 = sub nuw i64 %4313, %4310 %4330 = call i64 @llvm.umin.i64(i64 %4329, i64 2) %4331 = load ptr, ptr %4307, align 8, !tbaa !65 %4332 = getelementptr inbounds nuw i8, ptr %4331, i64 %4310 call void @llvm.memcpy.p0.p5.i64(ptr align 1 %4332, ptr addrspace(5) align 2 %24, i64 %4330, i1 false), !alias.scope !352 %4333 = load i64, ptr %4309, align 8, !tbaa !70 %4334 = add i64 %4333, %4330 store i64 %4334, ptr %4309, align 8, !tbaa !70 br label %4360 4335: ; preds = %4323 %4336 = icmp eq i64 %4310, 0 br i1 %4336, label %4345, label %4337 4337: ; preds = %4335 %4338 = getelementptr inbounds nuw i8, ptr %4307, i64 32 %4339 = load ptr, ptr %4338, align 8, !tbaa !71 %4340 = load ptr, ptr %4307, align 8, !tbaa !65 %4341 = getelementptr inbounds nuw i8, ptr %4307, i64 40 %4342 = load ptr, ptr %4341, align 8, !tbaa !72 %4343 = call noundef i32 %4339(ptr %4340, i64 %4310, ptr noundef %4342) #23 %4344 = icmp sgt i32 %4343, -1 br i1 %4344, label %4345, label %4360 4345: ; preds = %4337, %4335 %4346 = getelementptr inbounds nuw i8, ptr %4307, i64 32 %4347 = load ptr, ptr %4346, align 8, !tbaa !71 %4348 = getelementptr inbounds nuw i8, ptr %4307, i64 40 %4349 = load ptr, ptr %4348, align 8, !tbaa !72 %4350 = call noundef i32 %4347(ptr %458, i64 2, ptr noundef %4349) #23 %4351 = icmp sgt i32 %4350, -1 br i1 %4351, label %4352, label %4360 4352: ; preds = %4345 store i64 0, ptr %4309, align 8, !tbaa !70 br label %4360 4353: ; preds = %4323 %4354 = getelementptr inbounds nuw i8, ptr %4307, i64 32 %4355 = load ptr, ptr %4354, align 8, !tbaa !71 %4356 = getelementptr inbounds nuw i8, ptr %4307, i64 40 %4357 = load ptr, ptr %4356, align 8, !tbaa !72 %4358 = call noundef i32 %4355(ptr %458, i64 2, ptr noundef %4357) #23 br label %4360 4359: ; preds = %4323 unreachable 4360: ; preds = %4353, %4352, %4345, %4337, %4328, %4326, %4315 %4361 = phi i32 [ 0, %4315 ], [ %4358, %4353 ], [ 0, %4326 ], [ 0, %4328 ], [ %4343, %4337 ], [ %4350, %4345 ], [ 0, %4352 ] %4362 = icmp sgt i32 %4361, -1 br i1 %4362, label %4363, label %4564 4363: ; preds = %4360 %4364 = icmp sgt i32 %3875, 0 br i1 %4364, label %4365, label %4504 4365: ; preds = %4363 %4366 = zext nneg i32 %3875 to i64 %4367 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %4368 = add nsw i32 %4367, %3875 store i32 %4368, ptr %456, align 8, !tbaa !75, !noalias !89 %4369 = load ptr, ptr %32, align 8, !tbaa !73 %4370 = getelementptr inbounds nuw i8, ptr %4369, i64 24 %4371 = load i64, ptr %4370, align 8, !tbaa !70 %4372 = add i64 %4371, %4366 %4373 = getelementptr inbounds nuw i8, ptr %4369, i64 16 %4374 = load i64, ptr %4373, align 8, !tbaa !69 %4375 = icmp ugt i64 %4372, %4374 br i1 %4375, label %4383, label %4376 4376: ; preds = %4365 %4377 = load ptr, ptr %4369, align 8, !tbaa !65 %4378 = getelementptr inbounds nuw i8, ptr %4377, i64 %4371 call void @llvm.memset.p0.i64(ptr align 1 %4378, i8 48, i64 %4366, i1 false) %4379 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %4380 = getelementptr inbounds nuw i8, ptr %4379, i64 24 %4381 = load i64, ptr %4380, align 8, !tbaa !70 %4382 = add i64 %4381, %4366 store i64 %4382, ptr %4380, align 8, !tbaa !70 br label %4501 4383: ; preds = %4365 %4384 = load <2 x i64>, ptr %4373, align 8, !tbaa !15 %4385 = extractelement <2 x i64> %4384, i64 0 %4386 = extractelement <2 x i64> %4384, i64 1 %4387 = sub i64 %4385, %4386 %4388 = icmp eq i64 %4387, 0 br i1 %4388, label %4396, label %4389 4389: ; preds = %4383 %4390 = load ptr, ptr %4369, align 8, !tbaa !65 %4391 = getelementptr inbounds nuw i8, ptr %4390, i64 %4386 call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %4391, i8 48, i64 range(i64 1, 0) %4387, i1 false) %4392 = load ptr, ptr %32, align 8, !tbaa !73 %4393 = getelementptr inbounds nuw i8, ptr %4392, i64 24 %4394 = load i64, ptr %4393, align 8, !tbaa !70 %4395 = add i64 %4394, %4387 store i64 %4395, ptr %4393, align 8, !tbaa !70 br label %4396 4396: ; preds = %4389, %4383 call void @llvm.lifetime.start.p5(i64 64, ptr addrspace(5) %6) #21 call void @llvm.memset.p5.i64(ptr addrspace(5) noundef align 1 dereferenceable(64) %6, i8 48, i64 64, i1 false) br label %4397 4397: ; preds = %4446, %4396 %4398 = phi i64 [ %4387, %4396 ], [ %4399, %4446 ] %4399 = add i64 %4398, 64 %4400 = icmp ult i64 %4399, %4366 br i1 %4400, label %4401, label %4449 4401: ; preds = %4397 %4402 = load ptr, ptr %32, align 8, !tbaa !73 %4403 = getelementptr inbounds nuw i8, ptr %4402, i64 48 %4404 = load i32, ptr %4403, align 8, !tbaa !96 switch i32 %4404, label %4445 [ i32 0, label %4405 i32 1, label %4419 i32 2, label %4439 ] 4405: ; preds = %4401 %4406 = getelementptr inbounds nuw i8, ptr %4402, i64 16 %4407 = load <2 x i64>, ptr %4406, align 8, !tbaa !15 %4408 = extractelement <2 x i64> %4407, i64 0 %4409 = extractelement <2 x i64> %4407, i64 1 %4410 = icmp ult i64 %4409, %4408 br i1 %4410, label %4411, label %4446 4411: ; preds = %4405 %4412 = getelementptr inbounds nuw i8, ptr %4402, i64 24 %4413 = sub nuw i64 %4408, %4409 %4414 = call i64 @llvm.umin.i64(i64 %4413, i64 64) %4415 = load ptr, ptr %4402, align 8, !tbaa !65 %4416 = getelementptr inbounds nuw i8, ptr %4415, i64 %4409 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %4416, ptr align 1 %463, i64 %4414, i1 false), !alias.scope !356 %4417 = load i64, ptr %4412, align 8, !tbaa !70 %4418 = add i64 %4417, %4414 store i64 %4418, ptr %4412, align 8, !tbaa !70 br label %4446 4419: ; preds = %4401 %4420 = getelementptr inbounds nuw i8, ptr %4402, i64 24 %4421 = load i64, ptr %4420, align 8, !tbaa !70 %4422 = icmp eq i64 %4421, 0 br i1 %4422, label %4431, label %4423 4423: ; preds = %4419 %4424 = getelementptr inbounds nuw i8, ptr %4402, i64 32 %4425 = load ptr, ptr %4424, align 8, !tbaa !71 %4426 = load ptr, ptr %4402, align 8, !tbaa !65 %4427 = getelementptr inbounds nuw i8, ptr %4402, i64 40 %4428 = load ptr, ptr %4427, align 8, !tbaa !72 %4429 = call noundef i32 %4425(ptr %4426, i64 %4421, ptr noundef %4428) #23 %4430 = icmp sgt i32 %4429, -1 br i1 %4430, label %4431, label %4446 4431: ; preds = %4423, %4419 %4432 = getelementptr inbounds nuw i8, ptr %4402, i64 32 %4433 = load ptr, ptr %4432, align 8, !tbaa !71 %4434 = getelementptr inbounds nuw i8, ptr %4402, i64 40 %4435 = load ptr, ptr %4434, align 8, !tbaa !72 %4436 = call noundef i32 %4433(ptr %463, i64 64, ptr noundef %4435) #23 %4437 = icmp sgt i32 %4436, -1 br i1 %4437, label %4438, label %4446 4438: ; preds = %4431 store i64 0, ptr %4420, align 8, !tbaa !70 br label %4446 4439: ; preds = %4401 %4440 = getelementptr inbounds nuw i8, ptr %4402, i64 32 %4441 = load ptr, ptr %4440, align 8, !tbaa !71 %4442 = getelementptr inbounds nuw i8, ptr %4402, i64 40 %4443 = load ptr, ptr %4442, align 8, !tbaa !72 %4444 = call noundef i32 %4441(ptr %463, i64 64, ptr noundef %4443) #23 br label %4446 4445: ; preds = %4401 unreachable 4446: ; preds = %4439, %4438, %4431, %4423, %4411, %4405 %4447 = phi i32 [ %4444, %4439 ], [ 0, %4405 ], [ 0, %4411 ], [ %4429, %4423 ], [ %4436, %4431 ], [ 0, %4438 ] %4448 = icmp eq i32 %4447, 0 br i1 %4448, label %4397, label %4499, !llvm.loop !105 4449: ; preds = %4397 %4450 = phi i64 [ %4398, %4397 ] %4451 = sub i64 %4366, %4450 %4452 = call noundef i64 @llvm.umin.i64(i64 %4451, i64 64) %4453 = load ptr, ptr %32, align 8, !tbaa !73 %4454 = getelementptr inbounds nuw i8, ptr %4453, i64 48 %4455 = load i32, ptr %4454, align 8, !tbaa !96 switch i32 %4455, label %4498 [ i32 0, label %4456 i32 1, label %4470 i32 2, label %4492 ] 4456: ; preds = %4449 %4457 = getelementptr inbounds nuw i8, ptr %4453, i64 16 %4458 = load <2 x i64>, ptr %4457, align 8, !tbaa !15 %4459 = extractelement <2 x i64> %4458, i64 0 %4460 = extractelement <2 x i64> %4458, i64 1 %4461 = icmp ult i64 %4460, %4459 br i1 %4461, label %4462, label %4499 4462: ; preds = %4456 %4463 = getelementptr inbounds nuw i8, ptr %4453, i64 24 %4464 = sub nuw i64 %4459, %4460 %4465 = call i64 @llvm.umin.i64(i64 %4464, i64 %4452) %4466 = load ptr, ptr %4453, align 8, !tbaa !65 %4467 = getelementptr inbounds nuw i8, ptr %4466, i64 %4460 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %4467, ptr align 1 %463, i64 %4465, i1 false), !alias.scope !360 %4468 = load i64, ptr %4463, align 8, !tbaa !70 %4469 = add i64 %4468, %4465 store i64 %4469, ptr %4463, align 8, !tbaa !70 br label %4499 4470: ; preds = %4449 %4471 = getelementptr inbounds nuw i8, ptr %4453, i64 24 %4472 = load i64, ptr %4471, align 8, !tbaa !70 %4473 = icmp eq i64 %4472, 0 br i1 %4473, label %4482, label %4474 4474: ; preds = %4470 %4475 = getelementptr inbounds nuw i8, ptr %4453, i64 32 %4476 = load ptr, ptr %4475, align 8, !tbaa !71 %4477 = load ptr, ptr %4453, align 8, !tbaa !65 %4478 = getelementptr inbounds nuw i8, ptr %4453, i64 40 %4479 = load ptr, ptr %4478, align 8, !tbaa !72 %4480 = call noundef i32 %4476(ptr %4477, i64 %4472, ptr noundef %4479) #23 %4481 = icmp sgt i32 %4480, -1 br i1 %4481, label %4482, label %4499 4482: ; preds = %4474, %4470 %4483 = icmp eq i64 %4450, %4366 br i1 %4483, label %4491, label %4484 4484: ; preds = %4482 %4485 = getelementptr inbounds nuw i8, ptr %4453, i64 32 %4486 = load ptr, ptr %4485, align 8, !tbaa !71 %4487 = getelementptr inbounds nuw i8, ptr %4453, i64 40 %4488 = load ptr, ptr %4487, align 8, !tbaa !72 %4489 = call noundef i32 %4486(ptr %463, i64 %4452, ptr noundef %4488) #23 %4490 = icmp sgt i32 %4489, -1 br i1 %4490, label %4491, label %4499 4491: ; preds = %4484, %4482 store i64 0, ptr %4471, align 8, !tbaa !70 br label %4499 4492: ; preds = %4449 %4493 = getelementptr inbounds nuw i8, ptr %4453, i64 32 %4494 = load ptr, ptr %4493, align 8, !tbaa !71 %4495 = getelementptr inbounds nuw i8, ptr %4453, i64 40 %4496 = load ptr, ptr %4495, align 8, !tbaa !72 %4497 = call noundef i32 %4494(ptr %463, i64 %4452, ptr noundef %4496) #23 br label %4499 4498: ; preds = %4449 unreachable 4499: ; preds = %4492, %4491, %4484, %4474, %4462, %4456, %4446 %4500 = phi i32 [ %4497, %4492 ], [ 0, %4456 ], [ 0, %4462 ], [ %4480, %4474 ], [ %4489, %4484 ], [ 0, %4491 ], [ %4447, %4446 ] call void @llvm.lifetime.end.p5(i64 64, ptr addrspace(5) %6) #21 br label %4501 4501: ; preds = %4499, %4376 %4502 = phi i32 [ 0, %4376 ], [ %4500, %4499 ] %4503 = icmp sgt i32 %4502, -1 br i1 %4503, label %4504, label %4564 4504: ; preds = %4501, %4363 %4505 = icmp eq i64 %3854, 0 br i1 %4505, label %4563, label %4506 4506: ; preds = %4504 %4507 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %4508 = add nsw i32 %4507, %3855 store i32 %4508, ptr %456, align 8, !tbaa !75, !noalias !89 %4509 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %4510 = getelementptr inbounds nuw i8, ptr %4509, i64 24 %4511 = load i64, ptr %4510, align 8, !tbaa !70 %4512 = add i64 %4511, %3854 %4513 = getelementptr inbounds nuw i8, ptr %4509, i64 16 %4514 = load i64, ptr %4513, align 8, !tbaa !69 %4515 = icmp ugt i64 %4512, %4514 br i1 %4515, label %4523, label %4516 4516: ; preds = %4506 %4517 = load ptr, ptr %4509, align 8, !tbaa !65 %4518 = getelementptr inbounds nuw i8, ptr %4517, i64 %4511 call void @llvm.memcpy.p0.p5.i64(ptr align 1 %4518, ptr addrspace(5) align 1 %3857, i64 %3854, i1 false), !alias.scope !364 %4519 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %4520 = getelementptr inbounds nuw i8, ptr %4519, i64 24 %4521 = load i64, ptr %4520, align 8, !tbaa !70 %4522 = add i64 %4521, %3854 store i64 %4522, ptr %4520, align 8, !tbaa !70 br label %4560 4523: ; preds = %4506 %4524 = getelementptr inbounds nuw i8, ptr %4509, i64 48 %4525 = load i32, ptr %4524, align 8, !tbaa !96 switch i32 %4525, label %4559 [ i32 0, label %4526 i32 1, label %4535 i32 2, label %4553 ] 4526: ; preds = %4523 %4527 = icmp ult i64 %4511, %4514 br i1 %4527, label %4528, label %4560 4528: ; preds = %4526 %4529 = sub nuw i64 %4514, %4511 %4530 = call i64 @llvm.umin.i64(i64 %4529, i64 %3854) %4531 = load ptr, ptr %4509, align 8, !tbaa !65 %4532 = getelementptr inbounds nuw i8, ptr %4531, i64 %4511 call void @llvm.memcpy.p0.p5.i64(ptr align 1 %4532, ptr addrspace(5) align 1 %3857, i64 %4530, i1 false), !alias.scope !368 %4533 = load i64, ptr %4510, align 8, !tbaa !70 %4534 = add i64 %4533, %4530 store i64 %4534, ptr %4510, align 8, !tbaa !70 br label %4560 4535: ; preds = %4523 %4536 = icmp eq i64 %4511, 0 br i1 %4536, label %4545, label %4537 4537: ; preds = %4535 %4538 = getelementptr inbounds nuw i8, ptr %4509, i64 32 %4539 = load ptr, ptr %4538, align 8, !tbaa !71 %4540 = load ptr, ptr %4509, align 8, !tbaa !65 %4541 = getelementptr inbounds nuw i8, ptr %4509, i64 40 %4542 = load ptr, ptr %4541, align 8, !tbaa !72 %4543 = call noundef i32 %4539(ptr %4540, i64 %4511, ptr noundef %4542) #23 %4544 = icmp sgt i32 %4543, -1 br i1 %4544, label %4545, label %4560 4545: ; preds = %4537, %4535 %4546 = getelementptr inbounds nuw i8, ptr %4509, i64 32 %4547 = load ptr, ptr %4546, align 8, !tbaa !71 %4548 = getelementptr inbounds nuw i8, ptr %4509, i64 40 %4549 = load ptr, ptr %4548, align 8, !tbaa !72 %4550 = call noundef i32 %4547(ptr nonnull %3858, i64 %3854, ptr noundef %4549) #23 %4551 = icmp sgt i32 %4550, -1 br i1 %4551, label %4552, label %4560 4552: ; preds = %4545 store i64 0, ptr %4510, align 8, !tbaa !70 br label %4560 4553: ; preds = %4523 %4554 = getelementptr inbounds nuw i8, ptr %4509, i64 32 %4555 = load ptr, ptr %4554, align 8, !tbaa !71 %4556 = getelementptr inbounds nuw i8, ptr %4509, i64 40 %4557 = load ptr, ptr %4556, align 8, !tbaa !72 %4558 = call noundef i32 %4555(ptr nonnull %3858, i64 %3854, ptr noundef %4557) #23 br label %4560 4559: ; preds = %4523 unreachable 4560: ; preds = %4553, %4552, %4545, %4537, %4528, %4526, %4516 %4561 = phi i32 [ 0, %4516 ], [ %4558, %4553 ], [ 0, %4526 ], [ 0, %4528 ], [ %4543, %4537 ], [ %4550, %4545 ], [ 0, %4552 ] %4562 = icmp sgt i32 %4561, -1 br i1 %4562, label %4563, label %4564 4563: ; preds = %4560, %4504, %4158, %4020 br label %4564 4564: ; preds = %4563, %4560, %4501, %4360, %4299, %4158, %4017, %3958, %3933 %4565 = phi i32 [ 0, %4563 ], [ %4159, %4158 ], [ %4018, %4017 ], [ %3959, %3958 ], [ %3934, %3933 ], [ %4561, %4560 ], [ %4502, %4501 ], [ %4361, %4360 ], [ %4300, %4299 ] call void @llvm.lifetime.end.p5(i64 2, ptr addrspace(5) %24) #21, !noalias !89 br label %4566 4566: ; preds = %4564, %3853 %4567 = phi i32 [ %4565, %4564 ], [ -4, %3853 ] call void @llvm.lifetime.end.p5(i64 64, ptr addrspace(5) %23) #21, !noalias !89 br label %4678 4568: ; preds = %585 %4569 = trunc i64 %575 to i32 %4570 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %4571 = add nsw i32 %4570, %4569 store i32 %4571, ptr %456, align 8, !tbaa !75, !noalias !89 %4572 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %4573 = getelementptr inbounds nuw i8, ptr %4572, i64 24 %4574 = load i64, ptr %4573, align 8, !tbaa !70 %4575 = add i64 %4574, %575 %4576 = getelementptr inbounds nuw i8, ptr %4572, i64 16 %4577 = load i64, ptr %4576, align 8, !tbaa !69 %4578 = icmp ugt i64 %4575, %4577 br i1 %4578, label %4586, label %4579 4579: ; preds = %4568 %4580 = load ptr, ptr %4572, align 8, !tbaa !65 %4581 = getelementptr inbounds nuw i8, ptr %4580, i64 %4574 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %4581, ptr nonnull align 1 %574, i64 %575, i1 false), !alias.scope !372 %4582 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %4583 = getelementptr inbounds nuw i8, ptr %4582, i64 24 %4584 = load i64, ptr %4583, align 8, !tbaa !70 %4585 = add i64 %4584, %575 store i64 %4585, ptr %4583, align 8, !tbaa !70 br label %4678 4586: ; preds = %4568 %4587 = getelementptr inbounds nuw i8, ptr %4572, i64 48 %4588 = load i32, ptr %4587, align 8, !tbaa !96 switch i32 %4588, label %4622 [ i32 0, label %4589 i32 1, label %4598 i32 2, label %4616 ] 4589: ; preds = %4586 %4590 = icmp ult i64 %4574, %4577 br i1 %4590, label %4591, label %4678 4591: ; preds = %4589 %4592 = sub nuw i64 %4577, %4574 %4593 = call i64 @llvm.umin.i64(i64 %4592, i64 %575) %4594 = load ptr, ptr %4572, align 8, !tbaa !65 %4595 = getelementptr inbounds nuw i8, ptr %4594, i64 %4574 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %4595, ptr nonnull align 1 %574, i64 %4593, i1 false), !alias.scope !376 %4596 = load i64, ptr %4573, align 8, !tbaa !70 %4597 = add i64 %4596, %4593 store i64 %4597, ptr %4573, align 8, !tbaa !70 br label %4678 4598: ; preds = %4586 %4599 = icmp eq i64 %4574, 0 br i1 %4599, label %4608, label %4600 4600: ; preds = %4598 %4601 = getelementptr inbounds nuw i8, ptr %4572, i64 32 %4602 = load ptr, ptr %4601, align 8, !tbaa !71 %4603 = load ptr, ptr %4572, align 8, !tbaa !65 %4604 = getelementptr inbounds nuw i8, ptr %4572, i64 40 %4605 = load ptr, ptr %4604, align 8, !tbaa !72 %4606 = call noundef i32 %4602(ptr %4603, i64 %4574, ptr noundef %4605) #23 %4607 = icmp sgt i32 %4606, -1 br i1 %4607, label %4608, label %4678 4608: ; preds = %4600, %4598 %4609 = getelementptr inbounds nuw i8, ptr %4572, i64 32 %4610 = load ptr, ptr %4609, align 8, !tbaa !71 %4611 = getelementptr inbounds nuw i8, ptr %4572, i64 40 %4612 = load ptr, ptr %4611, align 8, !tbaa !72 %4613 = call noundef i32 %4610(ptr nonnull %574, i64 %575, ptr noundef %4612) #23 %4614 = icmp sgt i32 %4613, -1 br i1 %4614, label %4615, label %4678 4615: ; preds = %4608 store i64 0, ptr %4573, align 8, !tbaa !70 br label %4678 4616: ; preds = %4586 %4617 = getelementptr inbounds nuw i8, ptr %4572, i64 32 %4618 = load ptr, ptr %4617, align 8, !tbaa !71 %4619 = getelementptr inbounds nuw i8, ptr %4572, i64 40 %4620 = load ptr, ptr %4619, align 8, !tbaa !72 %4621 = call noundef i32 %4618(ptr nonnull %574, i64 %575, ptr noundef %4620) #23 br label %4678 4622: ; preds = %4586 unreachable 4623: ; preds = %571 %4624 = trunc i64 %575 to i32 %4625 = load i32, ptr %456, align 8, !tbaa !75, !noalias !89 %4626 = add nsw i32 %4625, %4624 store i32 %4626, ptr %456, align 8, !tbaa !75, !noalias !89 %4627 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %4628 = getelementptr inbounds nuw i8, ptr %4627, i64 24 %4629 = load i64, ptr %4628, align 8, !tbaa !70 %4630 = add i64 %4629, %575 %4631 = getelementptr inbounds nuw i8, ptr %4627, i64 16 %4632 = load i64, ptr %4631, align 8, !tbaa !69 %4633 = icmp ugt i64 %4630, %4632 br i1 %4633, label %4641, label %4634 4634: ; preds = %4623 %4635 = load ptr, ptr %4627, align 8, !tbaa !65 %4636 = getelementptr inbounds nuw i8, ptr %4635, i64 %4629 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %4636, ptr nonnull align 1 %574, i64 %575, i1 false), !alias.scope !380 %4637 = load ptr, ptr %32, align 8, !tbaa !73, !noalias !89 %4638 = getelementptr inbounds nuw i8, ptr %4637, i64 24 %4639 = load i64, ptr %4638, align 8, !tbaa !70 %4640 = add i64 %4639, %575 store i64 %4640, ptr %4638, align 8, !tbaa !70 br label %4678 4641: ; preds = %4623 %4642 = getelementptr inbounds nuw i8, ptr %4627, i64 48 %4643 = load i32, ptr %4642, align 8, !tbaa !96 switch i32 %4643, label %4677 [ i32 0, label %4644 i32 1, label %4653 i32 2, label %4671 ] 4644: ; preds = %4641 %4645 = icmp ult i64 %4629, %4632 br i1 %4645, label %4646, label %4678 4646: ; preds = %4644 %4647 = sub nuw i64 %4632, %4629 %4648 = call i64 @llvm.umin.i64(i64 %4647, i64 %575) %4649 = load ptr, ptr %4627, align 8, !tbaa !65 %4650 = getelementptr inbounds nuw i8, ptr %4649, i64 %4629 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %4650, ptr nonnull align 1 %574, i64 %4648, i1 false), !alias.scope !384 %4651 = load i64, ptr %4628, align 8, !tbaa !70 %4652 = add i64 %4651, %4648 store i64 %4652, ptr %4628, align 8, !tbaa !70 br label %4678 4653: ; preds = %4641 %4654 = icmp eq i64 %4629, 0 br i1 %4654, label %4663, label %4655 4655: ; preds = %4653 %4656 = getelementptr inbounds nuw i8, ptr %4627, i64 32 %4657 = load ptr, ptr %4656, align 8, !tbaa !71 %4658 = load ptr, ptr %4627, align 8, !tbaa !65 %4659 = getelementptr inbounds nuw i8, ptr %4627, i64 40 %4660 = load ptr, ptr %4659, align 8, !tbaa !72 %4661 = call noundef i32 %4657(ptr %4658, i64 %4629, ptr noundef %4660) #23 %4662 = icmp sgt i32 %4661, -1 br i1 %4662, label %4663, label %4678 4663: ; preds = %4655, %4653 %4664 = getelementptr inbounds nuw i8, ptr %4627, i64 32 %4665 = load ptr, ptr %4664, align 8, !tbaa !71 %4666 = getelementptr inbounds nuw i8, ptr %4627, i64 40 %4667 = load ptr, ptr %4666, align 8, !tbaa !72 %4668 = call noundef i32 %4665(ptr nonnull %574, i64 %575, ptr noundef %4667) #23 %4669 = icmp sgt i32 %4668, -1 br i1 %4669, label %4670, label %4678 4670: ; preds = %4663 store i64 0, ptr %4628, align 8, !tbaa !70 br label %4678 4671: ; preds = %4641 %4672 = getelementptr inbounds nuw i8, ptr %4627, i64 32 %4673 = load ptr, ptr %4672, align 8, !tbaa !71 %4674 = getelementptr inbounds nuw i8, ptr %4627, i64 40 %4675 = load ptr, ptr %4674, align 8, !tbaa !72 %4676 = call noundef i32 %4673(ptr nonnull %574, i64 %575, ptr noundef %4675) #23 br label %4678 4677: ; preds = %4641 unreachable 4678: ; preds = %4671, %4670, %4663, %4655, %4646, %4644, %4634, %4616, %4615, %4608, %4600, %4591, %4589, %4579, %4566, %3821, %3683, %2180, %1119, %1116, %1089, %1030, %869, %866, %840, %785, %633, %632, %625, %617, %608, %606, %596 %4679 = phi i32 [ 0, %4634 ], [ %4676, %4671 ], [ 0, %4644 ], [ 0, %4646 ], [ %4661, %4655 ], [ %4668, %4663 ], [ 0, %4670 ], [ %3684, %3683 ], [ %2181, %2180 ], [ 0, %596 ], [ %638, %633 ], [ 0, %606 ], [ 0, %608 ], [ %623, %617 ], [ %630, %625 ], [ 0, %632 ], [ 0, %869 ], [ %867, %866 ], [ %841, %840 ], [ %786, %785 ], [ 0, %1119 ], [ %1117, %1116 ], [ %1090, %1089 ], [ %1031, %1030 ], [ %3822, %3821 ], [ %4567, %4566 ], [ 0, %4579 ], [ %4621, %4616 ], [ 0, %4589 ], [ 0, %4591 ], [ %4606, %4600 ], [ %4613, %4608 ], [ 0, %4615 ] %4680 = icmp sgt i32 %4679, -1 br i1 %4680, label %4681, label %5096 4681: ; preds = %4678 %4682 = getelementptr inbounds nuw i8, ptr %1, i64 %572 %4683 = load i8, ptr %4682, align 1, !tbaa !19 %4684 = icmp eq i8 %4683, 37 br i1 %4684, label %4685, label %5074 4685: ; preds = %4681 %4686 = add i64 %572, 1 br label %4687 4687: ; preds = %4703, %4685 %4688 = phi i64 [ %4686, %4685 ], [ %4707, %4703 ] %4689 = phi i64 [ %4686, %4685 ], [ %4708, %4703 ] %4690 = phi i8 [ 0, %4685 ], [ %4705, %4703 ] %4691 = getelementptr inbounds nuw i8, ptr %1, i64 %4689 %4692 = load i8, ptr %4691, align 1, !tbaa !19 switch i8 %4692, label %4703 [ i8 45, label %4693 i8 43, label %4695 i8 32, label %4697 i8 35, label %4699 i8 48, label %4701 ] 4693: ; preds = %4687 %4694 = or i8 %4690, 1 br label %4703 4695: ; preds = %4687 %4696 = or i8 %4690, 2 br label %4703 4697: ; preds = %4687 %4698 = or i8 %4690, 4 br label %4703 4699: ; preds = %4687 %4700 = or i8 %4690, 8 br label %4703 4701: ; preds = %4687 %4702 = or i8 %4690, 16 br label %4703 4703: ; preds = %4701, %4699, %4697, %4695, %4693, %4687 %4704 = phi i1 [ true, %4701 ], [ true, %4699 ], [ true, %4697 ], [ true, %4695 ], [ true, %4693 ], [ false, %4687 ] %4705 = phi i8 [ %4702, %4701 ], [ %4700, %4699 ], [ %4698, %4697 ], [ %4696, %4695 ], [ %4694, %4693 ], [ %4690, %4687 ] %4706 = add i64 %4689, 1 %4707 = select i1 %4704, i64 %4706, i64 %4688 %4708 = select i1 %4704, i64 %4706, i64 %4689 br i1 %4704, label %4687, label %4709, !llvm.loop !76 4709: ; preds = %4703 %4710 = phi i8 [ %4705, %4703 ] %4711 = phi i64 [ %4707, %4703 ] %4712 = phi i64 [ %4708, %4703 ] %4713 = getelementptr inbounds nuw i8, ptr %1, i64 %4712 %4714 = load i8, ptr %4713, align 1, !tbaa !19 %4715 = icmp eq i8 %4714, 42 br i1 %4715, label %4716, label %4720 4716: ; preds = %4709 %4717 = add i64 %4712, 1 %4718 = getelementptr inbounds i8, ptr %584, i64 4 %4719 = load i32, ptr %584, align 4, !tbaa !52 br label %4794 4720: ; preds = %4709 %4721 = sext i8 %4714 to i32 %4722 = add nsw i32 %4721, -48 %4723 = icmp ult i32 %4722, 10 br i1 %4723, label %4724, label %4794 4724: ; preds = %4728, %4720 %4725 = phi i64 [ %4729, %4728 ], [ 0, %4720 ] %4726 = getelementptr inbounds nuw i8, ptr %4713, i64 %4725 %4727 = load i8, ptr %4726, align 1, !tbaa !19, !alias.scope !388 switch i8 %4727, label %4734 [ i8 32, label %4728 i8 13, label %4728 i8 12, label %4728 i8 11, label %4728 i8 10, label %4728 i8 9, label %4728 ] 4728: ; preds = %4724, %4724, %4724, %4724, %4724, %4724 %4729 = add nuw i64 %4725, 1 %4730 = icmp eq i64 %4729, -1 br i1 %4730, label %4731, label %4724, !llvm.loop !80 4731: ; preds = %4728 %4732 = getelementptr inbounds nuw i8, ptr %4713, i64 -1 %4733 = load i8, ptr %4732, align 1, !tbaa !19, !alias.scope !388 br label %4734 4734: ; preds = %4731, %4724 %4735 = phi i8 [ %4733, %4731 ], [ %4727, %4724 ] %4736 = phi i64 [ -1, %4731 ], [ %4725, %4724 ] switch i8 %4735, label %4740 [ i8 43, label %4737 i8 45, label %4737 ] 4737: ; preds = %4734, %4734 %4738 = add i64 %4736, 1 %4739 = icmp eq i8 %4735, 43 br label %4740 4740: ; preds = %4737, %4734 %4741 = phi i1 [ %4739, %4737 ], [ true, %4734 ] %4742 = phi i64 [ %4738, %4737 ], [ %4736, %4734 ] %4743 = select i1 %4741, i32 2147483647, i32 -2147483648 br label %4744 4744: ; preds = %4778, %4740 %4745 = phi i32 [ 0, %4740 ], [ %4779, %4778 ] %4746 = phi i64 [ %4742, %4740 ], [ %4780, %4778 ] %4747 = phi i1 [ false, %4740 ], [ %4781, %4778 ] %4748 = phi i32 [ 0, %4740 ], [ %4782, %4778 ] %4749 = icmp eq i64 %4746, -1 br i1 %4749, label %4783, label %4750 4750: ; preds = %4744 %4751 = getelementptr inbounds nuw i8, ptr %4713, i64 %4746 %4752 = load i8, ptr %4751, align 1, !tbaa !19, !alias.scope !388 %4753 = sext i8 %4752 to i32 %4754 = or i32 %4753, 32 %4755 = add nsw i32 %4754, -97 %4756 = icmp ult i32 %4755, 26 %4757 = add nsw i32 %4753, -48 %4758 = icmp ult i32 %4757, 10 %4759 = select i1 %4756, i1 true, i1 %4758 br i1 %4759, label %4760, label %4783 4760: ; preds = %4750 %4761 = add nsw i32 %4754, -87 %4762 = select i1 %4756, i32 %4761, i32 0 %4763 = select i1 %4758, i32 %4757, i32 %4762 %4764 = icmp slt i32 %4763, 10 br i1 %4764, label %4765, label %4778 4765: ; preds = %4760 %4766 = add nuw i64 %4746, 1 %4767 = icmp eq i32 %4748, %4743 br i1 %4767, label %4778, label %4768, !llvm.loop !81 4768: ; preds = %4765 %4769 = icmp ugt i32 %4748, 214748364 %4770 = mul i32 %4748, 10 %4771 = select i1 %4769, i32 %4743, i32 %4770 %4772 = sub i32 %4743, %4763 %4773 = icmp ugt i32 %4771, %4772 %4774 = add i32 %4763, %4771 %4775 = or i1 %4769, %4773 %4776 = select i1 %4775, i32 34, i32 %4745 %4777 = select i1 %4773, i32 %4743, i32 %4774 br label %4778 4778: ; preds = %4768, %4765, %4760 %4779 = phi i32 [ %4776, %4768 ], [ %4745, %4760 ], [ 34, %4765 ] %4780 = phi i64 [ %4766, %4768 ], [ %4746, %4760 ], [ %4766, %4765 ] %4781 = phi i1 [ true, %4768 ], [ %4747, %4760 ], [ true, %4765 ] %4782 = phi i32 [ %4777, %4768 ], [ %4748, %4760 ], [ %4743, %4765 ] br i1 %4764, label %4744, label %4783 4783: ; preds = %4778, %4750, %4744 %4784 = phi i32 [ %4779, %4778 ], [ %4745, %4750 ], [ %4745, %4744 ] %4785 = phi i64 [ %4780, %4778 ], [ %4746, %4750 ], [ -1, %4744 ] %4786 = phi i1 [ %4781, %4778 ], [ %4747, %4750 ], [ %4747, %4744 ] %4787 = phi i32 [ %4782, %4778 ], [ %4748, %4750 ], [ %4748, %4744 ] %4788 = select i1 %4786, i64 %4785, i64 0 %4789 = icmp eq i32 %4784, 34 %4790 = sub i32 0, %4787 %4791 = select i1 %4741, i32 %4787, i32 %4790 %4792 = select i1 %4789, i32 %4743, i32 %4791 %4793 = add i64 %4788, %4712 br label %4794 4794: ; preds = %4783, %4720, %4716 %4795 = phi i64 [ %4717, %4716 ], [ %4793, %4783 ], [ %4711, %4720 ] %4796 = phi ptr [ %4718, %4716 ], [ %584, %4783 ], [ %584, %4720 ] %4797 = phi i64 [ %4717, %4716 ], [ %4793, %4783 ], [ %4712, %4720 ] %4798 = phi i32 [ %4719, %4716 ], [ %4792, %4783 ], [ 0, %4720 ] %4799 = icmp slt i32 %4798, 0 %4800 = icmp eq i32 %4798, -2147483648 %4801 = sub nsw i32 0, %4798 %4802 = select i1 %4800, i32 2147483647, i32 %4801 %4803 = select i1 %4799, i32 %4802, i32 %4798 %4804 = lshr i32 %4798, 31 %4805 = trunc nuw nsw i32 %4804 to i8 %4806 = or i8 %4710, %4805 %4807 = getelementptr inbounds nuw i8, ptr %1, i64 %4797 %4808 = load i8, ptr %4807, align 1, !tbaa !19 %4809 = icmp eq i8 %4808, 46 br i1 %4809, label %4810, label %4890 4810: ; preds = %4794 %4811 = add i64 %4797, 1 %4812 = getelementptr inbounds nuw i8, ptr %1, i64 %4811 %4813 = load i8, ptr %4812, align 1, !tbaa !19 %4814 = icmp eq i8 %4813, 42 br i1 %4814, label %4815, label %4819 4815: ; preds = %4810 %4816 = add i64 %4797, 2 %4817 = getelementptr inbounds i8, ptr %4796, i64 4 %4818 = load i32, ptr %4796, align 4, !tbaa !52 br label %4890 4819: ; preds = %4810 %4820 = sext i8 %4813 to i32 %4821 = add nsw i32 %4820, -48 %4822 = icmp ult i32 %4821, 10 br i1 %4822, label %4823, label %4890 4823: ; preds = %4827, %4819 %4824 = phi i64 [ %4828, %4827 ], [ 0, %4819 ] %4825 = getelementptr inbounds nuw i8, ptr %4812, i64 %4824 %4826 = load i8, ptr %4825, align 1, !tbaa !19, !alias.scope !391 switch i8 %4826, label %4830 [ i8 32, label %4827 i8 13, label %4827 i8 12, label %4827 i8 11, label %4827 i8 10, label %4827 i8 9, label %4827 ] 4827: ; preds = %4823, %4823, %4823, %4823, %4823, %4823 %4828 = add nuw i64 %4824, 1 %4829 = icmp eq i64 %4828, -1 br i1 %4829, label %4830, label %4823, !llvm.loop !80 4830: ; preds = %4827, %4823 %4831 = phi i8 [ 46, %4827 ], [ %4826, %4823 ] %4832 = phi i64 [ -1, %4827 ], [ %4824, %4823 ] switch i8 %4831, label %4836 [ i8 43, label %4833 i8 45, label %4833 ] 4833: ; preds = %4830, %4830 %4834 = add i64 %4832, 1 %4835 = icmp eq i8 %4831, 43 br label %4836 4836: ; preds = %4833, %4830 %4837 = phi i1 [ %4835, %4833 ], [ true, %4830 ] %4838 = phi i64 [ %4834, %4833 ], [ %4832, %4830 ] %4839 = select i1 %4837, i32 2147483647, i32 -2147483648 br label %4840 4840: ; preds = %4874, %4836 %4841 = phi i32 [ 0, %4836 ], [ %4875, %4874 ] %4842 = phi i64 [ %4838, %4836 ], [ %4876, %4874 ] %4843 = phi i1 [ false, %4836 ], [ %4877, %4874 ] %4844 = phi i32 [ 0, %4836 ], [ %4878, %4874 ] %4845 = icmp eq i64 %4842, -1 br i1 %4845, label %4879, label %4846 4846: ; preds = %4840 %4847 = getelementptr inbounds nuw i8, ptr %4812, i64 %4842 %4848 = load i8, ptr %4847, align 1, !tbaa !19, !alias.scope !391 %4849 = sext i8 %4848 to i32 %4850 = or i32 %4849, 32 %4851 = add nsw i32 %4850, -97 %4852 = icmp ult i32 %4851, 26 %4853 = add nsw i32 %4849, -48 %4854 = icmp ult i32 %4853, 10 %4855 = select i1 %4852, i1 true, i1 %4854 br i1 %4855, label %4856, label %4879 4856: ; preds = %4846 %4857 = add nsw i32 %4850, -87 %4858 = select i1 %4852, i32 %4857, i32 0 %4859 = select i1 %4854, i32 %4853, i32 %4858 %4860 = icmp slt i32 %4859, 10 br i1 %4860, label %4861, label %4874 4861: ; preds = %4856 %4862 = add nuw i64 %4842, 1 %4863 = icmp eq i32 %4844, %4839 br i1 %4863, label %4874, label %4864, !llvm.loop !81 4864: ; preds = %4861 %4865 = icmp ugt i32 %4844, 214748364 %4866 = mul i32 %4844, 10 %4867 = select i1 %4865, i32 %4839, i32 %4866 %4868 = sub i32 %4839, %4859 %4869 = icmp ugt i32 %4867, %4868 %4870 = add i32 %4859, %4867 %4871 = or i1 %4865, %4869 %4872 = select i1 %4871, i32 34, i32 %4841 %4873 = select i1 %4869, i32 %4839, i32 %4870 br label %4874 4874: ; preds = %4864, %4861, %4856 %4875 = phi i32 [ %4872, %4864 ], [ %4841, %4856 ], [ 34, %4861 ] %4876 = phi i64 [ %4862, %4864 ], [ %4842, %4856 ], [ %4862, %4861 ] %4877 = phi i1 [ true, %4864 ], [ %4843, %4856 ], [ true, %4861 ] %4878 = phi i32 [ %4873, %4864 ], [ %4844, %4856 ], [ %4839, %4861 ] br i1 %4860, label %4840, label %4879 4879: ; preds = %4874, %4846, %4840 %4880 = phi i32 [ %4875, %4874 ], [ %4841, %4846 ], [ %4841, %4840 ] %4881 = phi i64 [ %4876, %4874 ], [ %4842, %4846 ], [ -1, %4840 ] %4882 = phi i1 [ %4877, %4874 ], [ %4843, %4846 ], [ %4843, %4840 ] %4883 = phi i32 [ %4878, %4874 ], [ %4844, %4846 ], [ %4844, %4840 ] %4884 = select i1 %4882, i64 %4881, i64 0 %4885 = icmp eq i32 %4880, 34 %4886 = sub i32 0, %4883 %4887 = select i1 %4837, i32 %4883, i32 %4886 %4888 = select i1 %4885, i32 %4839, i32 %4887 %4889 = add i64 %4884, %4811 br label %4890 4890: ; preds = %4879, %4819, %4815, %4794 %4891 = phi i64 [ %4816, %4815 ], [ %4889, %4879 ], [ %4811, %4819 ], [ %4795, %4794 ] %4892 = phi ptr [ %4817, %4815 ], [ %4796, %4879 ], [ %4796, %4819 ], [ %4796, %4794 ] %4893 = phi i64 [ %4816, %4815 ], [ %4889, %4879 ], [ %4811, %4819 ], [ %4797, %4794 ] %4894 = phi i32 [ %4818, %4815 ], [ %4888, %4879 ], [ 0, %4819 ], [ -1, %4794 ] %4895 = getelementptr inbounds nuw i8, ptr %1, i64 %4893 %4896 = load i8, ptr %4895, align 1, !tbaa !19 switch i8 %4896, label %5004 [ i8 108, label %4897 i8 119, label %4904 i8 104, label %4989 i8 76, label %4996 i8 106, label %4998 i8 122, label %5000 i8 116, label %5002 ] 4897: ; preds = %4890 %4898 = add i64 %4893, 1 %4899 = getelementptr inbounds nuw i8, ptr %1, i64 %4898 %4900 = load i8, ptr %4899, align 1, !tbaa !19 %4901 = icmp eq i8 %4900, 108 br i1 %4901, label %4902, label %5004 4902: ; preds = %4897 %4903 = add i64 %4893, 2 br label %5004 4904: ; preds = %4890 %4905 = add i64 %4893, 1 %4906 = getelementptr inbounds nuw i8, ptr %1, i64 %4905 %4907 = load i8, ptr %4906, align 1, !tbaa !19 %4908 = icmp eq i8 %4907, 102 %4909 = add i64 %4893, 2 %4910 = select i1 %4908, i64 %4909, i64 %4905 %4911 = select i1 %4908, i32 9, i32 8 %4912 = getelementptr inbounds nuw i8, ptr %1, i64 %4910 %4913 = load i8, ptr %4912, align 1, !tbaa !19 %4914 = sext i8 %4913 to i32 %4915 = add nsw i32 %4914, -48 %4916 = icmp ult i32 %4915, 10 br i1 %4916, label %4917, label %5004 4917: ; preds = %4921, %4904 %4918 = phi i64 [ %4922, %4921 ], [ 0, %4904 ] %4919 = getelementptr inbounds nuw i8, ptr %4912, i64 %4918 %4920 = load i8, ptr %4919, align 1, !tbaa !19, !alias.scope !394 switch i8 %4920, label %4927 [ i8 32, label %4921 i8 13, label %4921 i8 12, label %4921 i8 11, label %4921 i8 10, label %4921 i8 9, label %4921 ] 4921: ; preds = %4917, %4917, %4917, %4917, %4917, %4917 %4922 = add nuw i64 %4918, 1 %4923 = icmp eq i64 %4922, -1 br i1 %4923, label %4924, label %4917, !llvm.loop !80 4924: ; preds = %4921 %4925 = getelementptr inbounds nuw i8, ptr %4912, i64 -1 %4926 = load i8, ptr %4925, align 1, !tbaa !19, !alias.scope !394 br label %4927 4927: ; preds = %4924, %4917 %4928 = phi i8 [ %4926, %4924 ], [ %4920, %4917 ] %4929 = phi i64 [ -1, %4924 ], [ %4918, %4917 ] switch i8 %4928, label %4933 [ i8 43, label %4930 i8 45, label %4930 ] 4930: ; preds = %4927, %4927 %4931 = add i64 %4929, 1 %4932 = icmp eq i8 %4928, 43 br label %4933 4933: ; preds = %4930, %4927 %4934 = phi i1 [ %4932, %4930 ], [ true, %4927 ] %4935 = phi i64 [ %4931, %4930 ], [ %4929, %4927 ] %4936 = select i1 %4934, i32 2147483647, i32 -2147483648 br label %4937 4937: ; preds = %4971, %4933 %4938 = phi i32 [ 0, %4933 ], [ %4972, %4971 ] %4939 = phi i64 [ %4935, %4933 ], [ %4973, %4971 ] %4940 = phi i1 [ false, %4933 ], [ %4974, %4971 ] %4941 = phi i32 [ 0, %4933 ], [ %4975, %4971 ] %4942 = icmp eq i64 %4939, -1 br i1 %4942, label %4976, label %4943 4943: ; preds = %4937 %4944 = getelementptr inbounds nuw i8, ptr %4912, i64 %4939 %4945 = load i8, ptr %4944, align 1, !tbaa !19, !alias.scope !394 %4946 = sext i8 %4945 to i32 %4947 = or i32 %4946, 32 %4948 = add nsw i32 %4947, -97 %4949 = icmp ult i32 %4948, 26 %4950 = add nsw i32 %4946, -48 %4951 = icmp ult i32 %4950, 10 %4952 = select i1 %4949, i1 true, i1 %4951 br i1 %4952, label %4953, label %4976 4953: ; preds = %4943 %4954 = add nsw i32 %4947, -87 %4955 = select i1 %4949, i32 %4954, i32 0 %4956 = select i1 %4951, i32 %4950, i32 %4955 %4957 = icmp slt i32 %4956, 10 br i1 %4957, label %4958, label %4971 4958: ; preds = %4953 %4959 = add nuw i64 %4939, 1 %4960 = icmp eq i32 %4941, %4936 br i1 %4960, label %4971, label %4961, !llvm.loop !81 4961: ; preds = %4958 %4962 = icmp ugt i32 %4941, 214748364 %4963 = mul i32 %4941, 10 %4964 = select i1 %4962, i32 %4936, i32 %4963 %4965 = sub i32 %4936, %4956 %4966 = icmp ugt i32 %4964, %4965 %4967 = add i32 %4956, %4964 %4968 = or i1 %4962, %4966 %4969 = select i1 %4968, i32 34, i32 %4938 %4970 = select i1 %4966, i32 %4936, i32 %4967 br label %4971 4971: ; preds = %4961, %4958, %4953 %4972 = phi i32 [ %4969, %4961 ], [ %4938, %4953 ], [ 34, %4958 ] %4973 = phi i64 [ %4959, %4961 ], [ %4939, %4953 ], [ %4959, %4958 ] %4974 = phi i1 [ true, %4961 ], [ %4940, %4953 ], [ true, %4958 ] %4975 = phi i32 [ %4970, %4961 ], [ %4941, %4953 ], [ %4936, %4958 ] br i1 %4957, label %4937, label %4976 4976: ; preds = %4971, %4943, %4937 %4977 = phi i32 [ %4972, %4971 ], [ %4938, %4943 ], [ %4938, %4937 ] %4978 = phi i64 [ %4973, %4971 ], [ %4939, %4943 ], [ -1, %4937 ] %4979 = phi i1 [ %4974, %4971 ], [ %4940, %4943 ], [ %4940, %4937 ] %4980 = phi i32 [ %4975, %4971 ], [ %4941, %4943 ], [ %4941, %4937 ] %4981 = select i1 %4979, i64 %4978, i64 0 %4982 = icmp eq i32 %4977, 34 %4983 = sub i32 0, %4980 %4984 = select i1 %4934, i32 %4980, i32 %4983 %4985 = select i1 %4982, i32 %4936, i32 %4984 %4986 = add i64 %4981, %4910 %4987 = call i32 @llvm.smax.i32(i32 %4985, i32 0) %4988 = zext nneg i32 %4987 to i64 br label %5004 4989: ; preds = %4890 %4990 = add i64 %4893, 1 %4991 = getelementptr inbounds nuw i8, ptr %1, i64 %4990 %4992 = load i8, ptr %4991, align 1, !tbaa !19 %4993 = icmp eq i8 %4992, 104 br i1 %4993, label %4994, label %5004 4994: ; preds = %4989 %4995 = add i64 %4893, 2 br label %5004 4996: ; preds = %4890 %4997 = add i64 %4893, 1 br label %5004 4998: ; preds = %4890 %4999 = add i64 %4893, 1 br label %5004 5000: ; preds = %4890 %5001 = add i64 %4893, 1 br label %5004 5002: ; preds = %4890 %5003 = add i64 %4893, 1 br label %5004 5004: ; preds = %5002, %5000, %4998, %4996, %4994, %4989, %4976, %4904, %4902, %4897, %4890 %5005 = phi i64 [ %4891, %4890 ], [ %5003, %5002 ], [ %5001, %5000 ], [ %4999, %4998 ], [ %4997, %4996 ], [ %4995, %4994 ], [ %4986, %4976 ], [ %4910, %4904 ], [ %4903, %4902 ], [ %4898, %4897 ], [ %4990, %4989 ] %5006 = phi i64 [ %4893, %4890 ], [ %5003, %5002 ], [ %5001, %5000 ], [ %4999, %4998 ], [ %4997, %4996 ], [ %4995, %4994 ], [ %4986, %4976 ], [ %4910, %4904 ], [ %4903, %4902 ], [ %4898, %4897 ], [ %4990, %4989 ] %5007 = phi i32 [ 10, %4890 ], [ 6, %5002 ], [ 5, %5000 ], [ 4, %4998 ], [ 7, %4996 ], [ 0, %4994 ], [ %4911, %4976 ], [ %4911, %4904 ], [ 3, %4902 ], [ 2, %4897 ], [ 1, %4989 ] %5008 = phi i64 [ 0, %4890 ], [ 0, %5002 ], [ 0, %5000 ], [ 0, %4998 ], [ 0, %4996 ], [ 0, %4994 ], [ %4988, %4976 ], [ 0, %4904 ], [ 0, %4902 ], [ 0, %4897 ], [ 0, %4989 ] %5009 = getelementptr inbounds nuw i8, ptr %1, i64 %5006 %5010 = load i8, ptr %5009, align 1, !tbaa !19 switch i8 %5010, label %5065 [ i8 37, label %5066 i8 99, label %5011 i8 100, label %5015 i8 105, label %5015 i8 111, label %5015 i8 120, label %5015 i8 88, label %5015 i8 117, label %5015 i8 98, label %5015 i8 66, label %5015 i8 114, label %5046 i8 82, label %5046 i8 107, label %5050 i8 75, label %5050 i8 112, label %5059 i8 115, label %5062 ] 5011: ; preds = %5004 %5012 = getelementptr inbounds i8, ptr %4892, i64 4 %5013 = load i32, ptr %4892, align 4, !tbaa !52 %5014 = sext i32 %5013 to i64 br label %5066 5015: ; preds = %5004, %5004, %5004, %5004, %5004, %5004, %5004, %5004 switch i32 %5007, label %425 [ i32 0, label %5016 i32 1, label %5016 i32 10, label %5016 i32 2, label %5020 i32 3, label %5023 i32 7, label %5023 i32 4, label %5026 i32 5, label %5029 i32 6, label %5032 i32 8, label %5035 i32 9, label %5035 ] 5016: ; preds = %5015, %5015, %5015 %5017 = getelementptr inbounds i8, ptr %4892, i64 4 %5018 = load i32, ptr %4892, align 4, !tbaa !52 %5019 = sext i32 %5018 to i64 br label %5066 5020: ; preds = %5015 %5021 = getelementptr inbounds i8, ptr %4892, i64 8 %5022 = load i64, ptr %4892, align 4, !tbaa !15 br label %5066 5023: ; preds = %5015, %5015 %5024 = getelementptr inbounds i8, ptr %4892, i64 8 %5025 = load i64, ptr %4892, align 4, !tbaa !57 br label %5066 5026: ; preds = %5015 %5027 = getelementptr inbounds i8, ptr %4892, i64 8 %5028 = load i64, ptr %4892, align 4, !tbaa !57 br label %5066 5029: ; preds = %5015 %5030 = getelementptr inbounds i8, ptr %4892, i64 8 %5031 = load i64, ptr %4892, align 4, !tbaa !15 br label %5066 5032: ; preds = %5015 %5033 = getelementptr inbounds i8, ptr %4892, i64 8 %5034 = load i64, ptr %4892, align 4, !tbaa !15 br label %5066 5035: ; preds = %5015, %5015 %5036 = icmp eq i64 %5008, 0 br i1 %5036, label %5066, label %5037 5037: ; preds = %5035 %5038 = icmp samesign ult i64 %5008, 33 br i1 %5038, label %5039, label %5043 5039: ; preds = %5037 %5040 = getelementptr inbounds i8, ptr %4892, i64 4 %5041 = load i32, ptr %4892, align 4, !tbaa !52 %5042 = sext i32 %5041 to i64 br label %5066 5043: ; preds = %5037 %5044 = getelementptr inbounds i8, ptr %4892, i64 8 %5045 = load i64, ptr %4892, align 4, !tbaa !19 br label %5066 5046: ; preds = %5004, %5004 %5047 = getelementptr inbounds i8, ptr %4892, i64 4 %5048 = load i32, ptr %4892, align 4, !tbaa !52 %5049 = zext i32 %5048 to i64 br label %5066 5050: ; preds = %5004, %5004 %5051 = icmp eq i32 %5007, 2 br i1 %5051, label %5052, label %5055 5052: ; preds = %5050 %5053 = getelementptr inbounds i8, ptr %4892, i64 8 %5054 = load i64, ptr %4892, align 4, !tbaa !57 br label %5066 5055: ; preds = %5050 %5056 = getelementptr inbounds i8, ptr %4892, i64 4 %5057 = load i32, ptr %4892, align 4, !tbaa !52 %5058 = zext i32 %5057 to i64 br label %5066 5059: ; preds = %5004 %5060 = getelementptr inbounds i8, ptr %4892, i64 8 %5061 = load ptr, ptr %4892, align 4, !tbaa !13 br label %5066 5062: ; preds = %5004 %5063 = getelementptr inbounds i8, ptr %4892, i64 8 %5064 = load ptr, ptr %4892, align 4, !tbaa !13 br label %5066 5065: ; preds = %5004 br label %5066 5066: ; preds = %5065, %5062, %5059, %5055, %5052, %5046, %5043, %5039, %5035, %5032, %5029, %5026, %5023, %5020, %5016, %5011, %5004 %5067 = phi ptr [ %4892, %5065 ], [ %5063, %5062 ], [ %5060, %5059 ], [ %5053, %5052 ], [ %5056, %5055 ], [ %5047, %5046 ], [ %4892, %5035 ], [ %5040, %5039 ], [ %5044, %5043 ], [ %5033, %5032 ], [ %5030, %5029 ], [ %5027, %5026 ], [ %5024, %5023 ], [ %5021, %5020 ], [ %5017, %5016 ], [ %5012, %5011 ], [ %4892, %5004 ] %5068 = phi ptr [ inttoptr (i64 -6148914691236517206 to ptr), %5065 ], [ %5064, %5062 ], [ %5061, %5059 ], [ inttoptr (i64 -6148914691236517206 to ptr), %5052 ], [ inttoptr (i64 -6148914691236517206 to ptr), %5055 ], [ inttoptr (i64 -6148914691236517206 to ptr), %5046 ], [ inttoptr (i64 -6148914691236517206 to ptr), %5035 ], [ inttoptr (i64 -6148914691236517206 to ptr), %5039 ], [ inttoptr (i64 -6148914691236517206 to ptr), %5043 ], [ inttoptr (i64 -6148914691236517206 to ptr), %5032 ], [ inttoptr (i64 -6148914691236517206 to ptr), %5029 ], [ inttoptr (i64 -6148914691236517206 to ptr), %5026 ], [ inttoptr (i64 -6148914691236517206 to ptr), %5023 ], [ inttoptr (i64 -6148914691236517206 to ptr), %5020 ], [ inttoptr (i64 -6148914691236517206 to ptr), %5016 ], [ inttoptr (i64 -6148914691236517206 to ptr), %5011 ], [ inttoptr (i64 -6148914691236517206 to ptr), %5004 ] %5069 = phi i64 [ -6148914691236517206, %5065 ], [ -6148914691236517206, %5062 ], [ -6148914691236517206, %5059 ], [ %5054, %5052 ], [ %5058, %5055 ], [ %5049, %5046 ], [ -6148914691236517206, %5035 ], [ %5042, %5039 ], [ %5045, %5043 ], [ %5034, %5032 ], [ %5031, %5029 ], [ %5028, %5026 ], [ %5025, %5023 ], [ %5022, %5020 ], [ %5019, %5016 ], [ %5014, %5011 ], [ -6148914691236517206, %5004 ] %5070 = phi i1 [ false, %5065 ], [ true, %5062 ], [ true, %5059 ], [ true, %5052 ], [ true, %5055 ], [ true, %5046 ], [ false, %5035 ], [ true, %5039 ], [ true, %5043 ], [ true, %5032 ], [ true, %5029 ], [ true, %5026 ], [ true, %5023 ], [ true, %5020 ], [ true, %5016 ], [ true, %5011 ], [ true, %5004 ] %5071 = icmp eq i8 %5010, 0 br i1 %5071, label %5081, label %5072 5072: ; preds = %5066 %5073 = add i64 %5006, 1 br label %5081 5074: ; preds = %5077, %4681 %5075 = phi i64 [ %5078, %5077 ], [ %572, %4681 ] %5076 = phi i8 [ %5080, %5077 ], [ %4683, %4681 ] switch i8 %5076, label %5077 [ i8 37, label %5081 i8 0, label %5081 ] 5077: ; preds = %5074 %5078 = add i64 %5075, 1 %5079 = getelementptr inbounds nuw i8, ptr %1, i64 %5078 %5080 = load i8, ptr %5079, align 1, !tbaa !19 br label %5074, !llvm.loop !88 5081: ; preds = %5074, %5074, %5072, %5066 %5082 = phi i64 [ %5005, %5066 ], [ %5073, %5072 ], [ %5075, %5074 ], [ %5075, %5074 ] %5083 = phi ptr [ %5067, %5066 ], [ %5067, %5072 ], [ %584, %5074 ], [ %584, %5074 ] %5084 = phi i64 [ %5006, %5066 ], [ %5073, %5072 ], [ %5075, %5074 ], [ %5075, %5074 ] %5085 = phi i8 [ 0, %5066 ], [ %5010, %5072 ], [ -86, %5074 ], [ -86, %5074 ] %5086 = phi ptr [ %5068, %5066 ], [ %5068, %5072 ], [ inttoptr (i64 -6148914691236517206 to ptr), %5074 ], [ inttoptr (i64 -6148914691236517206 to ptr), %5074 ] %5087 = phi i64 [ %5069, %5066 ], [ %5069, %5072 ], [ -6148914691236517206, %5074 ], [ -6148914691236517206, %5074 ] %5088 = phi i32 [ %4894, %5066 ], [ %4894, %5072 ], [ -1, %5074 ], [ -1, %5074 ] %5089 = phi i32 [ %4803, %5066 ], [ %4803, %5072 ], [ 0, %5074 ], [ 0, %5074 ] %5090 = phi i64 [ %5008, %5066 ], [ %5008, %5072 ], [ 0, %5074 ], [ 0, %5074 ] %5091 = phi i32 [ %5007, %5066 ], [ %5007, %5072 ], [ 10, %5074 ], [ 10, %5074 ] %5092 = phi i8 [ %4806, %5066 ], [ %4806, %5072 ], [ 0, %5074 ], [ 0, %5074 ] %5093 = phi i1 [ %5070, %5066 ], [ %5070, %5072 ], [ false, %5074 ], [ false, %5074 ] %5094 = sub i64 %5084, %572 %5095 = icmp eq i64 %5094, 0 br i1 %5095, label %5096, label %571, !llvm.loop !397 5096: ; preds = %5081, %4678, %441 %5097 = phi i1 [ true, %441 ], [ true, %5081 ], [ false, %4678 ] %5098 = phi i32 [ undef, %441 ], [ %4679, %4678 ], [ %4679, %5081 ] %5099 = getelementptr inbounds nuw i8, ptr %32, i64 8 %5100 = load i32, ptr %5099, align 8 %5101 = select i1 %5097, i32 %5100, i32 %5098 %5102 = load ptr, ptr addrspace(5) %29, align 8, !tbaa !65 %5103 = load i64, ptr addrspace(5) %36, align 8, !tbaa !70 %5104 = getelementptr inbounds nuw i8, ptr %5102, i64 %5103 store i8 0, ptr %5104, align 1, !tbaa !19 call void @llvm.lifetime.end.p5(i64 16, ptr addrspace(5) %30) #21 call void @llvm.lifetime.end.p5(i64 56, ptr addrspace(5) %29) #21 ret i32 %5101 } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset.p5.i64(ptr addrspace(5) nocapture writeonly, i8, i64, i1 immarg) #15 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smax.i32(i32, i32) #2 ; 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) #16 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #15 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.abs.i64(i64, i1 immarg) #2 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) declare void @llvm.memcpy.p0.p5.i64(ptr noalias nocapture writeonly, ptr addrspace(5) noalias nocapture readonly, i64, i1 immarg) #16 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.usub.sat.i64(i64, i64) #2 ; Function Attrs: convergent mustprogress nounwind define internal fastcc noundef i32 @_ZN22__llvm_libc_20_0_0_git11printf_core6Writer3padEcm(ptr nocapture noundef nonnull readonly align 8 dereferenceable(16) %0, i8 noundef signext range(i8 32, 49) %1, i64 noundef %2) unnamed_addr #14 align 2 !type !398 { %4 = alloca [64 x i8], align 1, addrspace(5) %5 = addrspacecast ptr addrspace(5) %4 to ptr %6 = load ptr, ptr %0, align 8, !tbaa !73 %7 = getelementptr inbounds nuw i8, ptr %6, i64 16 %8 = load <2 x i64>, ptr %7, align 8, !tbaa !15 %9 = extractelement <2 x i64> %8, i64 0 %10 = extractelement <2 x i64> %8, i64 1 %11 = sub i64 %9, %10 %12 = icmp eq i64 %11, 0 br i1 %12, label %20, label %13 13: ; preds = %3 %14 = load ptr, ptr %6, align 8, !tbaa !65 %15 = getelementptr inbounds nuw i8, ptr %14, i64 %10 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %15, i8 %1, i64 range(i64 1, 0) %11, i1 false) %16 = load ptr, ptr %0, align 8, !tbaa !73 %17 = getelementptr inbounds nuw i8, ptr %16, i64 24 %18 = load i64, ptr %17, align 8, !tbaa !70 %19 = add i64 %18, %11 store i64 %19, ptr %17, align 8, !tbaa !70 br label %20 20: ; preds = %13, %3 call void @llvm.lifetime.start.p5(i64 64, ptr addrspace(5) %4) #21 call void @llvm.memset.p5.i64(ptr addrspace(5) noundef align 1 dereferenceable(64) %4, i8 %1, i64 64, i1 false) br label %21 21: ; preds = %70, %20 %22 = phi i64 [ %11, %20 ], [ %23, %70 ] %23 = add i64 %22, 64 %24 = icmp ult i64 %23, %2 br i1 %24, label %25, label %73 25: ; preds = %21 %26 = load ptr, ptr %0, align 8, !tbaa !73 %27 = getelementptr inbounds nuw i8, ptr %26, i64 48 %28 = load i32, ptr %27, align 8, !tbaa !96 switch i32 %28, label %69 [ i32 0, label %29 i32 1, label %43 i32 2, label %63 ] 29: ; preds = %25 %30 = getelementptr inbounds nuw i8, ptr %26, i64 16 %31 = load <2 x i64>, ptr %30, align 8, !tbaa !15 %32 = extractelement <2 x i64> %31, i64 0 %33 = extractelement <2 x i64> %31, i64 1 %34 = icmp ult i64 %33, %32 br i1 %34, label %35, label %70 35: ; preds = %29 %36 = getelementptr inbounds nuw i8, ptr %26, i64 24 %37 = sub nuw i64 %32, %33 %38 = call i64 @llvm.umin.i64(i64 %37, i64 64) %39 = load ptr, ptr %26, align 8, !tbaa !65 %40 = getelementptr inbounds nuw i8, ptr %39, i64 %33 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %40, ptr align 1 %5, i64 %38, i1 false), !alias.scope !399 %41 = load i64, ptr %36, align 8, !tbaa !70 %42 = add i64 %41, %38 store i64 %42, ptr %36, align 8, !tbaa !70 br label %70 43: ; preds = %25 %44 = getelementptr inbounds nuw i8, ptr %26, i64 24 %45 = load i64, ptr %44, align 8, !tbaa !70 %46 = icmp eq i64 %45, 0 br i1 %46, label %55, label %47 47: ; preds = %43 %48 = getelementptr inbounds nuw i8, ptr %26, i64 32 %49 = load ptr, ptr %48, align 8, !tbaa !71 %50 = load ptr, ptr %26, align 8, !tbaa !65 %51 = getelementptr inbounds nuw i8, ptr %26, i64 40 %52 = load ptr, ptr %51, align 8, !tbaa !72 %53 = call noundef i32 %49(ptr %50, i64 %45, ptr noundef %52) #23 %54 = icmp sgt i32 %53, -1 br i1 %54, label %55, label %70 55: ; preds = %47, %43 %56 = getelementptr inbounds nuw i8, ptr %26, i64 32 %57 = load ptr, ptr %56, align 8, !tbaa !71 %58 = getelementptr inbounds nuw i8, ptr %26, i64 40 %59 = load ptr, ptr %58, align 8, !tbaa !72 %60 = call noundef i32 %57(ptr %5, i64 64, ptr noundef %59) #23 %61 = icmp sgt i32 %60, -1 br i1 %61, label %62, label %70 62: ; preds = %55 store i64 0, ptr %44, align 8, !tbaa !70 br label %70 63: ; preds = %25 %64 = getelementptr inbounds nuw i8, ptr %26, i64 32 %65 = load ptr, ptr %64, align 8, !tbaa !71 %66 = getelementptr inbounds nuw i8, ptr %26, i64 40 %67 = load ptr, ptr %66, align 8, !tbaa !72 %68 = call noundef i32 %65(ptr %5, i64 64, ptr noundef %67) #23 br label %70 69: ; preds = %25 unreachable 70: ; preds = %63, %62, %55, %47, %35, %29 %71 = phi i32 [ %68, %63 ], [ 0, %29 ], [ 0, %35 ], [ %53, %47 ], [ %60, %55 ], [ 0, %62 ] %72 = icmp eq i32 %71, 0 br i1 %72, label %21, label %123, !llvm.loop !105 73: ; preds = %21 %74 = phi i64 [ %22, %21 ] %75 = sub i64 %2, %74 %76 = call noundef i64 @llvm.umin.i64(i64 %75, i64 64) %77 = load ptr, ptr %0, align 8, !tbaa !73 %78 = getelementptr inbounds nuw i8, ptr %77, i64 48 %79 = load i32, ptr %78, align 8, !tbaa !96 switch i32 %79, label %122 [ i32 0, label %80 i32 1, label %94 i32 2, label %116 ] 80: ; preds = %73 %81 = getelementptr inbounds nuw i8, ptr %77, i64 16 %82 = load <2 x i64>, ptr %81, align 8, !tbaa !15 %83 = extractelement <2 x i64> %82, i64 0 %84 = extractelement <2 x i64> %82, i64 1 %85 = icmp ult i64 %84, %83 br i1 %85, label %86, label %123 86: ; preds = %80 %87 = getelementptr inbounds nuw i8, ptr %77, i64 24 %88 = sub nuw i64 %83, %84 %89 = call i64 @llvm.umin.i64(i64 %88, i64 %76) %90 = load ptr, ptr %77, align 8, !tbaa !65 %91 = getelementptr inbounds nuw i8, ptr %90, i64 %84 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %91, ptr align 1 %5, i64 %89, i1 false), !alias.scope !403 %92 = load i64, ptr %87, align 8, !tbaa !70 %93 = add i64 %92, %89 store i64 %93, ptr %87, align 8, !tbaa !70 br label %123 94: ; preds = %73 %95 = getelementptr inbounds nuw i8, ptr %77, i64 24 %96 = load i64, ptr %95, align 8, !tbaa !70 %97 = icmp eq i64 %96, 0 br i1 %97, label %106, label %98 98: ; preds = %94 %99 = getelementptr inbounds nuw i8, ptr %77, i64 32 %100 = load ptr, ptr %99, align 8, !tbaa !71 %101 = load ptr, ptr %77, align 8, !tbaa !65 %102 = getelementptr inbounds nuw i8, ptr %77, i64 40 %103 = load ptr, ptr %102, align 8, !tbaa !72 %104 = call noundef i32 %100(ptr %101, i64 %96, ptr noundef %103) #23 %105 = icmp sgt i32 %104, -1 br i1 %105, label %106, label %123 106: ; preds = %98, %94 %107 = icmp eq i64 %2, %74 br i1 %107, label %115, label %108 108: ; preds = %106 %109 = getelementptr inbounds nuw i8, ptr %77, i64 32 %110 = load ptr, ptr %109, align 8, !tbaa !71 %111 = getelementptr inbounds nuw i8, ptr %77, i64 40 %112 = load ptr, ptr %111, align 8, !tbaa !72 %113 = call noundef i32 %110(ptr %5, i64 %76, ptr noundef %112) #23 %114 = icmp sgt i32 %113, -1 br i1 %114, label %115, label %123 115: ; preds = %108, %106 store i64 0, ptr %95, align 8, !tbaa !70 br label %123 116: ; preds = %73 %117 = getelementptr inbounds nuw i8, ptr %77, i64 32 %118 = load ptr, ptr %117, align 8, !tbaa !71 %119 = getelementptr inbounds nuw i8, ptr %77, i64 40 %120 = load ptr, ptr %119, align 8, !tbaa !72 %121 = call noundef i32 %118(ptr %5, i64 %76, ptr noundef %120) #23 br label %123 122: ; preds = %73 unreachable 123: ; preds = %116, %115, %108, %98, %86, %80, %70 %124 = phi i32 [ %121, %116 ], [ 0, %80 ], [ 0, %86 ], [ %104, %98 ], [ %113, %108 ], [ 0, %115 ], [ %71, %70 ] call void @llvm.lifetime.end.p5(i64 64, ptr addrspace(5) %4) #21 ret i32 %124 } ; Function Attrs: convergent mustprogress nounwind define internal fastcc void @__cxa_finalize() unnamed_addr #14 { %1 = load i64, ptr addrspace(1) getelementptr inbounds nuw (i8, ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git16atexit_callbacksE, i64 1024), align 8, !tbaa !7 %2 = icmp eq i64 %1, 0 br i1 %2, label %12, label %3 3: ; preds = %3, %0 %4 = phi i64 [ %10, %3 ], [ %1, %0 ] %5 = add i64 %4, -1 %6 = getelementptr inbounds [64 x %"struct.__llvm_libc_20_0_0_git::AtExitUnit"], ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git16atexit_callbacksE, i64 0, i64 %5 store i64 %5, ptr addrspace(1) getelementptr inbounds nuw (i8, ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git16atexit_callbacksE, i64 1024), align 8, !tbaa !7 %7 = load ptr, ptr addrspace(1) %6, align 8, !tbaa !407 %8 = getelementptr inbounds i8, ptr addrspace(1) %6, i64 8 %9 = load ptr, ptr addrspace(1) %8, align 8, !tbaa !409 tail call void %7(ptr noundef %9) #23 %10 = load i64, ptr addrspace(1) getelementptr inbounds nuw (i8, ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git16atexit_callbacksE, i64 1024), align 8, !tbaa !7 %11 = icmp eq i64 %10, 0 br i1 %11, label %12, label %3, !llvm.loop !410 12: ; preds = %3, %0 store i64 0, ptr addrspace(1) getelementptr inbounds nuw (i8, ptr addrspace(1) @_ZN22__llvm_libc_20_0_0_git16atexit_callbacksE, i64 1024), align 8, !tbaa !7 ret void } ; Function Attrs: convergent inlinehint mustprogress nounwind define internal void @_ZN22__llvm_libc_20_0_0_git17stdc_at_exit_funcEPv(ptr nocapture noundef readonly %0) #17 comdat { tail call void %0() #23 ret void } ; Function Attrs: cold convergent mustprogress noreturn nounwind define internal fastcc void @_ZN22__llvm_libc_20_0_0_git4exitEi(i32 noundef %0) unnamed_addr #18 { tail call fastcc void @__cxa_finalize() #23 tail call fastcc void @_ZN22__llvm_libc_20_0_0_git8internal4exitEi(i32 noundef %0) #24 unreachable } ; Function Attrs: convergent nocallback nofree nounwind willreturn memory(none) declare i32 @llvm.amdgcn.ballot.i32(i1) #11 attributes #0 = { convergent mustprogress nounwind "amdgpu-flat-work-group-size"="1,1" "amdgpu-max-num-workgroups"="1,1,1" "frame-pointer"="all" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" } attributes #1 = { convergent mustprogress nounwind "frame-pointer"="all" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" } attributes #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #3 = { cold convergent mustprogress noreturn nounwind "amdgpu-flat-work-group-size"="1,1" "amdgpu-max-num-workgroups"="1,1,1" "frame-pointer"="all" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" } attributes #4 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #5 = { cold convergent mustprogress nofree norecurse noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" } attributes #6 = { convergent inlinehint mustprogress nofree norecurse nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" } attributes #7 = { convergent inlinehint mustprogress nofree norecurse nounwind willreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" } attributes #8 = { cold convergent nocallback nofree noreturn nounwind } attributes #9 = { convergent nocallback nofree nounwind willreturn } attributes #10 = { nocallback nofree nosync nounwind willreturn memory(none) } attributes #11 = { convergent nocallback nofree nounwind willreturn memory(none) } attributes #12 = { nocallback nofree nosync nounwind willreturn } attributes #13 = { convergent mustprogress nofree norecurse nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" } attributes #14 = { convergent mustprogress nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" } attributes #15 = { nocallback nofree nounwind willreturn memory(argmem: write) } attributes #16 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #17 = { convergent inlinehint mustprogress nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" } attributes #18 = { cold convergent mustprogress noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" } attributes #19 = { convergent nobuiltin nounwind "no-builtins" } attributes #20 = { convergent nobuiltin noreturn nounwind "no-builtins" } attributes #21 = { nounwind } attributes #22 = { convergent } attributes #23 = { convergent nounwind } attributes #24 = { convergent noreturn nounwind } !llvm.ident = !{!0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0} !llvm.module.flags = !{!1, !2, !3, !4, !5, !6} !llvm.linker.options = !{} !0 = !{!"clang version 20.0.0git"} !1 = !{i32 1, !"wchar_size", i32 4} !2 = !{i32 8, !"PIC Level", i32 2} !3 = !{i32 7, !"frame-pointer", i32 2} !4 = !{i32 1, !"ThinLTO", i32 0} !5 = !{i32 1, !"EnableSplitLTOUnit", i32 1} !6 = !{i32 1, !"amdhsa_code_object_version", i32 500} !7 = !{!8, !12, i64 1024} !8 = !{!"_ZTSN22__llvm_libc_20_0_0_git11FixedVectorINS_10AtExitUnitELm64EEE", !9, i64 0, !12, i64 1024} !9 = !{!"_ZTSN22__llvm_libc_20_0_0_git3cpp5arrayINS_10AtExitUnitELm64EEE", !10, i64 0} !10 = !{!"omnipotent char", !11, i64 0} !11 = !{!"Simple C++ TBAA"} !12 = !{!"long", !10, i64 0} !13 = !{!14, !14, i64 0} !14 = !{!"any pointer", !10, i64 0} !15 = !{!12, !12, i64 0} !16 = distinct !{!16, !17} !17 = !{!"llvm.loop.mustprogress"} !18 = distinct !{!18, !17} !19 = !{!10, !10, i64 0} !20 = distinct !{!20, !17} !21 = distinct !{!21, !17} !22 = distinct !{!22, !17} !23 = !{!"auto-init"} !24 = !{i64 0, !"_ZTSMN22__llvm_libc_20_0_0_git3rpc6ClientEFNS0_4PortILb0EEEvE"} !25 = !{!26, !28, i64 0} !26 = !{!"_ZTSN22__llvm_libc_20_0_0_git3rpc6ClientE", !27, i64 0} !27 = !{!"_ZTSN22__llvm_libc_20_0_0_git3rpc7ProcessILb0EEE", !28, i64 0, !14, i64 8, !14, i64 16, !14, i64 24, !14, i64 32, !10, i64 40} !28 = !{!"int", !10, i64 0} !29 = !{!27, !14, i64 8} !30 = !{!27, !14, i64 16} !31 = !{!26, !14, i64 24} !32 = !{!33, !35, i64 8} !33 = !{!"_ZTSN22__llvm_libc_20_0_0_git3rpc6HeaderE", !34, i64 0, !35, i64 8} !34 = !{!"long long", !10, i64 0} !35 = !{!"short", !10, i64 0} !36 = !{!33, !34, i64 0} !37 = distinct !{!37, !17} !38 = !{i64 0, !39} !39 = distinct !{} !40 = !{!41, !42, i64 29} !41 = !{!"_ZTSN22__llvm_libc_20_0_0_git3rpc4PortILb0EEE", !14, i64 0, !34, i64 8, !28, i64 16, !28, i64 20, !28, i64 24, !42, i64 28, !42, i64 29} !42 = !{!"bool", !10, i64 0} !43 = !{i8 0, i8 2} !44 = !{} !45 = !{!41, !28, i64 24} !46 = !{!41, !14, i64 0} !47 = !{!41, !28, i64 20} !48 = distinct !{!48, !17} !49 = !{!41, !42, i64 28} !50 = !{i64 0, !51} !51 = distinct !{} !52 = !{!28, !28, i64 0} !53 = !{!27, !14, i64 32} !54 = !{i64 0, !"_ZTSMN22__llvm_libc_20_0_0_git3rpc4PortILb0EEEFvvE"} !55 = !{!41, !34, i64 8} !56 = distinct !{!56, !17} !57 = !{!34, !34, i64 0} !58 = !{!59, !59, i64 0} !59 = !{!"_ZTSN22__llvm_libc_20_0_0_git3cpp4byteE", !10, i64 0} !60 = distinct !{!60, !17, !61} !61 = !{!"llvm.loop.unroll.disable"} !62 = !{!27, !14, i64 24} !63 = distinct !{!63, !17} !64 = distinct !{!64, !17} !65 = !{!66, !14, i64 0} !66 = !{!"_ZTSN22__llvm_libc_20_0_0_git11printf_core11WriteBufferE", !14, i64 0, !14, i64 8, !12, i64 16, !12, i64 24, !14, i64 32, !14, i64 40, !67, i64 48} !67 = !{!"_ZTSN22__llvm_libc_20_0_0_git11printf_core11WriteBuffer9WriteModeE", !10, i64 0} !68 = !{!66, !14, i64 8} !69 = !{!66, !12, i64 16} !70 = !{!66, !12, i64 24} !71 = !{!66, !14, i64 32} !72 = !{!66, !14, i64 40} !73 = !{!74, !14, i64 0} !74 = !{!"_ZTSN22__llvm_libc_20_0_0_git11printf_core6WriterE", !14, i64 0, !28, i64 8} !75 = !{!74, !28, i64 8} !76 = distinct !{!76, !17} !77 = !{!78} !78 = distinct !{!78, !79, !"_ZN22__llvm_libc_20_0_0_git8internal12strtointegerIiEENS_14StrToNumResultIT_EEPKcim: %src"} !79 = distinct !{!79, !"_ZN22__llvm_libc_20_0_0_git8internal12strtointegerIiEENS_14StrToNumResultIT_EEPKcim"} !80 = distinct !{!80, !17} !81 = distinct !{!81, !17} !82 = !{!83} !83 = distinct !{!83, !84, !"_ZN22__llvm_libc_20_0_0_git8internal12strtointegerIiEENS_14StrToNumResultIT_EEPKcim: %src"} !84 = distinct !{!84, !"_ZN22__llvm_libc_20_0_0_git8internal12strtointegerIiEENS_14StrToNumResultIT_EEPKcim"} !85 = !{!86} !86 = distinct !{!86, !87, !"_ZN22__llvm_libc_20_0_0_git8internal12strtointegerIiEENS_14StrToNumResultIT_EEPKcim: %src"} !87 = distinct !{!87, !"_ZN22__llvm_libc_20_0_0_git8internal12strtointegerIiEENS_14StrToNumResultIT_EEPKcim"} !88 = distinct !{!88, !17} !89 = !{!90} !90 = distinct !{!90, !91, !"_ZN22__llvm_libc_20_0_0_git11printf_core11printf_mainEPNS0_6WriterEPKcRNS_8internal7ArgListE: argument 0"} !91 = distinct !{!91, !"_ZN22__llvm_libc_20_0_0_git11printf_core11printf_mainEPNS0_6WriterEPKcRNS_8internal7ArgListE"} !92 = !{!93, !95} !93 = distinct !{!93, !94, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !94 = distinct !{!94, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !95 = distinct !{!95, !94, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !96 = !{!66, !67, i64 48} !97 = !{!98, !100} !98 = distinct !{!98, !99, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !99 = distinct !{!99, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !100 = distinct !{!100, !99, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !101 = !{!102, !104} !102 = distinct !{!102, !103, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !103 = distinct !{!103, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !104 = distinct !{!104, !103, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !105 = distinct !{!105, !17} !106 = !{!107, !109} !107 = distinct !{!107, !108, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !108 = distinct !{!108, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !109 = distinct !{!109, !108, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !110 = !{!111, !113} !111 = distinct !{!111, !112, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !112 = distinct !{!112, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !113 = distinct !{!113, !112, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !114 = distinct !{!114, !17} !115 = !{!116, !118} !116 = distinct !{!116, !117, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !117 = distinct !{!117, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !118 = distinct !{!118, !117, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !119 = !{!120, !122} !120 = distinct !{!120, !121, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !121 = distinct !{!121, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !122 = distinct !{!122, !121, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !123 = !{!124, !126} !124 = distinct !{!124, !125, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !125 = distinct !{!125, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !126 = distinct !{!126, !125, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !127 = !{!128, !130} !128 = distinct !{!128, !129, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !129 = distinct !{!129, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !130 = distinct !{!130, !129, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !131 = distinct !{!131, !17} !132 = distinct !{!132, !17} !133 = distinct !{!133, !17} !134 = distinct !{!134, !17} !135 = distinct !{!135, !17} !136 = !{!137, !139} !137 = distinct !{!137, !138, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !138 = distinct !{!138, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !139 = distinct !{!139, !138, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !140 = !{!141, !143} !141 = distinct !{!141, !142, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !142 = distinct !{!142, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !143 = distinct !{!143, !142, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !144 = !{!145, !147} !145 = distinct !{!145, !146, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !146 = distinct !{!146, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !147 = distinct !{!147, !146, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !148 = !{!149, !151} !149 = distinct !{!149, !150, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !150 = distinct !{!150, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !151 = distinct !{!151, !150, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !152 = !{!153, !155} !153 = distinct !{!153, !154, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !154 = distinct !{!154, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !155 = distinct !{!155, !154, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !156 = !{!157, !159} !157 = distinct !{!157, !158, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !158 = distinct !{!158, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !159 = distinct !{!159, !158, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !160 = !{!161, !163} !161 = distinct !{!161, !162, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !162 = distinct !{!162, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !163 = distinct !{!163, !162, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !164 = !{!165, !167} !165 = distinct !{!165, !166, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !166 = distinct !{!166, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !167 = distinct !{!167, !166, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !168 = !{!169, !171} !169 = distinct !{!169, !170, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !170 = distinct !{!170, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !171 = distinct !{!171, !170, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !172 = !{!173, !175} !173 = distinct !{!173, !174, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !174 = distinct !{!174, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !175 = distinct !{!175, !174, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !176 = !{!177, !179} !177 = distinct !{!177, !178, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !178 = distinct !{!178, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !179 = distinct !{!179, !178, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !180 = !{!181, !183} !181 = distinct !{!181, !182, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !182 = distinct !{!182, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !183 = distinct !{!183, !182, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !184 = !{!185, !187} !185 = distinct !{!185, !186, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !186 = distinct !{!186, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !187 = distinct !{!187, !186, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !188 = !{!189, !191} !189 = distinct !{!189, !190, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !190 = distinct !{!190, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !191 = distinct !{!191, !190, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !192 = !{!193, !195} !193 = distinct !{!193, !194, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !194 = distinct !{!194, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !195 = distinct !{!195, !194, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !196 = !{!197, !199} !197 = distinct !{!197, !198, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !198 = distinct !{!198, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !199 = distinct !{!199, !198, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !200 = distinct !{!200, !17} !201 = distinct !{!201, !17} !202 = !{!203, !12, i64 16} !203 = !{!"_ZTSN22__llvm_libc_20_0_0_git15IntegerToStringIjNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEE", !204, i64 0, !12, i64 16} !204 = !{!"_ZTSN22__llvm_libc_20_0_0_git3cpp5arrayIcLm11EEE", !10, i64 0} !205 = distinct !{!205, !17} !206 = distinct !{!206, !17} !207 = distinct !{!207, !17} !208 = distinct !{!208, !17} !209 = !{!210, !12, i64 24} !210 = !{!"_ZTSN22__llvm_libc_20_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEE", !211, i64 0, !12, i64 24} !211 = !{!"_ZTSN22__llvm_libc_20_0_0_git3cpp5arrayIcLm21EEE", !10, i64 0} !212 = !{!213, !215} !213 = distinct !{!213, !214, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !214 = distinct !{!214, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !215 = distinct !{!215, !214, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !216 = !{!217, !219} !217 = distinct !{!217, !218, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !218 = distinct !{!218, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !219 = distinct !{!219, !218, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !220 = !{!221, !223} !221 = distinct !{!221, !222, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !222 = distinct !{!222, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !223 = distinct !{!223, !222, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !224 = !{!225, !227} !225 = distinct !{!225, !226, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !226 = distinct !{!226, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !227 = distinct !{!227, !226, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !228 = !{!229, !231} !229 = distinct !{!229, !230, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !230 = distinct !{!230, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !231 = distinct !{!231, !230, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !232 = !{!233, !235} !233 = distinct !{!233, !234, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !234 = distinct !{!234, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !235 = distinct !{!235, !234, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !236 = !{!237, !239} !237 = distinct !{!237, !238, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !238 = distinct !{!238, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !239 = distinct !{!239, !238, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !240 = !{!241, !243} !241 = distinct !{!241, !242, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !242 = distinct !{!242, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !243 = distinct !{!243, !242, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !244 = !{!245, !247} !245 = distinct !{!245, !246, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !246 = distinct !{!246, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !247 = distinct !{!247, !246, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !248 = !{!249, !251} !249 = distinct !{!249, !250, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !250 = distinct !{!250, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !251 = distinct !{!251, !250, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !252 = !{!253, !255} !253 = distinct !{!253, !254, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !254 = distinct !{!254, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !255 = distinct !{!255, !254, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !256 = !{!257, !259} !257 = distinct !{!257, !258, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !258 = distinct !{!258, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !259 = distinct !{!259, !258, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !260 = !{!261, !263} !261 = distinct !{!261, !262, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !262 = distinct !{!262, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !263 = distinct !{!263, !262, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !264 = !{!265, !267} !265 = distinct !{!265, !266, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !266 = distinct !{!266, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !267 = distinct !{!267, !266, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !268 = !{!269, !271} !269 = distinct !{!269, !270, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !270 = distinct !{!270, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !271 = distinct !{!271, !270, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !272 = !{!273, !275} !273 = distinct !{!273, !274, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !274 = distinct !{!274, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !275 = distinct !{!275, !274, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !276 = !{!277, !279} !277 = distinct !{!277, !278, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !278 = distinct !{!278, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !279 = distinct !{!279, !278, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !280 = !{!281, !283} !281 = distinct !{!281, !282, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !282 = distinct !{!282, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !283 = distinct !{!283, !282, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !284 = !{!285, !287} !285 = distinct !{!285, !286, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !286 = distinct !{!286, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !287 = distinct !{!287, !286, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !288 = !{!289, !291} !289 = distinct !{!289, !290, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !290 = distinct !{!290, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !291 = distinct !{!291, !290, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !292 = !{!293, !295} !293 = distinct !{!293, !294, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !294 = distinct !{!294, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !295 = distinct !{!295, !294, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !296 = !{!297, !299} !297 = distinct !{!297, !298, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !298 = distinct !{!298, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !299 = distinct !{!299, !298, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !300 = !{!301, !303} !301 = distinct !{!301, !302, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !302 = distinct !{!302, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !303 = distinct !{!303, !302, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !304 = !{!305, !307} !305 = distinct !{!305, !306, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !306 = distinct !{!306, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !307 = distinct !{!307, !306, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !308 = !{!309, !311} !309 = distinct !{!309, !310, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !310 = distinct !{!310, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !311 = distinct !{!311, !310, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !312 = !{!313, !315} !313 = distinct !{!313, !314, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !314 = distinct !{!314, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !315 = distinct !{!315, !314, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !316 = !{!317, !319} !317 = distinct !{!317, !318, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !318 = distinct !{!318, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !319 = distinct !{!319, !318, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !320 = !{!321, !323} !321 = distinct !{!321, !322, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !322 = distinct !{!322, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !323 = distinct !{!323, !322, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !324 = !{!325, !327} !325 = distinct !{!325, !326, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !326 = distinct !{!326, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !327 = distinct !{!327, !326, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !328 = !{!329, !331} !329 = distinct !{!329, !330, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !330 = distinct !{!330, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !331 = distinct !{!331, !330, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !332 = !{!333, !335} !333 = distinct !{!333, !334, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !334 = distinct !{!334, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !335 = distinct !{!335, !334, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !336 = !{!337, !339} !337 = distinct !{!337, !338, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !338 = distinct !{!338, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !339 = distinct !{!339, !338, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !340 = !{!341, !343} !341 = distinct !{!341, !342, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !342 = distinct !{!342, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !343 = distinct !{!343, !342, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !344 = !{!345, !347} !345 = distinct !{!345, !346, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !346 = distinct !{!346, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !347 = distinct !{!347, !346, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !348 = !{!349, !351} !349 = distinct !{!349, !350, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !350 = distinct !{!350, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !351 = distinct !{!351, !350, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !352 = !{!353, !355} !353 = distinct !{!353, !354, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !354 = distinct !{!354, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !355 = distinct !{!355, !354, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !356 = !{!357, !359} !357 = distinct !{!357, !358, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !358 = distinct !{!358, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !359 = distinct !{!359, !358, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !360 = !{!361, !363} !361 = distinct !{!361, !362, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !362 = distinct !{!362, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !363 = distinct !{!363, !362, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !364 = !{!365, !367} !365 = distinct !{!365, !366, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !366 = distinct !{!366, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !367 = distinct !{!367, !366, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !368 = !{!369, !371} !369 = distinct !{!369, !370, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !370 = distinct !{!370, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !371 = distinct !{!371, !370, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !372 = !{!373, !375} !373 = distinct !{!373, !374, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !374 = distinct !{!374, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !375 = distinct !{!375, !374, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !376 = !{!377, !379} !377 = distinct !{!377, !378, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !378 = distinct !{!378, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !379 = distinct !{!379, !378, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !380 = !{!381, !383} !381 = distinct !{!381, !382, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !382 = distinct !{!382, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !383 = distinct !{!383, !382, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !384 = !{!385, !387} !385 = distinct !{!385, !386, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !386 = distinct !{!386, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !387 = distinct !{!387, !386, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !388 = !{!389} !389 = distinct !{!389, !390, !"_ZN22__llvm_libc_20_0_0_git8internal12strtointegerIiEENS_14StrToNumResultIT_EEPKcim: %src"} !390 = distinct !{!390, !"_ZN22__llvm_libc_20_0_0_git8internal12strtointegerIiEENS_14StrToNumResultIT_EEPKcim"} !391 = !{!392} !392 = distinct !{!392, !393, !"_ZN22__llvm_libc_20_0_0_git8internal12strtointegerIiEENS_14StrToNumResultIT_EEPKcim: %src"} !393 = distinct !{!393, !"_ZN22__llvm_libc_20_0_0_git8internal12strtointegerIiEENS_14StrToNumResultIT_EEPKcim"} !394 = !{!395} !395 = distinct !{!395, !396, !"_ZN22__llvm_libc_20_0_0_git8internal12strtointegerIiEENS_14StrToNumResultIT_EEPKcim: %src"} !396 = distinct !{!396, !"_ZN22__llvm_libc_20_0_0_git8internal12strtointegerIiEENS_14StrToNumResultIT_EEPKcim"} !397 = distinct !{!397, !17} !398 = !{i64 0, !"_ZTSMN22__llvm_libc_20_0_0_git11printf_core6WriterEFicmE"} !399 = !{!400, !402} !400 = distinct !{!400, !401, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !401 = distinct !{!401, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !402 = distinct !{!402, !401, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !403 = !{!404, !406} !404 = distinct !{!404, !405, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %dst"} !405 = distinct !{!405, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm"} !406 = distinct !{!406, !405, !"_ZN22__llvm_libc_20_0_0_git13inline_memcpyEPvPKvm: %src"} !407 = !{!408, !14, i64 0} !408 = !{!"_ZTSN22__llvm_libc_20_0_0_git10AtExitUnitE", !14, i64 0, !14, i64 8} !409 = !{!408, !14, i64 8} !410 = distinct !{!410, !17}
Become a Patron
Sponsor on GitHub
Donate via PayPal
Compiler Explorer Shop
Source on GitHub
Mailing list
Installed libraries
Wiki
Report an issue
How it works
Contact the author
CE on Mastodon
CE on Bluesky
Statistics
Changelog
Version tree