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 = 'image.0.5.precodegen.bc' source_filename = "ld-temp.o" target datalayout = "e-p6:32:32-i64:64-i128:128-v16:16-v32:32-n16:32:64" target triple = "nvptx64-nvidia-cuda" %"struct.__llvm_libc_22_0_0_git::DataEnvironment" = type { ptr } %class.LlvmLibcIntegerToStringTest_INT32 = type { %"class.__llvm_libc_22_0_0_git::testing::Test" } %"class.__llvm_libc_22_0_0_git::testing::Test" = type { ptr, ptr, ptr } %"class.__llvm_libc_22_0_0_git::FixedVector" = type { %"struct.__llvm_libc_22_0_0_git::cpp::array.12", i64 } %"struct.__llvm_libc_22_0_0_git::cpp::array.12" = type { [64 x %"struct.__llvm_libc_22_0_0_git::AtExitUnit"] } %"struct.__llvm_libc_22_0_0_git::AtExitUnit" = type { ptr, ptr } %"struct.rpc::Client" = type { %"struct.rpc::Process" } %"struct.rpc::Process" = type { i32, ptr, ptr, ptr, ptr, [128 x i32] } %"struct.__llvm_libc_22_0_0_git::testing::TestOptions" = type <{ ptr, i8, i8, [6 x i8] }> %"class.__llvm_libc_22_0_0_git::IntegerToString" = type { %"struct.__llvm_libc_22_0_0_git::cpp::array", i64 } %"struct.__llvm_libc_22_0_0_git::cpp::array" = type { [11 x i8] } %"struct.rpc::Header" = type { i64, i32 } %"struct.rpc::Buffer" = type { [8 x i64] } %"class.__llvm_libc_22_0_0_git::IntegerToString.21" = type { %"struct.__llvm_libc_22_0_0_git::cpp::array.17", i64 } %"struct.__llvm_libc_22_0_0_git::cpp::array.17" = type { [21 x i8] } %"struct.__llvm_libc_22_0_0_git::testing::TestLogger" = type { i8 } %"struct.rpc::Port" = type <{ ptr, i64, i32, i32, i32, i8, i8, [2 x i8] }> $_ZN33LlvmLibcIntegerToStringTest_INT32D1Ev = comdat any $_ZN33LlvmLibcIntegerToStringTest_INT32D0Ev = comdat any $_ZN22__llvm_libc_22_0_0_git7testing4Test5SetUpEv = comdat any $_ZN22__llvm_libc_22_0_0_git7testing4Test8TearDownEv = comdat any $_ZNK33LlvmLibcIntegerToStringTest_INT327getNameEv = comdat any $_ZN22__llvm_libc_22_0_0_git17stdc_at_exit_funcEPv = comdat any $_ZN3rpc6Client4openILj1660944385EEENS_4PortILb0EEEv = comdat any $_ZN3rpc4PortILb0EE5closeEv = comdat any $_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE = comdat any @_ZN22__llvm_libc_22_0_0_git3appE = internal unnamed_addr global %"struct.__llvm_libc_22_0_0_git::DataEnvironment" zeroinitializer, align 8 @__init_array_start = protected local_unnamed_addr global ptr null, align 8 @__init_array_end = protected local_unnamed_addr global ptr null, align 8 @__fini_array_start = protected local_unnamed_addr global ptr null, align 8 @__fini_array_end = protected local_unnamed_addr global ptr null, align 8 @llvm.global_ctors = appending global [0 x { i32, ptr, ptr }] zeroinitializer @LlvmLibcIntegerToStringTest_INT32_Instance = dso_local global %class.LlvmLibcIntegerToStringTest_INT32 { %"class.__llvm_libc_22_0_0_git::testing::Test" { ptr getelementptr inbounds nuw inrange(-16, 48) (i8, ptr @_ZTV33LlvmLibcIntegerToStringTest_INT32, i64 16), ptr null, ptr null } }, align 8 @.str = private unnamed_addr constant [3 x i8] c"-1\00", align 1 @.str1 = private unnamed_addr constant [14 x i8] c"buffer.view()\00", align 1 @.str2 = private unnamed_addr constant [18 x i8] c"string_view(\22-1\22)\00", align 1 @.str3 = private unnamed_addr constant [92 x i8] c"/home/jhuber/Documents/llvm/llvm-project/libc/test/src/__support/integer_to_string_test.cpp\00", align 1 @_ZTV33LlvmLibcIntegerToStringTest_INT32 = dso_local unnamed_addr constant { [8 x ptr] } { [8 x ptr] [ptr null, ptr null, ptr @_ZN33LlvmLibcIntegerToStringTest_INT32D1Ev, ptr @_ZN33LlvmLibcIntegerToStringTest_INT32D0Ev, ptr @_ZN22__llvm_libc_22_0_0_git7testing4Test5SetUpEv, ptr @_ZN22__llvm_libc_22_0_0_git7testing4Test8TearDownEv, ptr @_ZN33LlvmLibcIntegerToStringTest_INT323RunEv, ptr @_ZNK33LlvmLibcIntegerToStringTest_INT327getNameEv] }, align 8, !type !0, !type !1, !type !2, !type !3, !type !4, !type !5, !type !6, !type !7, !type !8, !type !9 @.str4 = private unnamed_addr constant [34 x i8] c"LlvmLibcIntegerToStringTest.INT32\00", align 1 @.str7 = private unnamed_addr constant [11 x i8] c": FAILURE\0A\00", align 1 @.str8 = private unnamed_addr constant [6 x i8] c"\1B[32m\00", align 1 @.str9 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 @.str10 = private unnamed_addr constant [6 x i8] c"\1B[31m\00", align 1 @.str11 = private unnamed_addr constant [5 x i8] c"\1B[0m\00", align 1 @.str12 = private unnamed_addr constant [14 x i8] c"[==========] \00", align 1 @.str14 = private unnamed_addr constant [6 x i8] c" test\00", align 1 @.str1613 = private unnamed_addr constant [21 x i8] c" from 1 test suite.\0A\00", align 1 @.str17 = private unnamed_addr constant [14 x i8] c"[ RUN ] \00", align 1 @.str18 = private unnamed_addr constant [14 x i8] c"[ FAILED ] \00", align 1 @.str19 = private unnamed_addr constant [14 x i8] c"[ OK ] \00", align 1 @.str21 = private unnamed_addr constant [26 x i8] c"unknown - try rerunning)\0A\00", align 1 @.str22 = private unnamed_addr constant [6 x i8] c" ms)\0A\00", align 1 @.str23 = private unnamed_addr constant [6 x i8] c" us)\0A\00", align 1 @.str24 = private unnamed_addr constant [6 x i8] c" ns)\0A\00", align 1 @.str2714 = private unnamed_addr constant [8 x i8] c" PASS: \00", align 1 @.str28 = private unnamed_addr constant [8 x i8] c" FAIL: \00", align 1 @.str29 = private unnamed_addr constant [15 x i8] c"No tests run.\0A\00", align 1 @.str30 = private unnamed_addr constant [22 x i8] c"No matching test for \00", align 1 @.str34 = private unnamed_addr constant [11 x i8] c"Expected: \00", align 1 @.str35 = private unnamed_addr constant [11 x i8] c"Which is: \00", align 1 @.str36 = private unnamed_addr constant [7 x i8] c"To be \00", align 1 @_ZN22__llvm_libc_22_0_0_git7testing4argvE = internal unnamed_addr global ptr null, align 8 @_ZN22__llvm_libc_22_0_0_git7testing4envpE = internal unnamed_addr global ptr null, align 8 @.str31 = private unnamed_addr constant [17 x i8] c"--gtest_color=no\00", align 1 @.str132 = private unnamed_addr constant [19 x i8] c"--gtest_print_time\00", align 1 @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE = internal constant i8 0, comdat, align 1 @_ZN12_GLOBAL__N_13ptrE = internal unnamed_addr global ptr @_ZN12_GLOBAL__N_16memoryE, align 8 @_ZN12_GLOBAL__N_16memoryE = internal global [65336 x i8] zeroinitializer, align 8 @__dso_handle = dso_local local_unnamed_addr global ptr null, align 8 @_ZN22__llvm_libc_22_0_0_git16atexit_callbacksE = internal unnamed_addr global %"class.__llvm_libc_22_0_0_git::FixedVector" { %"struct.__llvm_libc_22_0_0_git::cpp::array.12" { [64 x %"struct.__llvm_libc_22_0_0_git::AtExitUnit"] [%"struct.__llvm_libc_22_0_0_git::AtExitUnit" { ptr @_ZN22__llvm_libc_22_0_0_git17stdc_at_exit_funcEPv, ptr @__dtor_LlvmLibcIntegerToStringTest_INT32_Instance }, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer, %"struct.__llvm_libc_22_0_0_git::AtExitUnit" zeroinitializer] }, i64 1 }, align 8 @__llvm_rpc_client = protected global %"struct.rpc::Client" zeroinitializer, align 8 @.str80 = private unnamed_addr constant [12 x i8] c"__CUDA_ARCH\00", align 1 ; Function Attrs: convergent mustprogress nounwind define protected ptx_kernel void @_begin(i32 noundef %argc, ptr noundef readnone captures(none) %argv, ptr noundef %env) local_unnamed_addr #0 { entry: %0 = ptrtoint ptr %env to i64 store atomic i64 %0, ptr @_ZN22__llvm_libc_22_0_0_git3appE monotonic, align 8 %1 = load i64, ptr getelementptr inbounds nuw (i8, ptr @_ZN22__llvm_libc_22_0_0_git16atexit_callbacksE, i64 1024), align 8, !tbaa !17 %cmp.i.not.i.i = icmp eq i64 %1, 64 br i1 %cmp.i.not.i.i, label %_ZN22__llvm_libc_22_0_0_git6atexitEPFvvE.exit, label %if.end.i.i.i if.end.i.i.i: ; preds = %entry %inc.i.i.i = add i64 %1, 1 %arrayidx.i.i.i.i = getelementptr inbounds nuw [64 x %"struct.__llvm_libc_22_0_0_git::AtExitUnit"], ptr @_ZN22__llvm_libc_22_0_0_git16atexit_callbacksE, i64 0, i64 %1 %ref.tmp.sroa.4.0.arrayidx.i.i.i.sroa_idx.i = getelementptr inbounds nuw i8, ptr %arrayidx.i.i.i.i, i64 8 store ptr @_ZN22__llvm_libc_22_0_0_git17stdc_at_exit_funcEPv, ptr %arrayidx.i.i.i.i, align 8, !tbaa !23 store ptr @_ZN22__llvm_libc_22_0_0_gitL25call_fini_array_callbacksEv, ptr %ref.tmp.sroa.4.0.arrayidx.i.i.i.sroa_idx.i, align 8, !tbaa !23 store i64 %inc.i.i.i, ptr getelementptr inbounds nuw (i8, ptr @_ZN22__llvm_libc_22_0_0_git16atexit_callbacksE, i64 1024), align 8, !tbaa !17 br label %_ZN22__llvm_libc_22_0_0_git6atexitEPFvvE.exit _ZN22__llvm_libc_22_0_0_git6atexitEPFvvE.exit: ; preds = %if.end.i.i.i, %entry %2 = load ptr, ptr @__init_array_end, align 8, !tbaa !25 %3 = load ptr, ptr @__init_array_start, align 8, !tbaa !25 %cmp1.not.i = icmp eq ptr %2, %3 br i1 %cmp1.not.i, label %_ZN22__llvm_libc_22_0_0_gitL25call_init_array_callbacksEiPPcS1_.exit, label %for.body.preheader.i for.body.preheader.i: ; preds = %_ZN22__llvm_libc_22_0_0_git6atexitEPFvvE.exit %sub.ptr.lhs.cast.i = ptrtoint ptr %2 to i64 %sub.ptr.rhs.cast.i = ptrtoint ptr %3 to i64 %sub.ptr.sub.i = sub i64 %sub.ptr.lhs.cast.i, %sub.ptr.rhs.cast.i %sub.ptr.div.i = ashr exact i64 %sub.ptr.sub.i, 3 br label %for.body.i for.body.i: ; preds = %for.body.i, %for.body.preheader.i %i.02.i = phi i64 [ %inc.i, %for.body.i ], [ 0, %for.body.preheader.i ] %4 = load ptr, ptr @__init_array_start, align 8, !tbaa !25 %arrayidx.i = getelementptr inbounds nuw i64, ptr %4, i64 %i.02.i %5 = load i64, ptr %arrayidx.i, align 8, !tbaa !27 %6 = inttoptr i64 %5 to ptr tail call void %6() #31 %inc.i = add nuw i64 %i.02.i, 1 %exitcond.not.i = icmp eq i64 %inc.i, %sub.ptr.div.i br i1 %exitcond.not.i, label %_ZN22__llvm_libc_22_0_0_gitL25call_init_array_callbacksEiPPcS1_.exit, label %for.body.i, !llvm.loop !28 _ZN22__llvm_libc_22_0_0_gitL25call_init_array_callbacksEiPPcS1_.exit: ; preds = %for.body.i, %_ZN22__llvm_libc_22_0_0_git6atexitEPFvvE.exit ret void } ; Function Attrs: convergent mustprogress nounwind define internal void @_ZN22__llvm_libc_22_0_0_gitL25call_fini_array_callbacksEv() #0 { entry: %0 = load ptr, ptr @__fini_array_end, align 8, !tbaa !25 %1 = load ptr, ptr @__fini_array_start, align 8, !tbaa !25 %cmp.not3 = icmp eq ptr %0, %1 br i1 %cmp.not3, label %for.cond.cleanup, label %for.body.preheader for.body.preheader: ; preds = %entry %sub.ptr.lhs.cast = ptrtoint ptr %0 to i64 %sub.ptr.rhs.cast = ptrtoint ptr %1 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %sub.ptr.div = ashr exact i64 %sub.ptr.sub, 3 br label %for.body for.cond.cleanup: ; preds = %for.body, %entry ret void for.body: ; preds = %for.body, %for.body.preheader %i.04 = phi i64 [ %dec, %for.body ], [ %sub.ptr.div, %for.body.preheader ] %2 = load ptr, ptr @__fini_array_start, align 8, !tbaa !25 %3 = getelementptr i64, ptr %2, i64 %i.04 %arrayidx = getelementptr i8, ptr %3, i64 -8 %4 = load i64, ptr %arrayidx, align 8, !tbaa !27 %5 = inttoptr i64 %4 to ptr tail call void %5() #31 %dec = add i64 %i.04, -1 %cmp.not = icmp eq i64 %dec, 0 br i1 %cmp.not, label %for.cond.cleanup, label %for.body, !llvm.loop !30 } ; Function Attrs: convergent mustprogress nounwind define protected ptx_kernel void @_start(i32 noundef %argc, ptr noundef %argv, ptr noundef %envp, ptr noundef captures(none) %ret) local_unnamed_addr #0 { entry: %ref.tmp.i = alloca %"struct.__llvm_libc_22_0_0_git::testing::TestOptions", align 8 store ptr %argv, ptr @_ZN22__llvm_libc_22_0_0_git7testing4argvE, align 8, !tbaa !31 store ptr %envp, ptr @_ZN22__llvm_libc_22_0_0_git7testing4envpE, align 8, !tbaa !31 call void @llvm.lifetime.start.p0(ptr nonnull %ref.tmp.i) #32 %cmp72.i.i = icmp sgt i32 %argc, 1 br i1 %cmp72.i.i, label %for.body.i.i, label %main.exit for.body.i.i: ; preds = %cleanup.i.i, %entry %i.076.i.i = phi i32 [ %inc.i.i, %cleanup.i.i ], [ 1, %entry ] %retval.sroa.6.075.i.i = phi i8 [ %retval.sroa.6.1.i.i, %cleanup.i.i ], [ 0, %entry ] %retval.sroa.3.074.i.i = phi i8 [ %retval.sroa.3.1.i.i, %cleanup.i.i ], [ 1, %entry ] %retval.sroa.0.073.i.i = phi ptr [ %retval.sroa.0.1.i.i, %cleanup.i.i ], [ null, %entry ] %idxprom.i.i = zext nneg i32 %i.076.i.i to i64 %arrayidx.i.i = getelementptr inbounds nuw ptr, ptr %argv, i64 %idxprom.i.i %0 = load ptr, ptr %arrayidx.i.i, align 8, !tbaa !34 br label %for.cond.i.i.i.i.i for.cond.i.i.i.i.i: ; preds = %for.cond.i.i.i.i.i, %for.body.i.i %End.0.i.i.i.i.i = phi ptr [ %0, %for.body.i.i ], [ %incdec.ptr.i.i.i.i.i, %for.cond.i.i.i.i.i ] %1 = load i8, ptr %End.0.i.i.i.i.i, align 1, !tbaa !36 %cmp.i.i.i.i.i = icmp eq i8 %1, 0 %incdec.ptr.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %End.0.i.i.i.i.i, i64 1 br i1 %cmp.i.i.i.i.i, label %_ZN22__llvm_libc_22_0_0_git3cpp11string_viewC1EPKc.exit.i.i, label %for.cond.i.i.i.i.i, !llvm.loop !37 _ZN22__llvm_libc_22_0_0_git3cpp11string_viewC1EPKc.exit.i.i: ; preds = %for.cond.i.i.i.i.i %End.0.i.i.i.i.i.lcssa = phi ptr [ %End.0.i.i.i.i.i, %for.cond.i.i.i.i.i ] %sub.ptr.lhs.cast.i.i.i.i.i = ptrtoint ptr %End.0.i.i.i.i.i.lcssa to i64 %sub.ptr.rhs.cast.i.i.i.i.i = ptrtoint ptr %0 to i64 %sub.ptr.sub.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i switch i64 %sub.ptr.sub.i.i.i.i.i, label %if.else4.i.i [ i64 16, label %for.body.i.i.i.i.i i64 18, label %for.body.i.i.i44.i.i ] for.body.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_viewC1EPKc.exit.i.i %i.011.i.i.i.i.i = phi i64 [ %inc.i.i.i.i.i, %for.body.i.i.i.i.i ], [ 0, %_ZN22__llvm_libc_22_0_0_git3cpp11string_viewC1EPKc.exit.i.i ] %arrayidx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %0, i64 %i.011.i.i.i.i.i %2 = load i8, ptr %arrayidx.i.i.i.i.i, align 1, !tbaa !36 %arrayidx1.i.i.i.i.i = getelementptr inbounds nuw i8, ptr @.str31, i64 %i.011.i.i.i.i.i %3 = load i8, ptr %arrayidx1.i.i.i.i.i, align 1, !tbaa !36 %tobool.not.i.i.i.i.i = icmp ne i8 %2, %3 %inc.i.i.i.i.i = add nuw nsw i64 %i.011.i.i.i.i.i, 1 %exitcond.not.i.i.i.i.i = icmp eq i64 %inc.i.i.i.i.i, 16 %or.cond.i.i.i.i.i = select i1 %tobool.not.i.i.i.i.i, i1 true, i1 %exitcond.not.i.i.i.i.i br i1 %or.cond.i.i.i.i.i, label %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i.i.i, label %for.body.i.i.i.i.i, !llvm.loop !38 _ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i.i.i: ; preds = %for.body.i.i.i.i.i %.lcssa9 = phi i8 [ %2, %for.body.i.i.i.i.i ] %.lcssa8 = phi i8 [ %3, %for.body.i.i.i.i.i ] %4 = icmp eq i8 %.lcssa9, %.lcssa8 br i1 %4, label %cleanup.i.i, label %if.else4.i.i for.body.i.i.i44.i.i: ; preds = %for.body.i.i.i44.i.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_viewC1EPKc.exit.i.i %i.011.i.i.i45.i.i = phi i64 [ %inc.i.i.i49.i.i, %for.body.i.i.i44.i.i ], [ 0, %_ZN22__llvm_libc_22_0_0_git3cpp11string_viewC1EPKc.exit.i.i ] %arrayidx.i.i.i46.i.i = getelementptr inbounds nuw i8, ptr %0, i64 %i.011.i.i.i45.i.i %5 = load i8, ptr %arrayidx.i.i.i46.i.i, align 1, !tbaa !36 %arrayidx1.i.i.i47.i.i = getelementptr inbounds nuw i8, ptr @.str132, i64 %i.011.i.i.i45.i.i %6 = load i8, ptr %arrayidx1.i.i.i47.i.i, align 1, !tbaa !36 %tobool.not.i.i.i48.i.i = icmp ne i8 %5, %6 %inc.i.i.i49.i.i = add nuw nsw i64 %i.011.i.i.i45.i.i, 1 %exitcond.not.i.i.i50.i.i = icmp eq i64 %inc.i.i.i49.i.i, 18 %or.cond.i.i.i51.i.i = select i1 %tobool.not.i.i.i48.i.i, i1 true, i1 %exitcond.not.i.i.i50.i.i br i1 %or.cond.i.i.i51.i.i, label %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i52.i.i, label %for.body.i.i.i44.i.i, !llvm.loop !38 _ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i52.i.i: ; preds = %for.body.i.i.i44.i.i %.lcssa7 = phi i8 [ %5, %for.body.i.i.i44.i.i ] %.lcssa = phi i8 [ %6, %for.body.i.i.i44.i.i ] %7 = icmp eq i8 %.lcssa7, %.lcssa br i1 %7, label %cleanup.i.i, label %if.else4.i.i if.else4.i.i: ; preds = %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i52.i.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_viewC1EPKc.exit.i.i %cmp.not.i.i.i = icmp ult i64 %sub.ptr.sub.i.i.i.i.i, 8 br i1 %cmp.not.i.i.i, label %cleanup.i.i, label %for.body.i.i.i.i for.body.i.i.i.i: ; preds = %if.else4.i.i %8 = load i8, ptr %0, align 1, !tbaa !36 %tobool.not.i.i.i.not.i = icmp eq i8 %8, 45 br i1 %tobool.not.i.i.i.not.i, label %for.body.i.i.i.1.i, label %cleanup.i.i, !llvm.loop !38 for.body.i.i.i.1.i: ; preds = %for.body.i.i.i.i %arrayidx.i.i.i.1.i = getelementptr inbounds nuw i8, ptr %0, i64 1 %9 = load i8, ptr %arrayidx.i.i.i.1.i, align 1, !tbaa !36 %tobool.not.i.i.i.1.not.i = icmp eq i8 %9, 45 br i1 %tobool.not.i.i.i.1.not.i, label %for.body.i.i.i.2.i, label %cleanup.i.i, !llvm.loop !38 for.body.i.i.i.2.i: ; preds = %for.body.i.i.i.1.i %arrayidx.i.i.i.2.i = getelementptr inbounds nuw i8, ptr %0, i64 2 %10 = load i8, ptr %arrayidx.i.i.i.2.i, align 1, !tbaa !36 %tobool.not.i.i.i.2.not.i = icmp eq i8 %10, 103 br i1 %tobool.not.i.i.i.2.not.i, label %for.body.i.i.i.3.i, label %cleanup.i.i, !llvm.loop !38 for.body.i.i.i.3.i: ; preds = %for.body.i.i.i.2.i %arrayidx.i.i.i.3.i = getelementptr inbounds nuw i8, ptr %0, i64 3 %11 = load i8, ptr %arrayidx.i.i.i.3.i, align 1, !tbaa !36 %tobool.not.i.i.i.3.not.i = icmp eq i8 %11, 116 br i1 %tobool.not.i.i.i.3.not.i, label %for.body.i.i.i.4.i, label %cleanup.i.i, !llvm.loop !38 for.body.i.i.i.4.i: ; preds = %for.body.i.i.i.3.i %arrayidx.i.i.i.4.i = getelementptr inbounds nuw i8, ptr %0, i64 4 %12 = load i8, ptr %arrayidx.i.i.i.4.i, align 1, !tbaa !36 %tobool.not.i.i.i.4.not.i = icmp eq i8 %12, 101 br i1 %tobool.not.i.i.i.4.not.i, label %for.body.i.i.i.5.i, label %cleanup.i.i, !llvm.loop !38 for.body.i.i.i.5.i: ; preds = %for.body.i.i.i.4.i %arrayidx.i.i.i.5.i = getelementptr inbounds nuw i8, ptr %0, i64 5 %13 = load i8, ptr %arrayidx.i.i.i.5.i, align 1, !tbaa !36 %tobool.not.i.i.i.5.not.i = icmp eq i8 %13, 115 br i1 %tobool.not.i.i.i.5.not.i, label %for.body.i.i.i.6.i, label %cleanup.i.i, !llvm.loop !38 for.body.i.i.i.6.i: ; preds = %for.body.i.i.i.5.i %arrayidx.i.i.i.6.i = getelementptr inbounds nuw i8, ptr %0, i64 6 %14 = load i8, ptr %arrayidx.i.i.i.6.i, align 1, !tbaa !36 %tobool.not.i.i.i.6.not.i = icmp eq i8 %14, 116 br i1 %tobool.not.i.i.i.6.not.i, label %for.body.i.i.i.7.i, label %cleanup.i.i, !llvm.loop !38 for.body.i.i.i.7.i: ; preds = %for.body.i.i.i.6.i %arrayidx.i.i.i.7.i = getelementptr inbounds nuw i8, ptr %0, i64 7 %15 = load i8, ptr %arrayidx.i.i.i.7.i, align 1, !tbaa !36 %16 = icmp eq i8 %15, 95 %17 = select i1 %16, ptr %retval.sroa.0.073.i.i, ptr %0 br label %cleanup.i.i cleanup.i.i: ; preds = %for.body.i.i.i.7.i, %for.body.i.i.i.6.i, %for.body.i.i.i.5.i, %for.body.i.i.i.4.i, %for.body.i.i.i.3.i, %for.body.i.i.i.2.i, %for.body.i.i.i.1.i, %for.body.i.i.i.i, %if.else4.i.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i52.i.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i.i.i %retval.sroa.0.1.i.i = phi ptr [ %retval.sroa.0.073.i.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i.i.i ], [ %retval.sroa.0.073.i.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i52.i.i ], [ %0, %if.else4.i.i ], [ %0, %for.body.i.i.i.i ], [ %0, %for.body.i.i.i.1.i ], [ %0, %for.body.i.i.i.2.i ], [ %0, %for.body.i.i.i.3.i ], [ %0, %for.body.i.i.i.4.i ], [ %0, %for.body.i.i.i.5.i ], [ %0, %for.body.i.i.i.6.i ], [ %17, %for.body.i.i.i.7.i ] %retval.sroa.3.1.i.i = phi i8 [ 0, %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i.i.i ], [ %retval.sroa.3.074.i.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i52.i.i ], [ %retval.sroa.3.074.i.i, %if.else4.i.i ], [ %retval.sroa.3.074.i.i, %for.body.i.i.i.i ], [ %retval.sroa.3.074.i.i, %for.body.i.i.i.1.i ], [ %retval.sroa.3.074.i.i, %for.body.i.i.i.2.i ], [ %retval.sroa.3.074.i.i, %for.body.i.i.i.3.i ], [ %retval.sroa.3.074.i.i, %for.body.i.i.i.4.i ], [ %retval.sroa.3.074.i.i, %for.body.i.i.i.5.i ], [ %retval.sroa.3.074.i.i, %for.body.i.i.i.6.i ], [ %retval.sroa.3.074.i.i, %for.body.i.i.i.7.i ] %retval.sroa.6.1.i.i = phi i8 [ %retval.sroa.6.075.i.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i.i.i ], [ 1, %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i52.i.i ], [ %retval.sroa.6.075.i.i, %if.else4.i.i ], [ %retval.sroa.6.075.i.i, %for.body.i.i.i.i ], [ %retval.sroa.6.075.i.i, %for.body.i.i.i.1.i ], [ %retval.sroa.6.075.i.i, %for.body.i.i.i.2.i ], [ %retval.sroa.6.075.i.i, %for.body.i.i.i.3.i ], [ %retval.sroa.6.075.i.i, %for.body.i.i.i.4.i ], [ %retval.sroa.6.075.i.i, %for.body.i.i.i.5.i ], [ %retval.sroa.6.075.i.i, %for.body.i.i.i.6.i ], [ %retval.sroa.6.075.i.i, %for.body.i.i.i.7.i ] %inc.i.i = add nuw nsw i32 %i.076.i.i, 1 %exitcond.not.i.i = icmp eq i32 %inc.i.i, %argc br i1 %exitcond.not.i.i, label %main.exit, label %for.body.i.i, !llvm.loop !39 main.exit: ; preds = %cleanup.i.i, %entry %retval.sroa.0.0.lcssa.i.i = phi ptr [ null, %entry ], [ %retval.sroa.0.1.i.i, %cleanup.i.i ] %retval.sroa.3.0.lcssa.i.i = phi i8 [ 1, %entry ], [ %retval.sroa.3.1.i.i, %cleanup.i.i ] %retval.sroa.6.0.lcssa.i.i = phi i8 [ 0, %entry ], [ %retval.sroa.6.1.i.i, %cleanup.i.i ] store ptr %retval.sroa.0.0.lcssa.i.i, ptr %ref.tmp.i, align 8 %tmp.coerce.sroa.2.0.ref.tmp.sroa_idx.i = getelementptr inbounds nuw i8, ptr %ref.tmp.i, i64 8 store i8 %retval.sroa.3.0.lcssa.i.i, ptr %tmp.coerce.sroa.2.0.ref.tmp.sroa_idx.i, align 8 %tmp.coerce.sroa.3.0.ref.tmp.sroa_idx.i = getelementptr inbounds nuw i8, ptr %ref.tmp.i, i64 9 store i8 %retval.sroa.6.0.lcssa.i.i, ptr %tmp.coerce.sroa.3.0.ref.tmp.sroa_idx.i, align 1 %call1.i = call fastcc noundef range(i32 0, 2) i32 @_ZN22__llvm_libc_22_0_0_git7testing4Test8runTestsERKNS0_11TestOptionsE(ptr noundef nonnull align 8 dereferenceable(10) %ref.tmp.i) #31 call void @llvm.lifetime.end.p0(ptr nonnull %ref.tmp.i) #32 %18 = atomicrmw or ptr %ret, i32 %call1.i monotonic, align 4 ret void } ; Function Attrs: convergent mustprogress noreturn nounwind define protected ptx_kernel void @_end(i32 noundef %retval) local_unnamed_addr #1 { entry: tail call fastcc void @_ZN22__llvm_libc_22_0_0_git4exitEi(i32 noundef %retval) #33 unreachable } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) define internal void @__dtor_LlvmLibcIntegerToStringTest_INT32_Instance() #2 { entry: ret void } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind willreturn memory(none) define internal void @_ZN33LlvmLibcIntegerToStringTest_INT32D1Ev(ptr nonnull readnone align 8 captures(none) %this) unnamed_addr #3 comdat align 2 { entry: ret void } ; Function Attrs: cold inlinehint mustprogress noreturn nounwind memory(inaccessiblemem: write) define internal void @_ZN33LlvmLibcIntegerToStringTest_INT32D0Ev(ptr noundef nonnull readnone align 8 captures(none) dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: tail call void @llvm.trap() unreachable } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) define internal void @_ZN22__llvm_libc_22_0_0_git7testing4Test5SetUpEv(ptr nonnull readnone align 8 captures(none) %this) unnamed_addr #2 comdat align 2 { entry: ret void } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) define internal void @_ZN22__llvm_libc_22_0_0_git7testing4Test8TearDownEv(ptr nonnull readnone align 8 captures(none) %this) unnamed_addr #2 comdat align 2 { entry: ret void } ; Function Attrs: convergent mustprogress nounwind define dso_local void @_ZN33LlvmLibcIntegerToStringTest_INT323RunEv(ptr noundef nonnull readonly align 8 captures(none) dereferenceable(24) %this) unnamed_addr #5 align 2 { entry: %ch.addr.i2219.i = alloca i8, align 1 %ch.addr.i1755.i = alloca i8, align 1 %ch.addr.i1169.i = alloca i8, align 1 %ch.addr.i.i = alloca i8, align 1 %buffer.i.i.i.i = alloca %"class.__llvm_libc_22_0_0_git::IntegerToString", align 8 %buffer = alloca %"class.__llvm_libc_22_0_0_git::IntegerToString", align 8 call void @llvm.lifetime.start.p0(ptr nonnull %buffer) #32 %arrayidx.i.i19.i.i.i = getelementptr inbounds nuw i8, ptr %buffer, i64 9 store <2 x i8> <i8 45, i8 49>, ptr %arrayidx.i.i19.i.i.i, align 1, !tbaa !36 %written.i.i = getelementptr inbounds nuw i8, ptr %buffer, i64 16 store i64 2, ptr %written.i.i, align 8, !tbaa !40 %Ctx.i = getelementptr inbounds nuw i8, ptr %this, i64 16 %0 = load ptr, ptr %Ctx.i, align 8, !tbaa !43 br label %for.body.i.i.i.i for.body.i.i.i.i: ; preds = %for.body.i.i.i.i, %entry %i.011.i.i.i.i = phi i64 [ %inc.i.i.i.i, %for.body.i.i.i.i ], [ 0, %entry ] %arrayidx.i.i.i.i = getelementptr inbounds nuw i8, ptr %arrayidx.i.i19.i.i.i, i64 %i.011.i.i.i.i %1 = load i8, ptr %arrayidx.i.i.i.i, align 1, !tbaa !36 %arrayidx1.i.i.i.i = getelementptr inbounds nuw i8, ptr @.str, i64 %i.011.i.i.i.i %2 = load i8, ptr %arrayidx1.i.i.i.i, align 1, !tbaa !36 %tobool.not.i.i.i.i = icmp ne i8 %1, %2 %inc.i.i.i.i = add nuw nsw i64 %i.011.i.i.i.i, 1 %exitcond.not.i.i.i.i = icmp eq i64 %inc.i.i.i.i, 2 %or.cond.i.i.i.i = select i1 %tobool.not.i.i.i.i, i1 true, i1 %exitcond.not.i.i.i.i br i1 %or.cond.i.i.i.i, label %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i.i, label %for.body.i.i.i.i, !llvm.loop !47 _ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i.i: ; preds = %for.body.i.i.i.i %.lcssa173 = phi i8 [ %1, %for.body.i.i.i.i ] %.lcssa172 = phi i8 [ %2, %for.body.i.i.i.i ] %3 = icmp eq i8 %.lcssa173, %.lcssa172 br i1 %3, label %_ZN22__llvm_libc_22_0_0_git7testing8internal4testINS_3cpp11string_viewEEEbPNS1_10RunContextENS0_8TestCondET_S8_PKcSA_NS1_8LocationE.exit, label %if.end.i.i if.end.i.i: ; preds = %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i.i store i8 1, ptr %0, align 1, !tbaa !48 %4 = load ptr, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34 %add.ptr.i.i.i = getelementptr inbounds nuw i8, ptr %4, i64 16 store ptr %add.ptr.i.i.i, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34 %sub.ptr.lhs.cast.i.i.i = ptrtoint ptr %add.ptr.i.i.i to i64 %sub.ptr.sub.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i, ptrtoint (ptr @_ZN12_GLOBAL__N_16memoryE to i64) %cmp.i.i.i = icmp ugt i64 %sub.ptr.sub.i.i.i, 65335 %cond.i.i.i = select i1 %cmp.i.i.i, ptr null, ptr %4 %tobool.i.i.i.i.i.i = icmp ne ptr %cond.i.i.i, null tail call void @llvm.assume(i1 %tobool.i.i.i.i.i.i) %cmp.not.i6.i.i.i.i.i = icmp eq ptr %cond.i.i.i, @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE br i1 %cmp.not.i6.i.i.i.i.i, label %_ZN22__llvm_libc_22_0_0_git3cpp6stringC1Emc.exit.i.i, label %if.then.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %if.end.i.i %arrayidx.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %4, i64 6 store i8 0, ptr %arrayidx.i.i.i.i.i.i, align 1, !tbaa !36 br label %_ZN22__llvm_libc_22_0_0_git3cpp6stringC1Emc.exit.i.i _ZN22__llvm_libc_22_0_0_git3cpp6stringC1Emc.exit.i.i: ; preds = %if.then.i.i.i.i.i.i, %if.end.i.i tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %4, i8 32, i64 6, i1 false) %5 = tail call range(i32 0, 32) i32 @llvm.nvvm.read.ptx.sreg.laneid() %sh_prom.i.i.i.i.i = zext nneg i32 %5 to i64 br label %for.cond.i.i.i.i for.cond.i.i.i.i: ; preds = %for.inc.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git3cpp6stringC1Emc.exit.i.i %retval.sroa.6.0.i.i.i.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp6stringC1Emc.exit.i.i ], [ %retval.sroa.6.2.i.i.i.i, %for.inc.i.i.i.i ] %retval.sroa.2.0.i.i.i.i = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp6stringC1Emc.exit.i.i ], [ %retval.sroa.2.2.i.i.i.i, %for.inc.i.i.i.i ] %retval.sroa.8.0.i.i.i.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp6stringC1Emc.exit.i.i ], [ %retval.sroa.8.2.i.i.i.i, %for.inc.i.i.i.i ] %index.0.i.i.i.i = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git3cpp6stringC1Emc.exit.i.i ], [ %inc.i.i.i2.i, %for.inc.i.i.i.i ] %6 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i.i = icmp ult i32 %index.0.i.i.i.i, %6 %spec.store.select.i.i.i.i = select i1 %cmp.not.i.i.i.i, i32 %index.0.i.i.i.i, i32 0 %7 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i.i = zext i32 %7 to i64 %div8.i.i.i.i.i.i = lshr i32 %spec.store.select.i.i.i.i, 5 %8 = and i32 %spec.store.select.i.i.i.i, 31 %idxprom.i.i.i.i.i.i = zext nneg i32 %div8.i.i.i.i.i.i to i64 %arrayidx.i.i.i.i.i1.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i.i %9 = lshr i32 %7, %5 %conv4.i.i.i.i.i.i = and i32 %9, 1 %shl.i.i.i.i.i.i = shl nuw i32 %conv4.i.i.i.i.i.i, %8 %10 = atomicrmw or ptr %arrayidx.i.i.i.i.i1.i, i32 %shl.i.i.i.i.i.i monotonic, align 4 %shl5.i.i.i.i.i.i = shl nuw i32 1, %8 %and.i.i.i.i.i.i = and i32 %shl5.i.i.i.i.i.i, %10 %tobool3.i.i.i.i.i = icmp ne i32 %and.i.i.i.i.i.i, 0 %11 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %7, i1 %tobool3.i.i.i.i.i) %cmp.i.not.i.i.i.i = icmp eq i32 %7, %11 br i1 %cmp.i.not.i.i.i.i, label %for.inc.i.i.i.i, label %if.then.i.i.i.i.i if.then.i.i.i.i.i: ; preds = %for.cond.i.i.i.i fence acquire %12 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i.i = zext i32 %spec.store.select.i.i.i.i to i64 %arrayidx.i.i.i.i.i = getelementptr inbounds nuw i32, ptr %12, i64 %idxprom.i.i.i.i.i %13 = load atomic i32, ptr %arrayidx.i.i.i.i.i monotonic, align 4 %14 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %7, i1 true) %iszero.i.i.i.i.i.i.i = icmp eq i32 %7, 0 %sub.i.i.i.i.i.i.i = select i1 %iszero.i.i.i.i.i.i.i, i32 -1, i32 %14 %15 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %7, i32 %13, i32 %sub.i.i.i.i.i.i.i, i32 31) %16 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i.i = getelementptr inbounds nuw i32, ptr %16, i64 %idxprom.i.i.i.i.i %17 = load atomic i32, ptr %arrayidx.i45.i.i.i.i monotonic, align 4 %18 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %7, i32 %17, i32 %sub.i.i.i.i.i.i.i, i32 31) %cmp.i48.not.i.i.i.i = icmp eq i32 %15, %18 br i1 %cmp.i48.not.i.i.i.i, label %if.end14.i.i.i.i, label %if.then12.i.i.i.i if.then12.i.i.i.i: ; preds = %if.then.i.i.i.i.i fence release %19 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i.i, i1 true) %iszero.i.i.i.i.i.i.i.i = icmp ne i32 %7, 0 %cmp2.i.i.i.i.i.i.i = icmp eq i64 %19, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i.i = select i1 %iszero.i.i.i.i.i.i.i.i, i1 %cmp2.i.i.i.i.i.i.i, i1 false %conv4.i.i53.i.i.i.i = zext i1 %cmp.i.i.i.i.i.i.i to i32 %shl.i.i54.i.i.i.i = shl nuw i32 %conv4.i.i53.i.i.i.i, %8 %xor.i.i.i.i.i.i = xor i32 %shl.i.i54.i.i.i.i, -1 %20 = atomicrmw and ptr %arrayidx.i.i.i.i.i1.i, i32 %xor.i.i.i.i.i.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %7) br label %cleanup26.i.i.i.i if.end14.i.i.i.i: ; preds = %if.then.i.i.i.i.i %21 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i.i, i1 true) %iszero.i.i.i56.i.i.i.i = icmp ne i32 %7, 0 %cmp2.i.i.i.i.i.i = icmp eq i64 %21, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i = select i1 %iszero.i.i.i56.i.i.i.i, i1 %cmp2.i.i.i.i.i.i, i1 false br i1 %cmp.i.i.i.i.i.i, label %if.then16.i.i.i.i, label %if.end22.i.i.i.i if.then16.i.i.i.i: ; preds = %if.end14.i.i.i.i %22 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %22, i64 %idxprom.i.i.i.i.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i.i, align 8, !tbaa !61 %arrayidx21.i.i.i.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %22, i64 %idxprom.i.i.i.i.i store i64 %conv.i.i.i.i.i.i, ptr %arrayidx21.i.i.i.i, align 8, !tbaa !64 br label %if.end22.i.i.i.i if.end22.i.i.i.i: ; preds = %if.then16.i.i.i.i, %if.end14.i.i.i.i tail call void @llvm.nvvm.bar.warp.sync(i32 %7) br label %cleanup26.i.i.i.i cleanup26.i.i.i.i: ; preds = %if.end22.i.i.i.i, %if.then12.i.i.i.i %retval.sroa.6.1.i.i.i.i = phi i32 [ %retval.sroa.6.0.i.i.i.i, %if.then12.i.i.i.i ], [ %spec.store.select.i.i.i.i, %if.end22.i.i.i.i ] %retval.sroa.2.1.i.i.i.i = phi i64 [ %retval.sroa.2.0.i.i.i.i, %if.then12.i.i.i.i ], [ %conv.i.i.i.i.i.i, %if.end22.i.i.i.i ] %retval.sroa.8.1.i.i.i.i = phi i32 [ %retval.sroa.8.0.i.i.i.i, %if.then12.i.i.i.i ], [ %15, %if.end22.i.i.i.i ] br i1 %cmp.i48.not.i.i.i.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i.i, label %for.inc.i.i.i.i for.inc.i.i.i.i: ; preds = %cleanup26.i.i.i.i, %for.cond.i.i.i.i %retval.sroa.6.2.i.i.i.i = phi i32 [ %retval.sroa.6.1.i.i.i.i, %cleanup26.i.i.i.i ], [ %retval.sroa.6.0.i.i.i.i, %for.cond.i.i.i.i ] %retval.sroa.2.2.i.i.i.i = phi i64 [ %retval.sroa.2.1.i.i.i.i, %cleanup26.i.i.i.i ], [ %retval.sroa.2.0.i.i.i.i, %for.cond.i.i.i.i ] %retval.sroa.8.2.i.i.i.i = phi i32 [ %retval.sroa.8.1.i.i.i.i, %cleanup26.i.i.i.i ], [ %retval.sroa.8.0.i.i.i.i, %for.cond.i.i.i.i ] %inc.i.i.i2.i = add i32 %spec.store.select.i.i.i.i, 1 br label %for.cond.i.i.i.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i.i: ; preds = %cleanup26.i.i.i.i %retval.sroa.6.1.i.i.i.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i.i, %cleanup26.i.i.i.i ] %retval.sroa.2.1.i.i.i.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i.i, %cleanup26.i.i.i.i ] %retval.sroa.8.1.i.i.i.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i.i, %cleanup26.i.i.i.i ] %.pre54.i.i.i.i.i = tail call i32 @llvm.nvvm.reflect(ptr nonnull @.str80) fence acquire %23 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i.i = shl i32 %retval.sroa.6.1.i.i.i.i.lcssa, 5 %idxprom.i18.i.i.i.i.i.i = zext i32 %mul.i.i.i.i.i.i.i to i64 %arrayidx.i19.i.i.i.i.i.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %23, i64 %idxprom.i18.i.i.i.i.i.i %arrayidx.i21.i.i.i.i.i.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i.i, i64 %sh_prom.i.i.i.i.i store i64 91, ptr %arrayidx.i21.i.i.i.i.i.i, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i.i, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(56) %arrayidx6.i.i.i.i.i.i.i.i, ptr noundef nonnull align 1 dereferenceable(56) @.str3, i64 56, i1 false) %tobool.not.i.i.i.i.i.i.i = icmp eq i32 %retval.sroa.8.1.i.i.i.i.lcssa, 0 %conv.i.i.i.i.i.i.i = zext i1 %tobool.not.i.i.i.i.i.i.i to i32 fence release %24 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i.i = zext i32 %retval.sroa.6.1.i.i.i.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i.i = getelementptr inbounds nuw i32, ptr %24, i64 %idxprom.i22.i.i.i.i.i.i store atomic i32 %conv.i.i.i.i.i.i.i, ptr %arrayidx.i23.i.i.i.i.i.i monotonic, align 4 %25 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %25, i64 %idxprom.i22.i.i.i.i.i.i %26 = load i64, ptr %arrayidx.i.i4.i.i.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i.i = trunc i64 %26 to i32 %cmp.i3.i.i27.i.i.i.i.i = icmp ugt i32 %.pre54.i.i.i.i.i, 699 %conv.i.i.i.i17.i.i.i.i.i = trunc i64 %retval.sroa.2.1.i.i.i.i.lcssa to i32 %27 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i.i, i1 true) %iszero.i.i.i.i18.i.i.i.i.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i.i, 0 %sub.i.i.i.i19.i.i.i.i.i = select i1 %iszero.i.i.i.i18.i.i.i.i.i, i32 -1, i32 %27 br label %while.cond.i.i.i.i.i while.cond.i.i.i.i.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i.i %port.sroa.43.0.i.i.i = phi i32 [ %conv.i.i.i.i.i.i.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i.i ], [ %conv.i.i39.i.i.i.i.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i.i ] %idx.0.i.i.i.i.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i.i ], [ %add.i.i.i.i.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i.i ] %cmp.i.i.i2.i.i = icmp ult i64 %idx.0.i.i.i.i.i, 91 %28 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i.i, i1 %cmp.i.i.i2.i.i) %tobool.not.i.i.i.i.i = icmp eq i32 %28, 0 %29 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i.i = getelementptr inbounds nuw i32, ptr %29, i64 %idxprom.i22.i.i.i.i.i.i %30 = load atomic i32, ptr %arrayidx.i22.i.i.i.i monotonic, align 4 br i1 %tobool.not.i.i.i.i.i, label %cond.false.i.i.i.i, label %cond.false.i11.i.i.i.i.i cond.false.i11.i.i.i.i.i: ; preds = %while.cond.i.i.i.i.i %31 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i.i, i32 %30, i32 %sub.i.i.i.i19.i.i.i.i.i, i32 31) %32 = icmp eq i32 %31, %port.sroa.43.0.i.i.i br i1 %32, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i.i, label %while.body.i.i33.i.i.i.i.i while.body.i.i33.i.i.i.i.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i.i, %cond.false.i11.i.i.i.i.i %33 = phi ptr [ %34, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i.i ], [ %29, %cond.false.i11.i.i.i.i.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i48.i.i.i.i.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i.i if.then.i.i.i48.i.i.i.i.i: ; preds = %while.body.i.i33.i.i.i.i.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i.i: ; preds = %if.then.i.i.i48.i.i.i.i.i, %while.body.i.i33.i.i.i.i.i %34 = phi ptr [ %.pre.i.i.i.i.i, %if.then.i.i.i48.i.i.i.i.i ], [ %33, %while.body.i.i33.i.i.i.i.i ] %arrayidx.i.i.i35.i.i.i.i.i = getelementptr inbounds nuw i32, ptr %34, i64 %idxprom.i22.i.i.i.i.i.i %35 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i.i monotonic, align 4 %36 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i.i, i32 %35, i32 %sub.i.i.i.i19.i.i.i.i.i, i32 31) %cmp.i.not.i.i36.i.i.i.i.i = icmp eq i32 %36, %port.sroa.43.0.i.i.i br i1 %cmp.i.not.i.i36.i.i.i.i.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i.i, label %while.body.i.i33.i.i.i.i.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i.i, %cond.false.i11.i.i.i.i.i fence acquire br i1 %cmp.i.i.i2.i.i, label %if.then.i.i20.i.i.i.i.i.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i.i if.then.i.i20.i.i.i.i.i.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i.i %add.ptr.i.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr @.str3, i64 %idx.0.i.i.i.i.i %sub.i.i.i.i.i.i.i.i = sub nuw nsw i64 91, %idx.0.i.i.i.i.i %spec.select.i.i.i47.i.i.i.i.i = tail call i64 @llvm.umin.i64(i64 %sub.i.i.i.i.i.i.i.i, i64 64) %37 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %37, i64 %idxprom.i18.i.i.i.i.i.i %arrayidx.i22.i.i.i.i.i.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i.i, i64 %sh_prom.i.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %arrayidx.i22.i.i.i.i.i.i, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr.i.i.i.i.i.i.i.i.i, i64 %spec.select.i.i.i47.i.i.i.i.i, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i.i: ; preds = %if.then.i.i20.i.i.i.i.i.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i.i %conv.i.i39.i.i.i.i.i = xor i32 %port.sroa.43.0.i.i.i, 1 fence release %38 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i.i = getelementptr inbounds nuw i32, ptr %38, i64 %idxprom.i22.i.i.i.i.i.i store atomic i32 %conv.i.i39.i.i.i.i.i, ptr %arrayidx.i24.i.i.i.i.i.i monotonic, align 4 %add.i.i.i.i.i = add i64 %idx.0.i.i.i.i.i, 64 br label %while.cond.i.i.i.i.i, !llvm.loop !71 cond.false.i.i.i.i: ; preds = %while.cond.i.i.i.i.i %port.sroa.43.0.i.i.i.lcssa = phi i32 [ %port.sroa.43.0.i.i.i, %while.cond.i.i.i.i.i ] %.lcssa171 = phi ptr [ %29, %while.cond.i.i.i.i.i ] %.lcssa170 = phi i32 [ %30, %while.cond.i.i.i.i.i ] %39 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i.i, i32 %.lcssa170, i32 %sub.i.i.i.i19.i.i.i.i.i, i32 31) %40 = icmp eq i32 %39, %port.sroa.43.0.i.i.i.lcssa br i1 %40, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit.i, label %while.body.i.i.i.i.i while.body.i.i.i.i.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i.i, %cond.false.i.i.i.i %41 = phi ptr [ %42, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i.i ], [ %.lcssa171, %cond.false.i.i.i.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i.i.i3.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i.i if.then.i.i.i.i.i3.i: ; preds = %while.body.i.i.i.i.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i3.i, %while.body.i.i.i.i.i %42 = phi ptr [ %.pre.i.i.i, %if.then.i.i.i.i.i3.i ], [ %41, %while.body.i.i.i.i.i ] %arrayidx.i.i.i11.i.i.i = getelementptr inbounds nuw i32, ptr %42, i64 %idxprom.i22.i.i.i.i.i.i %43 = load atomic i32, ptr %arrayidx.i.i.i11.i.i.i monotonic, align 4 %44 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i.i, i32 %43, i32 %sub.i.i.i.i19.i.i.i.i.i, i32 31) %cmp.i.not.i.i.i.i.i = icmp eq i32 %44, %port.sroa.43.0.i.i.i.lcssa br i1 %cmp.i.not.i.i.i.i.i, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit.i, label %while.body.i.i.i.i.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i.i, %cond.false.i.i.i.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i.i) fence release %45 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i.i = icmp ne i64 %retval.sroa.2.1.i.i.i.i.lcssa, 0 %cmp2.i.i.i.i19.i.i.i = icmp eq i64 %45, %sh_prom.i.i.i.i.i %cmp.i.i.i.i20.i.i.i = select i1 %iszero.i.i.i.i.i18.i.i.i, i1 %cmp2.i.i.i.i19.i.i.i, i1 false %div8.i.i.i21.i.i.i = lshr i32 %retval.sroa.6.1.i.i.i.i.lcssa, 5 %46 = and i32 %retval.sroa.6.1.i.i.i.i.lcssa, 31 %idxprom.i.i.i22.i.i.i = zext nneg i32 %div8.i.i.i21.i.i.i to i64 %arrayidx.i.i.i23.i.i.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i.i %conv4.i.i.i24.i.i.i = zext i1 %cmp.i.i.i.i20.i.i.i to i32 %shl.i.i.i25.i.i.i = shl nuw i32 %conv4.i.i.i24.i.i.i, %46 %xor.i.i.i26.i.i.i = xor i32 %shl.i.i.i25.i.i.i, -1 %47 = atomicrmw and ptr %arrayidx.i.i.i23.i.i.i, i32 %xor.i.i.i26.i.i.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i.i) br label %for.cond.i.i.i15.i for.cond.i.i.i15.i: ; preds = %for.inc.i.i.i50.i, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit.i %retval.sroa.6.0.i.i.i16.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit.i ], [ %retval.sroa.6.2.i.i.i51.i, %for.inc.i.i.i50.i ] %retval.sroa.2.0.i.i.i17.i = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit.i ], [ %retval.sroa.2.2.i.i.i52.i, %for.inc.i.i.i50.i ] %retval.sroa.8.0.i.i.i18.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit.i ], [ %retval.sroa.8.2.i.i.i53.i, %for.inc.i.i.i50.i ] %index.0.i.i.i19.i = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit.i ], [ %inc.i.i.i54.i, %for.inc.i.i.i50.i ] %48 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i20.i = icmp ult i32 %index.0.i.i.i19.i, %48 %spec.store.select.i.i.i21.i = select i1 %cmp.not.i.i.i20.i, i32 %index.0.i.i.i19.i, i32 0 %49 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i22.i = zext i32 %49 to i64 %div8.i.i.i.i.i23.i = lshr i32 %spec.store.select.i.i.i21.i, 5 %50 = and i32 %spec.store.select.i.i.i21.i, 31 %idxprom.i.i.i.i.i24.i = zext nneg i32 %div8.i.i.i.i.i23.i to i64 %arrayidx.i.i.i.i.i25.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i24.i %51 = lshr i32 %49, %5 %conv4.i.i.i.i.i26.i = and i32 %51, 1 %shl.i.i.i.i.i27.i = shl nuw i32 %conv4.i.i.i.i.i26.i, %50 %52 = atomicrmw or ptr %arrayidx.i.i.i.i.i25.i, i32 %shl.i.i.i.i.i27.i monotonic, align 4 %shl5.i.i.i.i.i28.i = shl nuw i32 1, %50 %and.i.i.i.i.i29.i = and i32 %shl5.i.i.i.i.i28.i, %52 %tobool3.i.i.i.i30.i = icmp ne i32 %and.i.i.i.i.i29.i, 0 %53 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %49, i1 %tobool3.i.i.i.i30.i) %cmp.i.not.i.i.i31.i = icmp eq i32 %49, %53 br i1 %cmp.i.not.i.i.i31.i, label %for.inc.i.i.i50.i, label %if.then.i.i.i.i32.i if.then.i.i.i.i32.i: ; preds = %for.cond.i.i.i15.i fence acquire %54 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i33.i = zext i32 %spec.store.select.i.i.i21.i to i64 %arrayidx.i.i.i.i34.i = getelementptr inbounds nuw i32, ptr %54, i64 %idxprom.i.i.i.i33.i %55 = load atomic i32, ptr %arrayidx.i.i.i.i34.i monotonic, align 4 %56 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %49, i1 true) %iszero.i.i.i.i.i.i35.i = icmp eq i32 %49, 0 %sub.i.i.i.i.i.i36.i = select i1 %iszero.i.i.i.i.i.i35.i, i32 -1, i32 %56 %57 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %49, i32 %55, i32 %sub.i.i.i.i.i.i36.i, i32 31) %58 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i37.i = getelementptr inbounds nuw i32, ptr %58, i64 %idxprom.i.i.i.i33.i %59 = load atomic i32, ptr %arrayidx.i45.i.i.i37.i monotonic, align 4 %60 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %49, i32 %59, i32 %sub.i.i.i.i.i.i36.i, i32 31) %cmp.i48.not.i.i.i38.i = icmp eq i32 %57, %60 br i1 %cmp.i48.not.i.i.i38.i, label %if.end14.i.i.i114.i, label %if.then12.i.i.i39.i if.then12.i.i.i39.i: ; preds = %if.then.i.i.i.i32.i fence release %61 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i22.i, i1 true) %iszero.i.i.i.i.i.i.i40.i = icmp ne i32 %49, 0 %cmp2.i.i.i.i.i.i41.i = icmp eq i64 %61, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i42.i = select i1 %iszero.i.i.i.i.i.i.i40.i, i1 %cmp2.i.i.i.i.i.i41.i, i1 false %conv4.i.i53.i.i.i43.i = zext i1 %cmp.i.i.i.i.i.i42.i to i32 %shl.i.i54.i.i.i44.i = shl nuw i32 %conv4.i.i53.i.i.i43.i, %50 %xor.i.i.i.i.i45.i = xor i32 %shl.i.i54.i.i.i44.i, -1 %62 = atomicrmw and ptr %arrayidx.i.i.i.i.i25.i, i32 %xor.i.i.i.i.i45.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %49) br label %cleanup26.i.i.i46.i if.end14.i.i.i114.i: ; preds = %if.then.i.i.i.i32.i %63 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i22.i, i1 true) %iszero.i.i.i56.i.i.i115.i = icmp ne i32 %49, 0 %cmp2.i.i.i.i.i116.i = icmp eq i64 %63, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i117.i = select i1 %iszero.i.i.i56.i.i.i115.i, i1 %cmp2.i.i.i.i.i116.i, i1 false br i1 %cmp.i.i.i.i.i117.i, label %if.then16.i.i.i119.i, label %if.end22.i.i.i118.i if.then16.i.i.i119.i: ; preds = %if.end14.i.i.i114.i %64 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i120.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %64, i64 %idxprom.i.i.i.i33.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i120.i, align 8, !tbaa !61 %arrayidx21.i.i.i121.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %64, i64 %idxprom.i.i.i.i33.i store i64 %conv.i.i.i.i.i22.i, ptr %arrayidx21.i.i.i121.i, align 8, !tbaa !64 br label %if.end22.i.i.i118.i if.end22.i.i.i118.i: ; preds = %if.then16.i.i.i119.i, %if.end14.i.i.i114.i tail call void @llvm.nvvm.bar.warp.sync(i32 %49) br label %cleanup26.i.i.i46.i cleanup26.i.i.i46.i: ; preds = %if.end22.i.i.i118.i, %if.then12.i.i.i39.i %retval.sroa.6.1.i.i.i47.i = phi i32 [ %retval.sroa.6.0.i.i.i16.i, %if.then12.i.i.i39.i ], [ %spec.store.select.i.i.i21.i, %if.end22.i.i.i118.i ] %retval.sroa.2.1.i.i.i48.i = phi i64 [ %retval.sroa.2.0.i.i.i17.i, %if.then12.i.i.i39.i ], [ %conv.i.i.i.i.i22.i, %if.end22.i.i.i118.i ] %retval.sroa.8.1.i.i.i49.i = phi i32 [ %retval.sroa.8.0.i.i.i18.i, %if.then12.i.i.i39.i ], [ %57, %if.end22.i.i.i118.i ] br i1 %cmp.i48.not.i.i.i38.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i55.i, label %for.inc.i.i.i50.i for.inc.i.i.i50.i: ; preds = %cleanup26.i.i.i46.i, %for.cond.i.i.i15.i %retval.sroa.6.2.i.i.i51.i = phi i32 [ %retval.sroa.6.1.i.i.i47.i, %cleanup26.i.i.i46.i ], [ %retval.sroa.6.0.i.i.i16.i, %for.cond.i.i.i15.i ] %retval.sroa.2.2.i.i.i52.i = phi i64 [ %retval.sroa.2.1.i.i.i48.i, %cleanup26.i.i.i46.i ], [ %retval.sroa.2.0.i.i.i17.i, %for.cond.i.i.i15.i ] %retval.sroa.8.2.i.i.i53.i = phi i32 [ %retval.sroa.8.1.i.i.i49.i, %cleanup26.i.i.i46.i ], [ %retval.sroa.8.0.i.i.i18.i, %for.cond.i.i.i15.i ] %inc.i.i.i54.i = add i32 %spec.store.select.i.i.i21.i, 1 br label %for.cond.i.i.i15.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i55.i: ; preds = %cleanup26.i.i.i46.i %retval.sroa.6.1.i.i.i47.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i47.i, %cleanup26.i.i.i46.i ] %retval.sroa.2.1.i.i.i48.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i48.i, %cleanup26.i.i.i46.i ] %retval.sroa.8.1.i.i.i49.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i49.i, %cleanup26.i.i.i46.i ] fence acquire %65 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i58.i = shl i32 %retval.sroa.6.1.i.i.i47.i.lcssa, 5 %idxprom.i18.i.i.i.i.i59.i = zext i32 %mul.i.i.i.i.i.i58.i to i64 %arrayidx.i19.i.i.i.i.i60.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %65, i64 %idxprom.i18.i.i.i.i.i59.i %arrayidx.i21.i.i.i.i.i61.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i60.i, i64 %sh_prom.i.i.i.i.i store i64 1, ptr %arrayidx.i21.i.i.i.i.i61.i, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i63.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i61.i, i64 8 store i8 58, ptr %arrayidx6.i.i.i.i.i.i.i63.i, align 8 %tobool.not.i.i.i.i.i.i64.i = icmp eq i32 %retval.sroa.8.1.i.i.i49.i.lcssa, 0 %conv.i.i.i.i.i.i65.i = zext i1 %tobool.not.i.i.i.i.i.i64.i to i32 fence release %66 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i66.i = zext i32 %retval.sroa.6.1.i.i.i47.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i67.i = getelementptr inbounds nuw i32, ptr %66, i64 %idxprom.i22.i.i.i.i.i66.i store atomic i32 %conv.i.i.i.i.i.i65.i, ptr %arrayidx.i23.i.i.i.i.i67.i monotonic, align 4 %67 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i68.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %67, i64 %idxprom.i22.i.i.i.i.i66.i %68 = load i64, ptr %arrayidx.i.i4.i.i68.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i69.i = trunc i64 %68 to i32 %conv.i.i.i.i17.i.i.i.i71.i = trunc i64 %retval.sroa.2.1.i.i.i48.i.lcssa to i32 %69 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i71.i, i1 true) %iszero.i.i.i.i18.i.i.i.i72.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i71.i, 0 %sub.i.i.i.i19.i.i.i.i73.i = select i1 %iszero.i.i.i.i18.i.i.i.i72.i, i32 -1, i32 %69 br label %while.cond.i.i.i.i74.i while.cond.i.i.i.i74.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i86.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i55.i %port.sroa.43.0.i.i75.i = phi i32 [ %conv.i.i.i.i.i.i65.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i55.i ], [ %conv.i.i39.i.i.i.i87.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i86.i ] %idx.0.i.i.i.i76.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i55.i ], [ %add.i.i.i.i89.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i86.i ] %cmp.i.i.i2.i77.i = icmp eq i64 %idx.0.i.i.i.i76.i, 0 %70 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i69.i, i1 %cmp.i.i.i2.i77.i) %tobool.not.i.i.i.i78.i = icmp eq i32 %70, 0 %71 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i79.i = getelementptr inbounds nuw i32, ptr %71, i64 %idxprom.i22.i.i.i.i.i66.i %72 = load atomic i32, ptr %arrayidx.i22.i.i.i79.i monotonic, align 4 br i1 %tobool.not.i.i.i.i78.i, label %cond.false.i.i.i98.i, label %cond.false.i11.i.i.i.i80.i cond.false.i11.i.i.i.i80.i: ; preds = %while.cond.i.i.i.i74.i %73 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i71.i, i32 %72, i32 %sub.i.i.i.i19.i.i.i.i73.i, i32 31) %74 = icmp eq i32 %73, %port.sroa.43.0.i.i75.i br i1 %74, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i85.i, label %while.body.i.i33.i.i.i.i81.i while.body.i.i33.i.i.i.i81.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i82.i, %cond.false.i11.i.i.i.i80.i %75 = phi ptr [ %76, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i82.i ], [ %71, %cond.false.i11.i.i.i.i80.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i48.i.i.i.i96.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i82.i if.then.i.i.i48.i.i.i.i96.i: ; preds = %while.body.i.i33.i.i.i.i81.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i97.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i82.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i82.i: ; preds = %if.then.i.i.i48.i.i.i.i96.i, %while.body.i.i33.i.i.i.i81.i %76 = phi ptr [ %.pre.i.i.i.i97.i, %if.then.i.i.i48.i.i.i.i96.i ], [ %75, %while.body.i.i33.i.i.i.i81.i ] %arrayidx.i.i.i35.i.i.i.i83.i = getelementptr inbounds nuw i32, ptr %76, i64 %idxprom.i22.i.i.i.i.i66.i %77 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i83.i monotonic, align 4 %78 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i71.i, i32 %77, i32 %sub.i.i.i.i19.i.i.i.i73.i, i32 31) %cmp.i.not.i.i36.i.i.i.i84.i = icmp eq i32 %78, %port.sroa.43.0.i.i75.i br i1 %cmp.i.not.i.i36.i.i.i.i84.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i85.i, label %while.body.i.i33.i.i.i.i81.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i85.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i82.i, %cond.false.i11.i.i.i.i80.i fence acquire br i1 %cmp.i.i.i2.i77.i, label %if.then.i.i20.i.i.i.i.i90.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i86.i if.then.i.i20.i.i.i.i.i90.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i85.i %79 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i94.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %79, i64 %idxprom.i18.i.i.i.i.i59.i %arrayidx.i22.i.i.i.i.i95.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i94.i, i64 %sh_prom.i.i.i.i.i store i8 58, ptr %arrayidx.i22.i.i.i.i.i95.i, align 1 br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i86.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i86.i: ; preds = %if.then.i.i20.i.i.i.i.i90.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i85.i %conv.i.i39.i.i.i.i87.i = xor i32 %port.sroa.43.0.i.i75.i, 1 fence release %80 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i88.i = getelementptr inbounds nuw i32, ptr %80, i64 %idxprom.i22.i.i.i.i.i66.i store atomic i32 %conv.i.i39.i.i.i.i87.i, ptr %arrayidx.i24.i.i.i.i.i88.i monotonic, align 4 %add.i.i.i.i89.i = add i64 %idx.0.i.i.i.i76.i, 64 br label %while.cond.i.i.i.i74.i, !llvm.loop !71 cond.false.i.i.i98.i: ; preds = %while.cond.i.i.i.i74.i %port.sroa.43.0.i.i75.i.lcssa = phi i32 [ %port.sroa.43.0.i.i75.i, %while.cond.i.i.i.i74.i ] %.lcssa169 = phi ptr [ %71, %while.cond.i.i.i.i74.i ] %.lcssa168 = phi i32 [ %72, %while.cond.i.i.i.i74.i ] %81 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i71.i, i32 %.lcssa168, i32 %sub.i.i.i.i19.i.i.i.i73.i, i32 31) %82 = icmp eq i32 %81, %port.sroa.43.0.i.i75.i.lcssa br i1 %82, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit122.i, label %while.body.i.i.i.i99.i while.body.i.i.i.i99.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i100.i, %cond.false.i.i.i98.i %83 = phi ptr [ %84, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i100.i ], [ %.lcssa169, %cond.false.i.i.i98.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i.i.i112.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i100.i if.then.i.i.i.i.i112.i: ; preds = %while.body.i.i.i.i99.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i113.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i100.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i100.i: ; preds = %if.then.i.i.i.i.i112.i, %while.body.i.i.i.i99.i %84 = phi ptr [ %.pre.i.i113.i, %if.then.i.i.i.i.i112.i ], [ %83, %while.body.i.i.i.i99.i ] %arrayidx.i.i.i11.i.i101.i = getelementptr inbounds nuw i32, ptr %84, i64 %idxprom.i22.i.i.i.i.i66.i %85 = load atomic i32, ptr %arrayidx.i.i.i11.i.i101.i monotonic, align 4 %86 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i71.i, i32 %85, i32 %sub.i.i.i.i19.i.i.i.i73.i, i32 31) %cmp.i.not.i.i.i.i102.i = icmp eq i32 %86, %port.sroa.43.0.i.i75.i.lcssa br i1 %cmp.i.not.i.i.i.i102.i, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit122.i, label %while.body.i.i.i.i99.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit122.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i100.i, %cond.false.i.i.i98.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i71.i) fence release %87 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i48.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i103.i = icmp ne i64 %retval.sroa.2.1.i.i.i48.i.lcssa, 0 %cmp2.i.i.i.i19.i.i104.i = icmp eq i64 %87, %sh_prom.i.i.i.i.i %cmp.i.i.i.i20.i.i105.i = select i1 %iszero.i.i.i.i.i18.i.i103.i, i1 %cmp2.i.i.i.i19.i.i104.i, i1 false %div8.i.i.i21.i.i106.i = lshr i32 %retval.sroa.6.1.i.i.i47.i.lcssa, 5 %88 = and i32 %retval.sroa.6.1.i.i.i47.i.lcssa, 31 %idxprom.i.i.i22.i.i107.i = zext nneg i32 %div8.i.i.i21.i.i106.i to i64 %arrayidx.i.i.i23.i.i108.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i107.i %conv4.i.i.i24.i.i109.i = zext i1 %cmp.i.i.i.i20.i.i105.i to i32 %shl.i.i.i25.i.i110.i = shl nuw i32 %conv4.i.i.i24.i.i109.i, %88 %xor.i.i.i26.i.i111.i = xor i32 %shl.i.i.i25.i.i110.i, -1 %89 = atomicrmw and ptr %arrayidx.i.i.i23.i.i108.i, i32 %xor.i.i.i26.i.i111.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i71.i) call void @llvm.lifetime.start.p0(ptr nonnull %buffer.i.i.i.i) #32, !noalias !72 %90 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i.i, i64 11 br label %while.body.i.i.i.i.i.i.i.i while.body.i.i.i.i.i.i.i.i: ; preds = %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit122.i %writer.sroa.10.0.i.i.i.i.i.i = phi i64 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit122.i ], [ %writer.sroa.10.1.i.i.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i.i ] %value.addr.09.i.i.i.i.i.i.i.i = phi i32 [ 40, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit122.i ], [ %div.i.i.i.i.i.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i.i ] %div.i.i.i.i.i.i.i.i.i = udiv i32 %value.addr.09.i.i.i.i.i.i.i.i, 10 %cmp.i.i.i.i.i.i.i.i.i.i = icmp eq i64 %writer.sroa.10.0.i.i.i.i.i.i, 11 br i1 %cmp.i.i.i.i.i.i.i.i.i.i, label %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i.i, label %if.then3.i.i.i.i.i.i.i.i.i if.then3.i.i.i.i.i.i.i.i.i: ; preds = %while.body.i.i.i.i.i.i.i.i %.neg.i.i = mul nuw nsw i32 %div.i.i.i.i.i.i.i.i.i, 246 %rem.i.i.i.i.i.i.i.decomposed.i.i = add nuw nsw i32 %.neg.i.i, %value.addr.09.i.i.i.i.i.i.i.i %conv.i.i.i.i.i.i.i.i.i = trunc i32 %rem.i.i.i.i.i.i.i.decomposed.i.i to i8 %switch.offset.i.i = or disjoint i8 %conv.i.i.i.i.i.i.i.i.i, 48 %inc.i.i.i.i.i.i.i.i.i = add i64 %writer.sroa.10.0.i.i.i.i.i.i, 1 %91 = xor i64 %writer.sroa.10.0.i.i.i.i.i.i, -1 %arrayidx.i.i.i.i.i.i.i.i.i.i = getelementptr i8, ptr %90, i64 %91 store i8 %switch.offset.i.i, ptr %arrayidx.i.i.i.i.i.i.i.i.i.i, align 1, !tbaa !36, !noalias !72 br label %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i.i _ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i.i: ; preds = %if.then3.i.i.i.i.i.i.i.i.i, %while.body.i.i.i.i.i.i.i.i %writer.sroa.10.1.i.i.i.i.i.i = phi i64 [ %inc.i.i.i.i.i.i.i.i.i, %if.then3.i.i.i.i.i.i.i.i.i ], [ 11, %while.body.i.i.i.i.i.i.i.i ] %cmp.i.i.i.i.i.i.i.i = icmp samesign ult i32 %value.addr.09.i.i.i.i.i.i.i.i, 10 %.not.i.i.i.i.i.i.i.i = or i1 %cmp.i.i.i.i.i.i.i.i.i.i, %cmp.i.i.i.i.i.i.i.i br i1 %.not.i.i.i.i.i.i.i.i, label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i.i, label %while.body.i.i.i.i.i.i.i.i, !llvm.loop !77 _ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i.i: ; preds = %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i.i %writer.sroa.10.1.i.i.i.i.i.i.lcssa = phi i64 [ %writer.sroa.10.1.i.i.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i.i ] %cmp.i.i.i.i.i.i.i.i.i.i.lcssa = phi i1 [ %cmp.i.i.i.i.i.i.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i.i ] %cmp.i21.i.i.i.i.i.i = icmp ne i64 %writer.sroa.10.1.i.i.i.i.i.i.lcssa, 0 %or.cond.not.i.i.i.i.i.i = or i1 %cmp.i.i.i.i.i.i.i.i.i.i.lcssa, %cmp.i21.i.i.i.i.i.i br i1 %or.cond.not.i.i.i.i.i.i, label %while.end.i.i.i.i.i.i.i, label %if.then3.i.i.lr.ph.i.i.i.i.i.i if.then3.i.i.lr.ph.i.i.i.i.i.i: ; preds = %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i.i %arrayidx.i.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %buffer.i.i.i.i, i64 10 store i8 48, ptr %arrayidx.i.i.i.i.i.i.i.i.i, align 2, !tbaa !36, !noalias !72 br label %while.end.i.i.i.i.i.i.i while.end.i.i.i.i.i.i.i: ; preds = %if.then3.i.i.lr.ph.i.i.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i.i %writer.sroa.10.4.i.i.i.i.i.i = phi i64 [ %writer.sroa.10.1.i.i.i.i.i.i.lcssa, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i.i ], [ 1, %if.then3.i.i.lr.ph.i.i.i.i.i.i ] %written.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %buffer.i.i.i.i, i64 16 store i64 %writer.sroa.10.4.i.i.i.i.i.i, ptr %written.i.i.i.i.i.i, align 8, !tbaa !40, !noalias !72 %cmp.i.not.i.i.i.i.i.i.i = icmp eq i64 %writer.sroa.10.4.i.i.i.i.i.i, 0 br i1 %cmp.i.not.i.i.i.i.i.i.i, label %if.end.i.i.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i.i.i if.then.i.i.i.i.i.i.i.i: ; preds = %while.end.i.i.i.i.i.i.i %inc.i.i.i.i.i2.i.i.i.i = add i64 %writer.sroa.10.4.i.i.i.i.i.i, 1 %cmp.not.i.i.not.i.i.i.i.i.i.i = icmp eq i64 %inc.i.i.i.i.i2.i.i.i.i, 0 br i1 %cmp.not.i.i.not.i.i.i.i.i.i.i, label %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i.i, label %if.end.i.i.i.i.i.i.i.i.i if.end.i.i.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i.i %cmp2.i.i.i.i.i.i.i.i.i = icmp ult i64 %inc.i.i.i.i.i2.i.i.i.i, 1676976733973595601 %mul.i.i.i.i.i.i.i.i.i = mul nuw i64 %inc.i.i.i.i.i2.i.i.i.i, 11 %div18.i.i.i.i.i.i.i.i.i = lshr i64 %mul.i.i.i.i.i.i.i.i.i, 3 %new_capacity.addr.0.i.i.i.i.i.i.i.i.i = select i1 %cmp2.i.i.i.i.i.i.i.i.i, i64 %div18.i.i.i.i.i.i.i.i.i, i64 %inc.i.i.i.i.i2.i.i.i.i %sub.i.i.i.i = add i64 %new_capacity.addr.0.i.i.i.i.i.i.i.i.i, 7 %div2.i.i.i.i = and i64 %sub.i.i.i.i, -8 %92 = load ptr, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34, !noalias !72 %add.ptr.i.i.i.i = getelementptr inbounds nuw i8, ptr %92, i64 %div2.i.i.i.i store ptr %add.ptr.i.i.i.i, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34, !noalias !72 %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %add.ptr.i.i.i.i to i64 %sub.ptr.sub.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i, ptrtoint (ptr @_ZN12_GLOBAL__N_16memoryE to i64) %cmp.i.i.i.i = icmp ugt i64 %sub.ptr.sub.i.i.i.i, 65335 %cond.i.i.i.i = select i1 %cmp.i.i.i.i, ptr null, ptr %92 %tobool.i.i.i.i.i.i.i.i.i = icmp ne ptr %cond.i.i.i.i, null tail call void @llvm.assume(i1 %tobool.i.i.i.i.i.i.i.i.i) br label %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i.i _ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i.i: ; preds = %if.end.i.i.i.i.i.i.i.i.i, %if.then.i.i.i.i.i.i.i.i %agg.tmp.sroa.0.0.i.i = phi ptr [ @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE, %if.then.i.i.i.i.i.i.i.i ], [ %cond.i.i.i.i, %if.end.i.i.i.i.i.i.i.i.i ] tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %agg.tmp.sroa.0.0.i.i, i8 0, i64 %writer.sroa.10.4.i.i.i.i.i.i, i1 false), !noalias !72 br label %if.end.i.i.i.i.i.i.i.i if.end.i.i.i.i.i.i.i.i: ; preds = %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i.i, %while.end.i.i.i.i.i.i.i %agg.tmp.sroa.0.1.i.i = phi ptr [ @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE, %while.end.i.i.i.i.i.i.i ], [ %agg.tmp.sroa.0.0.i.i, %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i.i ] %cmp.not.i6.i.i.i.i.i.i.i.i = icmp eq ptr %agg.tmp.sroa.0.1.i.i, @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE br i1 %cmp.not.i6.i.i.i.i.i.i.i.i, label %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i.i, label %if.then.i.i.i.i.i3.i.i.i.i if.then.i.i.i.i.i3.i.i.i.i: ; preds = %if.end.i.i.i.i.i.i.i.i %arrayidx.i.i.i.i.i4.i.i.i.i = getelementptr inbounds nuw i8, ptr %agg.tmp.sroa.0.1.i.i, i64 %writer.sroa.10.4.i.i.i.i.i.i store i8 0, ptr %arrayidx.i.i.i.i.i4.i.i.i.i, align 1, !tbaa !36, !noalias !72 br label %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i.i _ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i.i: ; preds = %if.then.i.i.i.i.i3.i.i.i.i, %if.end.i.i.i.i.i.i.i.i %idx.neg.i.i.i.i.i = sub i64 0, %writer.sroa.10.4.i.i.i.i.i.i %add.ptr5.i.i.i.i.i = getelementptr inbounds i8, ptr %90, i64 %idx.neg.i.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %agg.tmp.sroa.0.1.i.i, ptr nonnull align 1 %add.ptr5.i.i.i.i.i, i64 %writer.sroa.10.4.i.i.i.i.i.i, i1 false), !alias.scope !78, !noalias !72 call void @llvm.lifetime.end.p0(ptr nonnull %buffer.i.i.i.i) #32, !noalias !72 br label %for.cond.i.i.i124.i for.cond.i.i.i124.i: ; preds = %for.inc.i.i.i159.i, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i.i %retval.sroa.6.0.i.i.i125.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i.i ], [ %retval.sroa.6.2.i.i.i160.i, %for.inc.i.i.i159.i ] %retval.sroa.2.0.i.i.i126.i = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i.i ], [ %retval.sroa.2.2.i.i.i161.i, %for.inc.i.i.i159.i ] %retval.sroa.8.0.i.i.i127.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i.i ], [ %retval.sroa.8.2.i.i.i162.i, %for.inc.i.i.i159.i ] %index.0.i.i.i128.i = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i.i ], [ %inc.i.i.i163.i, %for.inc.i.i.i159.i ] %93 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i129.i = icmp ult i32 %index.0.i.i.i128.i, %93 %spec.store.select.i.i.i130.i = select i1 %cmp.not.i.i.i129.i, i32 %index.0.i.i.i128.i, i32 0 %94 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i131.i = zext i32 %94 to i64 %div8.i.i.i.i.i132.i = lshr i32 %spec.store.select.i.i.i130.i, 5 %95 = and i32 %spec.store.select.i.i.i130.i, 31 %idxprom.i.i.i.i.i133.i = zext nneg i32 %div8.i.i.i.i.i132.i to i64 %arrayidx.i.i.i.i.i134.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i133.i %96 = lshr i32 %94, %5 %conv4.i.i.i.i.i135.i = and i32 %96, 1 %shl.i.i.i.i.i136.i = shl nuw i32 %conv4.i.i.i.i.i135.i, %95 %97 = atomicrmw or ptr %arrayidx.i.i.i.i.i134.i, i32 %shl.i.i.i.i.i136.i monotonic, align 4 %shl5.i.i.i.i.i137.i = shl nuw i32 1, %95 %and.i.i.i.i.i138.i = and i32 %shl5.i.i.i.i.i137.i, %97 %tobool3.i.i.i.i139.i = icmp ne i32 %and.i.i.i.i.i138.i, 0 %98 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %94, i1 %tobool3.i.i.i.i139.i) %cmp.i.not.i.i.i140.i = icmp eq i32 %94, %98 br i1 %cmp.i.not.i.i.i140.i, label %for.inc.i.i.i159.i, label %if.then.i.i.i.i141.i if.then.i.i.i.i141.i: ; preds = %for.cond.i.i.i124.i fence acquire %99 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i142.i = zext i32 %spec.store.select.i.i.i130.i to i64 %arrayidx.i.i.i.i143.i = getelementptr inbounds nuw i32, ptr %99, i64 %idxprom.i.i.i.i142.i %100 = load atomic i32, ptr %arrayidx.i.i.i.i143.i monotonic, align 4 %101 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %94, i1 true) %iszero.i.i.i.i.i.i144.i = icmp eq i32 %94, 0 %sub.i.i.i.i.i.i145.i = select i1 %iszero.i.i.i.i.i.i144.i, i32 -1, i32 %101 %102 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %94, i32 %100, i32 %sub.i.i.i.i.i.i145.i, i32 31) %103 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i146.i = getelementptr inbounds nuw i32, ptr %103, i64 %idxprom.i.i.i.i142.i %104 = load atomic i32, ptr %arrayidx.i45.i.i.i146.i monotonic, align 4 %105 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %94, i32 %104, i32 %sub.i.i.i.i.i.i145.i, i32 31) %cmp.i48.not.i.i.i147.i = icmp eq i32 %102, %105 br i1 %cmp.i48.not.i.i.i147.i, label %if.end14.i.i.i225.i, label %if.then12.i.i.i148.i if.then12.i.i.i148.i: ; preds = %if.then.i.i.i.i141.i fence release %106 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i131.i, i1 true) %iszero.i.i.i.i.i.i.i149.i = icmp ne i32 %94, 0 %cmp2.i.i.i.i.i.i150.i = icmp eq i64 %106, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i151.i = select i1 %iszero.i.i.i.i.i.i.i149.i, i1 %cmp2.i.i.i.i.i.i150.i, i1 false %conv4.i.i53.i.i.i152.i = zext i1 %cmp.i.i.i.i.i.i151.i to i32 %shl.i.i54.i.i.i153.i = shl nuw i32 %conv4.i.i53.i.i.i152.i, %95 %xor.i.i.i.i.i154.i = xor i32 %shl.i.i54.i.i.i153.i, -1 %107 = atomicrmw and ptr %arrayidx.i.i.i.i.i134.i, i32 %xor.i.i.i.i.i154.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %94) br label %cleanup26.i.i.i155.i if.end14.i.i.i225.i: ; preds = %if.then.i.i.i.i141.i %108 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i131.i, i1 true) %iszero.i.i.i56.i.i.i226.i = icmp ne i32 %94, 0 %cmp2.i.i.i.i.i227.i = icmp eq i64 %108, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i228.i = select i1 %iszero.i.i.i56.i.i.i226.i, i1 %cmp2.i.i.i.i.i227.i, i1 false br i1 %cmp.i.i.i.i.i228.i, label %if.then16.i.i.i230.i, label %if.end22.i.i.i229.i if.then16.i.i.i230.i: ; preds = %if.end14.i.i.i225.i %109 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i231.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %109, i64 %idxprom.i.i.i.i142.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i231.i, align 8, !tbaa !61 %arrayidx21.i.i.i232.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %109, i64 %idxprom.i.i.i.i142.i store i64 %conv.i.i.i.i.i131.i, ptr %arrayidx21.i.i.i232.i, align 8, !tbaa !64 br label %if.end22.i.i.i229.i if.end22.i.i.i229.i: ; preds = %if.then16.i.i.i230.i, %if.end14.i.i.i225.i tail call void @llvm.nvvm.bar.warp.sync(i32 %94) br label %cleanup26.i.i.i155.i cleanup26.i.i.i155.i: ; preds = %if.end22.i.i.i229.i, %if.then12.i.i.i148.i %retval.sroa.6.1.i.i.i156.i = phi i32 [ %retval.sroa.6.0.i.i.i125.i, %if.then12.i.i.i148.i ], [ %spec.store.select.i.i.i130.i, %if.end22.i.i.i229.i ] %retval.sroa.2.1.i.i.i157.i = phi i64 [ %retval.sroa.2.0.i.i.i126.i, %if.then12.i.i.i148.i ], [ %conv.i.i.i.i.i131.i, %if.end22.i.i.i229.i ] %retval.sroa.8.1.i.i.i158.i = phi i32 [ %retval.sroa.8.0.i.i.i127.i, %if.then12.i.i.i148.i ], [ %102, %if.end22.i.i.i229.i ] br i1 %cmp.i48.not.i.i.i147.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i164.i, label %for.inc.i.i.i159.i for.inc.i.i.i159.i: ; preds = %cleanup26.i.i.i155.i, %for.cond.i.i.i124.i %retval.sroa.6.2.i.i.i160.i = phi i32 [ %retval.sroa.6.1.i.i.i156.i, %cleanup26.i.i.i155.i ], [ %retval.sroa.6.0.i.i.i125.i, %for.cond.i.i.i124.i ] %retval.sroa.2.2.i.i.i161.i = phi i64 [ %retval.sroa.2.1.i.i.i157.i, %cleanup26.i.i.i155.i ], [ %retval.sroa.2.0.i.i.i126.i, %for.cond.i.i.i124.i ] %retval.sroa.8.2.i.i.i162.i = phi i32 [ %retval.sroa.8.1.i.i.i158.i, %cleanup26.i.i.i155.i ], [ %retval.sroa.8.0.i.i.i127.i, %for.cond.i.i.i124.i ] %inc.i.i.i163.i = add i32 %spec.store.select.i.i.i130.i, 1 br label %for.cond.i.i.i124.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i164.i: ; preds = %cleanup26.i.i.i155.i %retval.sroa.6.1.i.i.i156.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i156.i, %cleanup26.i.i.i155.i ] %retval.sroa.2.1.i.i.i157.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i157.i, %cleanup26.i.i.i155.i ] %retval.sroa.8.1.i.i.i158.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i158.i, %cleanup26.i.i.i155.i ] fence acquire %110 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i167.i = shl i32 %retval.sroa.6.1.i.i.i156.i.lcssa, 5 %idxprom.i18.i.i.i.i.i168.i = zext i32 %mul.i.i.i.i.i.i167.i to i64 %arrayidx.i19.i.i.i.i.i169.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %110, i64 %idxprom.i18.i.i.i.i.i168.i %arrayidx.i21.i.i.i.i.i170.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i169.i, i64 %sh_prom.i.i.i.i.i store i64 %writer.sroa.10.4.i.i.i.i.i.i, ptr %arrayidx.i21.i.i.i.i.i170.i, align 8, !tbaa !67 %spec.select.i.i.i.i.i.i.i171.i = tail call i64 @llvm.umin.i64(i64 %writer.sroa.10.4.i.i.i.i.i.i, i64 56) %arrayidx6.i.i.i.i.i.i.i172.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i170.i, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %arrayidx6.i.i.i.i.i.i.i172.i, ptr nonnull align 1 %agg.tmp.sroa.0.1.i.i, i64 %spec.select.i.i.i.i.i.i.i171.i, i1 false) %tobool.not.i.i.i.i.i.i173.i = icmp eq i32 %retval.sroa.8.1.i.i.i158.i.lcssa, 0 %conv.i.i.i.i.i.i174.i = zext i1 %tobool.not.i.i.i.i.i.i173.i to i32 fence release %111 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i175.i = zext i32 %retval.sroa.6.1.i.i.i156.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i176.i = getelementptr inbounds nuw i32, ptr %111, i64 %idxprom.i22.i.i.i.i.i175.i store atomic i32 %conv.i.i.i.i.i.i174.i, ptr %arrayidx.i23.i.i.i.i.i176.i monotonic, align 4 %112 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i177.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %112, i64 %idxprom.i22.i.i.i.i.i175.i %113 = load i64, ptr %arrayidx.i.i4.i.i177.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i178.i = trunc i64 %113 to i32 %conv.i.i.i.i17.i.i.i.i180.i = trunc i64 %retval.sroa.2.1.i.i.i157.i.lcssa to i32 %114 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i180.i, i1 true) %iszero.i.i.i.i18.i.i.i.i181.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i180.i, 0 %sub.i.i.i.i19.i.i.i.i182.i = select i1 %iszero.i.i.i.i18.i.i.i.i181.i, i32 -1, i32 %114 br label %while.cond.i.i.i.i183.i while.cond.i.i.i.i183.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i195.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i164.i %port.sroa.43.0.i.i184.i = phi i32 [ %conv.i.i.i.i.i.i174.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i164.i ], [ %conv.i.i39.i.i.i.i196.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i195.i ] %idx.0.i.i.i.i185.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i164.i ], [ %add.i.i.i.i198.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i195.i ] %cmp.i.i.i.i186.i = icmp ult i64 %idx.0.i.i.i.i185.i, %writer.sroa.10.4.i.i.i.i.i.i %115 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i178.i, i1 %cmp.i.i.i.i186.i) %tobool.not.i.i.i.i187.i = icmp eq i32 %115, 0 %116 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i188.i = getelementptr inbounds nuw i32, ptr %116, i64 %idxprom.i22.i.i.i.i.i175.i %117 = load atomic i32, ptr %arrayidx.i22.i.i.i188.i monotonic, align 4 br i1 %tobool.not.i.i.i.i187.i, label %cond.false.i.i.i207.i, label %cond.false.i11.i.i.i.i189.i cond.false.i11.i.i.i.i189.i: ; preds = %while.cond.i.i.i.i183.i %118 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i180.i, i32 %117, i32 %sub.i.i.i.i19.i.i.i.i182.i, i32 31) %119 = icmp eq i32 %118, %port.sroa.43.0.i.i184.i br i1 %119, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i194.i, label %while.body.i.i33.i.i.i.i190.i while.body.i.i33.i.i.i.i190.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i191.i, %cond.false.i11.i.i.i.i189.i %120 = phi ptr [ %121, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i191.i ], [ %116, %cond.false.i11.i.i.i.i189.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i48.i.i.i.i205.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i191.i if.then.i.i.i48.i.i.i.i205.i: ; preds = %while.body.i.i33.i.i.i.i190.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i206.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i191.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i191.i: ; preds = %if.then.i.i.i48.i.i.i.i205.i, %while.body.i.i33.i.i.i.i190.i %121 = phi ptr [ %.pre.i.i.i.i206.i, %if.then.i.i.i48.i.i.i.i205.i ], [ %120, %while.body.i.i33.i.i.i.i190.i ] %arrayidx.i.i.i35.i.i.i.i192.i = getelementptr inbounds nuw i32, ptr %121, i64 %idxprom.i22.i.i.i.i.i175.i %122 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i192.i monotonic, align 4 %123 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i180.i, i32 %122, i32 %sub.i.i.i.i19.i.i.i.i182.i, i32 31) %cmp.i.not.i.i36.i.i.i.i193.i = icmp eq i32 %123, %port.sroa.43.0.i.i184.i br i1 %cmp.i.not.i.i36.i.i.i.i193.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i194.i, label %while.body.i.i33.i.i.i.i190.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i194.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i191.i, %cond.false.i11.i.i.i.i189.i fence acquire br i1 %cmp.i.i.i.i186.i, label %if.then.i.i20.i.i.i.i.i199.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i195.i if.then.i.i20.i.i.i.i.i199.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i194.i %add.ptr.i.i.i.i.i.i.i.i200.i = getelementptr inbounds nuw i8, ptr %agg.tmp.sroa.0.1.i.i, i64 %idx.0.i.i.i.i185.i %sub.i.i.i.i.i.i.i201.i = sub nuw i64 %writer.sroa.10.4.i.i.i.i.i.i, %idx.0.i.i.i.i185.i %spec.select.i.i.i47.i.i.i.i202.i = tail call i64 @llvm.umin.i64(i64 %sub.i.i.i.i.i.i.i201.i, i64 64) %124 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i203.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %124, i64 %idxprom.i18.i.i.i.i.i168.i %arrayidx.i22.i.i.i.i.i204.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i203.i, i64 %sh_prom.i.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %arrayidx.i22.i.i.i.i.i204.i, ptr nonnull align 1 %add.ptr.i.i.i.i.i.i.i.i200.i, i64 %spec.select.i.i.i47.i.i.i.i202.i, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i195.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i195.i: ; preds = %if.then.i.i20.i.i.i.i.i199.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i194.i %conv.i.i39.i.i.i.i196.i = xor i32 %port.sroa.43.0.i.i184.i, 1 fence release %125 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i197.i = getelementptr inbounds nuw i32, ptr %125, i64 %idxprom.i22.i.i.i.i.i175.i store atomic i32 %conv.i.i39.i.i.i.i196.i, ptr %arrayidx.i24.i.i.i.i.i197.i monotonic, align 4 %add.i.i.i.i198.i = add i64 %idx.0.i.i.i.i185.i, 64 br label %while.cond.i.i.i.i183.i, !llvm.loop !71 cond.false.i.i.i207.i: ; preds = %while.cond.i.i.i.i183.i %port.sroa.43.0.i.i184.i.lcssa = phi i32 [ %port.sroa.43.0.i.i184.i, %while.cond.i.i.i.i183.i ] %.lcssa167 = phi ptr [ %116, %while.cond.i.i.i.i183.i ] %.lcssa166 = phi i32 [ %117, %while.cond.i.i.i.i183.i ] %126 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i180.i, i32 %.lcssa166, i32 %sub.i.i.i.i19.i.i.i.i182.i, i32 31) %127 = icmp eq i32 %126, %port.sroa.43.0.i.i184.i.lcssa br i1 %127, label %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i.i, label %while.body.i.i.i.i208.i while.body.i.i.i.i208.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i209.i, %cond.false.i.i.i207.i %128 = phi ptr [ %129, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i209.i ], [ %.lcssa167, %cond.false.i.i.i207.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i.i.i223.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i209.i if.then.i.i.i.i.i223.i: ; preds = %while.body.i.i.i.i208.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i224.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i209.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i209.i: ; preds = %if.then.i.i.i.i.i223.i, %while.body.i.i.i.i208.i %129 = phi ptr [ %.pre.i.i224.i, %if.then.i.i.i.i.i223.i ], [ %128, %while.body.i.i.i.i208.i ] %arrayidx.i.i.i11.i.i210.i = getelementptr inbounds nuw i32, ptr %129, i64 %idxprom.i22.i.i.i.i.i175.i %130 = load atomic i32, ptr %arrayidx.i.i.i11.i.i210.i monotonic, align 4 %131 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i180.i, i32 %130, i32 %sub.i.i.i.i19.i.i.i.i182.i, i32 31) %cmp.i.not.i.i.i.i211.i = icmp eq i32 %131, %port.sroa.43.0.i.i184.i.lcssa br i1 %cmp.i.not.i.i.i.i211.i, label %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i.i, label %while.body.i.i.i.i208.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i209.i, %cond.false.i.i.i207.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i180.i) fence release %132 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i157.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i212.i = icmp ne i64 %retval.sroa.2.1.i.i.i157.i.lcssa, 0 %cmp2.i.i.i.i19.i.i213.i = icmp eq i64 %132, %sh_prom.i.i.i.i.i %cmp.i.i.i.i20.i.i214.i = select i1 %iszero.i.i.i.i.i18.i.i212.i, i1 %cmp2.i.i.i.i19.i.i213.i, i1 false %div8.i.i.i21.i.i215.i = lshr i32 %retval.sroa.6.1.i.i.i156.i.lcssa, 5 %133 = and i32 %retval.sroa.6.1.i.i.i156.i.lcssa, 31 %idxprom.i.i.i22.i.i216.i = zext nneg i32 %div8.i.i.i21.i.i215.i to i64 %arrayidx.i.i.i23.i.i217.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i216.i %conv4.i.i.i24.i.i218.i = zext i1 %cmp.i.i.i.i20.i.i214.i to i32 %shl.i.i.i25.i.i219.i = shl nuw i32 %conv4.i.i.i24.i.i218.i, %133 %xor.i.i.i26.i.i220.i = xor i32 %shl.i.i.i25.i.i219.i, -1 %134 = atomicrmw and ptr %arrayidx.i.i.i23.i.i217.i, i32 %xor.i.i.i26.i.i220.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i180.i) br label %for.cond.i.i.i244.i for.cond.i.i.i244.i: ; preds = %for.inc.i.i.i279.i, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i.i %retval.sroa.6.0.i.i.i245.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i.i ], [ %retval.sroa.6.2.i.i.i280.i, %for.inc.i.i.i279.i ] %retval.sroa.2.0.i.i.i246.i = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i.i ], [ %retval.sroa.2.2.i.i.i281.i, %for.inc.i.i.i279.i ] %retval.sroa.8.0.i.i.i247.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i.i ], [ %retval.sroa.8.2.i.i.i282.i, %for.inc.i.i.i279.i ] %index.0.i.i.i248.i = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i.i ], [ %inc.i.i.i283.i, %for.inc.i.i.i279.i ] %135 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i249.i = icmp ult i32 %index.0.i.i.i248.i, %135 %spec.store.select.i.i.i250.i = select i1 %cmp.not.i.i.i249.i, i32 %index.0.i.i.i248.i, i32 0 %136 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i251.i = zext i32 %136 to i64 %div8.i.i.i.i.i252.i = lshr i32 %spec.store.select.i.i.i250.i, 5 %137 = and i32 %spec.store.select.i.i.i250.i, 31 %idxprom.i.i.i.i.i253.i = zext nneg i32 %div8.i.i.i.i.i252.i to i64 %arrayidx.i.i.i.i.i254.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i253.i %138 = lshr i32 %136, %5 %conv4.i.i.i.i.i255.i = and i32 %138, 1 %shl.i.i.i.i.i256.i = shl nuw i32 %conv4.i.i.i.i.i255.i, %137 %139 = atomicrmw or ptr %arrayidx.i.i.i.i.i254.i, i32 %shl.i.i.i.i.i256.i monotonic, align 4 %shl5.i.i.i.i.i257.i = shl nuw i32 1, %137 %and.i.i.i.i.i258.i = and i32 %shl5.i.i.i.i.i257.i, %139 %tobool3.i.i.i.i259.i = icmp ne i32 %and.i.i.i.i.i258.i, 0 %140 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %136, i1 %tobool3.i.i.i.i259.i) %cmp.i.not.i.i.i260.i = icmp eq i32 %136, %140 br i1 %cmp.i.not.i.i.i260.i, label %for.inc.i.i.i279.i, label %if.then.i.i.i.i261.i if.then.i.i.i.i261.i: ; preds = %for.cond.i.i.i244.i fence acquire %141 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i262.i = zext i32 %spec.store.select.i.i.i250.i to i64 %arrayidx.i.i.i.i263.i = getelementptr inbounds nuw i32, ptr %141, i64 %idxprom.i.i.i.i262.i %142 = load atomic i32, ptr %arrayidx.i.i.i.i263.i monotonic, align 4 %143 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %136, i1 true) %iszero.i.i.i.i.i.i264.i = icmp eq i32 %136, 0 %sub.i.i.i.i.i.i265.i = select i1 %iszero.i.i.i.i.i.i264.i, i32 -1, i32 %143 %144 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %136, i32 %142, i32 %sub.i.i.i.i.i.i265.i, i32 31) %145 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i266.i = getelementptr inbounds nuw i32, ptr %145, i64 %idxprom.i.i.i.i262.i %146 = load atomic i32, ptr %arrayidx.i45.i.i.i266.i monotonic, align 4 %147 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %136, i32 %146, i32 %sub.i.i.i.i.i.i265.i, i32 31) %cmp.i48.not.i.i.i267.i = icmp eq i32 %144, %147 br i1 %cmp.i48.not.i.i.i267.i, label %if.end14.i.i.i344.i, label %if.then12.i.i.i268.i if.then12.i.i.i268.i: ; preds = %if.then.i.i.i.i261.i fence release %148 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i251.i, i1 true) %iszero.i.i.i.i.i.i.i269.i = icmp ne i32 %136, 0 %cmp2.i.i.i.i.i.i270.i = icmp eq i64 %148, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i271.i = select i1 %iszero.i.i.i.i.i.i.i269.i, i1 %cmp2.i.i.i.i.i.i270.i, i1 false %conv4.i.i53.i.i.i272.i = zext i1 %cmp.i.i.i.i.i.i271.i to i32 %shl.i.i54.i.i.i273.i = shl nuw i32 %conv4.i.i53.i.i.i272.i, %137 %xor.i.i.i.i.i274.i = xor i32 %shl.i.i54.i.i.i273.i, -1 %149 = atomicrmw and ptr %arrayidx.i.i.i.i.i254.i, i32 %xor.i.i.i.i.i274.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %136) br label %cleanup26.i.i.i275.i if.end14.i.i.i344.i: ; preds = %if.then.i.i.i.i261.i %150 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i251.i, i1 true) %iszero.i.i.i56.i.i.i345.i = icmp ne i32 %136, 0 %cmp2.i.i.i.i.i346.i = icmp eq i64 %150, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i347.i = select i1 %iszero.i.i.i56.i.i.i345.i, i1 %cmp2.i.i.i.i.i346.i, i1 false br i1 %cmp.i.i.i.i.i347.i, label %if.then16.i.i.i349.i, label %if.end22.i.i.i348.i if.then16.i.i.i349.i: ; preds = %if.end14.i.i.i344.i %151 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i350.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %151, i64 %idxprom.i.i.i.i262.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i350.i, align 8, !tbaa !61 %arrayidx21.i.i.i351.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %151, i64 %idxprom.i.i.i.i262.i store i64 %conv.i.i.i.i.i251.i, ptr %arrayidx21.i.i.i351.i, align 8, !tbaa !64 br label %if.end22.i.i.i348.i if.end22.i.i.i348.i: ; preds = %if.then16.i.i.i349.i, %if.end14.i.i.i344.i tail call void @llvm.nvvm.bar.warp.sync(i32 %136) br label %cleanup26.i.i.i275.i cleanup26.i.i.i275.i: ; preds = %if.end22.i.i.i348.i, %if.then12.i.i.i268.i %retval.sroa.6.1.i.i.i276.i = phi i32 [ %retval.sroa.6.0.i.i.i245.i, %if.then12.i.i.i268.i ], [ %spec.store.select.i.i.i250.i, %if.end22.i.i.i348.i ] %retval.sroa.2.1.i.i.i277.i = phi i64 [ %retval.sroa.2.0.i.i.i246.i, %if.then12.i.i.i268.i ], [ %conv.i.i.i.i.i251.i, %if.end22.i.i.i348.i ] %retval.sroa.8.1.i.i.i278.i = phi i32 [ %retval.sroa.8.0.i.i.i247.i, %if.then12.i.i.i268.i ], [ %144, %if.end22.i.i.i348.i ] br i1 %cmp.i48.not.i.i.i267.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i284.i, label %for.inc.i.i.i279.i for.inc.i.i.i279.i: ; preds = %cleanup26.i.i.i275.i, %for.cond.i.i.i244.i %retval.sroa.6.2.i.i.i280.i = phi i32 [ %retval.sroa.6.1.i.i.i276.i, %cleanup26.i.i.i275.i ], [ %retval.sroa.6.0.i.i.i245.i, %for.cond.i.i.i244.i ] %retval.sroa.2.2.i.i.i281.i = phi i64 [ %retval.sroa.2.1.i.i.i277.i, %cleanup26.i.i.i275.i ], [ %retval.sroa.2.0.i.i.i246.i, %for.cond.i.i.i244.i ] %retval.sroa.8.2.i.i.i282.i = phi i32 [ %retval.sroa.8.1.i.i.i278.i, %cleanup26.i.i.i275.i ], [ %retval.sroa.8.0.i.i.i247.i, %for.cond.i.i.i244.i ] %inc.i.i.i283.i = add i32 %spec.store.select.i.i.i250.i, 1 br label %for.cond.i.i.i244.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i284.i: ; preds = %cleanup26.i.i.i275.i %retval.sroa.6.1.i.i.i276.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i276.i, %cleanup26.i.i.i275.i ] %retval.sroa.2.1.i.i.i277.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i277.i, %cleanup26.i.i.i275.i ] %retval.sroa.8.1.i.i.i278.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i278.i, %cleanup26.i.i.i275.i ] fence acquire %152 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i287.i = shl i32 %retval.sroa.6.1.i.i.i276.i.lcssa, 5 %idxprom.i18.i.i.i.i.i288.i = zext i32 %mul.i.i.i.i.i.i287.i to i64 %arrayidx.i19.i.i.i.i.i289.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %152, i64 %idxprom.i18.i.i.i.i.i288.i %arrayidx.i21.i.i.i.i.i290.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i289.i, i64 %sh_prom.i.i.i.i.i store i64 10, ptr %arrayidx.i21.i.i.i.i.i290.i, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i292.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i290.i, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(10) %arrayidx6.i.i.i.i.i.i.i292.i, ptr noundef nonnull align 1 dereferenceable(10) @.str7, i64 10, i1 false) %tobool.not.i.i.i.i.i.i293.i = icmp eq i32 %retval.sroa.8.1.i.i.i278.i.lcssa, 0 %conv.i.i.i.i.i.i294.i = zext i1 %tobool.not.i.i.i.i.i.i293.i to i32 fence release %153 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i295.i = zext i32 %retval.sroa.6.1.i.i.i276.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i296.i = getelementptr inbounds nuw i32, ptr %153, i64 %idxprom.i22.i.i.i.i.i295.i store atomic i32 %conv.i.i.i.i.i.i294.i, ptr %arrayidx.i23.i.i.i.i.i296.i monotonic, align 4 %154 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i297.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %154, i64 %idxprom.i22.i.i.i.i.i295.i %155 = load i64, ptr %arrayidx.i.i4.i.i297.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i298.i = trunc i64 %155 to i32 %conv.i.i.i.i17.i.i.i.i300.i = trunc i64 %retval.sroa.2.1.i.i.i277.i.lcssa to i32 %156 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i300.i, i1 true) %iszero.i.i.i.i18.i.i.i.i301.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i300.i, 0 %sub.i.i.i.i19.i.i.i.i302.i = select i1 %iszero.i.i.i.i18.i.i.i.i301.i, i32 -1, i32 %156 br label %while.cond.i.i.i.i303.i while.cond.i.i.i.i303.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i315.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i284.i %port.sroa.43.0.i.i304.i = phi i32 [ %conv.i.i.i.i.i.i294.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i284.i ], [ %conv.i.i39.i.i.i.i316.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i315.i ] %idx.0.i.i.i.i305.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i284.i ], [ %add.i.i.i.i318.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i315.i ] %cmp.i.i.i2.i306.i = icmp ult i64 %idx.0.i.i.i.i305.i, 10 %157 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i298.i, i1 %cmp.i.i.i2.i306.i) %tobool.not.i.i.i.i307.i = icmp eq i32 %157, 0 %158 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i308.i = getelementptr inbounds nuw i32, ptr %158, i64 %idxprom.i22.i.i.i.i.i295.i %159 = load atomic i32, ptr %arrayidx.i22.i.i.i308.i monotonic, align 4 br i1 %tobool.not.i.i.i.i307.i, label %cond.false.i.i.i327.i, label %cond.false.i11.i.i.i.i309.i cond.false.i11.i.i.i.i309.i: ; preds = %while.cond.i.i.i.i303.i %160 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i300.i, i32 %159, i32 %sub.i.i.i.i19.i.i.i.i302.i, i32 31) %161 = icmp eq i32 %160, %port.sroa.43.0.i.i304.i br i1 %161, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i314.i, label %while.body.i.i33.i.i.i.i310.i while.body.i.i33.i.i.i.i310.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i311.i, %cond.false.i11.i.i.i.i309.i %162 = phi ptr [ %163, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i311.i ], [ %158, %cond.false.i11.i.i.i.i309.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i48.i.i.i.i325.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i311.i if.then.i.i.i48.i.i.i.i325.i: ; preds = %while.body.i.i33.i.i.i.i310.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i326.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i311.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i311.i: ; preds = %if.then.i.i.i48.i.i.i.i325.i, %while.body.i.i33.i.i.i.i310.i %163 = phi ptr [ %.pre.i.i.i.i326.i, %if.then.i.i.i48.i.i.i.i325.i ], [ %162, %while.body.i.i33.i.i.i.i310.i ] %arrayidx.i.i.i35.i.i.i.i312.i = getelementptr inbounds nuw i32, ptr %163, i64 %idxprom.i22.i.i.i.i.i295.i %164 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i312.i monotonic, align 4 %165 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i300.i, i32 %164, i32 %sub.i.i.i.i19.i.i.i.i302.i, i32 31) %cmp.i.not.i.i36.i.i.i.i313.i = icmp eq i32 %165, %port.sroa.43.0.i.i304.i br i1 %cmp.i.not.i.i36.i.i.i.i313.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i314.i, label %while.body.i.i33.i.i.i.i310.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i314.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i311.i, %cond.false.i11.i.i.i.i309.i fence acquire br i1 %cmp.i.i.i2.i306.i, label %if.then.i.i20.i.i.i.i.i319.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i315.i if.then.i.i20.i.i.i.i.i319.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i314.i %add.ptr.i.i.i.i.i.i.i.i320.i = getelementptr inbounds nuw i8, ptr @.str7, i64 %idx.0.i.i.i.i305.i %sub.i.i.i.i.i.i.i321.i = sub nuw nsw i64 10, %idx.0.i.i.i.i305.i %166 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i323.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %166, i64 %idxprom.i18.i.i.i.i.i288.i %arrayidx.i22.i.i.i.i.i324.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i323.i, i64 %sh_prom.i.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %arrayidx.i22.i.i.i.i.i324.i, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr.i.i.i.i.i.i.i.i320.i, i64 %sub.i.i.i.i.i.i.i321.i, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i315.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i315.i: ; preds = %if.then.i.i20.i.i.i.i.i319.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i314.i %conv.i.i39.i.i.i.i316.i = xor i32 %port.sroa.43.0.i.i304.i, 1 fence release %167 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i317.i = getelementptr inbounds nuw i32, ptr %167, i64 %idxprom.i22.i.i.i.i.i295.i store atomic i32 %conv.i.i39.i.i.i.i316.i, ptr %arrayidx.i24.i.i.i.i.i317.i monotonic, align 4 %add.i.i.i.i318.i = add i64 %idx.0.i.i.i.i305.i, 64 br label %while.cond.i.i.i.i303.i, !llvm.loop !71 cond.false.i.i.i327.i: ; preds = %while.cond.i.i.i.i303.i %port.sroa.43.0.i.i304.i.lcssa = phi i32 [ %port.sroa.43.0.i.i304.i, %while.cond.i.i.i.i303.i ] %.lcssa165 = phi ptr [ %158, %while.cond.i.i.i.i303.i ] %.lcssa164 = phi i32 [ %159, %while.cond.i.i.i.i303.i ] %168 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i300.i, i32 %.lcssa164, i32 %sub.i.i.i.i19.i.i.i.i302.i, i32 31) %169 = icmp eq i32 %168, %port.sroa.43.0.i.i304.i.lcssa br i1 %169, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit352.i, label %while.body.i.i.i.i328.i while.body.i.i.i.i328.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i329.i, %cond.false.i.i.i327.i %170 = phi ptr [ %171, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i329.i ], [ %.lcssa165, %cond.false.i.i.i327.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i.i.i342.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i329.i if.then.i.i.i.i.i342.i: ; preds = %while.body.i.i.i.i328.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i343.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i329.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i329.i: ; preds = %if.then.i.i.i.i.i342.i, %while.body.i.i.i.i328.i %171 = phi ptr [ %.pre.i.i343.i, %if.then.i.i.i.i.i342.i ], [ %170, %while.body.i.i.i.i328.i ] %arrayidx.i.i.i11.i.i330.i = getelementptr inbounds nuw i32, ptr %171, i64 %idxprom.i22.i.i.i.i.i295.i %172 = load atomic i32, ptr %arrayidx.i.i.i11.i.i330.i monotonic, align 4 %173 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i300.i, i32 %172, i32 %sub.i.i.i.i19.i.i.i.i302.i, i32 31) %cmp.i.not.i.i.i.i331.i = icmp eq i32 %173, %port.sroa.43.0.i.i304.i.lcssa br i1 %cmp.i.not.i.i.i.i331.i, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit352.i, label %while.body.i.i.i.i328.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit352.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i329.i, %cond.false.i.i.i327.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i300.i) fence release %174 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i277.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i333.i = icmp ne i64 %retval.sroa.2.1.i.i.i277.i.lcssa, 0 %cmp2.i.i.i.i19.i.i334.i = icmp eq i64 %174, %sh_prom.i.i.i.i.i %cmp.i.i.i.i20.i.i335.i = select i1 %iszero.i.i.i.i.i18.i.i333.i, i1 %cmp2.i.i.i.i19.i.i334.i, i1 false %div8.i.i.i21.i.i336.i = lshr i32 %retval.sroa.6.1.i.i.i276.i.lcssa, 5 %175 = and i32 %retval.sroa.6.1.i.i.i276.i.lcssa, 31 %idxprom.i.i.i22.i.i337.i = zext nneg i32 %div8.i.i.i21.i.i336.i to i64 %arrayidx.i.i.i23.i.i338.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i337.i %conv4.i.i.i24.i.i339.i = zext i1 %cmp.i.i.i.i20.i.i335.i to i32 %shl.i.i.i25.i.i340.i = shl nuw i32 %conv4.i.i.i24.i.i339.i, %175 %xor.i.i.i26.i.i341.i = xor i32 %shl.i.i.i25.i.i340.i, -1 %176 = atomicrmw and ptr %arrayidx.i.i.i23.i.i338.i, i32 %xor.i.i.i26.i.i341.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i300.i) %177 = load ptr, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34 %add.ptr.i.i353.i = getelementptr inbounds nuw i8, ptr %177, i64 16 store ptr %add.ptr.i.i353.i, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34 %sub.ptr.lhs.cast.i.i354.i = ptrtoint ptr %add.ptr.i.i353.i to i64 %sub.ptr.sub.i.i355.i = sub i64 %sub.ptr.lhs.cast.i.i354.i, ptrtoint (ptr @_ZN12_GLOBAL__N_16memoryE to i64) %cmp.i.i356.i = icmp ugt i64 %sub.ptr.sub.i.i355.i, 65335 %cond.i.i357.i = select i1 %cmp.i.i356.i, ptr null, ptr %177 %tobool.i.i.i.i42.i.i = icmp ne ptr %cond.i.i357.i, null tail call void @llvm.assume(i1 %tobool.i.i.i.i42.i.i) tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %177, ptr noundef nonnull align 1 dereferenceable(6) %4, i64 6, i1 false), !alias.scope !82 %cmp.not.i10.i.i.i.i.i = icmp eq ptr %cond.i.i357.i, @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE br i1 %cmp.not.i10.i.i.i.i.i, label %for.cond.i.i.i359.i.preheader, label %if.then.i.i.i.i45.i.i if.then.i.i.i.i45.i.i: ; preds = %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit352.i %arrayidx.i.i.i.i46.i.i = getelementptr inbounds nuw i8, ptr %177, i64 6 store i8 0, ptr %arrayidx.i.i.i.i46.i.i, align 1, !tbaa !36 br label %for.cond.i.i.i359.i.preheader for.cond.i.i.i359.i.preheader: ; preds = %if.then.i.i.i.i45.i.i, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit352.i br label %for.cond.i.i.i359.i for.cond.i.i.i359.i: ; preds = %for.inc.i.i.i394.i, %for.cond.i.i.i359.i.preheader %retval.sroa.6.0.i.i.i360.i = phi i32 [ %retval.sroa.6.2.i.i.i395.i, %for.inc.i.i.i394.i ], [ undef, %for.cond.i.i.i359.i.preheader ] %retval.sroa.2.0.i.i.i361.i = phi i64 [ %retval.sroa.2.2.i.i.i396.i, %for.inc.i.i.i394.i ], [ undef, %for.cond.i.i.i359.i.preheader ] %retval.sroa.8.0.i.i.i362.i = phi i32 [ %retval.sroa.8.2.i.i.i397.i, %for.inc.i.i.i394.i ], [ undef, %for.cond.i.i.i359.i.preheader ] %index.0.i.i.i363.i = phi i32 [ %inc.i.i.i398.i, %for.inc.i.i.i394.i ], [ 0, %for.cond.i.i.i359.i.preheader ] %178 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i364.i = icmp ult i32 %index.0.i.i.i363.i, %178 %spec.store.select.i.i.i365.i = select i1 %cmp.not.i.i.i364.i, i32 %index.0.i.i.i363.i, i32 0 %179 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i366.i = zext i32 %179 to i64 %div8.i.i.i.i.i367.i = lshr i32 %spec.store.select.i.i.i365.i, 5 %180 = and i32 %spec.store.select.i.i.i365.i, 31 %idxprom.i.i.i.i.i368.i = zext nneg i32 %div8.i.i.i.i.i367.i to i64 %arrayidx.i.i.i.i.i369.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i368.i %181 = lshr i32 %179, %5 %conv4.i.i.i.i.i370.i = and i32 %181, 1 %shl.i.i.i.i.i371.i = shl nuw i32 %conv4.i.i.i.i.i370.i, %180 %182 = atomicrmw or ptr %arrayidx.i.i.i.i.i369.i, i32 %shl.i.i.i.i.i371.i monotonic, align 4 %shl5.i.i.i.i.i372.i = shl nuw i32 1, %180 %and.i.i.i.i.i373.i = and i32 %shl5.i.i.i.i.i372.i, %182 %tobool3.i.i.i.i374.i = icmp ne i32 %and.i.i.i.i.i373.i, 0 %183 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %179, i1 %tobool3.i.i.i.i374.i) %cmp.i.not.i.i.i375.i = icmp eq i32 %179, %183 br i1 %cmp.i.not.i.i.i375.i, label %for.inc.i.i.i394.i, label %if.then.i.i.i.i376.i if.then.i.i.i.i376.i: ; preds = %for.cond.i.i.i359.i fence acquire %184 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i377.i = zext i32 %spec.store.select.i.i.i365.i to i64 %arrayidx.i.i.i.i378.i = getelementptr inbounds nuw i32, ptr %184, i64 %idxprom.i.i.i.i377.i %185 = load atomic i32, ptr %arrayidx.i.i.i.i378.i monotonic, align 4 %186 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %179, i1 true) %iszero.i.i.i.i.i.i379.i = icmp eq i32 %179, 0 %sub.i.i.i.i.i.i380.i = select i1 %iszero.i.i.i.i.i.i379.i, i32 -1, i32 %186 %187 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %179, i32 %185, i32 %sub.i.i.i.i.i.i380.i, i32 31) %188 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i381.i = getelementptr inbounds nuw i32, ptr %188, i64 %idxprom.i.i.i.i377.i %189 = load atomic i32, ptr %arrayidx.i45.i.i.i381.i monotonic, align 4 %190 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %179, i32 %189, i32 %sub.i.i.i.i.i.i380.i, i32 31) %cmp.i48.not.i.i.i382.i = icmp eq i32 %187, %190 br i1 %cmp.i48.not.i.i.i382.i, label %if.end14.i.i.i459.i, label %if.then12.i.i.i383.i if.then12.i.i.i383.i: ; preds = %if.then.i.i.i.i376.i fence release %191 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i366.i, i1 true) %iszero.i.i.i.i.i.i.i384.i = icmp ne i32 %179, 0 %cmp2.i.i.i.i.i.i385.i = icmp eq i64 %191, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i386.i = select i1 %iszero.i.i.i.i.i.i.i384.i, i1 %cmp2.i.i.i.i.i.i385.i, i1 false %conv4.i.i53.i.i.i387.i = zext i1 %cmp.i.i.i.i.i.i386.i to i32 %shl.i.i54.i.i.i388.i = shl nuw i32 %conv4.i.i53.i.i.i387.i, %180 %xor.i.i.i.i.i389.i = xor i32 %shl.i.i54.i.i.i388.i, -1 %192 = atomicrmw and ptr %arrayidx.i.i.i.i.i369.i, i32 %xor.i.i.i.i.i389.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %179) br label %cleanup26.i.i.i390.i if.end14.i.i.i459.i: ; preds = %if.then.i.i.i.i376.i %193 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i366.i, i1 true) %iszero.i.i.i56.i.i.i460.i = icmp ne i32 %179, 0 %cmp2.i.i.i.i.i461.i = icmp eq i64 %193, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i462.i = select i1 %iszero.i.i.i56.i.i.i460.i, i1 %cmp2.i.i.i.i.i461.i, i1 false br i1 %cmp.i.i.i.i.i462.i, label %if.then16.i.i.i464.i, label %if.end22.i.i.i463.i if.then16.i.i.i464.i: ; preds = %if.end14.i.i.i459.i %194 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i465.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %194, i64 %idxprom.i.i.i.i377.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i465.i, align 8, !tbaa !61 %arrayidx21.i.i.i466.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %194, i64 %idxprom.i.i.i.i377.i store i64 %conv.i.i.i.i.i366.i, ptr %arrayidx21.i.i.i466.i, align 8, !tbaa !64 br label %if.end22.i.i.i463.i if.end22.i.i.i463.i: ; preds = %if.then16.i.i.i464.i, %if.end14.i.i.i459.i tail call void @llvm.nvvm.bar.warp.sync(i32 %179) br label %cleanup26.i.i.i390.i cleanup26.i.i.i390.i: ; preds = %if.end22.i.i.i463.i, %if.then12.i.i.i383.i %retval.sroa.6.1.i.i.i391.i = phi i32 [ %retval.sroa.6.0.i.i.i360.i, %if.then12.i.i.i383.i ], [ %spec.store.select.i.i.i365.i, %if.end22.i.i.i463.i ] %retval.sroa.2.1.i.i.i392.i = phi i64 [ %retval.sroa.2.0.i.i.i361.i, %if.then12.i.i.i383.i ], [ %conv.i.i.i.i.i366.i, %if.end22.i.i.i463.i ] %retval.sroa.8.1.i.i.i393.i = phi i32 [ %retval.sroa.8.0.i.i.i362.i, %if.then12.i.i.i383.i ], [ %187, %if.end22.i.i.i463.i ] br i1 %cmp.i48.not.i.i.i382.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i399.i, label %for.inc.i.i.i394.i for.inc.i.i.i394.i: ; preds = %cleanup26.i.i.i390.i, %for.cond.i.i.i359.i %retval.sroa.6.2.i.i.i395.i = phi i32 [ %retval.sroa.6.1.i.i.i391.i, %cleanup26.i.i.i390.i ], [ %retval.sroa.6.0.i.i.i360.i, %for.cond.i.i.i359.i ] %retval.sroa.2.2.i.i.i396.i = phi i64 [ %retval.sroa.2.1.i.i.i392.i, %cleanup26.i.i.i390.i ], [ %retval.sroa.2.0.i.i.i361.i, %for.cond.i.i.i359.i ] %retval.sroa.8.2.i.i.i397.i = phi i32 [ %retval.sroa.8.1.i.i.i393.i, %cleanup26.i.i.i390.i ], [ %retval.sroa.8.0.i.i.i362.i, %for.cond.i.i.i359.i ] %inc.i.i.i398.i = add i32 %spec.store.select.i.i.i365.i, 1 br label %for.cond.i.i.i359.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i399.i: ; preds = %cleanup26.i.i.i390.i %retval.sroa.6.1.i.i.i391.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i391.i, %cleanup26.i.i.i390.i ] %retval.sroa.2.1.i.i.i392.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i392.i, %cleanup26.i.i.i390.i ] %retval.sroa.8.1.i.i.i393.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i393.i, %cleanup26.i.i.i390.i ] fence acquire %195 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i402.i = shl i32 %retval.sroa.6.1.i.i.i391.i.lcssa, 5 %idxprom.i18.i.i.i.i.i403.i = zext i32 %mul.i.i.i.i.i.i402.i to i64 %arrayidx.i19.i.i.i.i.i404.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %195, i64 %idxprom.i18.i.i.i.i.i403.i %arrayidx.i21.i.i.i.i.i405.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i404.i, i64 %sh_prom.i.i.i.i.i store i64 6, ptr %arrayidx.i21.i.i.i.i.i405.i, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i407.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i405.i, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %arrayidx6.i.i.i.i.i.i.i407.i, ptr noundef nonnull align 1 dereferenceable(6) %177, i64 6, i1 false) %tobool.not.i.i.i.i.i.i408.i = icmp eq i32 %retval.sroa.8.1.i.i.i393.i.lcssa, 0 %conv.i.i.i.i.i.i409.i = zext i1 %tobool.not.i.i.i.i.i.i408.i to i32 fence release %196 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i410.i = zext i32 %retval.sroa.6.1.i.i.i391.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i411.i = getelementptr inbounds nuw i32, ptr %196, i64 %idxprom.i22.i.i.i.i.i410.i store atomic i32 %conv.i.i.i.i.i.i409.i, ptr %arrayidx.i23.i.i.i.i.i411.i monotonic, align 4 %197 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i412.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %197, i64 %idxprom.i22.i.i.i.i.i410.i %198 = load i64, ptr %arrayidx.i.i4.i.i412.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i413.i = trunc i64 %198 to i32 %conv.i.i.i.i17.i.i.i.i415.i = trunc i64 %retval.sroa.2.1.i.i.i392.i.lcssa to i32 %199 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i415.i, i1 true) %iszero.i.i.i.i18.i.i.i.i416.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i415.i, 0 %sub.i.i.i.i19.i.i.i.i417.i = select i1 %iszero.i.i.i.i18.i.i.i.i416.i, i32 -1, i32 %199 br label %while.cond.i.i.i.i418.i while.cond.i.i.i.i418.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i430.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i399.i %port.sroa.43.0.i.i419.i = phi i32 [ %conv.i.i.i.i.i.i409.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i399.i ], [ %conv.i.i39.i.i.i.i431.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i430.i ] %idx.0.i.i.i.i420.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i399.i ], [ %add.i.i.i.i433.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i430.i ] %cmp.i.i.i.i421.i = icmp eq i64 %idx.0.i.i.i.i420.i, 0 %200 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i413.i, i1 %cmp.i.i.i.i421.i) %tobool.not.i.i.i.i422.i = icmp eq i32 %200, 0 %201 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i423.i = getelementptr inbounds nuw i32, ptr %201, i64 %idxprom.i22.i.i.i.i.i410.i %202 = load atomic i32, ptr %arrayidx.i22.i.i.i423.i monotonic, align 4 br i1 %tobool.not.i.i.i.i422.i, label %cond.false.i.i.i442.i, label %cond.false.i11.i.i.i.i424.i cond.false.i11.i.i.i.i424.i: ; preds = %while.cond.i.i.i.i418.i %203 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i415.i, i32 %202, i32 %sub.i.i.i.i19.i.i.i.i417.i, i32 31) %204 = icmp eq i32 %203, %port.sroa.43.0.i.i419.i br i1 %204, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i429.i, label %while.body.i.i33.i.i.i.i425.i while.body.i.i33.i.i.i.i425.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i426.i, %cond.false.i11.i.i.i.i424.i %205 = phi ptr [ %206, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i426.i ], [ %201, %cond.false.i11.i.i.i.i424.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i48.i.i.i.i440.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i426.i if.then.i.i.i48.i.i.i.i440.i: ; preds = %while.body.i.i33.i.i.i.i425.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i441.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i426.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i426.i: ; preds = %if.then.i.i.i48.i.i.i.i440.i, %while.body.i.i33.i.i.i.i425.i %206 = phi ptr [ %.pre.i.i.i.i441.i, %if.then.i.i.i48.i.i.i.i440.i ], [ %205, %while.body.i.i33.i.i.i.i425.i ] %arrayidx.i.i.i35.i.i.i.i427.i = getelementptr inbounds nuw i32, ptr %206, i64 %idxprom.i22.i.i.i.i.i410.i %207 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i427.i monotonic, align 4 %208 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i415.i, i32 %207, i32 %sub.i.i.i.i19.i.i.i.i417.i, i32 31) %cmp.i.not.i.i36.i.i.i.i428.i = icmp eq i32 %208, %port.sroa.43.0.i.i419.i br i1 %cmp.i.not.i.i36.i.i.i.i428.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i429.i, label %while.body.i.i33.i.i.i.i425.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i429.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i426.i, %cond.false.i11.i.i.i.i424.i fence acquire br i1 %cmp.i.i.i.i421.i, label %if.then.i.i20.i.i.i.i.i434.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i430.i if.then.i.i20.i.i.i.i.i434.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i429.i %209 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i438.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %209, i64 %idxprom.i18.i.i.i.i.i403.i %arrayidx.i22.i.i.i.i.i439.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i438.i, i64 %sh_prom.i.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %arrayidx.i22.i.i.i.i.i439.i, ptr noundef nonnull align 1 dereferenceable(6) %177, i64 6, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i430.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i430.i: ; preds = %if.then.i.i20.i.i.i.i.i434.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i429.i %conv.i.i39.i.i.i.i431.i = xor i32 %port.sroa.43.0.i.i419.i, 1 fence release %210 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i432.i = getelementptr inbounds nuw i32, ptr %210, i64 %idxprom.i22.i.i.i.i.i410.i store atomic i32 %conv.i.i39.i.i.i.i431.i, ptr %arrayidx.i24.i.i.i.i.i432.i monotonic, align 4 %add.i.i.i.i433.i = add i64 %idx.0.i.i.i.i420.i, 64 br label %while.cond.i.i.i.i418.i, !llvm.loop !71 cond.false.i.i.i442.i: ; preds = %while.cond.i.i.i.i418.i %port.sroa.43.0.i.i419.i.lcssa = phi i32 [ %port.sroa.43.0.i.i419.i, %while.cond.i.i.i.i418.i ] %.lcssa163 = phi ptr [ %201, %while.cond.i.i.i.i418.i ] %.lcssa162 = phi i32 [ %202, %while.cond.i.i.i.i418.i ] %211 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i415.i, i32 %.lcssa162, i32 %sub.i.i.i.i19.i.i.i.i417.i, i32 31) %212 = icmp eq i32 %211, %port.sroa.43.0.i.i419.i.lcssa br i1 %212, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit.i, label %while.body.i.i.i.i443.i while.body.i.i.i.i443.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i444.i, %cond.false.i.i.i442.i %213 = phi ptr [ %214, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i444.i ], [ %.lcssa163, %cond.false.i.i.i442.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i.i.i457.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i444.i if.then.i.i.i.i.i457.i: ; preds = %while.body.i.i.i.i443.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i458.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i444.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i444.i: ; preds = %if.then.i.i.i.i.i457.i, %while.body.i.i.i.i443.i %214 = phi ptr [ %.pre.i.i458.i, %if.then.i.i.i.i.i457.i ], [ %213, %while.body.i.i.i.i443.i ] %arrayidx.i.i.i11.i.i445.i = getelementptr inbounds nuw i32, ptr %214, i64 %idxprom.i22.i.i.i.i.i410.i %215 = load atomic i32, ptr %arrayidx.i.i.i11.i.i445.i monotonic, align 4 %216 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i415.i, i32 %215, i32 %sub.i.i.i.i19.i.i.i.i417.i, i32 31) %cmp.i.not.i.i.i.i446.i = icmp eq i32 %216, %port.sroa.43.0.i.i419.i.lcssa br i1 %cmp.i.not.i.i.i.i446.i, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit.i, label %while.body.i.i.i.i443.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i444.i, %cond.false.i.i.i442.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i415.i) fence release %217 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i392.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i448.i = icmp ne i64 %retval.sroa.2.1.i.i.i392.i.lcssa, 0 %cmp2.i.i.i.i19.i.i449.i = icmp eq i64 %217, %sh_prom.i.i.i.i.i %cmp.i.i.i.i20.i.i450.i = select i1 %iszero.i.i.i.i.i18.i.i448.i, i1 %cmp2.i.i.i.i19.i.i449.i, i1 false %div8.i.i.i21.i.i451.i = lshr i32 %retval.sroa.6.1.i.i.i391.i.lcssa, 5 %218 = and i32 %retval.sroa.6.1.i.i.i391.i.lcssa, 31 %idxprom.i.i.i22.i.i452.i = zext nneg i32 %div8.i.i.i21.i.i451.i to i64 %arrayidx.i.i.i23.i.i453.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i452.i %conv4.i.i.i24.i.i454.i = zext i1 %cmp.i.i.i.i20.i.i450.i to i32 %shl.i.i.i25.i.i455.i = shl nuw i32 %conv4.i.i.i24.i.i454.i, %218 %xor.i.i.i26.i.i456.i = xor i32 %shl.i.i.i25.i.i455.i, -1 %219 = atomicrmw and ptr %arrayidx.i.i.i23.i.i453.i, i32 %xor.i.i.i26.i.i456.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i415.i) br label %for.cond.i.i.i478.i for.cond.i.i.i478.i: ; preds = %for.inc.i.i.i513.i, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit.i %retval.sroa.6.0.i.i.i479.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit.i ], [ %retval.sroa.6.2.i.i.i514.i, %for.inc.i.i.i513.i ] %retval.sroa.2.0.i.i.i480.i = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit.i ], [ %retval.sroa.2.2.i.i.i515.i, %for.inc.i.i.i513.i ] %retval.sroa.8.0.i.i.i481.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit.i ], [ %retval.sroa.8.2.i.i.i516.i, %for.inc.i.i.i513.i ] %index.0.i.i.i482.i = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit.i ], [ %inc.i.i.i517.i, %for.inc.i.i.i513.i ] %220 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i483.i = icmp ult i32 %index.0.i.i.i482.i, %220 %spec.store.select.i.i.i484.i = select i1 %cmp.not.i.i.i483.i, i32 %index.0.i.i.i482.i, i32 0 %221 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i485.i = zext i32 %221 to i64 %div8.i.i.i.i.i486.i = lshr i32 %spec.store.select.i.i.i484.i, 5 %222 = and i32 %spec.store.select.i.i.i484.i, 31 %idxprom.i.i.i.i.i487.i = zext nneg i32 %div8.i.i.i.i.i486.i to i64 %arrayidx.i.i.i.i.i488.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i487.i %223 = lshr i32 %221, %5 %conv4.i.i.i.i.i489.i = and i32 %223, 1 %shl.i.i.i.i.i490.i = shl nuw i32 %conv4.i.i.i.i.i489.i, %222 %224 = atomicrmw or ptr %arrayidx.i.i.i.i.i488.i, i32 %shl.i.i.i.i.i490.i monotonic, align 4 %shl5.i.i.i.i.i491.i = shl nuw i32 1, %222 %and.i.i.i.i.i492.i = and i32 %shl5.i.i.i.i.i491.i, %224 %tobool3.i.i.i.i493.i = icmp ne i32 %and.i.i.i.i.i492.i, 0 %225 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %221, i1 %tobool3.i.i.i.i493.i) %cmp.i.not.i.i.i494.i = icmp eq i32 %221, %225 br i1 %cmp.i.not.i.i.i494.i, label %for.inc.i.i.i513.i, label %if.then.i.i.i.i495.i if.then.i.i.i.i495.i: ; preds = %for.cond.i.i.i478.i fence acquire %226 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i496.i = zext i32 %spec.store.select.i.i.i484.i to i64 %arrayidx.i.i.i.i497.i = getelementptr inbounds nuw i32, ptr %226, i64 %idxprom.i.i.i.i496.i %227 = load atomic i32, ptr %arrayidx.i.i.i.i497.i monotonic, align 4 %228 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %221, i1 true) %iszero.i.i.i.i.i.i498.i = icmp eq i32 %221, 0 %sub.i.i.i.i.i.i499.i = select i1 %iszero.i.i.i.i.i.i498.i, i32 -1, i32 %228 %229 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %221, i32 %227, i32 %sub.i.i.i.i.i.i499.i, i32 31) %230 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i500.i = getelementptr inbounds nuw i32, ptr %230, i64 %idxprom.i.i.i.i496.i %231 = load atomic i32, ptr %arrayidx.i45.i.i.i500.i monotonic, align 4 %232 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %221, i32 %231, i32 %sub.i.i.i.i.i.i499.i, i32 31) %cmp.i48.not.i.i.i501.i = icmp eq i32 %229, %232 br i1 %cmp.i48.not.i.i.i501.i, label %if.end14.i.i.i578.i, label %if.then12.i.i.i502.i if.then12.i.i.i502.i: ; preds = %if.then.i.i.i.i495.i fence release %233 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i485.i, i1 true) %iszero.i.i.i.i.i.i.i503.i = icmp ne i32 %221, 0 %cmp2.i.i.i.i.i.i504.i = icmp eq i64 %233, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i505.i = select i1 %iszero.i.i.i.i.i.i.i503.i, i1 %cmp2.i.i.i.i.i.i504.i, i1 false %conv4.i.i53.i.i.i506.i = zext i1 %cmp.i.i.i.i.i.i505.i to i32 %shl.i.i54.i.i.i507.i = shl nuw i32 %conv4.i.i53.i.i.i506.i, %222 %xor.i.i.i.i.i508.i = xor i32 %shl.i.i54.i.i.i507.i, -1 %234 = atomicrmw and ptr %arrayidx.i.i.i.i.i488.i, i32 %xor.i.i.i.i.i508.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %221) br label %cleanup26.i.i.i509.i if.end14.i.i.i578.i: ; preds = %if.then.i.i.i.i495.i %235 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i485.i, i1 true) %iszero.i.i.i56.i.i.i579.i = icmp ne i32 %221, 0 %cmp2.i.i.i.i.i580.i = icmp eq i64 %235, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i581.i = select i1 %iszero.i.i.i56.i.i.i579.i, i1 %cmp2.i.i.i.i.i580.i, i1 false br i1 %cmp.i.i.i.i.i581.i, label %if.then16.i.i.i583.i, label %if.end22.i.i.i582.i if.then16.i.i.i583.i: ; preds = %if.end14.i.i.i578.i %236 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i584.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %236, i64 %idxprom.i.i.i.i496.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i584.i, align 8, !tbaa !61 %arrayidx21.i.i.i585.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %236, i64 %idxprom.i.i.i.i496.i store i64 %conv.i.i.i.i.i485.i, ptr %arrayidx21.i.i.i585.i, align 8, !tbaa !64 br label %if.end22.i.i.i582.i if.end22.i.i.i582.i: ; preds = %if.then16.i.i.i583.i, %if.end14.i.i.i578.i tail call void @llvm.nvvm.bar.warp.sync(i32 %221) br label %cleanup26.i.i.i509.i cleanup26.i.i.i509.i: ; preds = %if.end22.i.i.i582.i, %if.then12.i.i.i502.i %retval.sroa.6.1.i.i.i510.i = phi i32 [ %retval.sroa.6.0.i.i.i479.i, %if.then12.i.i.i502.i ], [ %spec.store.select.i.i.i484.i, %if.end22.i.i.i582.i ] %retval.sroa.2.1.i.i.i511.i = phi i64 [ %retval.sroa.2.0.i.i.i480.i, %if.then12.i.i.i502.i ], [ %conv.i.i.i.i.i485.i, %if.end22.i.i.i582.i ] %retval.sroa.8.1.i.i.i512.i = phi i32 [ %retval.sroa.8.0.i.i.i481.i, %if.then12.i.i.i502.i ], [ %229, %if.end22.i.i.i582.i ] br i1 %cmp.i48.not.i.i.i501.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i518.i, label %for.inc.i.i.i513.i for.inc.i.i.i513.i: ; preds = %cleanup26.i.i.i509.i, %for.cond.i.i.i478.i %retval.sroa.6.2.i.i.i514.i = phi i32 [ %retval.sroa.6.1.i.i.i510.i, %cleanup26.i.i.i509.i ], [ %retval.sroa.6.0.i.i.i479.i, %for.cond.i.i.i478.i ] %retval.sroa.2.2.i.i.i515.i = phi i64 [ %retval.sroa.2.1.i.i.i511.i, %cleanup26.i.i.i509.i ], [ %retval.sroa.2.0.i.i.i480.i, %for.cond.i.i.i478.i ] %retval.sroa.8.2.i.i.i516.i = phi i32 [ %retval.sroa.8.1.i.i.i512.i, %cleanup26.i.i.i509.i ], [ %retval.sroa.8.0.i.i.i481.i, %for.cond.i.i.i478.i ] %inc.i.i.i517.i = add i32 %spec.store.select.i.i.i484.i, 1 br label %for.cond.i.i.i478.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i518.i: ; preds = %cleanup26.i.i.i509.i %retval.sroa.6.1.i.i.i510.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i510.i, %cleanup26.i.i.i509.i ] %retval.sroa.2.1.i.i.i511.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i511.i, %cleanup26.i.i.i509.i ] %retval.sroa.8.1.i.i.i512.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i512.i, %cleanup26.i.i.i509.i ] fence acquire %237 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i521.i = shl i32 %retval.sroa.6.1.i.i.i510.i.lcssa, 5 %idxprom.i18.i.i.i.i.i522.i = zext i32 %mul.i.i.i.i.i.i521.i to i64 %arrayidx.i19.i.i.i.i.i523.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %237, i64 %idxprom.i18.i.i.i.i.i522.i %arrayidx.i21.i.i.i.i.i524.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i523.i, i64 %sh_prom.i.i.i.i.i store i64 10, ptr %arrayidx.i21.i.i.i.i.i524.i, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i526.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i524.i, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(10) %arrayidx6.i.i.i.i.i.i.i526.i, ptr noundef nonnull align 1 dereferenceable(10) @.str34, i64 10, i1 false) %tobool.not.i.i.i.i.i.i527.i = icmp eq i32 %retval.sroa.8.1.i.i.i512.i.lcssa, 0 %conv.i.i.i.i.i.i528.i = zext i1 %tobool.not.i.i.i.i.i.i527.i to i32 fence release %238 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i529.i = zext i32 %retval.sroa.6.1.i.i.i510.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i530.i = getelementptr inbounds nuw i32, ptr %238, i64 %idxprom.i22.i.i.i.i.i529.i store atomic i32 %conv.i.i.i.i.i.i528.i, ptr %arrayidx.i23.i.i.i.i.i530.i monotonic, align 4 %239 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i531.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %239, i64 %idxprom.i22.i.i.i.i.i529.i %240 = load i64, ptr %arrayidx.i.i4.i.i531.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i532.i = trunc i64 %240 to i32 %conv.i.i.i.i17.i.i.i.i534.i = trunc i64 %retval.sroa.2.1.i.i.i511.i.lcssa to i32 %241 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i534.i, i1 true) %iszero.i.i.i.i18.i.i.i.i535.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i534.i, 0 %sub.i.i.i.i19.i.i.i.i536.i = select i1 %iszero.i.i.i.i18.i.i.i.i535.i, i32 -1, i32 %241 br label %while.cond.i.i.i.i537.i while.cond.i.i.i.i537.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i549.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i518.i %port.sroa.43.0.i.i538.i = phi i32 [ %conv.i.i.i.i.i.i528.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i518.i ], [ %conv.i.i39.i.i.i.i550.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i549.i ] %idx.0.i.i.i.i539.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i518.i ], [ %add.i.i.i.i552.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i549.i ] %cmp.i.i.i2.i540.i = icmp ult i64 %idx.0.i.i.i.i539.i, 10 %242 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i532.i, i1 %cmp.i.i.i2.i540.i) %tobool.not.i.i.i.i541.i = icmp eq i32 %242, 0 %243 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i542.i = getelementptr inbounds nuw i32, ptr %243, i64 %idxprom.i22.i.i.i.i.i529.i %244 = load atomic i32, ptr %arrayidx.i22.i.i.i542.i monotonic, align 4 br i1 %tobool.not.i.i.i.i541.i, label %cond.false.i.i.i561.i, label %cond.false.i11.i.i.i.i543.i cond.false.i11.i.i.i.i543.i: ; preds = %while.cond.i.i.i.i537.i %245 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i534.i, i32 %244, i32 %sub.i.i.i.i19.i.i.i.i536.i, i32 31) %246 = icmp eq i32 %245, %port.sroa.43.0.i.i538.i br i1 %246, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i548.i, label %while.body.i.i33.i.i.i.i544.i while.body.i.i33.i.i.i.i544.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i545.i, %cond.false.i11.i.i.i.i543.i %247 = phi ptr [ %248, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i545.i ], [ %243, %cond.false.i11.i.i.i.i543.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i48.i.i.i.i559.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i545.i if.then.i.i.i48.i.i.i.i559.i: ; preds = %while.body.i.i33.i.i.i.i544.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i560.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i545.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i545.i: ; preds = %if.then.i.i.i48.i.i.i.i559.i, %while.body.i.i33.i.i.i.i544.i %248 = phi ptr [ %.pre.i.i.i.i560.i, %if.then.i.i.i48.i.i.i.i559.i ], [ %247, %while.body.i.i33.i.i.i.i544.i ] %arrayidx.i.i.i35.i.i.i.i546.i = getelementptr inbounds nuw i32, ptr %248, i64 %idxprom.i22.i.i.i.i.i529.i %249 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i546.i monotonic, align 4 %250 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i534.i, i32 %249, i32 %sub.i.i.i.i19.i.i.i.i536.i, i32 31) %cmp.i.not.i.i36.i.i.i.i547.i = icmp eq i32 %250, %port.sroa.43.0.i.i538.i br i1 %cmp.i.not.i.i36.i.i.i.i547.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i548.i, label %while.body.i.i33.i.i.i.i544.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i548.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i545.i, %cond.false.i11.i.i.i.i543.i fence acquire br i1 %cmp.i.i.i2.i540.i, label %if.then.i.i20.i.i.i.i.i553.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i549.i if.then.i.i20.i.i.i.i.i553.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i548.i %add.ptr.i.i.i.i.i.i.i.i554.i = getelementptr inbounds nuw i8, ptr @.str34, i64 %idx.0.i.i.i.i539.i %sub.i.i.i.i.i.i.i555.i = sub nuw nsw i64 10, %idx.0.i.i.i.i539.i %251 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i557.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %251, i64 %idxprom.i18.i.i.i.i.i522.i %arrayidx.i22.i.i.i.i.i558.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i557.i, i64 %sh_prom.i.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %arrayidx.i22.i.i.i.i.i558.i, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr.i.i.i.i.i.i.i.i554.i, i64 %sub.i.i.i.i.i.i.i555.i, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i549.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i549.i: ; preds = %if.then.i.i20.i.i.i.i.i553.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i548.i %conv.i.i39.i.i.i.i550.i = xor i32 %port.sroa.43.0.i.i538.i, 1 fence release %252 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i551.i = getelementptr inbounds nuw i32, ptr %252, i64 %idxprom.i22.i.i.i.i.i529.i store atomic i32 %conv.i.i39.i.i.i.i550.i, ptr %arrayidx.i24.i.i.i.i.i551.i monotonic, align 4 %add.i.i.i.i552.i = add i64 %idx.0.i.i.i.i539.i, 64 br label %while.cond.i.i.i.i537.i, !llvm.loop !71 cond.false.i.i.i561.i: ; preds = %while.cond.i.i.i.i537.i %port.sroa.43.0.i.i538.i.lcssa = phi i32 [ %port.sroa.43.0.i.i538.i, %while.cond.i.i.i.i537.i ] %.lcssa161 = phi ptr [ %243, %while.cond.i.i.i.i537.i ] %.lcssa160 = phi i32 [ %244, %while.cond.i.i.i.i537.i ] %253 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i534.i, i32 %.lcssa160, i32 %sub.i.i.i.i19.i.i.i.i536.i, i32 31) %254 = icmp eq i32 %253, %port.sroa.43.0.i.i538.i.lcssa br i1 %254, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit586.i, label %while.body.i.i.i.i562.i while.body.i.i.i.i562.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i563.i, %cond.false.i.i.i561.i %255 = phi ptr [ %256, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i563.i ], [ %.lcssa161, %cond.false.i.i.i561.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i.i.i576.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i563.i if.then.i.i.i.i.i576.i: ; preds = %while.body.i.i.i.i562.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i577.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i563.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i563.i: ; preds = %if.then.i.i.i.i.i576.i, %while.body.i.i.i.i562.i %256 = phi ptr [ %.pre.i.i577.i, %if.then.i.i.i.i.i576.i ], [ %255, %while.body.i.i.i.i562.i ] %arrayidx.i.i.i11.i.i564.i = getelementptr inbounds nuw i32, ptr %256, i64 %idxprom.i22.i.i.i.i.i529.i %257 = load atomic i32, ptr %arrayidx.i.i.i11.i.i564.i monotonic, align 4 %258 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i534.i, i32 %257, i32 %sub.i.i.i.i19.i.i.i.i536.i, i32 31) %cmp.i.not.i.i.i.i565.i = icmp eq i32 %258, %port.sroa.43.0.i.i538.i.lcssa br i1 %cmp.i.not.i.i.i.i565.i, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit586.i, label %while.body.i.i.i.i562.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit586.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i563.i, %cond.false.i.i.i561.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i534.i) fence release %259 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i511.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i567.i = icmp ne i64 %retval.sroa.2.1.i.i.i511.i.lcssa, 0 %cmp2.i.i.i.i19.i.i568.i = icmp eq i64 %259, %sh_prom.i.i.i.i.i %cmp.i.i.i.i20.i.i569.i = select i1 %iszero.i.i.i.i.i18.i.i567.i, i1 %cmp2.i.i.i.i19.i.i568.i, i1 false %div8.i.i.i21.i.i570.i = lshr i32 %retval.sroa.6.1.i.i.i510.i.lcssa, 5 %260 = and i32 %retval.sroa.6.1.i.i.i510.i.lcssa, 31 %idxprom.i.i.i22.i.i571.i = zext nneg i32 %div8.i.i.i21.i.i570.i to i64 %arrayidx.i.i.i23.i.i572.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i571.i %conv4.i.i.i24.i.i573.i = zext i1 %cmp.i.i.i.i20.i.i569.i to i32 %shl.i.i.i25.i.i574.i = shl nuw i32 %conv4.i.i.i24.i.i573.i, %260 %xor.i.i.i26.i.i575.i = xor i32 %shl.i.i.i25.i.i574.i, -1 %261 = atomicrmw and ptr %arrayidx.i.i.i23.i.i572.i, i32 %xor.i.i.i26.i.i575.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i534.i) br label %for.cond.i.i.i598.i for.cond.i.i.i598.i: ; preds = %for.inc.i.i.i633.i, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit586.i %retval.sroa.6.0.i.i.i599.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit586.i ], [ %retval.sroa.6.2.i.i.i634.i, %for.inc.i.i.i633.i ] %retval.sroa.2.0.i.i.i600.i = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit586.i ], [ %retval.sroa.2.2.i.i.i635.i, %for.inc.i.i.i633.i ] %retval.sroa.8.0.i.i.i601.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit586.i ], [ %retval.sroa.8.2.i.i.i636.i, %for.inc.i.i.i633.i ] %index.0.i.i.i602.i = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit586.i ], [ %inc.i.i.i637.i, %for.inc.i.i.i633.i ] %262 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i603.i = icmp ult i32 %index.0.i.i.i602.i, %262 %spec.store.select.i.i.i604.i = select i1 %cmp.not.i.i.i603.i, i32 %index.0.i.i.i602.i, i32 0 %263 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i605.i = zext i32 %263 to i64 %div8.i.i.i.i.i606.i = lshr i32 %spec.store.select.i.i.i604.i, 5 %264 = and i32 %spec.store.select.i.i.i604.i, 31 %idxprom.i.i.i.i.i607.i = zext nneg i32 %div8.i.i.i.i.i606.i to i64 %arrayidx.i.i.i.i.i608.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i607.i %265 = lshr i32 %263, %5 %conv4.i.i.i.i.i609.i = and i32 %265, 1 %shl.i.i.i.i.i610.i = shl nuw i32 %conv4.i.i.i.i.i609.i, %264 %266 = atomicrmw or ptr %arrayidx.i.i.i.i.i608.i, i32 %shl.i.i.i.i.i610.i monotonic, align 4 %shl5.i.i.i.i.i611.i = shl nuw i32 1, %264 %and.i.i.i.i.i612.i = and i32 %shl5.i.i.i.i.i611.i, %266 %tobool3.i.i.i.i613.i = icmp ne i32 %and.i.i.i.i.i612.i, 0 %267 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %263, i1 %tobool3.i.i.i.i613.i) %cmp.i.not.i.i.i614.i = icmp eq i32 %263, %267 br i1 %cmp.i.not.i.i.i614.i, label %for.inc.i.i.i633.i, label %if.then.i.i.i.i615.i if.then.i.i.i.i615.i: ; preds = %for.cond.i.i.i598.i fence acquire %268 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i616.i = zext i32 %spec.store.select.i.i.i604.i to i64 %arrayidx.i.i.i.i617.i = getelementptr inbounds nuw i32, ptr %268, i64 %idxprom.i.i.i.i616.i %269 = load atomic i32, ptr %arrayidx.i.i.i.i617.i monotonic, align 4 %270 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %263, i1 true) %iszero.i.i.i.i.i.i618.i = icmp eq i32 %263, 0 %sub.i.i.i.i.i.i619.i = select i1 %iszero.i.i.i.i.i.i618.i, i32 -1, i32 %270 %271 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %263, i32 %269, i32 %sub.i.i.i.i.i.i619.i, i32 31) %272 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i620.i = getelementptr inbounds nuw i32, ptr %272, i64 %idxprom.i.i.i.i616.i %273 = load atomic i32, ptr %arrayidx.i45.i.i.i620.i monotonic, align 4 %274 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %263, i32 %273, i32 %sub.i.i.i.i.i.i619.i, i32 31) %cmp.i48.not.i.i.i621.i = icmp eq i32 %271, %274 br i1 %cmp.i48.not.i.i.i621.i, label %if.end14.i.i.i698.i, label %if.then12.i.i.i622.i if.then12.i.i.i622.i: ; preds = %if.then.i.i.i.i615.i fence release %275 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i605.i, i1 true) %iszero.i.i.i.i.i.i.i623.i = icmp ne i32 %263, 0 %cmp2.i.i.i.i.i.i624.i = icmp eq i64 %275, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i625.i = select i1 %iszero.i.i.i.i.i.i.i623.i, i1 %cmp2.i.i.i.i.i.i624.i, i1 false %conv4.i.i53.i.i.i626.i = zext i1 %cmp.i.i.i.i.i.i625.i to i32 %shl.i.i54.i.i.i627.i = shl nuw i32 %conv4.i.i53.i.i.i626.i, %264 %xor.i.i.i.i.i628.i = xor i32 %shl.i.i54.i.i.i627.i, -1 %276 = atomicrmw and ptr %arrayidx.i.i.i.i.i608.i, i32 %xor.i.i.i.i.i628.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %263) br label %cleanup26.i.i.i629.i if.end14.i.i.i698.i: ; preds = %if.then.i.i.i.i615.i %277 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i605.i, i1 true) %iszero.i.i.i56.i.i.i699.i = icmp ne i32 %263, 0 %cmp2.i.i.i.i.i700.i = icmp eq i64 %277, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i701.i = select i1 %iszero.i.i.i56.i.i.i699.i, i1 %cmp2.i.i.i.i.i700.i, i1 false br i1 %cmp.i.i.i.i.i701.i, label %if.then16.i.i.i703.i, label %if.end22.i.i.i702.i if.then16.i.i.i703.i: ; preds = %if.end14.i.i.i698.i %278 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i704.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %278, i64 %idxprom.i.i.i.i616.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i704.i, align 8, !tbaa !61 %arrayidx21.i.i.i705.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %278, i64 %idxprom.i.i.i.i616.i store i64 %conv.i.i.i.i.i605.i, ptr %arrayidx21.i.i.i705.i, align 8, !tbaa !64 br label %if.end22.i.i.i702.i if.end22.i.i.i702.i: ; preds = %if.then16.i.i.i703.i, %if.end14.i.i.i698.i tail call void @llvm.nvvm.bar.warp.sync(i32 %263) br label %cleanup26.i.i.i629.i cleanup26.i.i.i629.i: ; preds = %if.end22.i.i.i702.i, %if.then12.i.i.i622.i %retval.sroa.6.1.i.i.i630.i = phi i32 [ %retval.sroa.6.0.i.i.i599.i, %if.then12.i.i.i622.i ], [ %spec.store.select.i.i.i604.i, %if.end22.i.i.i702.i ] %retval.sroa.2.1.i.i.i631.i = phi i64 [ %retval.sroa.2.0.i.i.i600.i, %if.then12.i.i.i622.i ], [ %conv.i.i.i.i.i605.i, %if.end22.i.i.i702.i ] %retval.sroa.8.1.i.i.i632.i = phi i32 [ %retval.sroa.8.0.i.i.i601.i, %if.then12.i.i.i622.i ], [ %271, %if.end22.i.i.i702.i ] br i1 %cmp.i48.not.i.i.i621.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i638.i, label %for.inc.i.i.i633.i for.inc.i.i.i633.i: ; preds = %cleanup26.i.i.i629.i, %for.cond.i.i.i598.i %retval.sroa.6.2.i.i.i634.i = phi i32 [ %retval.sroa.6.1.i.i.i630.i, %cleanup26.i.i.i629.i ], [ %retval.sroa.6.0.i.i.i599.i, %for.cond.i.i.i598.i ] %retval.sroa.2.2.i.i.i635.i = phi i64 [ %retval.sroa.2.1.i.i.i631.i, %cleanup26.i.i.i629.i ], [ %retval.sroa.2.0.i.i.i600.i, %for.cond.i.i.i598.i ] %retval.sroa.8.2.i.i.i636.i = phi i32 [ %retval.sroa.8.1.i.i.i632.i, %cleanup26.i.i.i629.i ], [ %retval.sroa.8.0.i.i.i601.i, %for.cond.i.i.i598.i ] %inc.i.i.i637.i = add i32 %spec.store.select.i.i.i604.i, 1 br label %for.cond.i.i.i598.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i638.i: ; preds = %cleanup26.i.i.i629.i %retval.sroa.6.1.i.i.i630.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i630.i, %cleanup26.i.i.i629.i ] %retval.sroa.2.1.i.i.i631.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i631.i, %cleanup26.i.i.i629.i ] %retval.sroa.8.1.i.i.i632.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i632.i, %cleanup26.i.i.i629.i ] fence acquire %279 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i641.i = shl i32 %retval.sroa.6.1.i.i.i630.i.lcssa, 5 %idxprom.i18.i.i.i.i.i642.i = zext i32 %mul.i.i.i.i.i.i641.i to i64 %arrayidx.i19.i.i.i.i.i643.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %279, i64 %idxprom.i18.i.i.i.i.i642.i %arrayidx.i21.i.i.i.i.i644.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i643.i, i64 %sh_prom.i.i.i.i.i store i64 13, ptr %arrayidx.i21.i.i.i.i.i644.i, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i646.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i644.i, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(13) %arrayidx6.i.i.i.i.i.i.i646.i, ptr noundef nonnull align 1 dereferenceable(13) @.str1, i64 13, i1 false) %tobool.not.i.i.i.i.i.i647.i = icmp eq i32 %retval.sroa.8.1.i.i.i632.i.lcssa, 0 %conv.i.i.i.i.i.i648.i = zext i1 %tobool.not.i.i.i.i.i.i647.i to i32 fence release %280 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i649.i = zext i32 %retval.sroa.6.1.i.i.i630.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i650.i = getelementptr inbounds nuw i32, ptr %280, i64 %idxprom.i22.i.i.i.i.i649.i store atomic i32 %conv.i.i.i.i.i.i648.i, ptr %arrayidx.i23.i.i.i.i.i650.i monotonic, align 4 %281 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i651.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %281, i64 %idxprom.i22.i.i.i.i.i649.i %282 = load i64, ptr %arrayidx.i.i4.i.i651.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i652.i = trunc i64 %282 to i32 %conv.i.i.i.i17.i.i.i.i654.i = trunc i64 %retval.sroa.2.1.i.i.i631.i.lcssa to i32 %283 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i654.i, i1 true) %iszero.i.i.i.i18.i.i.i.i655.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i654.i, 0 %sub.i.i.i.i19.i.i.i.i656.i = select i1 %iszero.i.i.i.i18.i.i.i.i655.i, i32 -1, i32 %283 br label %while.cond.i.i.i.i657.i while.cond.i.i.i.i657.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i669.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i638.i %port.sroa.43.0.i.i658.i = phi i32 [ %conv.i.i.i.i.i.i648.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i638.i ], [ %conv.i.i39.i.i.i.i670.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i669.i ] %idx.0.i.i.i.i659.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i638.i ], [ %add.i.i.i.i672.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i669.i ] %cmp.i.i.i2.i660.i = icmp ult i64 %idx.0.i.i.i.i659.i, 13 %284 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i652.i, i1 %cmp.i.i.i2.i660.i) %tobool.not.i.i.i.i661.i = icmp eq i32 %284, 0 %285 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i662.i = getelementptr inbounds nuw i32, ptr %285, i64 %idxprom.i22.i.i.i.i.i649.i %286 = load atomic i32, ptr %arrayidx.i22.i.i.i662.i monotonic, align 4 br i1 %tobool.not.i.i.i.i661.i, label %cond.false.i.i.i681.i, label %cond.false.i11.i.i.i.i663.i cond.false.i11.i.i.i.i663.i: ; preds = %while.cond.i.i.i.i657.i %287 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i654.i, i32 %286, i32 %sub.i.i.i.i19.i.i.i.i656.i, i32 31) %288 = icmp eq i32 %287, %port.sroa.43.0.i.i658.i br i1 %288, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i668.i, label %while.body.i.i33.i.i.i.i664.i while.body.i.i33.i.i.i.i664.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i665.i, %cond.false.i11.i.i.i.i663.i %289 = phi ptr [ %290, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i665.i ], [ %285, %cond.false.i11.i.i.i.i663.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i48.i.i.i.i679.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i665.i if.then.i.i.i48.i.i.i.i679.i: ; preds = %while.body.i.i33.i.i.i.i664.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i680.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i665.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i665.i: ; preds = %if.then.i.i.i48.i.i.i.i679.i, %while.body.i.i33.i.i.i.i664.i %290 = phi ptr [ %.pre.i.i.i.i680.i, %if.then.i.i.i48.i.i.i.i679.i ], [ %289, %while.body.i.i33.i.i.i.i664.i ] %arrayidx.i.i.i35.i.i.i.i666.i = getelementptr inbounds nuw i32, ptr %290, i64 %idxprom.i22.i.i.i.i.i649.i %291 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i666.i monotonic, align 4 %292 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i654.i, i32 %291, i32 %sub.i.i.i.i19.i.i.i.i656.i, i32 31) %cmp.i.not.i.i36.i.i.i.i667.i = icmp eq i32 %292, %port.sroa.43.0.i.i658.i br i1 %cmp.i.not.i.i36.i.i.i.i667.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i668.i, label %while.body.i.i33.i.i.i.i664.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i668.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i665.i, %cond.false.i11.i.i.i.i663.i fence acquire br i1 %cmp.i.i.i2.i660.i, label %if.then.i.i20.i.i.i.i.i673.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i669.i if.then.i.i20.i.i.i.i.i673.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i668.i %add.ptr.i.i.i.i.i.i.i.i674.i = getelementptr inbounds nuw i8, ptr @.str1, i64 %idx.0.i.i.i.i659.i %sub.i.i.i.i.i.i.i675.i = sub nuw nsw i64 13, %idx.0.i.i.i.i659.i %293 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i677.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %293, i64 %idxprom.i18.i.i.i.i.i642.i %arrayidx.i22.i.i.i.i.i678.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i677.i, i64 %sh_prom.i.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %arrayidx.i22.i.i.i.i.i678.i, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr.i.i.i.i.i.i.i.i674.i, i64 %sub.i.i.i.i.i.i.i675.i, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i669.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i669.i: ; preds = %if.then.i.i20.i.i.i.i.i673.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i668.i %conv.i.i39.i.i.i.i670.i = xor i32 %port.sroa.43.0.i.i658.i, 1 fence release %294 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i671.i = getelementptr inbounds nuw i32, ptr %294, i64 %idxprom.i22.i.i.i.i.i649.i store atomic i32 %conv.i.i39.i.i.i.i670.i, ptr %arrayidx.i24.i.i.i.i.i671.i monotonic, align 4 %add.i.i.i.i672.i = add i64 %idx.0.i.i.i.i659.i, 64 br label %while.cond.i.i.i.i657.i, !llvm.loop !71 cond.false.i.i.i681.i: ; preds = %while.cond.i.i.i.i657.i %port.sroa.43.0.i.i658.i.lcssa = phi i32 [ %port.sroa.43.0.i.i658.i, %while.cond.i.i.i.i657.i ] %.lcssa159 = phi ptr [ %285, %while.cond.i.i.i.i657.i ] %.lcssa158 = phi i32 [ %286, %while.cond.i.i.i.i657.i ] %295 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i654.i, i32 %.lcssa158, i32 %sub.i.i.i.i19.i.i.i.i656.i, i32 31) %296 = icmp eq i32 %295, %port.sroa.43.0.i.i658.i.lcssa br i1 %296, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit706.i, label %while.body.i.i.i.i682.i while.body.i.i.i.i682.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i683.i, %cond.false.i.i.i681.i %297 = phi ptr [ %298, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i683.i ], [ %.lcssa159, %cond.false.i.i.i681.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i.i.i696.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i683.i if.then.i.i.i.i.i696.i: ; preds = %while.body.i.i.i.i682.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i697.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i683.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i683.i: ; preds = %if.then.i.i.i.i.i696.i, %while.body.i.i.i.i682.i %298 = phi ptr [ %.pre.i.i697.i, %if.then.i.i.i.i.i696.i ], [ %297, %while.body.i.i.i.i682.i ] %arrayidx.i.i.i11.i.i684.i = getelementptr inbounds nuw i32, ptr %298, i64 %idxprom.i22.i.i.i.i.i649.i %299 = load atomic i32, ptr %arrayidx.i.i.i11.i.i684.i monotonic, align 4 %300 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i654.i, i32 %299, i32 %sub.i.i.i.i19.i.i.i.i656.i, i32 31) %cmp.i.not.i.i.i.i685.i = icmp eq i32 %300, %port.sroa.43.0.i.i658.i.lcssa br i1 %cmp.i.not.i.i.i.i685.i, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit706.i, label %while.body.i.i.i.i682.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit706.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i683.i, %cond.false.i.i.i681.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i654.i) fence release %301 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i631.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i687.i = icmp ne i64 %retval.sroa.2.1.i.i.i631.i.lcssa, 0 %cmp2.i.i.i.i19.i.i688.i = icmp eq i64 %301, %sh_prom.i.i.i.i.i %cmp.i.i.i.i20.i.i689.i = select i1 %iszero.i.i.i.i.i18.i.i687.i, i1 %cmp2.i.i.i.i19.i.i688.i, i1 false %div8.i.i.i21.i.i690.i = lshr i32 %retval.sroa.6.1.i.i.i630.i.lcssa, 5 %302 = and i32 %retval.sroa.6.1.i.i.i630.i.lcssa, 31 %idxprom.i.i.i22.i.i691.i = zext nneg i32 %div8.i.i.i21.i.i690.i to i64 %arrayidx.i.i.i23.i.i692.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i691.i %conv4.i.i.i24.i.i693.i = zext i1 %cmp.i.i.i.i20.i.i689.i to i32 %shl.i.i.i25.i.i694.i = shl nuw i32 %conv4.i.i.i24.i.i693.i, %302 %xor.i.i.i26.i.i695.i = xor i32 %shl.i.i.i25.i.i694.i, -1 %303 = atomicrmw and ptr %arrayidx.i.i.i23.i.i692.i, i32 %xor.i.i.i26.i.i695.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i654.i) call void @llvm.lifetime.start.p0(ptr nonnull %ch.addr.i.i) store i8 10, ptr %ch.addr.i.i, align 1, !tbaa !36 br label %for.cond.i.i.i711.i for.cond.i.i.i711.i: ; preds = %for.inc.i.i.i746.i, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit706.i %retval.sroa.6.0.i.i.i712.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit706.i ], [ %retval.sroa.6.2.i.i.i747.i, %for.inc.i.i.i746.i ] %retval.sroa.2.0.i.i.i713.i = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit706.i ], [ %retval.sroa.2.2.i.i.i748.i, %for.inc.i.i.i746.i ] %retval.sroa.8.0.i.i.i714.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit706.i ], [ %retval.sroa.8.2.i.i.i749.i, %for.inc.i.i.i746.i ] %index.0.i.i.i715.i = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit706.i ], [ %inc.i.i.i750.i, %for.inc.i.i.i746.i ] %304 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i716.i = icmp ult i32 %index.0.i.i.i715.i, %304 %spec.store.select.i.i.i717.i = select i1 %cmp.not.i.i.i716.i, i32 %index.0.i.i.i715.i, i32 0 %305 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i718.i = zext i32 %305 to i64 %div8.i.i.i.i.i719.i = lshr i32 %spec.store.select.i.i.i717.i, 5 %306 = and i32 %spec.store.select.i.i.i717.i, 31 %idxprom.i.i.i.i.i720.i = zext nneg i32 %div8.i.i.i.i.i719.i to i64 %arrayidx.i.i.i.i.i721.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i720.i %307 = lshr i32 %305, %5 %conv4.i.i.i.i.i722.i = and i32 %307, 1 %shl.i.i.i.i.i723.i = shl nuw i32 %conv4.i.i.i.i.i722.i, %306 %308 = atomicrmw or ptr %arrayidx.i.i.i.i.i721.i, i32 %shl.i.i.i.i.i723.i monotonic, align 4 %shl5.i.i.i.i.i724.i = shl nuw i32 1, %306 %and.i.i.i.i.i725.i = and i32 %shl5.i.i.i.i.i724.i, %308 %tobool3.i.i.i.i726.i = icmp ne i32 %and.i.i.i.i.i725.i, 0 %309 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %305, i1 %tobool3.i.i.i.i726.i) %cmp.i.not.i.i.i727.i = icmp eq i32 %305, %309 br i1 %cmp.i.not.i.i.i727.i, label %for.inc.i.i.i746.i, label %if.then.i.i.i.i728.i if.then.i.i.i.i728.i: ; preds = %for.cond.i.i.i711.i fence acquire %310 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i729.i = zext i32 %spec.store.select.i.i.i717.i to i64 %arrayidx.i.i.i.i730.i = getelementptr inbounds nuw i32, ptr %310, i64 %idxprom.i.i.i.i729.i %311 = load atomic i32, ptr %arrayidx.i.i.i.i730.i monotonic, align 4 %312 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %305, i1 true) %iszero.i.i.i.i.i.i731.i = icmp eq i32 %305, 0 %sub.i.i.i.i.i.i732.i = select i1 %iszero.i.i.i.i.i.i731.i, i32 -1, i32 %312 %313 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %305, i32 %311, i32 %sub.i.i.i.i.i.i732.i, i32 31) %314 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i733.i = getelementptr inbounds nuw i32, ptr %314, i64 %idxprom.i.i.i.i729.i %315 = load atomic i32, ptr %arrayidx.i45.i.i.i733.i monotonic, align 4 %316 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %305, i32 %315, i32 %sub.i.i.i.i.i.i732.i, i32 31) %cmp.i48.not.i.i.i734.i = icmp eq i32 %313, %316 br i1 %cmp.i48.not.i.i.i734.i, label %if.end14.i.i.i811.i, label %if.then12.i.i.i735.i if.then12.i.i.i735.i: ; preds = %if.then.i.i.i.i728.i fence release %317 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i718.i, i1 true) %iszero.i.i.i.i.i.i.i736.i = icmp ne i32 %305, 0 %cmp2.i.i.i.i.i.i737.i = icmp eq i64 %317, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i738.i = select i1 %iszero.i.i.i.i.i.i.i736.i, i1 %cmp2.i.i.i.i.i.i737.i, i1 false %conv4.i.i53.i.i.i739.i = zext i1 %cmp.i.i.i.i.i.i738.i to i32 %shl.i.i54.i.i.i740.i = shl nuw i32 %conv4.i.i53.i.i.i739.i, %306 %xor.i.i.i.i.i741.i = xor i32 %shl.i.i54.i.i.i740.i, -1 %318 = atomicrmw and ptr %arrayidx.i.i.i.i.i721.i, i32 %xor.i.i.i.i.i741.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %305) br label %cleanup26.i.i.i742.i if.end14.i.i.i811.i: ; preds = %if.then.i.i.i.i728.i %319 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i718.i, i1 true) %iszero.i.i.i56.i.i.i812.i = icmp ne i32 %305, 0 %cmp2.i.i.i.i.i813.i = icmp eq i64 %319, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i814.i = select i1 %iszero.i.i.i56.i.i.i812.i, i1 %cmp2.i.i.i.i.i813.i, i1 false br i1 %cmp.i.i.i.i.i814.i, label %if.then16.i.i.i816.i, label %if.end22.i.i.i815.i if.then16.i.i.i816.i: ; preds = %if.end14.i.i.i811.i %320 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i817.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %320, i64 %idxprom.i.i.i.i729.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i817.i, align 8, !tbaa !61 %arrayidx21.i.i.i818.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %320, i64 %idxprom.i.i.i.i729.i store i64 %conv.i.i.i.i.i718.i, ptr %arrayidx21.i.i.i818.i, align 8, !tbaa !64 br label %if.end22.i.i.i815.i if.end22.i.i.i815.i: ; preds = %if.then16.i.i.i816.i, %if.end14.i.i.i811.i tail call void @llvm.nvvm.bar.warp.sync(i32 %305) br label %cleanup26.i.i.i742.i cleanup26.i.i.i742.i: ; preds = %if.end22.i.i.i815.i, %if.then12.i.i.i735.i %retval.sroa.6.1.i.i.i743.i = phi i32 [ %retval.sroa.6.0.i.i.i712.i, %if.then12.i.i.i735.i ], [ %spec.store.select.i.i.i717.i, %if.end22.i.i.i815.i ] %retval.sroa.2.1.i.i.i744.i = phi i64 [ %retval.sroa.2.0.i.i.i713.i, %if.then12.i.i.i735.i ], [ %conv.i.i.i.i.i718.i, %if.end22.i.i.i815.i ] %retval.sroa.8.1.i.i.i745.i = phi i32 [ %retval.sroa.8.0.i.i.i714.i, %if.then12.i.i.i735.i ], [ %313, %if.end22.i.i.i815.i ] br i1 %cmp.i48.not.i.i.i734.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i751.i, label %for.inc.i.i.i746.i for.inc.i.i.i746.i: ; preds = %cleanup26.i.i.i742.i, %for.cond.i.i.i711.i %retval.sroa.6.2.i.i.i747.i = phi i32 [ %retval.sroa.6.1.i.i.i743.i, %cleanup26.i.i.i742.i ], [ %retval.sroa.6.0.i.i.i712.i, %for.cond.i.i.i711.i ] %retval.sroa.2.2.i.i.i748.i = phi i64 [ %retval.sroa.2.1.i.i.i744.i, %cleanup26.i.i.i742.i ], [ %retval.sroa.2.0.i.i.i713.i, %for.cond.i.i.i711.i ] %retval.sroa.8.2.i.i.i749.i = phi i32 [ %retval.sroa.8.1.i.i.i745.i, %cleanup26.i.i.i742.i ], [ %retval.sroa.8.0.i.i.i714.i, %for.cond.i.i.i711.i ] %inc.i.i.i750.i = add i32 %spec.store.select.i.i.i717.i, 1 br label %for.cond.i.i.i711.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i751.i: ; preds = %cleanup26.i.i.i742.i %retval.sroa.6.1.i.i.i743.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i743.i, %cleanup26.i.i.i742.i ] %retval.sroa.2.1.i.i.i744.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i744.i, %cleanup26.i.i.i742.i ] %retval.sroa.8.1.i.i.i745.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i745.i, %cleanup26.i.i.i742.i ] fence acquire %321 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i754.i = shl i32 %retval.sroa.6.1.i.i.i743.i.lcssa, 5 %idxprom.i18.i.i.i.i.i755.i = zext i32 %mul.i.i.i.i.i.i754.i to i64 %arrayidx.i19.i.i.i.i.i756.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %321, i64 %idxprom.i18.i.i.i.i.i755.i %arrayidx.i21.i.i.i.i.i757.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i756.i, i64 %sh_prom.i.i.i.i.i store i64 1, ptr %arrayidx.i21.i.i.i.i.i757.i, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i759.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i757.i, i64 8 %322 = load i8, ptr %ch.addr.i.i, align 1 store i8 %322, ptr %arrayidx6.i.i.i.i.i.i.i759.i, align 8 %tobool.not.i.i.i.i.i.i760.i = icmp eq i32 %retval.sroa.8.1.i.i.i745.i.lcssa, 0 %conv.i.i.i.i.i.i761.i = zext i1 %tobool.not.i.i.i.i.i.i760.i to i32 fence release %323 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i762.i = zext i32 %retval.sroa.6.1.i.i.i743.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i763.i = getelementptr inbounds nuw i32, ptr %323, i64 %idxprom.i22.i.i.i.i.i762.i store atomic i32 %conv.i.i.i.i.i.i761.i, ptr %arrayidx.i23.i.i.i.i.i763.i monotonic, align 4 %324 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i764.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %324, i64 %idxprom.i22.i.i.i.i.i762.i %325 = load i64, ptr %arrayidx.i.i4.i.i764.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i765.i = trunc i64 %325 to i32 %conv.i.i.i.i17.i.i.i.i767.i = trunc i64 %retval.sroa.2.1.i.i.i744.i.lcssa to i32 %326 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i767.i, i1 true) %iszero.i.i.i.i18.i.i.i.i768.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i767.i, 0 %sub.i.i.i.i19.i.i.i.i769.i = select i1 %iszero.i.i.i.i18.i.i.i.i768.i, i32 -1, i32 %326 br label %while.cond.i.i.i.i770.i while.cond.i.i.i.i770.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i782.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i751.i %port.sroa.43.0.i.i771.i = phi i32 [ %conv.i.i.i.i.i.i761.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i751.i ], [ %conv.i.i39.i.i.i.i783.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i782.i ] %idx.0.i.i.i.i772.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i751.i ], [ %add.i.i.i.i785.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i782.i ] %cmp.i.i.i.i773.i = icmp eq i64 %idx.0.i.i.i.i772.i, 0 %327 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i765.i, i1 %cmp.i.i.i.i773.i) %tobool.not.i.i.i.i774.i = icmp eq i32 %327, 0 %328 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i775.i = getelementptr inbounds nuw i32, ptr %328, i64 %idxprom.i22.i.i.i.i.i762.i %329 = load atomic i32, ptr %arrayidx.i22.i.i.i775.i monotonic, align 4 br i1 %tobool.not.i.i.i.i774.i, label %cond.false.i.i.i794.i, label %cond.false.i11.i.i.i.i776.i cond.false.i11.i.i.i.i776.i: ; preds = %while.cond.i.i.i.i770.i %330 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i767.i, i32 %329, i32 %sub.i.i.i.i19.i.i.i.i769.i, i32 31) %331 = icmp eq i32 %330, %port.sroa.43.0.i.i771.i br i1 %331, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i781.i, label %while.body.i.i33.i.i.i.i777.i while.body.i.i33.i.i.i.i777.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i778.i, %cond.false.i11.i.i.i.i776.i %332 = phi ptr [ %333, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i778.i ], [ %328, %cond.false.i11.i.i.i.i776.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i48.i.i.i.i792.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i778.i if.then.i.i.i48.i.i.i.i792.i: ; preds = %while.body.i.i33.i.i.i.i777.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i793.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i778.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i778.i: ; preds = %if.then.i.i.i48.i.i.i.i792.i, %while.body.i.i33.i.i.i.i777.i %333 = phi ptr [ %.pre.i.i.i.i793.i, %if.then.i.i.i48.i.i.i.i792.i ], [ %332, %while.body.i.i33.i.i.i.i777.i ] %arrayidx.i.i.i35.i.i.i.i779.i = getelementptr inbounds nuw i32, ptr %333, i64 %idxprom.i22.i.i.i.i.i762.i %334 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i779.i monotonic, align 4 %335 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i767.i, i32 %334, i32 %sub.i.i.i.i19.i.i.i.i769.i, i32 31) %cmp.i.not.i.i36.i.i.i.i780.i = icmp eq i32 %335, %port.sroa.43.0.i.i771.i br i1 %cmp.i.not.i.i36.i.i.i.i780.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i781.i, label %while.body.i.i33.i.i.i.i777.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i781.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i778.i, %cond.false.i11.i.i.i.i776.i fence acquire br i1 %cmp.i.i.i.i773.i, label %if.then.i.i20.i.i.i.i.i786.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i782.i if.then.i.i20.i.i.i.i.i786.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i781.i %336 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i790.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %336, i64 %idxprom.i18.i.i.i.i.i755.i %arrayidx.i22.i.i.i.i.i791.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i790.i, i64 %sh_prom.i.i.i.i.i %337 = load i8, ptr %ch.addr.i.i, align 1 store i8 %337, ptr %arrayidx.i22.i.i.i.i.i791.i, align 1 br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i782.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i782.i: ; preds = %if.then.i.i20.i.i.i.i.i786.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i781.i %conv.i.i39.i.i.i.i783.i = xor i32 %port.sroa.43.0.i.i771.i, 1 fence release %338 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i784.i = getelementptr inbounds nuw i32, ptr %338, i64 %idxprom.i22.i.i.i.i.i762.i store atomic i32 %conv.i.i39.i.i.i.i783.i, ptr %arrayidx.i24.i.i.i.i.i784.i monotonic, align 4 %add.i.i.i.i785.i = add i64 %idx.0.i.i.i.i772.i, 64 br label %while.cond.i.i.i.i770.i, !llvm.loop !71 cond.false.i.i.i794.i: ; preds = %while.cond.i.i.i.i770.i %port.sroa.43.0.i.i771.i.lcssa = phi i32 [ %port.sroa.43.0.i.i771.i, %while.cond.i.i.i.i770.i ] %.lcssa157 = phi ptr [ %328, %while.cond.i.i.i.i770.i ] %.lcssa156 = phi i32 [ %329, %while.cond.i.i.i.i770.i ] %339 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i767.i, i32 %.lcssa156, i32 %sub.i.i.i.i19.i.i.i.i769.i, i32 31) %340 = icmp eq i32 %339, %port.sroa.43.0.i.i771.i.lcssa br i1 %340, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit.i, label %while.body.i.i.i.i795.i while.body.i.i.i.i795.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i796.i, %cond.false.i.i.i794.i %341 = phi ptr [ %342, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i796.i ], [ %.lcssa157, %cond.false.i.i.i794.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i.i.i809.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i796.i if.then.i.i.i.i.i809.i: ; preds = %while.body.i.i.i.i795.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i810.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i796.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i796.i: ; preds = %if.then.i.i.i.i.i809.i, %while.body.i.i.i.i795.i %342 = phi ptr [ %.pre.i.i810.i, %if.then.i.i.i.i.i809.i ], [ %341, %while.body.i.i.i.i795.i ] %arrayidx.i.i.i11.i.i797.i = getelementptr inbounds nuw i32, ptr %342, i64 %idxprom.i22.i.i.i.i.i762.i %343 = load atomic i32, ptr %arrayidx.i.i.i11.i.i797.i monotonic, align 4 %344 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i767.i, i32 %343, i32 %sub.i.i.i.i19.i.i.i.i769.i, i32 31) %cmp.i.not.i.i.i.i798.i = icmp eq i32 %344, %port.sroa.43.0.i.i771.i.lcssa br i1 %cmp.i.not.i.i.i.i798.i, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit.i, label %while.body.i.i.i.i795.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i796.i, %cond.false.i.i.i794.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i767.i) fence release %345 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i744.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i800.i = icmp ne i64 %retval.sroa.2.1.i.i.i744.i.lcssa, 0 %cmp2.i.i.i.i19.i.i801.i = icmp eq i64 %345, %sh_prom.i.i.i.i.i %cmp.i.i.i.i20.i.i802.i = select i1 %iszero.i.i.i.i.i18.i.i800.i, i1 %cmp2.i.i.i.i19.i.i801.i, i1 false %div8.i.i.i21.i.i803.i = lshr i32 %retval.sroa.6.1.i.i.i743.i.lcssa, 5 %346 = and i32 %retval.sroa.6.1.i.i.i743.i.lcssa, 31 %idxprom.i.i.i22.i.i804.i = zext nneg i32 %div8.i.i.i21.i.i803.i to i64 %arrayidx.i.i.i23.i.i805.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i804.i %conv4.i.i.i24.i.i806.i = zext i1 %cmp.i.i.i.i20.i.i802.i to i32 %shl.i.i.i25.i.i807.i = shl nuw i32 %conv4.i.i.i24.i.i806.i, %346 %xor.i.i.i26.i.i808.i = xor i32 %shl.i.i.i25.i.i807.i, -1 %347 = atomicrmw and ptr %arrayidx.i.i.i23.i.i805.i, i32 %xor.i.i.i26.i.i808.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i767.i) call void @llvm.lifetime.end.p0(ptr nonnull %ch.addr.i.i) %348 = load ptr, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34 %add.ptr.i.i819.i = getelementptr inbounds nuw i8, ptr %348, i64 16 store ptr %add.ptr.i.i819.i, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34 %sub.ptr.lhs.cast.i.i820.i = ptrtoint ptr %add.ptr.i.i819.i to i64 %sub.ptr.sub.i.i821.i = sub i64 %sub.ptr.lhs.cast.i.i820.i, ptrtoint (ptr @_ZN12_GLOBAL__N_16memoryE to i64) %cmp.i.i822.i = icmp ugt i64 %sub.ptr.sub.i.i821.i, 65335 %cond.i.i823.i = select i1 %cmp.i.i822.i, ptr null, ptr %348 %tobool.i.i.i.i58.i.i = icmp ne ptr %cond.i.i823.i, null tail call void @llvm.assume(i1 %tobool.i.i.i.i58.i.i) tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %348, ptr noundef nonnull align 1 dereferenceable(6) %4, i64 6, i1 false), !alias.scope !86 %cmp.not.i10.i.i.i63.i.i = icmp eq ptr %cond.i.i823.i, @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE br i1 %cmp.not.i10.i.i.i63.i.i, label %for.cond.i.i.i828.i.preheader, label %if.then.i.i.i.i64.i.i if.then.i.i.i.i64.i.i: ; preds = %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit.i %arrayidx.i.i.i.i65.i.i = getelementptr inbounds nuw i8, ptr %348, i64 6 store i8 0, ptr %arrayidx.i.i.i.i65.i.i, align 1, !tbaa !36 br label %for.cond.i.i.i828.i.preheader for.cond.i.i.i828.i.preheader: ; preds = %if.then.i.i.i.i64.i.i, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit.i br label %for.cond.i.i.i828.i for.cond.i.i.i828.i: ; preds = %for.inc.i.i.i863.i, %for.cond.i.i.i828.i.preheader %retval.sroa.6.0.i.i.i829.i = phi i32 [ %retval.sroa.6.2.i.i.i864.i, %for.inc.i.i.i863.i ], [ undef, %for.cond.i.i.i828.i.preheader ] %retval.sroa.2.0.i.i.i830.i = phi i64 [ %retval.sroa.2.2.i.i.i865.i, %for.inc.i.i.i863.i ], [ undef, %for.cond.i.i.i828.i.preheader ] %retval.sroa.8.0.i.i.i831.i = phi i32 [ %retval.sroa.8.2.i.i.i866.i, %for.inc.i.i.i863.i ], [ undef, %for.cond.i.i.i828.i.preheader ] %index.0.i.i.i832.i = phi i32 [ %inc.i.i.i867.i, %for.inc.i.i.i863.i ], [ 0, %for.cond.i.i.i828.i.preheader ] %349 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i833.i = icmp ult i32 %index.0.i.i.i832.i, %349 %spec.store.select.i.i.i834.i = select i1 %cmp.not.i.i.i833.i, i32 %index.0.i.i.i832.i, i32 0 %350 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i835.i = zext i32 %350 to i64 %div8.i.i.i.i.i836.i = lshr i32 %spec.store.select.i.i.i834.i, 5 %351 = and i32 %spec.store.select.i.i.i834.i, 31 %idxprom.i.i.i.i.i837.i = zext nneg i32 %div8.i.i.i.i.i836.i to i64 %arrayidx.i.i.i.i.i838.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i837.i %352 = lshr i32 %350, %5 %conv4.i.i.i.i.i839.i = and i32 %352, 1 %shl.i.i.i.i.i840.i = shl nuw i32 %conv4.i.i.i.i.i839.i, %351 %353 = atomicrmw or ptr %arrayidx.i.i.i.i.i838.i, i32 %shl.i.i.i.i.i840.i monotonic, align 4 %shl5.i.i.i.i.i841.i = shl nuw i32 1, %351 %and.i.i.i.i.i842.i = and i32 %shl5.i.i.i.i.i841.i, %353 %tobool3.i.i.i.i843.i = icmp ne i32 %and.i.i.i.i.i842.i, 0 %354 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %350, i1 %tobool3.i.i.i.i843.i) %cmp.i.not.i.i.i844.i = icmp eq i32 %350, %354 br i1 %cmp.i.not.i.i.i844.i, label %for.inc.i.i.i863.i, label %if.then.i.i.i.i845.i if.then.i.i.i.i845.i: ; preds = %for.cond.i.i.i828.i fence acquire %355 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i846.i = zext i32 %spec.store.select.i.i.i834.i to i64 %arrayidx.i.i.i.i847.i = getelementptr inbounds nuw i32, ptr %355, i64 %idxprom.i.i.i.i846.i %356 = load atomic i32, ptr %arrayidx.i.i.i.i847.i monotonic, align 4 %357 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %350, i1 true) %iszero.i.i.i.i.i.i848.i = icmp eq i32 %350, 0 %sub.i.i.i.i.i.i849.i = select i1 %iszero.i.i.i.i.i.i848.i, i32 -1, i32 %357 %358 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %350, i32 %356, i32 %sub.i.i.i.i.i.i849.i, i32 31) %359 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i850.i = getelementptr inbounds nuw i32, ptr %359, i64 %idxprom.i.i.i.i846.i %360 = load atomic i32, ptr %arrayidx.i45.i.i.i850.i monotonic, align 4 %361 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %350, i32 %360, i32 %sub.i.i.i.i.i.i849.i, i32 31) %cmp.i48.not.i.i.i851.i = icmp eq i32 %358, %361 br i1 %cmp.i48.not.i.i.i851.i, label %if.end14.i.i.i928.i, label %if.then12.i.i.i852.i if.then12.i.i.i852.i: ; preds = %if.then.i.i.i.i845.i fence release %362 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i835.i, i1 true) %iszero.i.i.i.i.i.i.i853.i = icmp ne i32 %350, 0 %cmp2.i.i.i.i.i.i854.i = icmp eq i64 %362, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i855.i = select i1 %iszero.i.i.i.i.i.i.i853.i, i1 %cmp2.i.i.i.i.i.i854.i, i1 false %conv4.i.i53.i.i.i856.i = zext i1 %cmp.i.i.i.i.i.i855.i to i32 %shl.i.i54.i.i.i857.i = shl nuw i32 %conv4.i.i53.i.i.i856.i, %351 %xor.i.i.i.i.i858.i = xor i32 %shl.i.i54.i.i.i857.i, -1 %363 = atomicrmw and ptr %arrayidx.i.i.i.i.i838.i, i32 %xor.i.i.i.i.i858.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %350) br label %cleanup26.i.i.i859.i if.end14.i.i.i928.i: ; preds = %if.then.i.i.i.i845.i %364 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i835.i, i1 true) %iszero.i.i.i56.i.i.i929.i = icmp ne i32 %350, 0 %cmp2.i.i.i.i.i930.i = icmp eq i64 %364, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i931.i = select i1 %iszero.i.i.i56.i.i.i929.i, i1 %cmp2.i.i.i.i.i930.i, i1 false br i1 %cmp.i.i.i.i.i931.i, label %if.then16.i.i.i933.i, label %if.end22.i.i.i932.i if.then16.i.i.i933.i: ; preds = %if.end14.i.i.i928.i %365 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i934.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %365, i64 %idxprom.i.i.i.i846.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i934.i, align 8, !tbaa !61 %arrayidx21.i.i.i935.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %365, i64 %idxprom.i.i.i.i846.i store i64 %conv.i.i.i.i.i835.i, ptr %arrayidx21.i.i.i935.i, align 8, !tbaa !64 br label %if.end22.i.i.i932.i if.end22.i.i.i932.i: ; preds = %if.then16.i.i.i933.i, %if.end14.i.i.i928.i tail call void @llvm.nvvm.bar.warp.sync(i32 %350) br label %cleanup26.i.i.i859.i cleanup26.i.i.i859.i: ; preds = %if.end22.i.i.i932.i, %if.then12.i.i.i852.i %retval.sroa.6.1.i.i.i860.i = phi i32 [ %retval.sroa.6.0.i.i.i829.i, %if.then12.i.i.i852.i ], [ %spec.store.select.i.i.i834.i, %if.end22.i.i.i932.i ] %retval.sroa.2.1.i.i.i861.i = phi i64 [ %retval.sroa.2.0.i.i.i830.i, %if.then12.i.i.i852.i ], [ %conv.i.i.i.i.i835.i, %if.end22.i.i.i932.i ] %retval.sroa.8.1.i.i.i862.i = phi i32 [ %retval.sroa.8.0.i.i.i831.i, %if.then12.i.i.i852.i ], [ %358, %if.end22.i.i.i932.i ] br i1 %cmp.i48.not.i.i.i851.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i868.i, label %for.inc.i.i.i863.i for.inc.i.i.i863.i: ; preds = %cleanup26.i.i.i859.i, %for.cond.i.i.i828.i %retval.sroa.6.2.i.i.i864.i = phi i32 [ %retval.sroa.6.1.i.i.i860.i, %cleanup26.i.i.i859.i ], [ %retval.sroa.6.0.i.i.i829.i, %for.cond.i.i.i828.i ] %retval.sroa.2.2.i.i.i865.i = phi i64 [ %retval.sroa.2.1.i.i.i861.i, %cleanup26.i.i.i859.i ], [ %retval.sroa.2.0.i.i.i830.i, %for.cond.i.i.i828.i ] %retval.sroa.8.2.i.i.i866.i = phi i32 [ %retval.sroa.8.1.i.i.i862.i, %cleanup26.i.i.i859.i ], [ %retval.sroa.8.0.i.i.i831.i, %for.cond.i.i.i828.i ] %inc.i.i.i867.i = add i32 %spec.store.select.i.i.i834.i, 1 br label %for.cond.i.i.i828.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i868.i: ; preds = %cleanup26.i.i.i859.i %retval.sroa.6.1.i.i.i860.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i860.i, %cleanup26.i.i.i859.i ] %retval.sroa.2.1.i.i.i861.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i861.i, %cleanup26.i.i.i859.i ] %retval.sroa.8.1.i.i.i862.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i862.i, %cleanup26.i.i.i859.i ] fence acquire %366 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i871.i = shl i32 %retval.sroa.6.1.i.i.i860.i.lcssa, 5 %idxprom.i18.i.i.i.i.i872.i = zext i32 %mul.i.i.i.i.i.i871.i to i64 %arrayidx.i19.i.i.i.i.i873.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %366, i64 %idxprom.i18.i.i.i.i.i872.i %arrayidx.i21.i.i.i.i.i874.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i873.i, i64 %sh_prom.i.i.i.i.i store i64 6, ptr %arrayidx.i21.i.i.i.i.i874.i, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i876.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i874.i, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %arrayidx6.i.i.i.i.i.i.i876.i, ptr noundef nonnull align 1 dereferenceable(6) %348, i64 6, i1 false) %tobool.not.i.i.i.i.i.i877.i = icmp eq i32 %retval.sroa.8.1.i.i.i862.i.lcssa, 0 %conv.i.i.i.i.i.i878.i = zext i1 %tobool.not.i.i.i.i.i.i877.i to i32 fence release %367 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i879.i = zext i32 %retval.sroa.6.1.i.i.i860.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i880.i = getelementptr inbounds nuw i32, ptr %367, i64 %idxprom.i22.i.i.i.i.i879.i store atomic i32 %conv.i.i.i.i.i.i878.i, ptr %arrayidx.i23.i.i.i.i.i880.i monotonic, align 4 %368 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i881.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %368, i64 %idxprom.i22.i.i.i.i.i879.i %369 = load i64, ptr %arrayidx.i.i4.i.i881.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i882.i = trunc i64 %369 to i32 %conv.i.i.i.i17.i.i.i.i884.i = trunc i64 %retval.sroa.2.1.i.i.i861.i.lcssa to i32 %370 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i884.i, i1 true) %iszero.i.i.i.i18.i.i.i.i885.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i884.i, 0 %sub.i.i.i.i19.i.i.i.i886.i = select i1 %iszero.i.i.i.i18.i.i.i.i885.i, i32 -1, i32 %370 br label %while.cond.i.i.i.i887.i while.cond.i.i.i.i887.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i899.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i868.i %port.sroa.43.0.i.i888.i = phi i32 [ %conv.i.i.i.i.i.i878.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i868.i ], [ %conv.i.i39.i.i.i.i900.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i899.i ] %idx.0.i.i.i.i889.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i868.i ], [ %add.i.i.i.i902.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i899.i ] %cmp.i.i.i.i890.i = icmp eq i64 %idx.0.i.i.i.i889.i, 0 %371 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i882.i, i1 %cmp.i.i.i.i890.i) %tobool.not.i.i.i.i891.i = icmp eq i32 %371, 0 %372 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i892.i = getelementptr inbounds nuw i32, ptr %372, i64 %idxprom.i22.i.i.i.i.i879.i %373 = load atomic i32, ptr %arrayidx.i22.i.i.i892.i monotonic, align 4 br i1 %tobool.not.i.i.i.i891.i, label %cond.false.i.i.i911.i, label %cond.false.i11.i.i.i.i893.i cond.false.i11.i.i.i.i893.i: ; preds = %while.cond.i.i.i.i887.i %374 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i884.i, i32 %373, i32 %sub.i.i.i.i19.i.i.i.i886.i, i32 31) %375 = icmp eq i32 %374, %port.sroa.43.0.i.i888.i br i1 %375, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i898.i, label %while.body.i.i33.i.i.i.i894.i while.body.i.i33.i.i.i.i894.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i895.i, %cond.false.i11.i.i.i.i893.i %376 = phi ptr [ %377, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i895.i ], [ %372, %cond.false.i11.i.i.i.i893.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i48.i.i.i.i909.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i895.i if.then.i.i.i48.i.i.i.i909.i: ; preds = %while.body.i.i33.i.i.i.i894.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i910.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i895.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i895.i: ; preds = %if.then.i.i.i48.i.i.i.i909.i, %while.body.i.i33.i.i.i.i894.i %377 = phi ptr [ %.pre.i.i.i.i910.i, %if.then.i.i.i48.i.i.i.i909.i ], [ %376, %while.body.i.i33.i.i.i.i894.i ] %arrayidx.i.i.i35.i.i.i.i896.i = getelementptr inbounds nuw i32, ptr %377, i64 %idxprom.i22.i.i.i.i.i879.i %378 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i896.i monotonic, align 4 %379 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i884.i, i32 %378, i32 %sub.i.i.i.i19.i.i.i.i886.i, i32 31) %cmp.i.not.i.i36.i.i.i.i897.i = icmp eq i32 %379, %port.sroa.43.0.i.i888.i br i1 %cmp.i.not.i.i36.i.i.i.i897.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i898.i, label %while.body.i.i33.i.i.i.i894.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i898.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i895.i, %cond.false.i11.i.i.i.i893.i fence acquire br i1 %cmp.i.i.i.i890.i, label %if.then.i.i20.i.i.i.i.i903.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i899.i if.then.i.i20.i.i.i.i.i903.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i898.i %380 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i907.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %380, i64 %idxprom.i18.i.i.i.i.i872.i %arrayidx.i22.i.i.i.i.i908.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i907.i, i64 %sh_prom.i.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %arrayidx.i22.i.i.i.i.i908.i, ptr noundef nonnull align 1 dereferenceable(6) %348, i64 6, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i899.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i899.i: ; preds = %if.then.i.i20.i.i.i.i.i903.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i898.i %conv.i.i39.i.i.i.i900.i = xor i32 %port.sroa.43.0.i.i888.i, 1 fence release %381 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i901.i = getelementptr inbounds nuw i32, ptr %381, i64 %idxprom.i22.i.i.i.i.i879.i store atomic i32 %conv.i.i39.i.i.i.i900.i, ptr %arrayidx.i24.i.i.i.i.i901.i monotonic, align 4 %add.i.i.i.i902.i = add i64 %idx.0.i.i.i.i889.i, 64 br label %while.cond.i.i.i.i887.i, !llvm.loop !71 cond.false.i.i.i911.i: ; preds = %while.cond.i.i.i.i887.i %port.sroa.43.0.i.i888.i.lcssa = phi i32 [ %port.sroa.43.0.i.i888.i, %while.cond.i.i.i.i887.i ] %.lcssa155 = phi ptr [ %372, %while.cond.i.i.i.i887.i ] %.lcssa154 = phi i32 [ %373, %while.cond.i.i.i.i887.i ] %382 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i884.i, i32 %.lcssa154, i32 %sub.i.i.i.i19.i.i.i.i886.i, i32 31) %383 = icmp eq i32 %382, %port.sroa.43.0.i.i888.i.lcssa br i1 %383, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit936.i, label %while.body.i.i.i.i912.i while.body.i.i.i.i912.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i913.i, %cond.false.i.i.i911.i %384 = phi ptr [ %385, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i913.i ], [ %.lcssa155, %cond.false.i.i.i911.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i.i.i926.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i913.i if.then.i.i.i.i.i926.i: ; preds = %while.body.i.i.i.i912.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i927.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i913.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i913.i: ; preds = %if.then.i.i.i.i.i926.i, %while.body.i.i.i.i912.i %385 = phi ptr [ %.pre.i.i927.i, %if.then.i.i.i.i.i926.i ], [ %384, %while.body.i.i.i.i912.i ] %arrayidx.i.i.i11.i.i914.i = getelementptr inbounds nuw i32, ptr %385, i64 %idxprom.i22.i.i.i.i.i879.i %386 = load atomic i32, ptr %arrayidx.i.i.i11.i.i914.i monotonic, align 4 %387 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i884.i, i32 %386, i32 %sub.i.i.i.i19.i.i.i.i886.i, i32 31) %cmp.i.not.i.i.i.i915.i = icmp eq i32 %387, %port.sroa.43.0.i.i888.i.lcssa br i1 %cmp.i.not.i.i.i.i915.i, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit936.i, label %while.body.i.i.i.i912.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit936.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i913.i, %cond.false.i.i.i911.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i884.i) fence release %388 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i861.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i917.i = icmp ne i64 %retval.sroa.2.1.i.i.i861.i.lcssa, 0 %cmp2.i.i.i.i19.i.i918.i = icmp eq i64 %388, %sh_prom.i.i.i.i.i %cmp.i.i.i.i20.i.i919.i = select i1 %iszero.i.i.i.i.i18.i.i917.i, i1 %cmp2.i.i.i.i19.i.i918.i, i1 false %div8.i.i.i21.i.i920.i = lshr i32 %retval.sroa.6.1.i.i.i860.i.lcssa, 5 %389 = and i32 %retval.sroa.6.1.i.i.i860.i.lcssa, 31 %idxprom.i.i.i22.i.i921.i = zext nneg i32 %div8.i.i.i21.i.i920.i to i64 %arrayidx.i.i.i23.i.i922.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i921.i %conv4.i.i.i24.i.i923.i = zext i1 %cmp.i.i.i.i20.i.i919.i to i32 %shl.i.i.i25.i.i924.i = shl nuw i32 %conv4.i.i.i24.i.i923.i, %389 %xor.i.i.i26.i.i925.i = xor i32 %shl.i.i.i25.i.i924.i, -1 %390 = atomicrmw and ptr %arrayidx.i.i.i23.i.i922.i, i32 %xor.i.i.i26.i.i925.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i884.i) br label %for.cond.i.i.i948.i for.cond.i.i.i948.i: ; preds = %for.inc.i.i.i983.i, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit936.i %retval.sroa.6.0.i.i.i949.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit936.i ], [ %retval.sroa.6.2.i.i.i984.i, %for.inc.i.i.i983.i ] %retval.sroa.2.0.i.i.i950.i = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit936.i ], [ %retval.sroa.2.2.i.i.i985.i, %for.inc.i.i.i983.i ] %retval.sroa.8.0.i.i.i951.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit936.i ], [ %retval.sroa.8.2.i.i.i986.i, %for.inc.i.i.i983.i ] %index.0.i.i.i952.i = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit936.i ], [ %inc.i.i.i987.i, %for.inc.i.i.i983.i ] %391 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i953.i = icmp ult i32 %index.0.i.i.i952.i, %391 %spec.store.select.i.i.i954.i = select i1 %cmp.not.i.i.i953.i, i32 %index.0.i.i.i952.i, i32 0 %392 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i955.i = zext i32 %392 to i64 %div8.i.i.i.i.i956.i = lshr i32 %spec.store.select.i.i.i954.i, 5 %393 = and i32 %spec.store.select.i.i.i954.i, 31 %idxprom.i.i.i.i.i957.i = zext nneg i32 %div8.i.i.i.i.i956.i to i64 %arrayidx.i.i.i.i.i958.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i957.i %394 = lshr i32 %392, %5 %conv4.i.i.i.i.i959.i = and i32 %394, 1 %shl.i.i.i.i.i960.i = shl nuw i32 %conv4.i.i.i.i.i959.i, %393 %395 = atomicrmw or ptr %arrayidx.i.i.i.i.i958.i, i32 %shl.i.i.i.i.i960.i monotonic, align 4 %shl5.i.i.i.i.i961.i = shl nuw i32 1, %393 %and.i.i.i.i.i962.i = and i32 %shl5.i.i.i.i.i961.i, %395 %tobool3.i.i.i.i963.i = icmp ne i32 %and.i.i.i.i.i962.i, 0 %396 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %392, i1 %tobool3.i.i.i.i963.i) %cmp.i.not.i.i.i964.i = icmp eq i32 %392, %396 br i1 %cmp.i.not.i.i.i964.i, label %for.inc.i.i.i983.i, label %if.then.i.i.i.i965.i if.then.i.i.i.i965.i: ; preds = %for.cond.i.i.i948.i fence acquire %397 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i966.i = zext i32 %spec.store.select.i.i.i954.i to i64 %arrayidx.i.i.i.i967.i = getelementptr inbounds nuw i32, ptr %397, i64 %idxprom.i.i.i.i966.i %398 = load atomic i32, ptr %arrayidx.i.i.i.i967.i monotonic, align 4 %399 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %392, i1 true) %iszero.i.i.i.i.i.i968.i = icmp eq i32 %392, 0 %sub.i.i.i.i.i.i969.i = select i1 %iszero.i.i.i.i.i.i968.i, i32 -1, i32 %399 %400 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %392, i32 %398, i32 %sub.i.i.i.i.i.i969.i, i32 31) %401 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i970.i = getelementptr inbounds nuw i32, ptr %401, i64 %idxprom.i.i.i.i966.i %402 = load atomic i32, ptr %arrayidx.i45.i.i.i970.i monotonic, align 4 %403 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %392, i32 %402, i32 %sub.i.i.i.i.i.i969.i, i32 31) %cmp.i48.not.i.i.i971.i = icmp eq i32 %400, %403 br i1 %cmp.i48.not.i.i.i971.i, label %if.end14.i.i.i1048.i, label %if.then12.i.i.i972.i if.then12.i.i.i972.i: ; preds = %if.then.i.i.i.i965.i fence release %404 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i955.i, i1 true) %iszero.i.i.i.i.i.i.i973.i = icmp ne i32 %392, 0 %cmp2.i.i.i.i.i.i974.i = icmp eq i64 %404, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i975.i = select i1 %iszero.i.i.i.i.i.i.i973.i, i1 %cmp2.i.i.i.i.i.i974.i, i1 false %conv4.i.i53.i.i.i976.i = zext i1 %cmp.i.i.i.i.i.i975.i to i32 %shl.i.i54.i.i.i977.i = shl nuw i32 %conv4.i.i53.i.i.i976.i, %393 %xor.i.i.i.i.i978.i = xor i32 %shl.i.i54.i.i.i977.i, -1 %405 = atomicrmw and ptr %arrayidx.i.i.i.i.i958.i, i32 %xor.i.i.i.i.i978.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %392) br label %cleanup26.i.i.i979.i if.end14.i.i.i1048.i: ; preds = %if.then.i.i.i.i965.i %406 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i955.i, i1 true) %iszero.i.i.i56.i.i.i1049.i = icmp ne i32 %392, 0 %cmp2.i.i.i.i.i1050.i = icmp eq i64 %406, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i1051.i = select i1 %iszero.i.i.i56.i.i.i1049.i, i1 %cmp2.i.i.i.i.i1050.i, i1 false br i1 %cmp.i.i.i.i.i1051.i, label %if.then16.i.i.i1053.i, label %if.end22.i.i.i1052.i if.then16.i.i.i1053.i: ; preds = %if.end14.i.i.i1048.i %407 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i1054.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %407, i64 %idxprom.i.i.i.i966.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i1054.i, align 8, !tbaa !61 %arrayidx21.i.i.i1055.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %407, i64 %idxprom.i.i.i.i966.i store i64 %conv.i.i.i.i.i955.i, ptr %arrayidx21.i.i.i1055.i, align 8, !tbaa !64 br label %if.end22.i.i.i1052.i if.end22.i.i.i1052.i: ; preds = %if.then16.i.i.i1053.i, %if.end14.i.i.i1048.i tail call void @llvm.nvvm.bar.warp.sync(i32 %392) br label %cleanup26.i.i.i979.i cleanup26.i.i.i979.i: ; preds = %if.end22.i.i.i1052.i, %if.then12.i.i.i972.i %retval.sroa.6.1.i.i.i980.i = phi i32 [ %retval.sroa.6.0.i.i.i949.i, %if.then12.i.i.i972.i ], [ %spec.store.select.i.i.i954.i, %if.end22.i.i.i1052.i ] %retval.sroa.2.1.i.i.i981.i = phi i64 [ %retval.sroa.2.0.i.i.i950.i, %if.then12.i.i.i972.i ], [ %conv.i.i.i.i.i955.i, %if.end22.i.i.i1052.i ] %retval.sroa.8.1.i.i.i982.i = phi i32 [ %retval.sroa.8.0.i.i.i951.i, %if.then12.i.i.i972.i ], [ %400, %if.end22.i.i.i1052.i ] br i1 %cmp.i48.not.i.i.i971.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i988.i, label %for.inc.i.i.i983.i for.inc.i.i.i983.i: ; preds = %cleanup26.i.i.i979.i, %for.cond.i.i.i948.i %retval.sroa.6.2.i.i.i984.i = phi i32 [ %retval.sroa.6.1.i.i.i980.i, %cleanup26.i.i.i979.i ], [ %retval.sroa.6.0.i.i.i949.i, %for.cond.i.i.i948.i ] %retval.sroa.2.2.i.i.i985.i = phi i64 [ %retval.sroa.2.1.i.i.i981.i, %cleanup26.i.i.i979.i ], [ %retval.sroa.2.0.i.i.i950.i, %for.cond.i.i.i948.i ] %retval.sroa.8.2.i.i.i986.i = phi i32 [ %retval.sroa.8.1.i.i.i982.i, %cleanup26.i.i.i979.i ], [ %retval.sroa.8.0.i.i.i951.i, %for.cond.i.i.i948.i ] %inc.i.i.i987.i = add i32 %spec.store.select.i.i.i954.i, 1 br label %for.cond.i.i.i948.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i988.i: ; preds = %cleanup26.i.i.i979.i %retval.sroa.6.1.i.i.i980.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i980.i, %cleanup26.i.i.i979.i ] %retval.sroa.2.1.i.i.i981.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i981.i, %cleanup26.i.i.i979.i ] %retval.sroa.8.1.i.i.i982.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i982.i, %cleanup26.i.i.i979.i ] fence acquire %408 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i991.i = shl i32 %retval.sroa.6.1.i.i.i980.i.lcssa, 5 %idxprom.i18.i.i.i.i.i992.i = zext i32 %mul.i.i.i.i.i.i991.i to i64 %arrayidx.i19.i.i.i.i.i993.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %408, i64 %idxprom.i18.i.i.i.i.i992.i %arrayidx.i21.i.i.i.i.i994.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i993.i, i64 %sh_prom.i.i.i.i.i store i64 10, ptr %arrayidx.i21.i.i.i.i.i994.i, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i996.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i994.i, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(10) %arrayidx6.i.i.i.i.i.i.i996.i, ptr noundef nonnull align 1 dereferenceable(10) @.str35, i64 10, i1 false) %tobool.not.i.i.i.i.i.i997.i = icmp eq i32 %retval.sroa.8.1.i.i.i982.i.lcssa, 0 %conv.i.i.i.i.i.i998.i = zext i1 %tobool.not.i.i.i.i.i.i997.i to i32 fence release %409 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i999.i = zext i32 %retval.sroa.6.1.i.i.i980.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i1000.i = getelementptr inbounds nuw i32, ptr %409, i64 %idxprom.i22.i.i.i.i.i999.i store atomic i32 %conv.i.i.i.i.i.i998.i, ptr %arrayidx.i23.i.i.i.i.i1000.i monotonic, align 4 %410 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i1001.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %410, i64 %idxprom.i22.i.i.i.i.i999.i %411 = load i64, ptr %arrayidx.i.i4.i.i1001.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i1002.i = trunc i64 %411 to i32 %conv.i.i.i.i17.i.i.i.i1004.i = trunc i64 %retval.sroa.2.1.i.i.i981.i.lcssa to i32 %412 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i1004.i, i1 true) %iszero.i.i.i.i18.i.i.i.i1005.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i1004.i, 0 %sub.i.i.i.i19.i.i.i.i1006.i = select i1 %iszero.i.i.i.i18.i.i.i.i1005.i, i32 -1, i32 %412 br label %while.cond.i.i.i.i1007.i while.cond.i.i.i.i1007.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1019.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i988.i %port.sroa.43.0.i.i1008.i = phi i32 [ %conv.i.i.i.i.i.i998.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i988.i ], [ %conv.i.i39.i.i.i.i1020.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1019.i ] %idx.0.i.i.i.i1009.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i988.i ], [ %add.i.i.i.i1022.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1019.i ] %cmp.i.i.i2.i1010.i = icmp ult i64 %idx.0.i.i.i.i1009.i, 10 %413 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i1002.i, i1 %cmp.i.i.i2.i1010.i) %tobool.not.i.i.i.i1011.i = icmp eq i32 %413, 0 %414 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i1012.i = getelementptr inbounds nuw i32, ptr %414, i64 %idxprom.i22.i.i.i.i.i999.i %415 = load atomic i32, ptr %arrayidx.i22.i.i.i1012.i monotonic, align 4 br i1 %tobool.not.i.i.i.i1011.i, label %cond.false.i.i.i1031.i, label %cond.false.i11.i.i.i.i1013.i cond.false.i11.i.i.i.i1013.i: ; preds = %while.cond.i.i.i.i1007.i %416 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1004.i, i32 %415, i32 %sub.i.i.i.i19.i.i.i.i1006.i, i32 31) %417 = icmp eq i32 %416, %port.sroa.43.0.i.i1008.i br i1 %417, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1018.i, label %while.body.i.i33.i.i.i.i1014.i while.body.i.i33.i.i.i.i1014.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1015.i, %cond.false.i11.i.i.i.i1013.i %418 = phi ptr [ %419, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1015.i ], [ %414, %cond.false.i11.i.i.i.i1013.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i48.i.i.i.i1029.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1015.i if.then.i.i.i48.i.i.i.i1029.i: ; preds = %while.body.i.i33.i.i.i.i1014.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i1030.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1015.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1015.i: ; preds = %if.then.i.i.i48.i.i.i.i1029.i, %while.body.i.i33.i.i.i.i1014.i %419 = phi ptr [ %.pre.i.i.i.i1030.i, %if.then.i.i.i48.i.i.i.i1029.i ], [ %418, %while.body.i.i33.i.i.i.i1014.i ] %arrayidx.i.i.i35.i.i.i.i1016.i = getelementptr inbounds nuw i32, ptr %419, i64 %idxprom.i22.i.i.i.i.i999.i %420 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i1016.i monotonic, align 4 %421 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1004.i, i32 %420, i32 %sub.i.i.i.i19.i.i.i.i1006.i, i32 31) %cmp.i.not.i.i36.i.i.i.i1017.i = icmp eq i32 %421, %port.sroa.43.0.i.i1008.i br i1 %cmp.i.not.i.i36.i.i.i.i1017.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1018.i, label %while.body.i.i33.i.i.i.i1014.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1018.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1015.i, %cond.false.i11.i.i.i.i1013.i fence acquire br i1 %cmp.i.i.i2.i1010.i, label %if.then.i.i20.i.i.i.i.i1023.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1019.i if.then.i.i20.i.i.i.i.i1023.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1018.i %add.ptr.i.i.i.i.i.i.i.i1024.i = getelementptr inbounds nuw i8, ptr @.str35, i64 %idx.0.i.i.i.i1009.i %sub.i.i.i.i.i.i.i1025.i = sub nuw nsw i64 10, %idx.0.i.i.i.i1009.i %422 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i1027.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %422, i64 %idxprom.i18.i.i.i.i.i992.i %arrayidx.i22.i.i.i.i.i1028.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i1027.i, i64 %sh_prom.i.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %arrayidx.i22.i.i.i.i.i1028.i, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr.i.i.i.i.i.i.i.i1024.i, i64 %sub.i.i.i.i.i.i.i1025.i, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1019.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1019.i: ; preds = %if.then.i.i20.i.i.i.i.i1023.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1018.i %conv.i.i39.i.i.i.i1020.i = xor i32 %port.sroa.43.0.i.i1008.i, 1 fence release %423 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i1021.i = getelementptr inbounds nuw i32, ptr %423, i64 %idxprom.i22.i.i.i.i.i999.i store atomic i32 %conv.i.i39.i.i.i.i1020.i, ptr %arrayidx.i24.i.i.i.i.i1021.i monotonic, align 4 %add.i.i.i.i1022.i = add i64 %idx.0.i.i.i.i1009.i, 64 br label %while.cond.i.i.i.i1007.i, !llvm.loop !71 cond.false.i.i.i1031.i: ; preds = %while.cond.i.i.i.i1007.i %port.sroa.43.0.i.i1008.i.lcssa = phi i32 [ %port.sroa.43.0.i.i1008.i, %while.cond.i.i.i.i1007.i ] %.lcssa153 = phi ptr [ %414, %while.cond.i.i.i.i1007.i ] %.lcssa152 = phi i32 [ %415, %while.cond.i.i.i.i1007.i ] %424 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1004.i, i32 %.lcssa152, i32 %sub.i.i.i.i19.i.i.i.i1006.i, i32 31) %425 = icmp eq i32 %424, %port.sroa.43.0.i.i1008.i.lcssa br i1 %425, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1056.i, label %while.body.i.i.i.i1032.i while.body.i.i.i.i1032.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1033.i, %cond.false.i.i.i1031.i %426 = phi ptr [ %427, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1033.i ], [ %.lcssa153, %cond.false.i.i.i1031.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i.i.i1046.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1033.i if.then.i.i.i.i.i1046.i: ; preds = %while.body.i.i.i.i1032.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i1047.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1033.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1033.i: ; preds = %if.then.i.i.i.i.i1046.i, %while.body.i.i.i.i1032.i %427 = phi ptr [ %.pre.i.i1047.i, %if.then.i.i.i.i.i1046.i ], [ %426, %while.body.i.i.i.i1032.i ] %arrayidx.i.i.i11.i.i1034.i = getelementptr inbounds nuw i32, ptr %427, i64 %idxprom.i22.i.i.i.i.i999.i %428 = load atomic i32, ptr %arrayidx.i.i.i11.i.i1034.i monotonic, align 4 %429 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1004.i, i32 %428, i32 %sub.i.i.i.i19.i.i.i.i1006.i, i32 31) %cmp.i.not.i.i.i.i1035.i = icmp eq i32 %429, %port.sroa.43.0.i.i1008.i.lcssa br i1 %cmp.i.not.i.i.i.i1035.i, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1056.i, label %while.body.i.i.i.i1032.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1056.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1033.i, %cond.false.i.i.i1031.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1004.i) fence release %430 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i981.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i1037.i = icmp ne i64 %retval.sroa.2.1.i.i.i981.i.lcssa, 0 %cmp2.i.i.i.i19.i.i1038.i = icmp eq i64 %430, %sh_prom.i.i.i.i.i %cmp.i.i.i.i20.i.i1039.i = select i1 %iszero.i.i.i.i.i18.i.i1037.i, i1 %cmp2.i.i.i.i19.i.i1038.i, i1 false %div8.i.i.i21.i.i1040.i = lshr i32 %retval.sroa.6.1.i.i.i980.i.lcssa, 5 %431 = and i32 %retval.sroa.6.1.i.i.i980.i.lcssa, 31 %idxprom.i.i.i22.i.i1041.i = zext nneg i32 %div8.i.i.i21.i.i1040.i to i64 %arrayidx.i.i.i23.i.i1042.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i1041.i %conv4.i.i.i24.i.i1043.i = zext i1 %cmp.i.i.i.i20.i.i1039.i to i32 %shl.i.i.i25.i.i1044.i = shl nuw i32 %conv4.i.i.i24.i.i1043.i, %431 %xor.i.i.i26.i.i1045.i = xor i32 %shl.i.i.i25.i.i1044.i, -1 %432 = atomicrmw and ptr %arrayidx.i.i.i23.i.i1042.i, i32 %xor.i.i.i26.i.i1045.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1004.i) br label %for.cond.i.i.i1059.i for.cond.i.i.i1059.i: ; preds = %for.inc.i.i.i1094.i, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1056.i %retval.sroa.6.0.i.i.i1060.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1056.i ], [ %retval.sroa.6.2.i.i.i1095.i, %for.inc.i.i.i1094.i ] %retval.sroa.2.0.i.i.i1061.i = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1056.i ], [ %retval.sroa.2.2.i.i.i1096.i, %for.inc.i.i.i1094.i ] %retval.sroa.8.0.i.i.i1062.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1056.i ], [ %retval.sroa.8.2.i.i.i1097.i, %for.inc.i.i.i1094.i ] %index.0.i.i.i1063.i = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1056.i ], [ %inc.i.i.i1098.i, %for.inc.i.i.i1094.i ] %433 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i1064.i = icmp ult i32 %index.0.i.i.i1063.i, %433 %spec.store.select.i.i.i1065.i = select i1 %cmp.not.i.i.i1064.i, i32 %index.0.i.i.i1063.i, i32 0 %434 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i1066.i = zext i32 %434 to i64 %div8.i.i.i.i.i1067.i = lshr i32 %spec.store.select.i.i.i1065.i, 5 %435 = and i32 %spec.store.select.i.i.i1065.i, 31 %idxprom.i.i.i.i.i1068.i = zext nneg i32 %div8.i.i.i.i.i1067.i to i64 %arrayidx.i.i.i.i.i1069.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i1068.i %436 = lshr i32 %434, %5 %conv4.i.i.i.i.i1070.i = and i32 %436, 1 %shl.i.i.i.i.i1071.i = shl nuw i32 %conv4.i.i.i.i.i1070.i, %435 %437 = atomicrmw or ptr %arrayidx.i.i.i.i.i1069.i, i32 %shl.i.i.i.i.i1071.i monotonic, align 4 %shl5.i.i.i.i.i1072.i = shl nuw i32 1, %435 %and.i.i.i.i.i1073.i = and i32 %shl5.i.i.i.i.i1072.i, %437 %tobool3.i.i.i.i1074.i = icmp ne i32 %and.i.i.i.i.i1073.i, 0 %438 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %434, i1 %tobool3.i.i.i.i1074.i) %cmp.i.not.i.i.i1075.i = icmp eq i32 %434, %438 br i1 %cmp.i.not.i.i.i1075.i, label %for.inc.i.i.i1094.i, label %if.then.i.i.i.i1076.i if.then.i.i.i.i1076.i: ; preds = %for.cond.i.i.i1059.i fence acquire %439 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i1077.i = zext i32 %spec.store.select.i.i.i1065.i to i64 %arrayidx.i.i.i.i1078.i = getelementptr inbounds nuw i32, ptr %439, i64 %idxprom.i.i.i.i1077.i %440 = load atomic i32, ptr %arrayidx.i.i.i.i1078.i monotonic, align 4 %441 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %434, i1 true) %iszero.i.i.i.i.i.i1079.i = icmp eq i32 %434, 0 %sub.i.i.i.i.i.i1080.i = select i1 %iszero.i.i.i.i.i.i1079.i, i32 -1, i32 %441 %442 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %434, i32 %440, i32 %sub.i.i.i.i.i.i1080.i, i32 31) %443 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i1081.i = getelementptr inbounds nuw i32, ptr %443, i64 %idxprom.i.i.i.i1077.i %444 = load atomic i32, ptr %arrayidx.i45.i.i.i1081.i monotonic, align 4 %445 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %434, i32 %444, i32 %sub.i.i.i.i.i.i1080.i, i32 31) %cmp.i48.not.i.i.i1082.i = icmp eq i32 %442, %445 br i1 %cmp.i48.not.i.i.i1082.i, label %if.end14.i.i.i1159.i, label %if.then12.i.i.i1083.i if.then12.i.i.i1083.i: ; preds = %if.then.i.i.i.i1076.i fence release %446 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1066.i, i1 true) %iszero.i.i.i.i.i.i.i1084.i = icmp ne i32 %434, 0 %cmp2.i.i.i.i.i.i1085.i = icmp eq i64 %446, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i1086.i = select i1 %iszero.i.i.i.i.i.i.i1084.i, i1 %cmp2.i.i.i.i.i.i1085.i, i1 false %conv4.i.i53.i.i.i1087.i = zext i1 %cmp.i.i.i.i.i.i1086.i to i32 %shl.i.i54.i.i.i1088.i = shl nuw i32 %conv4.i.i53.i.i.i1087.i, %435 %xor.i.i.i.i.i1089.i = xor i32 %shl.i.i54.i.i.i1088.i, -1 %447 = atomicrmw and ptr %arrayidx.i.i.i.i.i1069.i, i32 %xor.i.i.i.i.i1089.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %434) br label %cleanup26.i.i.i1090.i if.end14.i.i.i1159.i: ; preds = %if.then.i.i.i.i1076.i %448 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1066.i, i1 true) %iszero.i.i.i56.i.i.i1160.i = icmp ne i32 %434, 0 %cmp2.i.i.i.i.i1161.i = icmp eq i64 %448, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i1162.i = select i1 %iszero.i.i.i56.i.i.i1160.i, i1 %cmp2.i.i.i.i.i1161.i, i1 false br i1 %cmp.i.i.i.i.i1162.i, label %if.then16.i.i.i1164.i, label %if.end22.i.i.i1163.i if.then16.i.i.i1164.i: ; preds = %if.end14.i.i.i1159.i %449 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i1165.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %449, i64 %idxprom.i.i.i.i1077.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i1165.i, align 8, !tbaa !61 %arrayidx21.i.i.i1166.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %449, i64 %idxprom.i.i.i.i1077.i store i64 %conv.i.i.i.i.i1066.i, ptr %arrayidx21.i.i.i1166.i, align 8, !tbaa !64 br label %if.end22.i.i.i1163.i if.end22.i.i.i1163.i: ; preds = %if.then16.i.i.i1164.i, %if.end14.i.i.i1159.i tail call void @llvm.nvvm.bar.warp.sync(i32 %434) br label %cleanup26.i.i.i1090.i cleanup26.i.i.i1090.i: ; preds = %if.end22.i.i.i1163.i, %if.then12.i.i.i1083.i %retval.sroa.6.1.i.i.i1091.i = phi i32 [ %retval.sroa.6.0.i.i.i1060.i, %if.then12.i.i.i1083.i ], [ %spec.store.select.i.i.i1065.i, %if.end22.i.i.i1163.i ] %retval.sroa.2.1.i.i.i1092.i = phi i64 [ %retval.sroa.2.0.i.i.i1061.i, %if.then12.i.i.i1083.i ], [ %conv.i.i.i.i.i1066.i, %if.end22.i.i.i1163.i ] %retval.sroa.8.1.i.i.i1093.i = phi i32 [ %retval.sroa.8.0.i.i.i1062.i, %if.then12.i.i.i1083.i ], [ %442, %if.end22.i.i.i1163.i ] br i1 %cmp.i48.not.i.i.i1082.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1099.i, label %for.inc.i.i.i1094.i for.inc.i.i.i1094.i: ; preds = %cleanup26.i.i.i1090.i, %for.cond.i.i.i1059.i %retval.sroa.6.2.i.i.i1095.i = phi i32 [ %retval.sroa.6.1.i.i.i1091.i, %cleanup26.i.i.i1090.i ], [ %retval.sroa.6.0.i.i.i1060.i, %for.cond.i.i.i1059.i ] %retval.sroa.2.2.i.i.i1096.i = phi i64 [ %retval.sroa.2.1.i.i.i1092.i, %cleanup26.i.i.i1090.i ], [ %retval.sroa.2.0.i.i.i1061.i, %for.cond.i.i.i1059.i ] %retval.sroa.8.2.i.i.i1097.i = phi i32 [ %retval.sroa.8.1.i.i.i1093.i, %cleanup26.i.i.i1090.i ], [ %retval.sroa.8.0.i.i.i1062.i, %for.cond.i.i.i1059.i ] %inc.i.i.i1098.i = add i32 %spec.store.select.i.i.i1065.i, 1 br label %for.cond.i.i.i1059.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1099.i: ; preds = %cleanup26.i.i.i1090.i %retval.sroa.6.1.i.i.i1091.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i1091.i, %cleanup26.i.i.i1090.i ] %retval.sroa.2.1.i.i.i1092.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i1092.i, %cleanup26.i.i.i1090.i ] %retval.sroa.8.1.i.i.i1093.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i1093.i, %cleanup26.i.i.i1090.i ] fence acquire %450 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i1102.i = shl i32 %retval.sroa.6.1.i.i.i1091.i.lcssa, 5 %idxprom.i18.i.i.i.i.i1103.i = zext i32 %mul.i.i.i.i.i.i1102.i to i64 %arrayidx.i19.i.i.i.i.i1104.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %450, i64 %idxprom.i18.i.i.i.i.i1103.i %arrayidx.i21.i.i.i.i.i1105.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i1104.i, i64 %sh_prom.i.i.i.i.i store i64 2, ptr %arrayidx.i21.i.i.i.i.i1105.i, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i1107.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i1105.i, i64 8 %451 = load i16, ptr %arrayidx.i.i19.i.i.i, align 1 store i16 %451, ptr %arrayidx6.i.i.i.i.i.i.i1107.i, align 8 %tobool.not.i.i.i.i.i.i1108.i = icmp eq i32 %retval.sroa.8.1.i.i.i1093.i.lcssa, 0 %conv.i.i.i.i.i.i1109.i = zext i1 %tobool.not.i.i.i.i.i.i1108.i to i32 fence release %452 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i1110.i = zext i32 %retval.sroa.6.1.i.i.i1091.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i1111.i = getelementptr inbounds nuw i32, ptr %452, i64 %idxprom.i22.i.i.i.i.i1110.i store atomic i32 %conv.i.i.i.i.i.i1109.i, ptr %arrayidx.i23.i.i.i.i.i1111.i monotonic, align 4 %453 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i1112.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %453, i64 %idxprom.i22.i.i.i.i.i1110.i %454 = load i64, ptr %arrayidx.i.i4.i.i1112.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i1113.i = trunc i64 %454 to i32 %conv.i.i.i.i17.i.i.i.i1115.i = trunc i64 %retval.sroa.2.1.i.i.i1092.i.lcssa to i32 %455 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i1115.i, i1 true) %iszero.i.i.i.i18.i.i.i.i1116.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i1115.i, 0 %sub.i.i.i.i19.i.i.i.i1117.i = select i1 %iszero.i.i.i.i18.i.i.i.i1116.i, i32 -1, i32 %455 br label %while.cond.i.i.i.i1118.i while.cond.i.i.i.i1118.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1130.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1099.i %port.sroa.43.0.i.i1119.i = phi i32 [ %conv.i.i.i.i.i.i1109.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1099.i ], [ %conv.i.i39.i.i.i.i1131.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1130.i ] %idx.0.i.i.i.i1120.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1099.i ], [ %add.i.i.i.i1133.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1130.i ] %cmp.i.i.i.i1121.i = icmp eq i64 %idx.0.i.i.i.i1120.i, 0 %456 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i1113.i, i1 %cmp.i.i.i.i1121.i) %tobool.not.i.i.i.i1122.i = icmp eq i32 %456, 0 %457 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i1123.i = getelementptr inbounds nuw i32, ptr %457, i64 %idxprom.i22.i.i.i.i.i1110.i %458 = load atomic i32, ptr %arrayidx.i22.i.i.i1123.i monotonic, align 4 br i1 %tobool.not.i.i.i.i1122.i, label %cond.false.i.i.i1142.i, label %cond.false.i11.i.i.i.i1124.i cond.false.i11.i.i.i.i1124.i: ; preds = %while.cond.i.i.i.i1118.i %459 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1115.i, i32 %458, i32 %sub.i.i.i.i19.i.i.i.i1117.i, i32 31) %460 = icmp eq i32 %459, %port.sroa.43.0.i.i1119.i br i1 %460, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1129.i, label %while.body.i.i33.i.i.i.i1125.i while.body.i.i33.i.i.i.i1125.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1126.i, %cond.false.i11.i.i.i.i1124.i %461 = phi ptr [ %462, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1126.i ], [ %457, %cond.false.i11.i.i.i.i1124.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i48.i.i.i.i1140.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1126.i if.then.i.i.i48.i.i.i.i1140.i: ; preds = %while.body.i.i33.i.i.i.i1125.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i1141.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1126.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1126.i: ; preds = %if.then.i.i.i48.i.i.i.i1140.i, %while.body.i.i33.i.i.i.i1125.i %462 = phi ptr [ %.pre.i.i.i.i1141.i, %if.then.i.i.i48.i.i.i.i1140.i ], [ %461, %while.body.i.i33.i.i.i.i1125.i ] %arrayidx.i.i.i35.i.i.i.i1127.i = getelementptr inbounds nuw i32, ptr %462, i64 %idxprom.i22.i.i.i.i.i1110.i %463 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i1127.i monotonic, align 4 %464 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1115.i, i32 %463, i32 %sub.i.i.i.i19.i.i.i.i1117.i, i32 31) %cmp.i.not.i.i36.i.i.i.i1128.i = icmp eq i32 %464, %port.sroa.43.0.i.i1119.i br i1 %cmp.i.not.i.i36.i.i.i.i1128.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1129.i, label %while.body.i.i33.i.i.i.i1125.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1129.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1126.i, %cond.false.i11.i.i.i.i1124.i fence acquire br i1 %cmp.i.i.i.i1121.i, label %if.then.i.i20.i.i.i.i.i1134.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1130.i if.then.i.i20.i.i.i.i.i1134.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1129.i %465 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i1138.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %465, i64 %idxprom.i18.i.i.i.i.i1103.i %arrayidx.i22.i.i.i.i.i1139.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i1138.i, i64 %sh_prom.i.i.i.i.i %466 = load i16, ptr %arrayidx.i.i19.i.i.i, align 1 store i16 %466, ptr %arrayidx.i22.i.i.i.i.i1139.i, align 1 br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1130.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1130.i: ; preds = %if.then.i.i20.i.i.i.i.i1134.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1129.i %conv.i.i39.i.i.i.i1131.i = xor i32 %port.sroa.43.0.i.i1119.i, 1 fence release %467 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i1132.i = getelementptr inbounds nuw i32, ptr %467, i64 %idxprom.i22.i.i.i.i.i1110.i store atomic i32 %conv.i.i39.i.i.i.i1131.i, ptr %arrayidx.i24.i.i.i.i.i1132.i monotonic, align 4 %add.i.i.i.i1133.i = add i64 %idx.0.i.i.i.i1120.i, 64 br label %while.cond.i.i.i.i1118.i, !llvm.loop !71 cond.false.i.i.i1142.i: ; preds = %while.cond.i.i.i.i1118.i %port.sroa.43.0.i.i1119.i.lcssa = phi i32 [ %port.sroa.43.0.i.i1119.i, %while.cond.i.i.i.i1118.i ] %.lcssa151 = phi ptr [ %457, %while.cond.i.i.i.i1118.i ] %.lcssa150 = phi i32 [ %458, %while.cond.i.i.i.i1118.i ] %468 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1115.i, i32 %.lcssa150, i32 %sub.i.i.i.i19.i.i.i.i1117.i, i32 31) %469 = icmp eq i32 %468, %port.sroa.43.0.i.i1119.i.lcssa br i1 %469, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit.i, label %while.body.i.i.i.i1143.i while.body.i.i.i.i1143.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1144.i, %cond.false.i.i.i1142.i %470 = phi ptr [ %471, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1144.i ], [ %.lcssa151, %cond.false.i.i.i1142.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i.i.i1157.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1144.i if.then.i.i.i.i.i1157.i: ; preds = %while.body.i.i.i.i1143.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i1158.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1144.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1144.i: ; preds = %if.then.i.i.i.i.i1157.i, %while.body.i.i.i.i1143.i %471 = phi ptr [ %.pre.i.i1158.i, %if.then.i.i.i.i.i1157.i ], [ %470, %while.body.i.i.i.i1143.i ] %arrayidx.i.i.i11.i.i1145.i = getelementptr inbounds nuw i32, ptr %471, i64 %idxprom.i22.i.i.i.i.i1110.i %472 = load atomic i32, ptr %arrayidx.i.i.i11.i.i1145.i monotonic, align 4 %473 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1115.i, i32 %472, i32 %sub.i.i.i.i19.i.i.i.i1117.i, i32 31) %cmp.i.not.i.i.i.i1146.i = icmp eq i32 %473, %port.sroa.43.0.i.i1119.i.lcssa br i1 %cmp.i.not.i.i.i.i1146.i, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit.i, label %while.body.i.i.i.i1143.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1144.i, %cond.false.i.i.i1142.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1115.i) fence release %474 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i1092.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i1148.i = icmp ne i64 %retval.sroa.2.1.i.i.i1092.i.lcssa, 0 %cmp2.i.i.i.i19.i.i1149.i = icmp eq i64 %474, %sh_prom.i.i.i.i.i %cmp.i.i.i.i20.i.i1150.i = select i1 %iszero.i.i.i.i.i18.i.i1148.i, i1 %cmp2.i.i.i.i19.i.i1149.i, i1 false %div8.i.i.i21.i.i1151.i = lshr i32 %retval.sroa.6.1.i.i.i1091.i.lcssa, 5 %475 = and i32 %retval.sroa.6.1.i.i.i1091.i.lcssa, 31 %idxprom.i.i.i22.i.i1152.i = zext nneg i32 %div8.i.i.i21.i.i1151.i to i64 %arrayidx.i.i.i23.i.i1153.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i1152.i %conv4.i.i.i24.i.i1154.i = zext i1 %cmp.i.i.i.i20.i.i1150.i to i32 %shl.i.i.i25.i.i1155.i = shl nuw i32 %conv4.i.i.i24.i.i1154.i, %475 %xor.i.i.i26.i.i1156.i = xor i32 %shl.i.i.i25.i.i1155.i, -1 %476 = atomicrmw and ptr %arrayidx.i.i.i23.i.i1153.i, i32 %xor.i.i.i26.i.i1156.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1115.i) call void @llvm.lifetime.start.p0(ptr nonnull %ch.addr.i1169.i) store i8 10, ptr %ch.addr.i1169.i, align 1, !tbaa !36 br label %for.cond.i.i.i1172.i for.cond.i.i.i1172.i: ; preds = %for.inc.i.i.i1207.i, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit.i %retval.sroa.6.0.i.i.i1173.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit.i ], [ %retval.sroa.6.2.i.i.i1208.i, %for.inc.i.i.i1207.i ] %retval.sroa.2.0.i.i.i1174.i = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit.i ], [ %retval.sroa.2.2.i.i.i1209.i, %for.inc.i.i.i1207.i ] %retval.sroa.8.0.i.i.i1175.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit.i ], [ %retval.sroa.8.2.i.i.i1210.i, %for.inc.i.i.i1207.i ] %index.0.i.i.i1176.i = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit.i ], [ %inc.i.i.i1211.i, %for.inc.i.i.i1207.i ] %477 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i1177.i = icmp ult i32 %index.0.i.i.i1176.i, %477 %spec.store.select.i.i.i1178.i = select i1 %cmp.not.i.i.i1177.i, i32 %index.0.i.i.i1176.i, i32 0 %478 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i1179.i = zext i32 %478 to i64 %div8.i.i.i.i.i1180.i = lshr i32 %spec.store.select.i.i.i1178.i, 5 %479 = and i32 %spec.store.select.i.i.i1178.i, 31 %idxprom.i.i.i.i.i1181.i = zext nneg i32 %div8.i.i.i.i.i1180.i to i64 %arrayidx.i.i.i.i.i1182.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i1181.i %480 = lshr i32 %478, %5 %conv4.i.i.i.i.i1183.i = and i32 %480, 1 %shl.i.i.i.i.i1184.i = shl nuw i32 %conv4.i.i.i.i.i1183.i, %479 %481 = atomicrmw or ptr %arrayidx.i.i.i.i.i1182.i, i32 %shl.i.i.i.i.i1184.i monotonic, align 4 %shl5.i.i.i.i.i1185.i = shl nuw i32 1, %479 %and.i.i.i.i.i1186.i = and i32 %shl5.i.i.i.i.i1185.i, %481 %tobool3.i.i.i.i1187.i = icmp ne i32 %and.i.i.i.i.i1186.i, 0 %482 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %478, i1 %tobool3.i.i.i.i1187.i) %cmp.i.not.i.i.i1188.i = icmp eq i32 %478, %482 br i1 %cmp.i.not.i.i.i1188.i, label %for.inc.i.i.i1207.i, label %if.then.i.i.i.i1189.i if.then.i.i.i.i1189.i: ; preds = %for.cond.i.i.i1172.i fence acquire %483 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i1190.i = zext i32 %spec.store.select.i.i.i1178.i to i64 %arrayidx.i.i.i.i1191.i = getelementptr inbounds nuw i32, ptr %483, i64 %idxprom.i.i.i.i1190.i %484 = load atomic i32, ptr %arrayidx.i.i.i.i1191.i monotonic, align 4 %485 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %478, i1 true) %iszero.i.i.i.i.i.i1192.i = icmp eq i32 %478, 0 %sub.i.i.i.i.i.i1193.i = select i1 %iszero.i.i.i.i.i.i1192.i, i32 -1, i32 %485 %486 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %478, i32 %484, i32 %sub.i.i.i.i.i.i1193.i, i32 31) %487 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i1194.i = getelementptr inbounds nuw i32, ptr %487, i64 %idxprom.i.i.i.i1190.i %488 = load atomic i32, ptr %arrayidx.i45.i.i.i1194.i monotonic, align 4 %489 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %478, i32 %488, i32 %sub.i.i.i.i.i.i1193.i, i32 31) %cmp.i48.not.i.i.i1195.i = icmp eq i32 %486, %489 br i1 %cmp.i48.not.i.i.i1195.i, label %if.end14.i.i.i1272.i, label %if.then12.i.i.i1196.i if.then12.i.i.i1196.i: ; preds = %if.then.i.i.i.i1189.i fence release %490 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1179.i, i1 true) %iszero.i.i.i.i.i.i.i1197.i = icmp ne i32 %478, 0 %cmp2.i.i.i.i.i.i1198.i = icmp eq i64 %490, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i1199.i = select i1 %iszero.i.i.i.i.i.i.i1197.i, i1 %cmp2.i.i.i.i.i.i1198.i, i1 false %conv4.i.i53.i.i.i1200.i = zext i1 %cmp.i.i.i.i.i.i1199.i to i32 %shl.i.i54.i.i.i1201.i = shl nuw i32 %conv4.i.i53.i.i.i1200.i, %479 %xor.i.i.i.i.i1202.i = xor i32 %shl.i.i54.i.i.i1201.i, -1 %491 = atomicrmw and ptr %arrayidx.i.i.i.i.i1182.i, i32 %xor.i.i.i.i.i1202.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %478) br label %cleanup26.i.i.i1203.i if.end14.i.i.i1272.i: ; preds = %if.then.i.i.i.i1189.i %492 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1179.i, i1 true) %iszero.i.i.i56.i.i.i1273.i = icmp ne i32 %478, 0 %cmp2.i.i.i.i.i1274.i = icmp eq i64 %492, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i1275.i = select i1 %iszero.i.i.i56.i.i.i1273.i, i1 %cmp2.i.i.i.i.i1274.i, i1 false br i1 %cmp.i.i.i.i.i1275.i, label %if.then16.i.i.i1277.i, label %if.end22.i.i.i1276.i if.then16.i.i.i1277.i: ; preds = %if.end14.i.i.i1272.i %493 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i1278.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %493, i64 %idxprom.i.i.i.i1190.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i1278.i, align 8, !tbaa !61 %arrayidx21.i.i.i1279.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %493, i64 %idxprom.i.i.i.i1190.i store i64 %conv.i.i.i.i.i1179.i, ptr %arrayidx21.i.i.i1279.i, align 8, !tbaa !64 br label %if.end22.i.i.i1276.i if.end22.i.i.i1276.i: ; preds = %if.then16.i.i.i1277.i, %if.end14.i.i.i1272.i tail call void @llvm.nvvm.bar.warp.sync(i32 %478) br label %cleanup26.i.i.i1203.i cleanup26.i.i.i1203.i: ; preds = %if.end22.i.i.i1276.i, %if.then12.i.i.i1196.i %retval.sroa.6.1.i.i.i1204.i = phi i32 [ %retval.sroa.6.0.i.i.i1173.i, %if.then12.i.i.i1196.i ], [ %spec.store.select.i.i.i1178.i, %if.end22.i.i.i1276.i ] %retval.sroa.2.1.i.i.i1205.i = phi i64 [ %retval.sroa.2.0.i.i.i1174.i, %if.then12.i.i.i1196.i ], [ %conv.i.i.i.i.i1179.i, %if.end22.i.i.i1276.i ] %retval.sroa.8.1.i.i.i1206.i = phi i32 [ %retval.sroa.8.0.i.i.i1175.i, %if.then12.i.i.i1196.i ], [ %486, %if.end22.i.i.i1276.i ] br i1 %cmp.i48.not.i.i.i1195.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1212.i, label %for.inc.i.i.i1207.i for.inc.i.i.i1207.i: ; preds = %cleanup26.i.i.i1203.i, %for.cond.i.i.i1172.i %retval.sroa.6.2.i.i.i1208.i = phi i32 [ %retval.sroa.6.1.i.i.i1204.i, %cleanup26.i.i.i1203.i ], [ %retval.sroa.6.0.i.i.i1173.i, %for.cond.i.i.i1172.i ] %retval.sroa.2.2.i.i.i1209.i = phi i64 [ %retval.sroa.2.1.i.i.i1205.i, %cleanup26.i.i.i1203.i ], [ %retval.sroa.2.0.i.i.i1174.i, %for.cond.i.i.i1172.i ] %retval.sroa.8.2.i.i.i1210.i = phi i32 [ %retval.sroa.8.1.i.i.i1206.i, %cleanup26.i.i.i1203.i ], [ %retval.sroa.8.0.i.i.i1175.i, %for.cond.i.i.i1172.i ] %inc.i.i.i1211.i = add i32 %spec.store.select.i.i.i1178.i, 1 br label %for.cond.i.i.i1172.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1212.i: ; preds = %cleanup26.i.i.i1203.i %retval.sroa.6.1.i.i.i1204.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i1204.i, %cleanup26.i.i.i1203.i ] %retval.sroa.2.1.i.i.i1205.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i1205.i, %cleanup26.i.i.i1203.i ] %retval.sroa.8.1.i.i.i1206.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i1206.i, %cleanup26.i.i.i1203.i ] fence acquire %494 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i1215.i = shl i32 %retval.sroa.6.1.i.i.i1204.i.lcssa, 5 %idxprom.i18.i.i.i.i.i1216.i = zext i32 %mul.i.i.i.i.i.i1215.i to i64 %arrayidx.i19.i.i.i.i.i1217.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %494, i64 %idxprom.i18.i.i.i.i.i1216.i %arrayidx.i21.i.i.i.i.i1218.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i1217.i, i64 %sh_prom.i.i.i.i.i store i64 1, ptr %arrayidx.i21.i.i.i.i.i1218.i, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i1220.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i1218.i, i64 8 %495 = load i8, ptr %ch.addr.i1169.i, align 1 store i8 %495, ptr %arrayidx6.i.i.i.i.i.i.i1220.i, align 8 %tobool.not.i.i.i.i.i.i1221.i = icmp eq i32 %retval.sroa.8.1.i.i.i1206.i.lcssa, 0 %conv.i.i.i.i.i.i1222.i = zext i1 %tobool.not.i.i.i.i.i.i1221.i to i32 fence release %496 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i1223.i = zext i32 %retval.sroa.6.1.i.i.i1204.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i1224.i = getelementptr inbounds nuw i32, ptr %496, i64 %idxprom.i22.i.i.i.i.i1223.i store atomic i32 %conv.i.i.i.i.i.i1222.i, ptr %arrayidx.i23.i.i.i.i.i1224.i monotonic, align 4 %497 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i1225.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %497, i64 %idxprom.i22.i.i.i.i.i1223.i %498 = load i64, ptr %arrayidx.i.i4.i.i1225.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i1226.i = trunc i64 %498 to i32 %conv.i.i.i.i17.i.i.i.i1228.i = trunc i64 %retval.sroa.2.1.i.i.i1205.i.lcssa to i32 %499 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i1228.i, i1 true) %iszero.i.i.i.i18.i.i.i.i1229.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i1228.i, 0 %sub.i.i.i.i19.i.i.i.i1230.i = select i1 %iszero.i.i.i.i18.i.i.i.i1229.i, i32 -1, i32 %499 br label %while.cond.i.i.i.i1231.i while.cond.i.i.i.i1231.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1243.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1212.i %port.sroa.43.0.i.i1232.i = phi i32 [ %conv.i.i.i.i.i.i1222.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1212.i ], [ %conv.i.i39.i.i.i.i1244.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1243.i ] %idx.0.i.i.i.i1233.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1212.i ], [ %add.i.i.i.i1246.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1243.i ] %cmp.i.i.i.i1234.i = icmp eq i64 %idx.0.i.i.i.i1233.i, 0 %500 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i1226.i, i1 %cmp.i.i.i.i1234.i) %tobool.not.i.i.i.i1235.i = icmp eq i32 %500, 0 %501 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i1236.i = getelementptr inbounds nuw i32, ptr %501, i64 %idxprom.i22.i.i.i.i.i1223.i %502 = load atomic i32, ptr %arrayidx.i22.i.i.i1236.i monotonic, align 4 br i1 %tobool.not.i.i.i.i1235.i, label %cond.false.i.i.i1255.i, label %cond.false.i11.i.i.i.i1237.i cond.false.i11.i.i.i.i1237.i: ; preds = %while.cond.i.i.i.i1231.i %503 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1228.i, i32 %502, i32 %sub.i.i.i.i19.i.i.i.i1230.i, i32 31) %504 = icmp eq i32 %503, %port.sroa.43.0.i.i1232.i br i1 %504, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1242.i, label %while.body.i.i33.i.i.i.i1238.i while.body.i.i33.i.i.i.i1238.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1239.i, %cond.false.i11.i.i.i.i1237.i %505 = phi ptr [ %506, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1239.i ], [ %501, %cond.false.i11.i.i.i.i1237.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i48.i.i.i.i1253.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1239.i if.then.i.i.i48.i.i.i.i1253.i: ; preds = %while.body.i.i33.i.i.i.i1238.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i1254.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1239.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1239.i: ; preds = %if.then.i.i.i48.i.i.i.i1253.i, %while.body.i.i33.i.i.i.i1238.i %506 = phi ptr [ %.pre.i.i.i.i1254.i, %if.then.i.i.i48.i.i.i.i1253.i ], [ %505, %while.body.i.i33.i.i.i.i1238.i ] %arrayidx.i.i.i35.i.i.i.i1240.i = getelementptr inbounds nuw i32, ptr %506, i64 %idxprom.i22.i.i.i.i.i1223.i %507 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i1240.i monotonic, align 4 %508 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1228.i, i32 %507, i32 %sub.i.i.i.i19.i.i.i.i1230.i, i32 31) %cmp.i.not.i.i36.i.i.i.i1241.i = icmp eq i32 %508, %port.sroa.43.0.i.i1232.i br i1 %cmp.i.not.i.i36.i.i.i.i1241.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1242.i, label %while.body.i.i33.i.i.i.i1238.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1242.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1239.i, %cond.false.i11.i.i.i.i1237.i fence acquire br i1 %cmp.i.i.i.i1234.i, label %if.then.i.i20.i.i.i.i.i1247.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1243.i if.then.i.i20.i.i.i.i.i1247.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1242.i %509 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i1251.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %509, i64 %idxprom.i18.i.i.i.i.i1216.i %arrayidx.i22.i.i.i.i.i1252.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i1251.i, i64 %sh_prom.i.i.i.i.i %510 = load i8, ptr %ch.addr.i1169.i, align 1 store i8 %510, ptr %arrayidx.i22.i.i.i.i.i1252.i, align 1 br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1243.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1243.i: ; preds = %if.then.i.i20.i.i.i.i.i1247.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1242.i %conv.i.i39.i.i.i.i1244.i = xor i32 %port.sroa.43.0.i.i1232.i, 1 fence release %511 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i1245.i = getelementptr inbounds nuw i32, ptr %511, i64 %idxprom.i22.i.i.i.i.i1223.i store atomic i32 %conv.i.i39.i.i.i.i1244.i, ptr %arrayidx.i24.i.i.i.i.i1245.i monotonic, align 4 %add.i.i.i.i1246.i = add i64 %idx.0.i.i.i.i1233.i, 64 br label %while.cond.i.i.i.i1231.i, !llvm.loop !71 cond.false.i.i.i1255.i: ; preds = %while.cond.i.i.i.i1231.i %port.sroa.43.0.i.i1232.i.lcssa = phi i32 [ %port.sroa.43.0.i.i1232.i, %while.cond.i.i.i.i1231.i ] %.lcssa149 = phi ptr [ %501, %while.cond.i.i.i.i1231.i ] %.lcssa148 = phi i32 [ %502, %while.cond.i.i.i.i1231.i ] %512 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1228.i, i32 %.lcssa148, i32 %sub.i.i.i.i19.i.i.i.i1230.i, i32 31) %513 = icmp eq i32 %512, %port.sroa.43.0.i.i1232.i.lcssa br i1 %513, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit1280.i, label %while.body.i.i.i.i1256.i while.body.i.i.i.i1256.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1257.i, %cond.false.i.i.i1255.i %514 = phi ptr [ %515, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1257.i ], [ %.lcssa149, %cond.false.i.i.i1255.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i.i.i1270.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1257.i if.then.i.i.i.i.i1270.i: ; preds = %while.body.i.i.i.i1256.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i1271.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1257.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1257.i: ; preds = %if.then.i.i.i.i.i1270.i, %while.body.i.i.i.i1256.i %515 = phi ptr [ %.pre.i.i1271.i, %if.then.i.i.i.i.i1270.i ], [ %514, %while.body.i.i.i.i1256.i ] %arrayidx.i.i.i11.i.i1258.i = getelementptr inbounds nuw i32, ptr %515, i64 %idxprom.i22.i.i.i.i.i1223.i %516 = load atomic i32, ptr %arrayidx.i.i.i11.i.i1258.i monotonic, align 4 %517 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1228.i, i32 %516, i32 %sub.i.i.i.i19.i.i.i.i1230.i, i32 31) %cmp.i.not.i.i.i.i1259.i = icmp eq i32 %517, %port.sroa.43.0.i.i1232.i.lcssa br i1 %cmp.i.not.i.i.i.i1259.i, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit1280.i, label %while.body.i.i.i.i1256.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit1280.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1257.i, %cond.false.i.i.i1255.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1228.i) fence release %518 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i1205.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i1261.i = icmp ne i64 %retval.sroa.2.1.i.i.i1205.i.lcssa, 0 %cmp2.i.i.i.i19.i.i1262.i = icmp eq i64 %518, %sh_prom.i.i.i.i.i %cmp.i.i.i.i20.i.i1263.i = select i1 %iszero.i.i.i.i.i18.i.i1261.i, i1 %cmp2.i.i.i.i19.i.i1262.i, i1 false %div8.i.i.i21.i.i1264.i = lshr i32 %retval.sroa.6.1.i.i.i1204.i.lcssa, 5 %519 = and i32 %retval.sroa.6.1.i.i.i1204.i.lcssa, 31 %idxprom.i.i.i22.i.i1265.i = zext nneg i32 %div8.i.i.i21.i.i1264.i to i64 %arrayidx.i.i.i23.i.i1266.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i1265.i %conv4.i.i.i24.i.i1267.i = zext i1 %cmp.i.i.i.i20.i.i1263.i to i32 %shl.i.i.i25.i.i1268.i = shl nuw i32 %conv4.i.i.i24.i.i1267.i, %519 %xor.i.i.i26.i.i1269.i = xor i32 %shl.i.i.i25.i.i1268.i, -1 %520 = atomicrmw and ptr %arrayidx.i.i.i23.i.i1266.i, i32 %xor.i.i.i26.i.i1269.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1228.i) call void @llvm.lifetime.end.p0(ptr nonnull %ch.addr.i1169.i) br label %for.cond.i.i.i1292.i for.cond.i.i.i1292.i: ; preds = %for.inc.i.i.i1327.i, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit1280.i %retval.sroa.6.0.i.i.i1293.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit1280.i ], [ %retval.sroa.6.2.i.i.i1328.i, %for.inc.i.i.i1327.i ] %retval.sroa.2.0.i.i.i1294.i = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit1280.i ], [ %retval.sroa.2.2.i.i.i1329.i, %for.inc.i.i.i1327.i ] %retval.sroa.8.0.i.i.i1295.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit1280.i ], [ %retval.sroa.8.2.i.i.i1330.i, %for.inc.i.i.i1327.i ] %index.0.i.i.i1296.i = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit1280.i ], [ %inc.i.i.i1331.i, %for.inc.i.i.i1327.i ] %521 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i1297.i = icmp ult i32 %index.0.i.i.i1296.i, %521 %spec.store.select.i.i.i1298.i = select i1 %cmp.not.i.i.i1297.i, i32 %index.0.i.i.i1296.i, i32 0 %522 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i1299.i = zext i32 %522 to i64 %div8.i.i.i.i.i1300.i = lshr i32 %spec.store.select.i.i.i1298.i, 5 %523 = and i32 %spec.store.select.i.i.i1298.i, 31 %idxprom.i.i.i.i.i1301.i = zext nneg i32 %div8.i.i.i.i.i1300.i to i64 %arrayidx.i.i.i.i.i1302.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i1301.i %524 = lshr i32 %522, %5 %conv4.i.i.i.i.i1303.i = and i32 %524, 1 %shl.i.i.i.i.i1304.i = shl nuw i32 %conv4.i.i.i.i.i1303.i, %523 %525 = atomicrmw or ptr %arrayidx.i.i.i.i.i1302.i, i32 %shl.i.i.i.i.i1304.i monotonic, align 4 %shl5.i.i.i.i.i1305.i = shl nuw i32 1, %523 %and.i.i.i.i.i1306.i = and i32 %shl5.i.i.i.i.i1305.i, %525 %tobool3.i.i.i.i1307.i = icmp ne i32 %and.i.i.i.i.i1306.i, 0 %526 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %522, i1 %tobool3.i.i.i.i1307.i) %cmp.i.not.i.i.i1308.i = icmp eq i32 %522, %526 br i1 %cmp.i.not.i.i.i1308.i, label %for.inc.i.i.i1327.i, label %if.then.i.i.i.i1309.i if.then.i.i.i.i1309.i: ; preds = %for.cond.i.i.i1292.i fence acquire %527 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i1310.i = zext i32 %spec.store.select.i.i.i1298.i to i64 %arrayidx.i.i.i.i1311.i = getelementptr inbounds nuw i32, ptr %527, i64 %idxprom.i.i.i.i1310.i %528 = load atomic i32, ptr %arrayidx.i.i.i.i1311.i monotonic, align 4 %529 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %522, i1 true) %iszero.i.i.i.i.i.i1312.i = icmp eq i32 %522, 0 %sub.i.i.i.i.i.i1313.i = select i1 %iszero.i.i.i.i.i.i1312.i, i32 -1, i32 %529 %530 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %522, i32 %528, i32 %sub.i.i.i.i.i.i1313.i, i32 31) %531 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i1314.i = getelementptr inbounds nuw i32, ptr %531, i64 %idxprom.i.i.i.i1310.i %532 = load atomic i32, ptr %arrayidx.i45.i.i.i1314.i monotonic, align 4 %533 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %522, i32 %532, i32 %sub.i.i.i.i.i.i1313.i, i32 31) %cmp.i48.not.i.i.i1315.i = icmp eq i32 %530, %533 br i1 %cmp.i48.not.i.i.i1315.i, label %if.end14.i.i.i1392.i, label %if.then12.i.i.i1316.i if.then12.i.i.i1316.i: ; preds = %if.then.i.i.i.i1309.i fence release %534 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1299.i, i1 true) %iszero.i.i.i.i.i.i.i1317.i = icmp ne i32 %522, 0 %cmp2.i.i.i.i.i.i1318.i = icmp eq i64 %534, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i1319.i = select i1 %iszero.i.i.i.i.i.i.i1317.i, i1 %cmp2.i.i.i.i.i.i1318.i, i1 false %conv4.i.i53.i.i.i1320.i = zext i1 %cmp.i.i.i.i.i.i1319.i to i32 %shl.i.i54.i.i.i1321.i = shl nuw i32 %conv4.i.i53.i.i.i1320.i, %523 %xor.i.i.i.i.i1322.i = xor i32 %shl.i.i54.i.i.i1321.i, -1 %535 = atomicrmw and ptr %arrayidx.i.i.i.i.i1302.i, i32 %xor.i.i.i.i.i1322.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %522) br label %cleanup26.i.i.i1323.i if.end14.i.i.i1392.i: ; preds = %if.then.i.i.i.i1309.i %536 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1299.i, i1 true) %iszero.i.i.i56.i.i.i1393.i = icmp ne i32 %522, 0 %cmp2.i.i.i.i.i1394.i = icmp eq i64 %536, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i1395.i = select i1 %iszero.i.i.i56.i.i.i1393.i, i1 %cmp2.i.i.i.i.i1394.i, i1 false br i1 %cmp.i.i.i.i.i1395.i, label %if.then16.i.i.i1397.i, label %if.end22.i.i.i1396.i if.then16.i.i.i1397.i: ; preds = %if.end14.i.i.i1392.i %537 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i1398.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %537, i64 %idxprom.i.i.i.i1310.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i1398.i, align 8, !tbaa !61 %arrayidx21.i.i.i1399.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %537, i64 %idxprom.i.i.i.i1310.i store i64 %conv.i.i.i.i.i1299.i, ptr %arrayidx21.i.i.i1399.i, align 8, !tbaa !64 br label %if.end22.i.i.i1396.i if.end22.i.i.i1396.i: ; preds = %if.then16.i.i.i1397.i, %if.end14.i.i.i1392.i tail call void @llvm.nvvm.bar.warp.sync(i32 %522) br label %cleanup26.i.i.i1323.i cleanup26.i.i.i1323.i: ; preds = %if.end22.i.i.i1396.i, %if.then12.i.i.i1316.i %retval.sroa.6.1.i.i.i1324.i = phi i32 [ %retval.sroa.6.0.i.i.i1293.i, %if.then12.i.i.i1316.i ], [ %spec.store.select.i.i.i1298.i, %if.end22.i.i.i1396.i ] %retval.sroa.2.1.i.i.i1325.i = phi i64 [ %retval.sroa.2.0.i.i.i1294.i, %if.then12.i.i.i1316.i ], [ %conv.i.i.i.i.i1299.i, %if.end22.i.i.i1396.i ] %retval.sroa.8.1.i.i.i1326.i = phi i32 [ %retval.sroa.8.0.i.i.i1295.i, %if.then12.i.i.i1316.i ], [ %530, %if.end22.i.i.i1396.i ] br i1 %cmp.i48.not.i.i.i1315.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1332.i, label %for.inc.i.i.i1327.i for.inc.i.i.i1327.i: ; preds = %cleanup26.i.i.i1323.i, %for.cond.i.i.i1292.i %retval.sroa.6.2.i.i.i1328.i = phi i32 [ %retval.sroa.6.1.i.i.i1324.i, %cleanup26.i.i.i1323.i ], [ %retval.sroa.6.0.i.i.i1293.i, %for.cond.i.i.i1292.i ] %retval.sroa.2.2.i.i.i1329.i = phi i64 [ %retval.sroa.2.1.i.i.i1325.i, %cleanup26.i.i.i1323.i ], [ %retval.sroa.2.0.i.i.i1294.i, %for.cond.i.i.i1292.i ] %retval.sroa.8.2.i.i.i1330.i = phi i32 [ %retval.sroa.8.1.i.i.i1326.i, %cleanup26.i.i.i1323.i ], [ %retval.sroa.8.0.i.i.i1295.i, %for.cond.i.i.i1292.i ] %inc.i.i.i1331.i = add i32 %spec.store.select.i.i.i1298.i, 1 br label %for.cond.i.i.i1292.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1332.i: ; preds = %cleanup26.i.i.i1323.i %retval.sroa.6.1.i.i.i1324.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i1324.i, %cleanup26.i.i.i1323.i ] %retval.sroa.2.1.i.i.i1325.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i1325.i, %cleanup26.i.i.i1323.i ] %retval.sroa.8.1.i.i.i1326.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i1326.i, %cleanup26.i.i.i1323.i ] fence acquire %538 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i1335.i = shl i32 %retval.sroa.6.1.i.i.i1324.i.lcssa, 5 %idxprom.i18.i.i.i.i.i1336.i = zext i32 %mul.i.i.i.i.i.i1335.i to i64 %arrayidx.i19.i.i.i.i.i1337.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %538, i64 %idxprom.i18.i.i.i.i.i1336.i %arrayidx.i21.i.i.i.i.i1338.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i1337.i, i64 %sh_prom.i.i.i.i.i store i64 6, ptr %arrayidx.i21.i.i.i.i.i1338.i, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i1340.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i1338.i, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %arrayidx6.i.i.i.i.i.i.i1340.i, ptr noundef nonnull align 1 dereferenceable(6) @.str36, i64 6, i1 false) %tobool.not.i.i.i.i.i.i1341.i = icmp eq i32 %retval.sroa.8.1.i.i.i1326.i.lcssa, 0 %conv.i.i.i.i.i.i1342.i = zext i1 %tobool.not.i.i.i.i.i.i1341.i to i32 fence release %539 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i1343.i = zext i32 %retval.sroa.6.1.i.i.i1324.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i1344.i = getelementptr inbounds nuw i32, ptr %539, i64 %idxprom.i22.i.i.i.i.i1343.i store atomic i32 %conv.i.i.i.i.i.i1342.i, ptr %arrayidx.i23.i.i.i.i.i1344.i monotonic, align 4 %540 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i1345.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %540, i64 %idxprom.i22.i.i.i.i.i1343.i %541 = load i64, ptr %arrayidx.i.i4.i.i1345.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i1346.i = trunc i64 %541 to i32 %conv.i.i.i.i17.i.i.i.i1348.i = trunc i64 %retval.sroa.2.1.i.i.i1325.i.lcssa to i32 %542 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i1348.i, i1 true) %iszero.i.i.i.i18.i.i.i.i1349.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i1348.i, 0 %sub.i.i.i.i19.i.i.i.i1350.i = select i1 %iszero.i.i.i.i18.i.i.i.i1349.i, i32 -1, i32 %542 br label %while.cond.i.i.i.i1351.i while.cond.i.i.i.i1351.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1363.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1332.i %port.sroa.43.0.i.i1352.i = phi i32 [ %conv.i.i.i.i.i.i1342.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1332.i ], [ %conv.i.i39.i.i.i.i1364.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1363.i ] %idx.0.i.i.i.i1353.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1332.i ], [ %add.i.i.i.i1366.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1363.i ] %cmp.i.i.i2.i1354.i = icmp eq i64 %idx.0.i.i.i.i1353.i, 0 %543 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i1346.i, i1 %cmp.i.i.i2.i1354.i) %tobool.not.i.i.i.i1355.i = icmp eq i32 %543, 0 %544 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i1356.i = getelementptr inbounds nuw i32, ptr %544, i64 %idxprom.i22.i.i.i.i.i1343.i %545 = load atomic i32, ptr %arrayidx.i22.i.i.i1356.i monotonic, align 4 br i1 %tobool.not.i.i.i.i1355.i, label %cond.false.i.i.i1375.i, label %cond.false.i11.i.i.i.i1357.i cond.false.i11.i.i.i.i1357.i: ; preds = %while.cond.i.i.i.i1351.i %546 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1348.i, i32 %545, i32 %sub.i.i.i.i19.i.i.i.i1350.i, i32 31) %547 = icmp eq i32 %546, %port.sroa.43.0.i.i1352.i br i1 %547, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1362.i, label %while.body.i.i33.i.i.i.i1358.i while.body.i.i33.i.i.i.i1358.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1359.i, %cond.false.i11.i.i.i.i1357.i %548 = phi ptr [ %549, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1359.i ], [ %544, %cond.false.i11.i.i.i.i1357.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i48.i.i.i.i1373.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1359.i if.then.i.i.i48.i.i.i.i1373.i: ; preds = %while.body.i.i33.i.i.i.i1358.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i1374.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1359.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1359.i: ; preds = %if.then.i.i.i48.i.i.i.i1373.i, %while.body.i.i33.i.i.i.i1358.i %549 = phi ptr [ %.pre.i.i.i.i1374.i, %if.then.i.i.i48.i.i.i.i1373.i ], [ %548, %while.body.i.i33.i.i.i.i1358.i ] %arrayidx.i.i.i35.i.i.i.i1360.i = getelementptr inbounds nuw i32, ptr %549, i64 %idxprom.i22.i.i.i.i.i1343.i %550 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i1360.i monotonic, align 4 %551 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1348.i, i32 %550, i32 %sub.i.i.i.i19.i.i.i.i1350.i, i32 31) %cmp.i.not.i.i36.i.i.i.i1361.i = icmp eq i32 %551, %port.sroa.43.0.i.i1352.i br i1 %cmp.i.not.i.i36.i.i.i.i1361.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1362.i, label %while.body.i.i33.i.i.i.i1358.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1362.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1359.i, %cond.false.i11.i.i.i.i1357.i fence acquire br i1 %cmp.i.i.i2.i1354.i, label %if.then.i.i20.i.i.i.i.i1367.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1363.i if.then.i.i20.i.i.i.i.i1367.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1362.i %552 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i1371.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %552, i64 %idxprom.i18.i.i.i.i.i1336.i %arrayidx.i22.i.i.i.i.i1372.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i1371.i, i64 %sh_prom.i.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %arrayidx.i22.i.i.i.i.i1372.i, ptr noundef nonnull align 1 dereferenceable(6) @.str36, i64 6, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1363.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1363.i: ; preds = %if.then.i.i20.i.i.i.i.i1367.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1362.i %conv.i.i39.i.i.i.i1364.i = xor i32 %port.sroa.43.0.i.i1352.i, 1 fence release %553 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i1365.i = getelementptr inbounds nuw i32, ptr %553, i64 %idxprom.i22.i.i.i.i.i1343.i store atomic i32 %conv.i.i39.i.i.i.i1364.i, ptr %arrayidx.i24.i.i.i.i.i1365.i monotonic, align 4 %add.i.i.i.i1366.i = add i64 %idx.0.i.i.i.i1353.i, 64 br label %while.cond.i.i.i.i1351.i, !llvm.loop !71 cond.false.i.i.i1375.i: ; preds = %while.cond.i.i.i.i1351.i %port.sroa.43.0.i.i1352.i.lcssa = phi i32 [ %port.sroa.43.0.i.i1352.i, %while.cond.i.i.i.i1351.i ] %.lcssa147 = phi ptr [ %544, %while.cond.i.i.i.i1351.i ] %.lcssa146 = phi i32 [ %545, %while.cond.i.i.i.i1351.i ] %554 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1348.i, i32 %.lcssa146, i32 %sub.i.i.i.i19.i.i.i.i1350.i, i32 31) %555 = icmp eq i32 %554, %port.sroa.43.0.i.i1352.i.lcssa br i1 %555, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1400.i, label %while.body.i.i.i.i1376.i while.body.i.i.i.i1376.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1377.i, %cond.false.i.i.i1375.i %556 = phi ptr [ %557, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1377.i ], [ %.lcssa147, %cond.false.i.i.i1375.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i.i.i1390.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1377.i if.then.i.i.i.i.i1390.i: ; preds = %while.body.i.i.i.i1376.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i1391.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1377.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1377.i: ; preds = %if.then.i.i.i.i.i1390.i, %while.body.i.i.i.i1376.i %557 = phi ptr [ %.pre.i.i1391.i, %if.then.i.i.i.i.i1390.i ], [ %556, %while.body.i.i.i.i1376.i ] %arrayidx.i.i.i11.i.i1378.i = getelementptr inbounds nuw i32, ptr %557, i64 %idxprom.i22.i.i.i.i.i1343.i %558 = load atomic i32, ptr %arrayidx.i.i.i11.i.i1378.i monotonic, align 4 %559 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1348.i, i32 %558, i32 %sub.i.i.i.i19.i.i.i.i1350.i, i32 31) %cmp.i.not.i.i.i.i1379.i = icmp eq i32 %559, %port.sroa.43.0.i.i1352.i.lcssa br i1 %cmp.i.not.i.i.i.i1379.i, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1400.i, label %while.body.i.i.i.i1376.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1400.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1377.i, %cond.false.i.i.i1375.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1348.i) fence release %560 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i1325.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i1381.i = icmp ne i64 %retval.sroa.2.1.i.i.i1325.i.lcssa, 0 %cmp2.i.i.i.i19.i.i1382.i = icmp eq i64 %560, %sh_prom.i.i.i.i.i %cmp.i.i.i.i20.i.i1383.i = select i1 %iszero.i.i.i.i.i18.i.i1381.i, i1 %cmp2.i.i.i.i19.i.i1382.i, i1 false %div8.i.i.i21.i.i1384.i = lshr i32 %retval.sroa.6.1.i.i.i1324.i.lcssa, 5 %561 = and i32 %retval.sroa.6.1.i.i.i1324.i.lcssa, 31 %idxprom.i.i.i22.i.i1385.i = zext nneg i32 %div8.i.i.i21.i.i1384.i to i64 %arrayidx.i.i.i23.i.i1386.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i1385.i %conv4.i.i.i24.i.i1387.i = zext i1 %cmp.i.i.i.i20.i.i1383.i to i32 %shl.i.i.i25.i.i1388.i = shl nuw i32 %conv4.i.i.i24.i.i1387.i, %561 %xor.i.i.i26.i.i1389.i = xor i32 %shl.i.i.i25.i.i1388.i, -1 %562 = atomicrmw and ptr %arrayidx.i.i.i23.i.i1386.i, i32 %xor.i.i.i26.i.i1389.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1348.i) br label %for.cond.i.i.i1404.i for.cond.i.i.i1404.i: ; preds = %for.inc.i.i.i1439.i, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1400.i %retval.sroa.6.0.i.i.i1405.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1400.i ], [ %retval.sroa.6.2.i.i.i1440.i, %for.inc.i.i.i1439.i ] %retval.sroa.2.0.i.i.i1406.i = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1400.i ], [ %retval.sroa.2.2.i.i.i1441.i, %for.inc.i.i.i1439.i ] %retval.sroa.8.0.i.i.i1407.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1400.i ], [ %retval.sroa.8.2.i.i.i1442.i, %for.inc.i.i.i1439.i ] %index.0.i.i.i1408.i = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1400.i ], [ %inc.i.i.i1443.i, %for.inc.i.i.i1439.i ] %563 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i1409.i = icmp ult i32 %index.0.i.i.i1408.i, %563 %spec.store.select.i.i.i1410.i = select i1 %cmp.not.i.i.i1409.i, i32 %index.0.i.i.i1408.i, i32 0 %564 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i1411.i = zext i32 %564 to i64 %div8.i.i.i.i.i1412.i = lshr i32 %spec.store.select.i.i.i1410.i, 5 %565 = and i32 %spec.store.select.i.i.i1410.i, 31 %idxprom.i.i.i.i.i1413.i = zext nneg i32 %div8.i.i.i.i.i1412.i to i64 %arrayidx.i.i.i.i.i1414.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i1413.i %566 = lshr i32 %564, %5 %conv4.i.i.i.i.i1415.i = and i32 %566, 1 %shl.i.i.i.i.i1416.i = shl nuw i32 %conv4.i.i.i.i.i1415.i, %565 %567 = atomicrmw or ptr %arrayidx.i.i.i.i.i1414.i, i32 %shl.i.i.i.i.i1416.i monotonic, align 4 %shl5.i.i.i.i.i1417.i = shl nuw i32 1, %565 %and.i.i.i.i.i1418.i = and i32 %shl5.i.i.i.i.i1417.i, %567 %tobool3.i.i.i.i1419.i = icmp ne i32 %and.i.i.i.i.i1418.i, 0 %568 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %564, i1 %tobool3.i.i.i.i1419.i) %cmp.i.not.i.i.i1420.i = icmp eq i32 %564, %568 br i1 %cmp.i.not.i.i.i1420.i, label %for.inc.i.i.i1439.i, label %if.then.i.i.i.i1421.i if.then.i.i.i.i1421.i: ; preds = %for.cond.i.i.i1404.i fence acquire %569 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i1422.i = zext i32 %spec.store.select.i.i.i1410.i to i64 %arrayidx.i.i.i.i1423.i = getelementptr inbounds nuw i32, ptr %569, i64 %idxprom.i.i.i.i1422.i %570 = load atomic i32, ptr %arrayidx.i.i.i.i1423.i monotonic, align 4 %571 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %564, i1 true) %iszero.i.i.i.i.i.i1424.i = icmp eq i32 %564, 0 %sub.i.i.i.i.i.i1425.i = select i1 %iszero.i.i.i.i.i.i1424.i, i32 -1, i32 %571 %572 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %564, i32 %570, i32 %sub.i.i.i.i.i.i1425.i, i32 31) %573 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i1426.i = getelementptr inbounds nuw i32, ptr %573, i64 %idxprom.i.i.i.i1422.i %574 = load atomic i32, ptr %arrayidx.i45.i.i.i1426.i monotonic, align 4 %575 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %564, i32 %574, i32 %sub.i.i.i.i.i.i1425.i, i32 31) %cmp.i48.not.i.i.i1427.i = icmp eq i32 %572, %575 br i1 %cmp.i48.not.i.i.i1427.i, label %if.end14.i.i.i1504.i, label %if.then12.i.i.i1428.i if.then12.i.i.i1428.i: ; preds = %if.then.i.i.i.i1421.i fence release %576 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1411.i, i1 true) %iszero.i.i.i.i.i.i.i1429.i = icmp ne i32 %564, 0 %cmp2.i.i.i.i.i.i1430.i = icmp eq i64 %576, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i1431.i = select i1 %iszero.i.i.i.i.i.i.i1429.i, i1 %cmp2.i.i.i.i.i.i1430.i, i1 false %conv4.i.i53.i.i.i1432.i = zext i1 %cmp.i.i.i.i.i.i1431.i to i32 %shl.i.i54.i.i.i1433.i = shl nuw i32 %conv4.i.i53.i.i.i1432.i, %565 %xor.i.i.i.i.i1434.i = xor i32 %shl.i.i54.i.i.i1433.i, -1 %577 = atomicrmw and ptr %arrayidx.i.i.i.i.i1414.i, i32 %xor.i.i.i.i.i1434.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %564) br label %cleanup26.i.i.i1435.i if.end14.i.i.i1504.i: ; preds = %if.then.i.i.i.i1421.i %578 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1411.i, i1 true) %iszero.i.i.i56.i.i.i1505.i = icmp ne i32 %564, 0 %cmp2.i.i.i.i.i1506.i = icmp eq i64 %578, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i1507.i = select i1 %iszero.i.i.i56.i.i.i1505.i, i1 %cmp2.i.i.i.i.i1506.i, i1 false br i1 %cmp.i.i.i.i.i1507.i, label %if.then16.i.i.i1509.i, label %if.end22.i.i.i1508.i if.then16.i.i.i1509.i: ; preds = %if.end14.i.i.i1504.i %579 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i1510.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %579, i64 %idxprom.i.i.i.i1422.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i1510.i, align 8, !tbaa !61 %arrayidx21.i.i.i1511.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %579, i64 %idxprom.i.i.i.i1422.i store i64 %conv.i.i.i.i.i1411.i, ptr %arrayidx21.i.i.i1511.i, align 8, !tbaa !64 br label %if.end22.i.i.i1508.i if.end22.i.i.i1508.i: ; preds = %if.then16.i.i.i1509.i, %if.end14.i.i.i1504.i tail call void @llvm.nvvm.bar.warp.sync(i32 %564) br label %cleanup26.i.i.i1435.i cleanup26.i.i.i1435.i: ; preds = %if.end22.i.i.i1508.i, %if.then12.i.i.i1428.i %retval.sroa.6.1.i.i.i1436.i = phi i32 [ %retval.sroa.6.0.i.i.i1405.i, %if.then12.i.i.i1428.i ], [ %spec.store.select.i.i.i1410.i, %if.end22.i.i.i1508.i ] %retval.sroa.2.1.i.i.i1437.i = phi i64 [ %retval.sroa.2.0.i.i.i1406.i, %if.then12.i.i.i1428.i ], [ %conv.i.i.i.i.i1411.i, %if.end22.i.i.i1508.i ] %retval.sroa.8.1.i.i.i1438.i = phi i32 [ %retval.sroa.8.0.i.i.i1407.i, %if.then12.i.i.i1428.i ], [ %572, %if.end22.i.i.i1508.i ] br i1 %cmp.i48.not.i.i.i1427.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1444.i, label %for.inc.i.i.i1439.i for.inc.i.i.i1439.i: ; preds = %cleanup26.i.i.i1435.i, %for.cond.i.i.i1404.i %retval.sroa.6.2.i.i.i1440.i = phi i32 [ %retval.sroa.6.1.i.i.i1436.i, %cleanup26.i.i.i1435.i ], [ %retval.sroa.6.0.i.i.i1405.i, %for.cond.i.i.i1404.i ] %retval.sroa.2.2.i.i.i1441.i = phi i64 [ %retval.sroa.2.1.i.i.i1437.i, %cleanup26.i.i.i1435.i ], [ %retval.sroa.2.0.i.i.i1406.i, %for.cond.i.i.i1404.i ] %retval.sroa.8.2.i.i.i1442.i = phi i32 [ %retval.sroa.8.1.i.i.i1438.i, %cleanup26.i.i.i1435.i ], [ %retval.sroa.8.0.i.i.i1407.i, %for.cond.i.i.i1404.i ] %inc.i.i.i1443.i = add i32 %spec.store.select.i.i.i1410.i, 1 br label %for.cond.i.i.i1404.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1444.i: ; preds = %cleanup26.i.i.i1435.i %retval.sroa.6.1.i.i.i1436.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i1436.i, %cleanup26.i.i.i1435.i ] %retval.sroa.2.1.i.i.i1437.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i1437.i, %cleanup26.i.i.i1435.i ] %retval.sroa.8.1.i.i.i1438.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i1438.i, %cleanup26.i.i.i1435.i ] fence acquire %580 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i1447.i = shl i32 %retval.sroa.6.1.i.i.i1436.i.lcssa, 5 %idxprom.i18.i.i.i.i.i1448.i = zext i32 %mul.i.i.i.i.i.i1447.i to i64 %arrayidx.i19.i.i.i.i.i1449.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %580, i64 %idxprom.i18.i.i.i.i.i1448.i %arrayidx.i21.i.i.i.i.i1450.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i1449.i, i64 %sh_prom.i.i.i.i.i store i64 8, ptr %arrayidx.i21.i.i.i.i.i1450.i, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i1452.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i1450.i, i64 8 store i64 8031079685372080485, ptr %arrayidx6.i.i.i.i.i.i.i1452.i, align 8 %tobool.not.i.i.i.i.i.i1453.i = icmp eq i32 %retval.sroa.8.1.i.i.i1438.i.lcssa, 0 %conv.i.i.i.i.i.i1454.i = zext i1 %tobool.not.i.i.i.i.i.i1453.i to i32 fence release %581 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i1455.i = zext i32 %retval.sroa.6.1.i.i.i1436.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i1456.i = getelementptr inbounds nuw i32, ptr %581, i64 %idxprom.i22.i.i.i.i.i1455.i store atomic i32 %conv.i.i.i.i.i.i1454.i, ptr %arrayidx.i23.i.i.i.i.i1456.i monotonic, align 4 %582 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i1457.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %582, i64 %idxprom.i22.i.i.i.i.i1455.i %583 = load i64, ptr %arrayidx.i.i4.i.i1457.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i1458.i = trunc i64 %583 to i32 %conv.i.i.i.i17.i.i.i.i1460.i = trunc i64 %retval.sroa.2.1.i.i.i1437.i.lcssa to i32 %584 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i1460.i, i1 true) %iszero.i.i.i.i18.i.i.i.i1461.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i1460.i, 0 %sub.i.i.i.i19.i.i.i.i1462.i = select i1 %iszero.i.i.i.i18.i.i.i.i1461.i, i32 -1, i32 %584 br label %while.cond.i.i.i.i1463.i while.cond.i.i.i.i1463.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1475.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1444.i %port.sroa.43.0.i.i1464.i = phi i32 [ %conv.i.i.i.i.i.i1454.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1444.i ], [ %conv.i.i39.i.i.i.i1476.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1475.i ] %idx.0.i.i.i.i1465.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1444.i ], [ %add.i.i.i.i1478.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1475.i ] %cmp.i.i.i.i1466.i = icmp eq i64 %idx.0.i.i.i.i1465.i, 0 %585 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i1458.i, i1 %cmp.i.i.i.i1466.i) %tobool.not.i.i.i.i1467.i = icmp eq i32 %585, 0 %586 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i1468.i = getelementptr inbounds nuw i32, ptr %586, i64 %idxprom.i22.i.i.i.i.i1455.i %587 = load atomic i32, ptr %arrayidx.i22.i.i.i1468.i monotonic, align 4 br i1 %tobool.not.i.i.i.i1467.i, label %cond.false.i.i.i1487.i, label %cond.false.i11.i.i.i.i1469.i cond.false.i11.i.i.i.i1469.i: ; preds = %while.cond.i.i.i.i1463.i %588 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1460.i, i32 %587, i32 %sub.i.i.i.i19.i.i.i.i1462.i, i32 31) %589 = icmp eq i32 %588, %port.sroa.43.0.i.i1464.i br i1 %589, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1474.i, label %while.body.i.i33.i.i.i.i1470.i while.body.i.i33.i.i.i.i1470.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1471.i, %cond.false.i11.i.i.i.i1469.i %590 = phi ptr [ %591, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1471.i ], [ %586, %cond.false.i11.i.i.i.i1469.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i48.i.i.i.i1485.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1471.i if.then.i.i.i48.i.i.i.i1485.i: ; preds = %while.body.i.i33.i.i.i.i1470.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i1486.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1471.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1471.i: ; preds = %if.then.i.i.i48.i.i.i.i1485.i, %while.body.i.i33.i.i.i.i1470.i %591 = phi ptr [ %.pre.i.i.i.i1486.i, %if.then.i.i.i48.i.i.i.i1485.i ], [ %590, %while.body.i.i33.i.i.i.i1470.i ] %arrayidx.i.i.i35.i.i.i.i1472.i = getelementptr inbounds nuw i32, ptr %591, i64 %idxprom.i22.i.i.i.i.i1455.i %592 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i1472.i monotonic, align 4 %593 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1460.i, i32 %592, i32 %sub.i.i.i.i19.i.i.i.i1462.i, i32 31) %cmp.i.not.i.i36.i.i.i.i1473.i = icmp eq i32 %593, %port.sroa.43.0.i.i1464.i br i1 %cmp.i.not.i.i36.i.i.i.i1473.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1474.i, label %while.body.i.i33.i.i.i.i1470.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1474.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1471.i, %cond.false.i11.i.i.i.i1469.i fence acquire br i1 %cmp.i.i.i.i1466.i, label %if.then.i.i20.i.i.i.i.i1479.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1475.i if.then.i.i20.i.i.i.i.i1479.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1474.i %594 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i1483.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %594, i64 %idxprom.i18.i.i.i.i.i1448.i %arrayidx.i22.i.i.i.i.i1484.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i1483.i, i64 %sh_prom.i.i.i.i.i store i64 8031079685372080485, ptr %arrayidx.i22.i.i.i.i.i1484.i, align 1 br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1475.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1475.i: ; preds = %if.then.i.i20.i.i.i.i.i1479.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1474.i %conv.i.i39.i.i.i.i1476.i = xor i32 %port.sroa.43.0.i.i1464.i, 1 fence release %595 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i1477.i = getelementptr inbounds nuw i32, ptr %595, i64 %idxprom.i22.i.i.i.i.i1455.i store atomic i32 %conv.i.i39.i.i.i.i1476.i, ptr %arrayidx.i24.i.i.i.i.i1477.i monotonic, align 4 %add.i.i.i.i1478.i = add i64 %idx.0.i.i.i.i1465.i, 64 br label %while.cond.i.i.i.i1463.i, !llvm.loop !71 cond.false.i.i.i1487.i: ; preds = %while.cond.i.i.i.i1463.i %port.sroa.43.0.i.i1464.i.lcssa = phi i32 [ %port.sroa.43.0.i.i1464.i, %while.cond.i.i.i.i1463.i ] %.lcssa145 = phi ptr [ %586, %while.cond.i.i.i.i1463.i ] %.lcssa144 = phi i32 [ %587, %while.cond.i.i.i.i1463.i ] %596 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1460.i, i32 %.lcssa144, i32 %sub.i.i.i.i19.i.i.i.i1462.i, i32 31) %597 = icmp eq i32 %596, %port.sroa.43.0.i.i1464.i.lcssa br i1 %597, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit1512.i, label %while.body.i.i.i.i1488.i while.body.i.i.i.i1488.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1489.i, %cond.false.i.i.i1487.i %598 = phi ptr [ %599, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1489.i ], [ %.lcssa145, %cond.false.i.i.i1487.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i.i.i1502.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1489.i if.then.i.i.i.i.i1502.i: ; preds = %while.body.i.i.i.i1488.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i1503.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1489.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1489.i: ; preds = %if.then.i.i.i.i.i1502.i, %while.body.i.i.i.i1488.i %599 = phi ptr [ %.pre.i.i1503.i, %if.then.i.i.i.i.i1502.i ], [ %598, %while.body.i.i.i.i1488.i ] %arrayidx.i.i.i11.i.i1490.i = getelementptr inbounds nuw i32, ptr %599, i64 %idxprom.i22.i.i.i.i.i1455.i %600 = load atomic i32, ptr %arrayidx.i.i.i11.i.i1490.i monotonic, align 4 %601 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1460.i, i32 %600, i32 %sub.i.i.i.i19.i.i.i.i1462.i, i32 31) %cmp.i.not.i.i.i.i1491.i = icmp eq i32 %601, %port.sroa.43.0.i.i1464.i.lcssa br i1 %cmp.i.not.i.i.i.i1491.i, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit1512.i, label %while.body.i.i.i.i1488.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit1512.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1489.i, %cond.false.i.i.i1487.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1460.i) fence release %602 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i1437.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i1493.i = icmp ne i64 %retval.sroa.2.1.i.i.i1437.i.lcssa, 0 %cmp2.i.i.i.i19.i.i1494.i = icmp eq i64 %602, %sh_prom.i.i.i.i.i %cmp.i.i.i.i20.i.i1495.i = select i1 %iszero.i.i.i.i.i18.i.i1493.i, i1 %cmp2.i.i.i.i19.i.i1494.i, i1 false %div8.i.i.i21.i.i1496.i = lshr i32 %retval.sroa.6.1.i.i.i1436.i.lcssa, 5 %603 = and i32 %retval.sroa.6.1.i.i.i1436.i.lcssa, 31 %idxprom.i.i.i22.i.i1497.i = zext nneg i32 %div8.i.i.i21.i.i1496.i to i64 %arrayidx.i.i.i23.i.i1498.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i1497.i %conv4.i.i.i24.i.i1499.i = zext i1 %cmp.i.i.i.i20.i.i1495.i to i32 %shl.i.i.i25.i.i1500.i = shl nuw i32 %conv4.i.i.i24.i.i1499.i, %603 %xor.i.i.i26.i.i1501.i = xor i32 %shl.i.i.i25.i.i1500.i, -1 %604 = atomicrmw and ptr %arrayidx.i.i.i23.i.i1498.i, i32 %xor.i.i.i26.i.i1501.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1460.i) br label %for.cond.i.i.i1524.i for.cond.i.i.i1524.i: ; preds = %for.inc.i.i.i1559.i, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit1512.i %retval.sroa.6.0.i.i.i1525.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit1512.i ], [ %retval.sroa.6.2.i.i.i1560.i, %for.inc.i.i.i1559.i ] %retval.sroa.2.0.i.i.i1526.i = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit1512.i ], [ %retval.sroa.2.2.i.i.i1561.i, %for.inc.i.i.i1559.i ] %retval.sroa.8.0.i.i.i1527.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit1512.i ], [ %retval.sroa.8.2.i.i.i1562.i, %for.inc.i.i.i1559.i ] %index.0.i.i.i1528.i = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit1512.i ], [ %inc.i.i.i1563.i, %for.inc.i.i.i1559.i ] %605 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i1529.i = icmp ult i32 %index.0.i.i.i1528.i, %605 %spec.store.select.i.i.i1530.i = select i1 %cmp.not.i.i.i1529.i, i32 %index.0.i.i.i1528.i, i32 0 %606 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i1531.i = zext i32 %606 to i64 %div8.i.i.i.i.i1532.i = lshr i32 %spec.store.select.i.i.i1530.i, 5 %607 = and i32 %spec.store.select.i.i.i1530.i, 31 %idxprom.i.i.i.i.i1533.i = zext nneg i32 %div8.i.i.i.i.i1532.i to i64 %arrayidx.i.i.i.i.i1534.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i1533.i %608 = lshr i32 %606, %5 %conv4.i.i.i.i.i1535.i = and i32 %608, 1 %shl.i.i.i.i.i1536.i = shl nuw i32 %conv4.i.i.i.i.i1535.i, %607 %609 = atomicrmw or ptr %arrayidx.i.i.i.i.i1534.i, i32 %shl.i.i.i.i.i1536.i monotonic, align 4 %shl5.i.i.i.i.i1537.i = shl nuw i32 1, %607 %and.i.i.i.i.i1538.i = and i32 %shl5.i.i.i.i.i1537.i, %609 %tobool3.i.i.i.i1539.i = icmp ne i32 %and.i.i.i.i.i1538.i, 0 %610 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %606, i1 %tobool3.i.i.i.i1539.i) %cmp.i.not.i.i.i1540.i = icmp eq i32 %606, %610 br i1 %cmp.i.not.i.i.i1540.i, label %for.inc.i.i.i1559.i, label %if.then.i.i.i.i1541.i if.then.i.i.i.i1541.i: ; preds = %for.cond.i.i.i1524.i fence acquire %611 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i1542.i = zext i32 %spec.store.select.i.i.i1530.i to i64 %arrayidx.i.i.i.i1543.i = getelementptr inbounds nuw i32, ptr %611, i64 %idxprom.i.i.i.i1542.i %612 = load atomic i32, ptr %arrayidx.i.i.i.i1543.i monotonic, align 4 %613 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %606, i1 true) %iszero.i.i.i.i.i.i1544.i = icmp eq i32 %606, 0 %sub.i.i.i.i.i.i1545.i = select i1 %iszero.i.i.i.i.i.i1544.i, i32 -1, i32 %613 %614 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %606, i32 %612, i32 %sub.i.i.i.i.i.i1545.i, i32 31) %615 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i1546.i = getelementptr inbounds nuw i32, ptr %615, i64 %idxprom.i.i.i.i1542.i %616 = load atomic i32, ptr %arrayidx.i45.i.i.i1546.i monotonic, align 4 %617 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %606, i32 %616, i32 %sub.i.i.i.i.i.i1545.i, i32 31) %cmp.i48.not.i.i.i1547.i = icmp eq i32 %614, %617 br i1 %cmp.i48.not.i.i.i1547.i, label %if.end14.i.i.i1624.i, label %if.then12.i.i.i1548.i if.then12.i.i.i1548.i: ; preds = %if.then.i.i.i.i1541.i fence release %618 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1531.i, i1 true) %iszero.i.i.i.i.i.i.i1549.i = icmp ne i32 %606, 0 %cmp2.i.i.i.i.i.i1550.i = icmp eq i64 %618, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i1551.i = select i1 %iszero.i.i.i.i.i.i.i1549.i, i1 %cmp2.i.i.i.i.i.i1550.i, i1 false %conv4.i.i53.i.i.i1552.i = zext i1 %cmp.i.i.i.i.i.i1551.i to i32 %shl.i.i54.i.i.i1553.i = shl nuw i32 %conv4.i.i53.i.i.i1552.i, %607 %xor.i.i.i.i.i1554.i = xor i32 %shl.i.i54.i.i.i1553.i, -1 %619 = atomicrmw and ptr %arrayidx.i.i.i.i.i1534.i, i32 %xor.i.i.i.i.i1554.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %606) br label %cleanup26.i.i.i1555.i if.end14.i.i.i1624.i: ; preds = %if.then.i.i.i.i1541.i %620 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1531.i, i1 true) %iszero.i.i.i56.i.i.i1625.i = icmp ne i32 %606, 0 %cmp2.i.i.i.i.i1626.i = icmp eq i64 %620, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i1627.i = select i1 %iszero.i.i.i56.i.i.i1625.i, i1 %cmp2.i.i.i.i.i1626.i, i1 false br i1 %cmp.i.i.i.i.i1627.i, label %if.then16.i.i.i1629.i, label %if.end22.i.i.i1628.i if.then16.i.i.i1629.i: ; preds = %if.end14.i.i.i1624.i %621 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i1630.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %621, i64 %idxprom.i.i.i.i1542.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i1630.i, align 8, !tbaa !61 %arrayidx21.i.i.i1631.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %621, i64 %idxprom.i.i.i.i1542.i store i64 %conv.i.i.i.i.i1531.i, ptr %arrayidx21.i.i.i1631.i, align 8, !tbaa !64 br label %if.end22.i.i.i1628.i if.end22.i.i.i1628.i: ; preds = %if.then16.i.i.i1629.i, %if.end14.i.i.i1624.i tail call void @llvm.nvvm.bar.warp.sync(i32 %606) br label %cleanup26.i.i.i1555.i cleanup26.i.i.i1555.i: ; preds = %if.end22.i.i.i1628.i, %if.then12.i.i.i1548.i %retval.sroa.6.1.i.i.i1556.i = phi i32 [ %retval.sroa.6.0.i.i.i1525.i, %if.then12.i.i.i1548.i ], [ %spec.store.select.i.i.i1530.i, %if.end22.i.i.i1628.i ] %retval.sroa.2.1.i.i.i1557.i = phi i64 [ %retval.sroa.2.0.i.i.i1526.i, %if.then12.i.i.i1548.i ], [ %conv.i.i.i.i.i1531.i, %if.end22.i.i.i1628.i ] %retval.sroa.8.1.i.i.i1558.i = phi i32 [ %retval.sroa.8.0.i.i.i1527.i, %if.then12.i.i.i1548.i ], [ %614, %if.end22.i.i.i1628.i ] br i1 %cmp.i48.not.i.i.i1547.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1564.i, label %for.inc.i.i.i1559.i for.inc.i.i.i1559.i: ; preds = %cleanup26.i.i.i1555.i, %for.cond.i.i.i1524.i %retval.sroa.6.2.i.i.i1560.i = phi i32 [ %retval.sroa.6.1.i.i.i1556.i, %cleanup26.i.i.i1555.i ], [ %retval.sroa.6.0.i.i.i1525.i, %for.cond.i.i.i1524.i ] %retval.sroa.2.2.i.i.i1561.i = phi i64 [ %retval.sroa.2.1.i.i.i1557.i, %cleanup26.i.i.i1555.i ], [ %retval.sroa.2.0.i.i.i1526.i, %for.cond.i.i.i1524.i ] %retval.sroa.8.2.i.i.i1562.i = phi i32 [ %retval.sroa.8.1.i.i.i1558.i, %cleanup26.i.i.i1555.i ], [ %retval.sroa.8.0.i.i.i1527.i, %for.cond.i.i.i1524.i ] %inc.i.i.i1563.i = add i32 %spec.store.select.i.i.i1530.i, 1 br label %for.cond.i.i.i1524.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1564.i: ; preds = %cleanup26.i.i.i1555.i %retval.sroa.6.1.i.i.i1556.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i1556.i, %cleanup26.i.i.i1555.i ] %retval.sroa.2.1.i.i.i1557.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i1557.i, %cleanup26.i.i.i1555.i ] %retval.sroa.8.1.i.i.i1558.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i1558.i, %cleanup26.i.i.i1555.i ] fence acquire %622 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i1567.i = shl i32 %retval.sroa.6.1.i.i.i1556.i.lcssa, 5 %idxprom.i18.i.i.i.i.i1568.i = zext i32 %mul.i.i.i.i.i.i1567.i to i64 %arrayidx.i19.i.i.i.i.i1569.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %622, i64 %idxprom.i18.i.i.i.i.i1568.i %arrayidx.i21.i.i.i.i.i1570.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i1569.i, i64 %sh_prom.i.i.i.i.i store i64 2, ptr %arrayidx.i21.i.i.i.i.i1570.i, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i1572.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i1570.i, i64 8 store i16 8250, ptr %arrayidx6.i.i.i.i.i.i.i1572.i, align 8 %tobool.not.i.i.i.i.i.i1573.i = icmp eq i32 %retval.sroa.8.1.i.i.i1558.i.lcssa, 0 %conv.i.i.i.i.i.i1574.i = zext i1 %tobool.not.i.i.i.i.i.i1573.i to i32 fence release %623 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i1575.i = zext i32 %retval.sroa.6.1.i.i.i1556.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i1576.i = getelementptr inbounds nuw i32, ptr %623, i64 %idxprom.i22.i.i.i.i.i1575.i store atomic i32 %conv.i.i.i.i.i.i1574.i, ptr %arrayidx.i23.i.i.i.i.i1576.i monotonic, align 4 %624 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i1577.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %624, i64 %idxprom.i22.i.i.i.i.i1575.i %625 = load i64, ptr %arrayidx.i.i4.i.i1577.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i1578.i = trunc i64 %625 to i32 %conv.i.i.i.i17.i.i.i.i1580.i = trunc i64 %retval.sroa.2.1.i.i.i1557.i.lcssa to i32 %626 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i1580.i, i1 true) %iszero.i.i.i.i18.i.i.i.i1581.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i1580.i, 0 %sub.i.i.i.i19.i.i.i.i1582.i = select i1 %iszero.i.i.i.i18.i.i.i.i1581.i, i32 -1, i32 %626 br label %while.cond.i.i.i.i1583.i while.cond.i.i.i.i1583.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1595.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1564.i %port.sroa.43.0.i.i1584.i = phi i32 [ %conv.i.i.i.i.i.i1574.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1564.i ], [ %conv.i.i39.i.i.i.i1596.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1595.i ] %idx.0.i.i.i.i1585.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1564.i ], [ %add.i.i.i.i1598.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1595.i ] %cmp.i.i.i2.i1586.i = icmp eq i64 %idx.0.i.i.i.i1585.i, 0 %627 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i1578.i, i1 %cmp.i.i.i2.i1586.i) %tobool.not.i.i.i.i1587.i = icmp eq i32 %627, 0 %628 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i1588.i = getelementptr inbounds nuw i32, ptr %628, i64 %idxprom.i22.i.i.i.i.i1575.i %629 = load atomic i32, ptr %arrayidx.i22.i.i.i1588.i monotonic, align 4 br i1 %tobool.not.i.i.i.i1587.i, label %cond.false.i.i.i1607.i, label %cond.false.i11.i.i.i.i1589.i cond.false.i11.i.i.i.i1589.i: ; preds = %while.cond.i.i.i.i1583.i %630 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1580.i, i32 %629, i32 %sub.i.i.i.i19.i.i.i.i1582.i, i32 31) %631 = icmp eq i32 %630, %port.sroa.43.0.i.i1584.i br i1 %631, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1594.i, label %while.body.i.i33.i.i.i.i1590.i while.body.i.i33.i.i.i.i1590.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1591.i, %cond.false.i11.i.i.i.i1589.i %632 = phi ptr [ %633, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1591.i ], [ %628, %cond.false.i11.i.i.i.i1589.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i48.i.i.i.i1605.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1591.i if.then.i.i.i48.i.i.i.i1605.i: ; preds = %while.body.i.i33.i.i.i.i1590.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i1606.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1591.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1591.i: ; preds = %if.then.i.i.i48.i.i.i.i1605.i, %while.body.i.i33.i.i.i.i1590.i %633 = phi ptr [ %.pre.i.i.i.i1606.i, %if.then.i.i.i48.i.i.i.i1605.i ], [ %632, %while.body.i.i33.i.i.i.i1590.i ] %arrayidx.i.i.i35.i.i.i.i1592.i = getelementptr inbounds nuw i32, ptr %633, i64 %idxprom.i22.i.i.i.i.i1575.i %634 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i1592.i monotonic, align 4 %635 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1580.i, i32 %634, i32 %sub.i.i.i.i19.i.i.i.i1582.i, i32 31) %cmp.i.not.i.i36.i.i.i.i1593.i = icmp eq i32 %635, %port.sroa.43.0.i.i1584.i br i1 %cmp.i.not.i.i36.i.i.i.i1593.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1594.i, label %while.body.i.i33.i.i.i.i1590.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1594.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1591.i, %cond.false.i11.i.i.i.i1589.i fence acquire br i1 %cmp.i.i.i2.i1586.i, label %if.then.i.i20.i.i.i.i.i1599.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1595.i if.then.i.i20.i.i.i.i.i1599.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1594.i %636 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i1603.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %636, i64 %idxprom.i18.i.i.i.i.i1568.i %arrayidx.i22.i.i.i.i.i1604.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i1603.i, i64 %sh_prom.i.i.i.i.i store i16 8250, ptr %arrayidx.i22.i.i.i.i.i1604.i, align 1 br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1595.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1595.i: ; preds = %if.then.i.i20.i.i.i.i.i1599.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1594.i %conv.i.i39.i.i.i.i1596.i = xor i32 %port.sroa.43.0.i.i1584.i, 1 fence release %637 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i1597.i = getelementptr inbounds nuw i32, ptr %637, i64 %idxprom.i22.i.i.i.i.i1575.i store atomic i32 %conv.i.i39.i.i.i.i1596.i, ptr %arrayidx.i24.i.i.i.i.i1597.i monotonic, align 4 %add.i.i.i.i1598.i = add i64 %idx.0.i.i.i.i1585.i, 64 br label %while.cond.i.i.i.i1583.i, !llvm.loop !71 cond.false.i.i.i1607.i: ; preds = %while.cond.i.i.i.i1583.i %port.sroa.43.0.i.i1584.i.lcssa = phi i32 [ %port.sroa.43.0.i.i1584.i, %while.cond.i.i.i.i1583.i ] %.lcssa143 = phi ptr [ %628, %while.cond.i.i.i.i1583.i ] %.lcssa142 = phi i32 [ %629, %while.cond.i.i.i.i1583.i ] %638 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1580.i, i32 %.lcssa142, i32 %sub.i.i.i.i19.i.i.i.i1582.i, i32 31) %639 = icmp eq i32 %638, %port.sroa.43.0.i.i1584.i.lcssa br i1 %639, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1632.i, label %while.body.i.i.i.i1608.i while.body.i.i.i.i1608.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1609.i, %cond.false.i.i.i1607.i %640 = phi ptr [ %641, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1609.i ], [ %.lcssa143, %cond.false.i.i.i1607.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i.i.i1622.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1609.i if.then.i.i.i.i.i1622.i: ; preds = %while.body.i.i.i.i1608.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i1623.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1609.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1609.i: ; preds = %if.then.i.i.i.i.i1622.i, %while.body.i.i.i.i1608.i %641 = phi ptr [ %.pre.i.i1623.i, %if.then.i.i.i.i.i1622.i ], [ %640, %while.body.i.i.i.i1608.i ] %arrayidx.i.i.i11.i.i1610.i = getelementptr inbounds nuw i32, ptr %641, i64 %idxprom.i22.i.i.i.i.i1575.i %642 = load atomic i32, ptr %arrayidx.i.i.i11.i.i1610.i monotonic, align 4 %643 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1580.i, i32 %642, i32 %sub.i.i.i.i19.i.i.i.i1582.i, i32 31) %cmp.i.not.i.i.i.i1611.i = icmp eq i32 %643, %port.sroa.43.0.i.i1584.i.lcssa br i1 %cmp.i.not.i.i.i.i1611.i, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1632.i, label %while.body.i.i.i.i1608.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1632.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1609.i, %cond.false.i.i.i1607.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1580.i) fence release %644 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i1557.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i1613.i = icmp ne i64 %retval.sroa.2.1.i.i.i1557.i.lcssa, 0 %cmp2.i.i.i.i19.i.i1614.i = icmp eq i64 %644, %sh_prom.i.i.i.i.i %cmp.i.i.i.i20.i.i1615.i = select i1 %iszero.i.i.i.i.i18.i.i1613.i, i1 %cmp2.i.i.i.i19.i.i1614.i, i1 false %div8.i.i.i21.i.i1616.i = lshr i32 %retval.sroa.6.1.i.i.i1556.i.lcssa, 5 %645 = and i32 %retval.sroa.6.1.i.i.i1556.i.lcssa, 31 %idxprom.i.i.i22.i.i1617.i = zext nneg i32 %div8.i.i.i21.i.i1616.i to i64 %arrayidx.i.i.i23.i.i1618.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i1617.i %conv4.i.i.i24.i.i1619.i = zext i1 %cmp.i.i.i.i20.i.i1615.i to i32 %shl.i.i.i25.i.i1620.i = shl nuw i32 %conv4.i.i.i24.i.i1619.i, %645 %xor.i.i.i26.i.i1621.i = xor i32 %shl.i.i.i25.i.i1620.i, -1 %646 = atomicrmw and ptr %arrayidx.i.i.i23.i.i1618.i, i32 %xor.i.i.i26.i.i1621.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1580.i) br label %for.cond.i.i.i1644.i for.cond.i.i.i1644.i: ; preds = %for.inc.i.i.i1679.i, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1632.i %retval.sroa.6.0.i.i.i1645.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1632.i ], [ %retval.sroa.6.2.i.i.i1680.i, %for.inc.i.i.i1679.i ] %retval.sroa.2.0.i.i.i1646.i = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1632.i ], [ %retval.sroa.2.2.i.i.i1681.i, %for.inc.i.i.i1679.i ] %retval.sroa.8.0.i.i.i1647.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1632.i ], [ %retval.sroa.8.2.i.i.i1682.i, %for.inc.i.i.i1679.i ] %index.0.i.i.i1648.i = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1632.i ], [ %inc.i.i.i1683.i, %for.inc.i.i.i1679.i ] %647 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i1649.i = icmp ult i32 %index.0.i.i.i1648.i, %647 %spec.store.select.i.i.i1650.i = select i1 %cmp.not.i.i.i1649.i, i32 %index.0.i.i.i1648.i, i32 0 %648 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i1651.i = zext i32 %648 to i64 %div8.i.i.i.i.i1652.i = lshr i32 %spec.store.select.i.i.i1650.i, 5 %649 = and i32 %spec.store.select.i.i.i1650.i, 31 %idxprom.i.i.i.i.i1653.i = zext nneg i32 %div8.i.i.i.i.i1652.i to i64 %arrayidx.i.i.i.i.i1654.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i1653.i %650 = lshr i32 %648, %5 %conv4.i.i.i.i.i1655.i = and i32 %650, 1 %shl.i.i.i.i.i1656.i = shl nuw i32 %conv4.i.i.i.i.i1655.i, %649 %651 = atomicrmw or ptr %arrayidx.i.i.i.i.i1654.i, i32 %shl.i.i.i.i.i1656.i monotonic, align 4 %shl5.i.i.i.i.i1657.i = shl nuw i32 1, %649 %and.i.i.i.i.i1658.i = and i32 %shl5.i.i.i.i.i1657.i, %651 %tobool3.i.i.i.i1659.i = icmp ne i32 %and.i.i.i.i.i1658.i, 0 %652 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %648, i1 %tobool3.i.i.i.i1659.i) %cmp.i.not.i.i.i1660.i = icmp eq i32 %648, %652 br i1 %cmp.i.not.i.i.i1660.i, label %for.inc.i.i.i1679.i, label %if.then.i.i.i.i1661.i if.then.i.i.i.i1661.i: ; preds = %for.cond.i.i.i1644.i fence acquire %653 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i1662.i = zext i32 %spec.store.select.i.i.i1650.i to i64 %arrayidx.i.i.i.i1663.i = getelementptr inbounds nuw i32, ptr %653, i64 %idxprom.i.i.i.i1662.i %654 = load atomic i32, ptr %arrayidx.i.i.i.i1663.i monotonic, align 4 %655 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %648, i1 true) %iszero.i.i.i.i.i.i1664.i = icmp eq i32 %648, 0 %sub.i.i.i.i.i.i1665.i = select i1 %iszero.i.i.i.i.i.i1664.i, i32 -1, i32 %655 %656 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %648, i32 %654, i32 %sub.i.i.i.i.i.i1665.i, i32 31) %657 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i1666.i = getelementptr inbounds nuw i32, ptr %657, i64 %idxprom.i.i.i.i1662.i %658 = load atomic i32, ptr %arrayidx.i45.i.i.i1666.i monotonic, align 4 %659 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %648, i32 %658, i32 %sub.i.i.i.i.i.i1665.i, i32 31) %cmp.i48.not.i.i.i1667.i = icmp eq i32 %656, %659 br i1 %cmp.i48.not.i.i.i1667.i, label %if.end14.i.i.i1744.i, label %if.then12.i.i.i1668.i if.then12.i.i.i1668.i: ; preds = %if.then.i.i.i.i1661.i fence release %660 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1651.i, i1 true) %iszero.i.i.i.i.i.i.i1669.i = icmp ne i32 %648, 0 %cmp2.i.i.i.i.i.i1670.i = icmp eq i64 %660, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i1671.i = select i1 %iszero.i.i.i.i.i.i.i1669.i, i1 %cmp2.i.i.i.i.i.i1670.i, i1 false %conv4.i.i53.i.i.i1672.i = zext i1 %cmp.i.i.i.i.i.i1671.i to i32 %shl.i.i54.i.i.i1673.i = shl nuw i32 %conv4.i.i53.i.i.i1672.i, %649 %xor.i.i.i.i.i1674.i = xor i32 %shl.i.i54.i.i.i1673.i, -1 %661 = atomicrmw and ptr %arrayidx.i.i.i.i.i1654.i, i32 %xor.i.i.i.i.i1674.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %648) br label %cleanup26.i.i.i1675.i if.end14.i.i.i1744.i: ; preds = %if.then.i.i.i.i1661.i %662 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1651.i, i1 true) %iszero.i.i.i56.i.i.i1745.i = icmp ne i32 %648, 0 %cmp2.i.i.i.i.i1746.i = icmp eq i64 %662, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i1747.i = select i1 %iszero.i.i.i56.i.i.i1745.i, i1 %cmp2.i.i.i.i.i1746.i, i1 false br i1 %cmp.i.i.i.i.i1747.i, label %if.then16.i.i.i1749.i, label %if.end22.i.i.i1748.i if.then16.i.i.i1749.i: ; preds = %if.end14.i.i.i1744.i %663 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i1750.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %663, i64 %idxprom.i.i.i.i1662.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i1750.i, align 8, !tbaa !61 %arrayidx21.i.i.i1751.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %663, i64 %idxprom.i.i.i.i1662.i store i64 %conv.i.i.i.i.i1651.i, ptr %arrayidx21.i.i.i1751.i, align 8, !tbaa !64 br label %if.end22.i.i.i1748.i if.end22.i.i.i1748.i: ; preds = %if.then16.i.i.i1749.i, %if.end14.i.i.i1744.i tail call void @llvm.nvvm.bar.warp.sync(i32 %648) br label %cleanup26.i.i.i1675.i cleanup26.i.i.i1675.i: ; preds = %if.end22.i.i.i1748.i, %if.then12.i.i.i1668.i %retval.sroa.6.1.i.i.i1676.i = phi i32 [ %retval.sroa.6.0.i.i.i1645.i, %if.then12.i.i.i1668.i ], [ %spec.store.select.i.i.i1650.i, %if.end22.i.i.i1748.i ] %retval.sroa.2.1.i.i.i1677.i = phi i64 [ %retval.sroa.2.0.i.i.i1646.i, %if.then12.i.i.i1668.i ], [ %conv.i.i.i.i.i1651.i, %if.end22.i.i.i1748.i ] %retval.sroa.8.1.i.i.i1678.i = phi i32 [ %retval.sroa.8.0.i.i.i1647.i, %if.then12.i.i.i1668.i ], [ %656, %if.end22.i.i.i1748.i ] br i1 %cmp.i48.not.i.i.i1667.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1684.i, label %for.inc.i.i.i1679.i for.inc.i.i.i1679.i: ; preds = %cleanup26.i.i.i1675.i, %for.cond.i.i.i1644.i %retval.sroa.6.2.i.i.i1680.i = phi i32 [ %retval.sroa.6.1.i.i.i1676.i, %cleanup26.i.i.i1675.i ], [ %retval.sroa.6.0.i.i.i1645.i, %for.cond.i.i.i1644.i ] %retval.sroa.2.2.i.i.i1681.i = phi i64 [ %retval.sroa.2.1.i.i.i1677.i, %cleanup26.i.i.i1675.i ], [ %retval.sroa.2.0.i.i.i1646.i, %for.cond.i.i.i1644.i ] %retval.sroa.8.2.i.i.i1682.i = phi i32 [ %retval.sroa.8.1.i.i.i1678.i, %cleanup26.i.i.i1675.i ], [ %retval.sroa.8.0.i.i.i1647.i, %for.cond.i.i.i1644.i ] %inc.i.i.i1683.i = add i32 %spec.store.select.i.i.i1650.i, 1 br label %for.cond.i.i.i1644.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1684.i: ; preds = %cleanup26.i.i.i1675.i %retval.sroa.6.1.i.i.i1676.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i1676.i, %cleanup26.i.i.i1675.i ] %retval.sroa.2.1.i.i.i1677.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i1677.i, %cleanup26.i.i.i1675.i ] %retval.sroa.8.1.i.i.i1678.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i1678.i, %cleanup26.i.i.i1675.i ] fence acquire %664 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i1687.i = shl i32 %retval.sroa.6.1.i.i.i1676.i.lcssa, 5 %idxprom.i18.i.i.i.i.i1688.i = zext i32 %mul.i.i.i.i.i.i1687.i to i64 %arrayidx.i19.i.i.i.i.i1689.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %664, i64 %idxprom.i18.i.i.i.i.i1688.i %arrayidx.i21.i.i.i.i.i1690.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i1689.i, i64 %sh_prom.i.i.i.i.i store i64 17, ptr %arrayidx.i21.i.i.i.i.i1690.i, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i1692.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i1690.i, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(17) %arrayidx6.i.i.i.i.i.i.i1692.i, ptr noundef nonnull align 1 dereferenceable(17) @.str2, i64 17, i1 false) %tobool.not.i.i.i.i.i.i1693.i = icmp eq i32 %retval.sroa.8.1.i.i.i1678.i.lcssa, 0 %conv.i.i.i.i.i.i1694.i = zext i1 %tobool.not.i.i.i.i.i.i1693.i to i32 fence release %665 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i1695.i = zext i32 %retval.sroa.6.1.i.i.i1676.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i1696.i = getelementptr inbounds nuw i32, ptr %665, i64 %idxprom.i22.i.i.i.i.i1695.i store atomic i32 %conv.i.i.i.i.i.i1694.i, ptr %arrayidx.i23.i.i.i.i.i1696.i monotonic, align 4 %666 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i1697.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %666, i64 %idxprom.i22.i.i.i.i.i1695.i %667 = load i64, ptr %arrayidx.i.i4.i.i1697.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i1698.i = trunc i64 %667 to i32 %conv.i.i.i.i17.i.i.i.i1700.i = trunc i64 %retval.sroa.2.1.i.i.i1677.i.lcssa to i32 %668 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i1700.i, i1 true) %iszero.i.i.i.i18.i.i.i.i1701.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i1700.i, 0 %sub.i.i.i.i19.i.i.i.i1702.i = select i1 %iszero.i.i.i.i18.i.i.i.i1701.i, i32 -1, i32 %668 br label %while.cond.i.i.i.i1703.i while.cond.i.i.i.i1703.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1715.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1684.i %port.sroa.43.0.i.i1704.i = phi i32 [ %conv.i.i.i.i.i.i1694.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1684.i ], [ %conv.i.i39.i.i.i.i1716.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1715.i ] %idx.0.i.i.i.i1705.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1684.i ], [ %add.i.i.i.i1718.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1715.i ] %cmp.i.i.i2.i1706.i = icmp ult i64 %idx.0.i.i.i.i1705.i, 17 %669 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i1698.i, i1 %cmp.i.i.i2.i1706.i) %tobool.not.i.i.i.i1707.i = icmp eq i32 %669, 0 %670 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i1708.i = getelementptr inbounds nuw i32, ptr %670, i64 %idxprom.i22.i.i.i.i.i1695.i %671 = load atomic i32, ptr %arrayidx.i22.i.i.i1708.i monotonic, align 4 br i1 %tobool.not.i.i.i.i1707.i, label %cond.false.i.i.i1727.i, label %cond.false.i11.i.i.i.i1709.i cond.false.i11.i.i.i.i1709.i: ; preds = %while.cond.i.i.i.i1703.i %672 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1700.i, i32 %671, i32 %sub.i.i.i.i19.i.i.i.i1702.i, i32 31) %673 = icmp eq i32 %672, %port.sroa.43.0.i.i1704.i br i1 %673, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1714.i, label %while.body.i.i33.i.i.i.i1710.i while.body.i.i33.i.i.i.i1710.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1711.i, %cond.false.i11.i.i.i.i1709.i %674 = phi ptr [ %675, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1711.i ], [ %670, %cond.false.i11.i.i.i.i1709.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i48.i.i.i.i1725.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1711.i if.then.i.i.i48.i.i.i.i1725.i: ; preds = %while.body.i.i33.i.i.i.i1710.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i1726.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1711.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1711.i: ; preds = %if.then.i.i.i48.i.i.i.i1725.i, %while.body.i.i33.i.i.i.i1710.i %675 = phi ptr [ %.pre.i.i.i.i1726.i, %if.then.i.i.i48.i.i.i.i1725.i ], [ %674, %while.body.i.i33.i.i.i.i1710.i ] %arrayidx.i.i.i35.i.i.i.i1712.i = getelementptr inbounds nuw i32, ptr %675, i64 %idxprom.i22.i.i.i.i.i1695.i %676 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i1712.i monotonic, align 4 %677 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1700.i, i32 %676, i32 %sub.i.i.i.i19.i.i.i.i1702.i, i32 31) %cmp.i.not.i.i36.i.i.i.i1713.i = icmp eq i32 %677, %port.sroa.43.0.i.i1704.i br i1 %cmp.i.not.i.i36.i.i.i.i1713.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1714.i, label %while.body.i.i33.i.i.i.i1710.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1714.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1711.i, %cond.false.i11.i.i.i.i1709.i fence acquire br i1 %cmp.i.i.i2.i1706.i, label %if.then.i.i20.i.i.i.i.i1719.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1715.i if.then.i.i20.i.i.i.i.i1719.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1714.i %add.ptr.i.i.i.i.i.i.i.i1720.i = getelementptr inbounds nuw i8, ptr @.str2, i64 %idx.0.i.i.i.i1705.i %sub.i.i.i.i.i.i.i1721.i = sub nuw nsw i64 17, %idx.0.i.i.i.i1705.i %678 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i1723.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %678, i64 %idxprom.i18.i.i.i.i.i1688.i %arrayidx.i22.i.i.i.i.i1724.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i1723.i, i64 %sh_prom.i.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %arrayidx.i22.i.i.i.i.i1724.i, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr.i.i.i.i.i.i.i.i1720.i, i64 %sub.i.i.i.i.i.i.i1721.i, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1715.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1715.i: ; preds = %if.then.i.i20.i.i.i.i.i1719.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1714.i %conv.i.i39.i.i.i.i1716.i = xor i32 %port.sroa.43.0.i.i1704.i, 1 fence release %679 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i1717.i = getelementptr inbounds nuw i32, ptr %679, i64 %idxprom.i22.i.i.i.i.i1695.i store atomic i32 %conv.i.i39.i.i.i.i1716.i, ptr %arrayidx.i24.i.i.i.i.i1717.i monotonic, align 4 %add.i.i.i.i1718.i = add i64 %idx.0.i.i.i.i1705.i, 64 br label %while.cond.i.i.i.i1703.i, !llvm.loop !71 cond.false.i.i.i1727.i: ; preds = %while.cond.i.i.i.i1703.i %port.sroa.43.0.i.i1704.i.lcssa = phi i32 [ %port.sroa.43.0.i.i1704.i, %while.cond.i.i.i.i1703.i ] %.lcssa141 = phi ptr [ %670, %while.cond.i.i.i.i1703.i ] %.lcssa140 = phi i32 [ %671, %while.cond.i.i.i.i1703.i ] %680 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1700.i, i32 %.lcssa140, i32 %sub.i.i.i.i19.i.i.i.i1702.i, i32 31) %681 = icmp eq i32 %680, %port.sroa.43.0.i.i1704.i.lcssa br i1 %681, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1752.i, label %while.body.i.i.i.i1728.i while.body.i.i.i.i1728.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1729.i, %cond.false.i.i.i1727.i %682 = phi ptr [ %683, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1729.i ], [ %.lcssa141, %cond.false.i.i.i1727.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i.i.i1742.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1729.i if.then.i.i.i.i.i1742.i: ; preds = %while.body.i.i.i.i1728.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i1743.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1729.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1729.i: ; preds = %if.then.i.i.i.i.i1742.i, %while.body.i.i.i.i1728.i %683 = phi ptr [ %.pre.i.i1743.i, %if.then.i.i.i.i.i1742.i ], [ %682, %while.body.i.i.i.i1728.i ] %arrayidx.i.i.i11.i.i1730.i = getelementptr inbounds nuw i32, ptr %683, i64 %idxprom.i22.i.i.i.i.i1695.i %684 = load atomic i32, ptr %arrayidx.i.i.i11.i.i1730.i monotonic, align 4 %685 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1700.i, i32 %684, i32 %sub.i.i.i.i19.i.i.i.i1702.i, i32 31) %cmp.i.not.i.i.i.i1731.i = icmp eq i32 %685, %port.sroa.43.0.i.i1704.i.lcssa br i1 %cmp.i.not.i.i.i.i1731.i, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1752.i, label %while.body.i.i.i.i1728.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1752.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1729.i, %cond.false.i.i.i1727.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1700.i) fence release %686 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i1677.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i1733.i = icmp ne i64 %retval.sroa.2.1.i.i.i1677.i.lcssa, 0 %cmp2.i.i.i.i19.i.i1734.i = icmp eq i64 %686, %sh_prom.i.i.i.i.i %cmp.i.i.i.i20.i.i1735.i = select i1 %iszero.i.i.i.i.i18.i.i1733.i, i1 %cmp2.i.i.i.i19.i.i1734.i, i1 false %div8.i.i.i21.i.i1736.i = lshr i32 %retval.sroa.6.1.i.i.i1676.i.lcssa, 5 %687 = and i32 %retval.sroa.6.1.i.i.i1676.i.lcssa, 31 %idxprom.i.i.i22.i.i1737.i = zext nneg i32 %div8.i.i.i21.i.i1736.i to i64 %arrayidx.i.i.i23.i.i1738.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i1737.i %conv4.i.i.i24.i.i1739.i = zext i1 %cmp.i.i.i.i20.i.i1735.i to i32 %shl.i.i.i25.i.i1740.i = shl nuw i32 %conv4.i.i.i24.i.i1739.i, %687 %xor.i.i.i26.i.i1741.i = xor i32 %shl.i.i.i25.i.i1740.i, -1 %688 = atomicrmw and ptr %arrayidx.i.i.i23.i.i1738.i, i32 %xor.i.i.i26.i.i1741.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1700.i) call void @llvm.lifetime.start.p0(ptr nonnull %ch.addr.i1755.i) store i8 10, ptr %ch.addr.i1755.i, align 1, !tbaa !36 br label %for.cond.i.i.i1758.i for.cond.i.i.i1758.i: ; preds = %for.inc.i.i.i1793.i, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1752.i %retval.sroa.6.0.i.i.i1759.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1752.i ], [ %retval.sroa.6.2.i.i.i1794.i, %for.inc.i.i.i1793.i ] %retval.sroa.2.0.i.i.i1760.i = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1752.i ], [ %retval.sroa.2.2.i.i.i1795.i, %for.inc.i.i.i1793.i ] %retval.sroa.8.0.i.i.i1761.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1752.i ], [ %retval.sroa.8.2.i.i.i1796.i, %for.inc.i.i.i1793.i ] %index.0.i.i.i1762.i = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1752.i ], [ %inc.i.i.i1797.i, %for.inc.i.i.i1793.i ] %689 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i1763.i = icmp ult i32 %index.0.i.i.i1762.i, %689 %spec.store.select.i.i.i1764.i = select i1 %cmp.not.i.i.i1763.i, i32 %index.0.i.i.i1762.i, i32 0 %690 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i1765.i = zext i32 %690 to i64 %div8.i.i.i.i.i1766.i = lshr i32 %spec.store.select.i.i.i1764.i, 5 %691 = and i32 %spec.store.select.i.i.i1764.i, 31 %idxprom.i.i.i.i.i1767.i = zext nneg i32 %div8.i.i.i.i.i1766.i to i64 %arrayidx.i.i.i.i.i1768.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i1767.i %692 = lshr i32 %690, %5 %conv4.i.i.i.i.i1769.i = and i32 %692, 1 %shl.i.i.i.i.i1770.i = shl nuw i32 %conv4.i.i.i.i.i1769.i, %691 %693 = atomicrmw or ptr %arrayidx.i.i.i.i.i1768.i, i32 %shl.i.i.i.i.i1770.i monotonic, align 4 %shl5.i.i.i.i.i1771.i = shl nuw i32 1, %691 %and.i.i.i.i.i1772.i = and i32 %shl5.i.i.i.i.i1771.i, %693 %tobool3.i.i.i.i1773.i = icmp ne i32 %and.i.i.i.i.i1772.i, 0 %694 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %690, i1 %tobool3.i.i.i.i1773.i) %cmp.i.not.i.i.i1774.i = icmp eq i32 %690, %694 br i1 %cmp.i.not.i.i.i1774.i, label %for.inc.i.i.i1793.i, label %if.then.i.i.i.i1775.i if.then.i.i.i.i1775.i: ; preds = %for.cond.i.i.i1758.i fence acquire %695 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i1776.i = zext i32 %spec.store.select.i.i.i1764.i to i64 %arrayidx.i.i.i.i1777.i = getelementptr inbounds nuw i32, ptr %695, i64 %idxprom.i.i.i.i1776.i %696 = load atomic i32, ptr %arrayidx.i.i.i.i1777.i monotonic, align 4 %697 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %690, i1 true) %iszero.i.i.i.i.i.i1778.i = icmp eq i32 %690, 0 %sub.i.i.i.i.i.i1779.i = select i1 %iszero.i.i.i.i.i.i1778.i, i32 -1, i32 %697 %698 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %690, i32 %696, i32 %sub.i.i.i.i.i.i1779.i, i32 31) %699 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i1780.i = getelementptr inbounds nuw i32, ptr %699, i64 %idxprom.i.i.i.i1776.i %700 = load atomic i32, ptr %arrayidx.i45.i.i.i1780.i monotonic, align 4 %701 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %690, i32 %700, i32 %sub.i.i.i.i.i.i1779.i, i32 31) %cmp.i48.not.i.i.i1781.i = icmp eq i32 %698, %701 br i1 %cmp.i48.not.i.i.i1781.i, label %if.end14.i.i.i1858.i, label %if.then12.i.i.i1782.i if.then12.i.i.i1782.i: ; preds = %if.then.i.i.i.i1775.i fence release %702 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1765.i, i1 true) %iszero.i.i.i.i.i.i.i1783.i = icmp ne i32 %690, 0 %cmp2.i.i.i.i.i.i1784.i = icmp eq i64 %702, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i1785.i = select i1 %iszero.i.i.i.i.i.i.i1783.i, i1 %cmp2.i.i.i.i.i.i1784.i, i1 false %conv4.i.i53.i.i.i1786.i = zext i1 %cmp.i.i.i.i.i.i1785.i to i32 %shl.i.i54.i.i.i1787.i = shl nuw i32 %conv4.i.i53.i.i.i1786.i, %691 %xor.i.i.i.i.i1788.i = xor i32 %shl.i.i54.i.i.i1787.i, -1 %703 = atomicrmw and ptr %arrayidx.i.i.i.i.i1768.i, i32 %xor.i.i.i.i.i1788.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %690) br label %cleanup26.i.i.i1789.i if.end14.i.i.i1858.i: ; preds = %if.then.i.i.i.i1775.i %704 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1765.i, i1 true) %iszero.i.i.i56.i.i.i1859.i = icmp ne i32 %690, 0 %cmp2.i.i.i.i.i1860.i = icmp eq i64 %704, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i1861.i = select i1 %iszero.i.i.i56.i.i.i1859.i, i1 %cmp2.i.i.i.i.i1860.i, i1 false br i1 %cmp.i.i.i.i.i1861.i, label %if.then16.i.i.i1863.i, label %if.end22.i.i.i1862.i if.then16.i.i.i1863.i: ; preds = %if.end14.i.i.i1858.i %705 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i1864.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %705, i64 %idxprom.i.i.i.i1776.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i1864.i, align 8, !tbaa !61 %arrayidx21.i.i.i1865.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %705, i64 %idxprom.i.i.i.i1776.i store i64 %conv.i.i.i.i.i1765.i, ptr %arrayidx21.i.i.i1865.i, align 8, !tbaa !64 br label %if.end22.i.i.i1862.i if.end22.i.i.i1862.i: ; preds = %if.then16.i.i.i1863.i, %if.end14.i.i.i1858.i tail call void @llvm.nvvm.bar.warp.sync(i32 %690) br label %cleanup26.i.i.i1789.i cleanup26.i.i.i1789.i: ; preds = %if.end22.i.i.i1862.i, %if.then12.i.i.i1782.i %retval.sroa.6.1.i.i.i1790.i = phi i32 [ %retval.sroa.6.0.i.i.i1759.i, %if.then12.i.i.i1782.i ], [ %spec.store.select.i.i.i1764.i, %if.end22.i.i.i1862.i ] %retval.sroa.2.1.i.i.i1791.i = phi i64 [ %retval.sroa.2.0.i.i.i1760.i, %if.then12.i.i.i1782.i ], [ %conv.i.i.i.i.i1765.i, %if.end22.i.i.i1862.i ] %retval.sroa.8.1.i.i.i1792.i = phi i32 [ %retval.sroa.8.0.i.i.i1761.i, %if.then12.i.i.i1782.i ], [ %698, %if.end22.i.i.i1862.i ] br i1 %cmp.i48.not.i.i.i1781.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1798.i, label %for.inc.i.i.i1793.i for.inc.i.i.i1793.i: ; preds = %cleanup26.i.i.i1789.i, %for.cond.i.i.i1758.i %retval.sroa.6.2.i.i.i1794.i = phi i32 [ %retval.sroa.6.1.i.i.i1790.i, %cleanup26.i.i.i1789.i ], [ %retval.sroa.6.0.i.i.i1759.i, %for.cond.i.i.i1758.i ] %retval.sroa.2.2.i.i.i1795.i = phi i64 [ %retval.sroa.2.1.i.i.i1791.i, %cleanup26.i.i.i1789.i ], [ %retval.sroa.2.0.i.i.i1760.i, %for.cond.i.i.i1758.i ] %retval.sroa.8.2.i.i.i1796.i = phi i32 [ %retval.sroa.8.1.i.i.i1792.i, %cleanup26.i.i.i1789.i ], [ %retval.sroa.8.0.i.i.i1761.i, %for.cond.i.i.i1758.i ] %inc.i.i.i1797.i = add i32 %spec.store.select.i.i.i1764.i, 1 br label %for.cond.i.i.i1758.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1798.i: ; preds = %cleanup26.i.i.i1789.i %retval.sroa.6.1.i.i.i1790.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i1790.i, %cleanup26.i.i.i1789.i ] %retval.sroa.2.1.i.i.i1791.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i1791.i, %cleanup26.i.i.i1789.i ] %retval.sroa.8.1.i.i.i1792.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i1792.i, %cleanup26.i.i.i1789.i ] fence acquire %706 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i1801.i = shl i32 %retval.sroa.6.1.i.i.i1790.i.lcssa, 5 %idxprom.i18.i.i.i.i.i1802.i = zext i32 %mul.i.i.i.i.i.i1801.i to i64 %arrayidx.i19.i.i.i.i.i1803.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %706, i64 %idxprom.i18.i.i.i.i.i1802.i %arrayidx.i21.i.i.i.i.i1804.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i1803.i, i64 %sh_prom.i.i.i.i.i store i64 1, ptr %arrayidx.i21.i.i.i.i.i1804.i, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i1806.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i1804.i, i64 8 %707 = load i8, ptr %ch.addr.i1755.i, align 1 store i8 %707, ptr %arrayidx6.i.i.i.i.i.i.i1806.i, align 8 %tobool.not.i.i.i.i.i.i1807.i = icmp eq i32 %retval.sroa.8.1.i.i.i1792.i.lcssa, 0 %conv.i.i.i.i.i.i1808.i = zext i1 %tobool.not.i.i.i.i.i.i1807.i to i32 fence release %708 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i1809.i = zext i32 %retval.sroa.6.1.i.i.i1790.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i1810.i = getelementptr inbounds nuw i32, ptr %708, i64 %idxprom.i22.i.i.i.i.i1809.i store atomic i32 %conv.i.i.i.i.i.i1808.i, ptr %arrayidx.i23.i.i.i.i.i1810.i monotonic, align 4 %709 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i1811.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %709, i64 %idxprom.i22.i.i.i.i.i1809.i %710 = load i64, ptr %arrayidx.i.i4.i.i1811.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i1812.i = trunc i64 %710 to i32 %conv.i.i.i.i17.i.i.i.i1814.i = trunc i64 %retval.sroa.2.1.i.i.i1791.i.lcssa to i32 %711 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i1814.i, i1 true) %iszero.i.i.i.i18.i.i.i.i1815.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i1814.i, 0 %sub.i.i.i.i19.i.i.i.i1816.i = select i1 %iszero.i.i.i.i18.i.i.i.i1815.i, i32 -1, i32 %711 br label %while.cond.i.i.i.i1817.i while.cond.i.i.i.i1817.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1829.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1798.i %port.sroa.43.0.i.i1818.i = phi i32 [ %conv.i.i.i.i.i.i1808.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1798.i ], [ %conv.i.i39.i.i.i.i1830.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1829.i ] %idx.0.i.i.i.i1819.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1798.i ], [ %add.i.i.i.i1832.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1829.i ] %cmp.i.i.i.i1820.i = icmp eq i64 %idx.0.i.i.i.i1819.i, 0 %712 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i1812.i, i1 %cmp.i.i.i.i1820.i) %tobool.not.i.i.i.i1821.i = icmp eq i32 %712, 0 %713 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i1822.i = getelementptr inbounds nuw i32, ptr %713, i64 %idxprom.i22.i.i.i.i.i1809.i %714 = load atomic i32, ptr %arrayidx.i22.i.i.i1822.i monotonic, align 4 br i1 %tobool.not.i.i.i.i1821.i, label %cond.false.i.i.i1841.i, label %cond.false.i11.i.i.i.i1823.i cond.false.i11.i.i.i.i1823.i: ; preds = %while.cond.i.i.i.i1817.i %715 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1814.i, i32 %714, i32 %sub.i.i.i.i19.i.i.i.i1816.i, i32 31) %716 = icmp eq i32 %715, %port.sroa.43.0.i.i1818.i br i1 %716, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1828.i, label %while.body.i.i33.i.i.i.i1824.i while.body.i.i33.i.i.i.i1824.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1825.i, %cond.false.i11.i.i.i.i1823.i %717 = phi ptr [ %718, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1825.i ], [ %713, %cond.false.i11.i.i.i.i1823.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i48.i.i.i.i1839.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1825.i if.then.i.i.i48.i.i.i.i1839.i: ; preds = %while.body.i.i33.i.i.i.i1824.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i1840.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1825.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1825.i: ; preds = %if.then.i.i.i48.i.i.i.i1839.i, %while.body.i.i33.i.i.i.i1824.i %718 = phi ptr [ %.pre.i.i.i.i1840.i, %if.then.i.i.i48.i.i.i.i1839.i ], [ %717, %while.body.i.i33.i.i.i.i1824.i ] %arrayidx.i.i.i35.i.i.i.i1826.i = getelementptr inbounds nuw i32, ptr %718, i64 %idxprom.i22.i.i.i.i.i1809.i %719 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i1826.i monotonic, align 4 %720 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1814.i, i32 %719, i32 %sub.i.i.i.i19.i.i.i.i1816.i, i32 31) %cmp.i.not.i.i36.i.i.i.i1827.i = icmp eq i32 %720, %port.sroa.43.0.i.i1818.i br i1 %cmp.i.not.i.i36.i.i.i.i1827.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1828.i, label %while.body.i.i33.i.i.i.i1824.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1828.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1825.i, %cond.false.i11.i.i.i.i1823.i fence acquire br i1 %cmp.i.i.i.i1820.i, label %if.then.i.i20.i.i.i.i.i1833.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1829.i if.then.i.i20.i.i.i.i.i1833.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1828.i %721 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i1837.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %721, i64 %idxprom.i18.i.i.i.i.i1802.i %arrayidx.i22.i.i.i.i.i1838.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i1837.i, i64 %sh_prom.i.i.i.i.i %722 = load i8, ptr %ch.addr.i1755.i, align 1 store i8 %722, ptr %arrayidx.i22.i.i.i.i.i1838.i, align 1 br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1829.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1829.i: ; preds = %if.then.i.i20.i.i.i.i.i1833.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1828.i %conv.i.i39.i.i.i.i1830.i = xor i32 %port.sroa.43.0.i.i1818.i, 1 fence release %723 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i1831.i = getelementptr inbounds nuw i32, ptr %723, i64 %idxprom.i22.i.i.i.i.i1809.i store atomic i32 %conv.i.i39.i.i.i.i1830.i, ptr %arrayidx.i24.i.i.i.i.i1831.i monotonic, align 4 %add.i.i.i.i1832.i = add i64 %idx.0.i.i.i.i1819.i, 64 br label %while.cond.i.i.i.i1817.i, !llvm.loop !71 cond.false.i.i.i1841.i: ; preds = %while.cond.i.i.i.i1817.i %port.sroa.43.0.i.i1818.i.lcssa = phi i32 [ %port.sroa.43.0.i.i1818.i, %while.cond.i.i.i.i1817.i ] %.lcssa139 = phi ptr [ %713, %while.cond.i.i.i.i1817.i ] %.lcssa138 = phi i32 [ %714, %while.cond.i.i.i.i1817.i ] %724 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1814.i, i32 %.lcssa138, i32 %sub.i.i.i.i19.i.i.i.i1816.i, i32 31) %725 = icmp eq i32 %724, %port.sroa.43.0.i.i1818.i.lcssa br i1 %725, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit1866.i, label %while.body.i.i.i.i1842.i while.body.i.i.i.i1842.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1843.i, %cond.false.i.i.i1841.i %726 = phi ptr [ %727, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1843.i ], [ %.lcssa139, %cond.false.i.i.i1841.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i.i.i1856.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1843.i if.then.i.i.i.i.i1856.i: ; preds = %while.body.i.i.i.i1842.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i1857.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1843.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1843.i: ; preds = %if.then.i.i.i.i.i1856.i, %while.body.i.i.i.i1842.i %727 = phi ptr [ %.pre.i.i1857.i, %if.then.i.i.i.i.i1856.i ], [ %726, %while.body.i.i.i.i1842.i ] %arrayidx.i.i.i11.i.i1844.i = getelementptr inbounds nuw i32, ptr %727, i64 %idxprom.i22.i.i.i.i.i1809.i %728 = load atomic i32, ptr %arrayidx.i.i.i11.i.i1844.i monotonic, align 4 %729 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1814.i, i32 %728, i32 %sub.i.i.i.i19.i.i.i.i1816.i, i32 31) %cmp.i.not.i.i.i.i1845.i = icmp eq i32 %729, %port.sroa.43.0.i.i1818.i.lcssa br i1 %cmp.i.not.i.i.i.i1845.i, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit1866.i, label %while.body.i.i.i.i1842.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit1866.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1843.i, %cond.false.i.i.i1841.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1814.i) fence release %730 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i1791.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i1847.i = icmp ne i64 %retval.sroa.2.1.i.i.i1791.i.lcssa, 0 %cmp2.i.i.i.i19.i.i1848.i = icmp eq i64 %730, %sh_prom.i.i.i.i.i %cmp.i.i.i.i20.i.i1849.i = select i1 %iszero.i.i.i.i.i18.i.i1847.i, i1 %cmp2.i.i.i.i19.i.i1848.i, i1 false %div8.i.i.i21.i.i1850.i = lshr i32 %retval.sroa.6.1.i.i.i1790.i.lcssa, 5 %731 = and i32 %retval.sroa.6.1.i.i.i1790.i.lcssa, 31 %idxprom.i.i.i22.i.i1851.i = zext nneg i32 %div8.i.i.i21.i.i1850.i to i64 %arrayidx.i.i.i23.i.i1852.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i1851.i %conv4.i.i.i24.i.i1853.i = zext i1 %cmp.i.i.i.i20.i.i1849.i to i32 %shl.i.i.i25.i.i1854.i = shl nuw i32 %conv4.i.i.i24.i.i1853.i, %731 %xor.i.i.i26.i.i1855.i = xor i32 %shl.i.i.i25.i.i1854.i, -1 %732 = atomicrmw and ptr %arrayidx.i.i.i23.i.i1852.i, i32 %xor.i.i.i26.i.i1855.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1814.i) call void @llvm.lifetime.end.p0(ptr nonnull %ch.addr.i1755.i) %733 = load ptr, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34 %add.ptr.i.i1867.i = getelementptr inbounds nuw i8, ptr %733, i64 16 store ptr %add.ptr.i.i1867.i, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34 %sub.ptr.lhs.cast.i.i1868.i = ptrtoint ptr %add.ptr.i.i1867.i to i64 %sub.ptr.sub.i.i1869.i = sub i64 %sub.ptr.lhs.cast.i.i1868.i, ptrtoint (ptr @_ZN12_GLOBAL__N_16memoryE to i64) %cmp.i.i1870.i = icmp ugt i64 %sub.ptr.sub.i.i1869.i, 65335 %cond.i.i1871.i = select i1 %cmp.i.i1870.i, ptr null, ptr %733 %tobool.i.i.i.i78.i.i = icmp ne ptr %cond.i.i1871.i, null tail call void @llvm.assume(i1 %tobool.i.i.i.i78.i.i) tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %733, ptr noundef nonnull align 1 dereferenceable(6) %4, i64 6, i1 false), !alias.scope !90 %cmp.not.i10.i.i.i83.i.i = icmp eq ptr %cond.i.i1871.i, @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE br i1 %cmp.not.i10.i.i.i83.i.i, label %for.cond.i.i.i1876.i.preheader, label %if.then.i.i.i.i84.i.i if.then.i.i.i.i84.i.i: ; preds = %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit1866.i %arrayidx.i.i.i.i85.i.i = getelementptr inbounds nuw i8, ptr %733, i64 6 store i8 0, ptr %arrayidx.i.i.i.i85.i.i, align 1, !tbaa !36 br label %for.cond.i.i.i1876.i.preheader for.cond.i.i.i1876.i.preheader: ; preds = %if.then.i.i.i.i84.i.i, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit1866.i br label %for.cond.i.i.i1876.i for.cond.i.i.i1876.i: ; preds = %for.inc.i.i.i1911.i, %for.cond.i.i.i1876.i.preheader %retval.sroa.6.0.i.i.i1877.i = phi i32 [ %retval.sroa.6.2.i.i.i1912.i, %for.inc.i.i.i1911.i ], [ undef, %for.cond.i.i.i1876.i.preheader ] %retval.sroa.2.0.i.i.i1878.i = phi i64 [ %retval.sroa.2.2.i.i.i1913.i, %for.inc.i.i.i1911.i ], [ undef, %for.cond.i.i.i1876.i.preheader ] %retval.sroa.8.0.i.i.i1879.i = phi i32 [ %retval.sroa.8.2.i.i.i1914.i, %for.inc.i.i.i1911.i ], [ undef, %for.cond.i.i.i1876.i.preheader ] %index.0.i.i.i1880.i = phi i32 [ %inc.i.i.i1915.i, %for.inc.i.i.i1911.i ], [ 0, %for.cond.i.i.i1876.i.preheader ] %734 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i1881.i = icmp ult i32 %index.0.i.i.i1880.i, %734 %spec.store.select.i.i.i1882.i = select i1 %cmp.not.i.i.i1881.i, i32 %index.0.i.i.i1880.i, i32 0 %735 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i1883.i = zext i32 %735 to i64 %div8.i.i.i.i.i1884.i = lshr i32 %spec.store.select.i.i.i1882.i, 5 %736 = and i32 %spec.store.select.i.i.i1882.i, 31 %idxprom.i.i.i.i.i1885.i = zext nneg i32 %div8.i.i.i.i.i1884.i to i64 %arrayidx.i.i.i.i.i1886.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i1885.i %737 = lshr i32 %735, %5 %conv4.i.i.i.i.i1887.i = and i32 %737, 1 %shl.i.i.i.i.i1888.i = shl nuw i32 %conv4.i.i.i.i.i1887.i, %736 %738 = atomicrmw or ptr %arrayidx.i.i.i.i.i1886.i, i32 %shl.i.i.i.i.i1888.i monotonic, align 4 %shl5.i.i.i.i.i1889.i = shl nuw i32 1, %736 %and.i.i.i.i.i1890.i = and i32 %shl5.i.i.i.i.i1889.i, %738 %tobool3.i.i.i.i1891.i = icmp ne i32 %and.i.i.i.i.i1890.i, 0 %739 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %735, i1 %tobool3.i.i.i.i1891.i) %cmp.i.not.i.i.i1892.i = icmp eq i32 %735, %739 br i1 %cmp.i.not.i.i.i1892.i, label %for.inc.i.i.i1911.i, label %if.then.i.i.i.i1893.i if.then.i.i.i.i1893.i: ; preds = %for.cond.i.i.i1876.i fence acquire %740 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i1894.i = zext i32 %spec.store.select.i.i.i1882.i to i64 %arrayidx.i.i.i.i1895.i = getelementptr inbounds nuw i32, ptr %740, i64 %idxprom.i.i.i.i1894.i %741 = load atomic i32, ptr %arrayidx.i.i.i.i1895.i monotonic, align 4 %742 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %735, i1 true) %iszero.i.i.i.i.i.i1896.i = icmp eq i32 %735, 0 %sub.i.i.i.i.i.i1897.i = select i1 %iszero.i.i.i.i.i.i1896.i, i32 -1, i32 %742 %743 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %735, i32 %741, i32 %sub.i.i.i.i.i.i1897.i, i32 31) %744 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i1898.i = getelementptr inbounds nuw i32, ptr %744, i64 %idxprom.i.i.i.i1894.i %745 = load atomic i32, ptr %arrayidx.i45.i.i.i1898.i monotonic, align 4 %746 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %735, i32 %745, i32 %sub.i.i.i.i.i.i1897.i, i32 31) %cmp.i48.not.i.i.i1899.i = icmp eq i32 %743, %746 br i1 %cmp.i48.not.i.i.i1899.i, label %if.end14.i.i.i1976.i, label %if.then12.i.i.i1900.i if.then12.i.i.i1900.i: ; preds = %if.then.i.i.i.i1893.i fence release %747 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1883.i, i1 true) %iszero.i.i.i.i.i.i.i1901.i = icmp ne i32 %735, 0 %cmp2.i.i.i.i.i.i1902.i = icmp eq i64 %747, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i1903.i = select i1 %iszero.i.i.i.i.i.i.i1901.i, i1 %cmp2.i.i.i.i.i.i1902.i, i1 false %conv4.i.i53.i.i.i1904.i = zext i1 %cmp.i.i.i.i.i.i1903.i to i32 %shl.i.i54.i.i.i1905.i = shl nuw i32 %conv4.i.i53.i.i.i1904.i, %736 %xor.i.i.i.i.i1906.i = xor i32 %shl.i.i54.i.i.i1905.i, -1 %748 = atomicrmw and ptr %arrayidx.i.i.i.i.i1886.i, i32 %xor.i.i.i.i.i1906.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %735) br label %cleanup26.i.i.i1907.i if.end14.i.i.i1976.i: ; preds = %if.then.i.i.i.i1893.i %749 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1883.i, i1 true) %iszero.i.i.i56.i.i.i1977.i = icmp ne i32 %735, 0 %cmp2.i.i.i.i.i1978.i = icmp eq i64 %749, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i1979.i = select i1 %iszero.i.i.i56.i.i.i1977.i, i1 %cmp2.i.i.i.i.i1978.i, i1 false br i1 %cmp.i.i.i.i.i1979.i, label %if.then16.i.i.i1981.i, label %if.end22.i.i.i1980.i if.then16.i.i.i1981.i: ; preds = %if.end14.i.i.i1976.i %750 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i1982.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %750, i64 %idxprom.i.i.i.i1894.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i1982.i, align 8, !tbaa !61 %arrayidx21.i.i.i1983.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %750, i64 %idxprom.i.i.i.i1894.i store i64 %conv.i.i.i.i.i1883.i, ptr %arrayidx21.i.i.i1983.i, align 8, !tbaa !64 br label %if.end22.i.i.i1980.i if.end22.i.i.i1980.i: ; preds = %if.then16.i.i.i1981.i, %if.end14.i.i.i1976.i tail call void @llvm.nvvm.bar.warp.sync(i32 %735) br label %cleanup26.i.i.i1907.i cleanup26.i.i.i1907.i: ; preds = %if.end22.i.i.i1980.i, %if.then12.i.i.i1900.i %retval.sroa.6.1.i.i.i1908.i = phi i32 [ %retval.sroa.6.0.i.i.i1877.i, %if.then12.i.i.i1900.i ], [ %spec.store.select.i.i.i1882.i, %if.end22.i.i.i1980.i ] %retval.sroa.2.1.i.i.i1909.i = phi i64 [ %retval.sroa.2.0.i.i.i1878.i, %if.then12.i.i.i1900.i ], [ %conv.i.i.i.i.i1883.i, %if.end22.i.i.i1980.i ] %retval.sroa.8.1.i.i.i1910.i = phi i32 [ %retval.sroa.8.0.i.i.i1879.i, %if.then12.i.i.i1900.i ], [ %743, %if.end22.i.i.i1980.i ] br i1 %cmp.i48.not.i.i.i1899.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1916.i, label %for.inc.i.i.i1911.i for.inc.i.i.i1911.i: ; preds = %cleanup26.i.i.i1907.i, %for.cond.i.i.i1876.i %retval.sroa.6.2.i.i.i1912.i = phi i32 [ %retval.sroa.6.1.i.i.i1908.i, %cleanup26.i.i.i1907.i ], [ %retval.sroa.6.0.i.i.i1877.i, %for.cond.i.i.i1876.i ] %retval.sroa.2.2.i.i.i1913.i = phi i64 [ %retval.sroa.2.1.i.i.i1909.i, %cleanup26.i.i.i1907.i ], [ %retval.sroa.2.0.i.i.i1878.i, %for.cond.i.i.i1876.i ] %retval.sroa.8.2.i.i.i1914.i = phi i32 [ %retval.sroa.8.1.i.i.i1910.i, %cleanup26.i.i.i1907.i ], [ %retval.sroa.8.0.i.i.i1879.i, %for.cond.i.i.i1876.i ] %inc.i.i.i1915.i = add i32 %spec.store.select.i.i.i1882.i, 1 br label %for.cond.i.i.i1876.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1916.i: ; preds = %cleanup26.i.i.i1907.i %retval.sroa.6.1.i.i.i1908.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i1908.i, %cleanup26.i.i.i1907.i ] %retval.sroa.2.1.i.i.i1909.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i1909.i, %cleanup26.i.i.i1907.i ] %retval.sroa.8.1.i.i.i1910.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i1910.i, %cleanup26.i.i.i1907.i ] fence acquire %751 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i1919.i = shl i32 %retval.sroa.6.1.i.i.i1908.i.lcssa, 5 %idxprom.i18.i.i.i.i.i1920.i = zext i32 %mul.i.i.i.i.i.i1919.i to i64 %arrayidx.i19.i.i.i.i.i1921.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %751, i64 %idxprom.i18.i.i.i.i.i1920.i %arrayidx.i21.i.i.i.i.i1922.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i1921.i, i64 %sh_prom.i.i.i.i.i store i64 6, ptr %arrayidx.i21.i.i.i.i.i1922.i, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i1924.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i1922.i, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %arrayidx6.i.i.i.i.i.i.i1924.i, ptr noundef nonnull align 1 dereferenceable(6) %733, i64 6, i1 false) %tobool.not.i.i.i.i.i.i1925.i = icmp eq i32 %retval.sroa.8.1.i.i.i1910.i.lcssa, 0 %conv.i.i.i.i.i.i1926.i = zext i1 %tobool.not.i.i.i.i.i.i1925.i to i32 fence release %752 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i1927.i = zext i32 %retval.sroa.6.1.i.i.i1908.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i1928.i = getelementptr inbounds nuw i32, ptr %752, i64 %idxprom.i22.i.i.i.i.i1927.i store atomic i32 %conv.i.i.i.i.i.i1926.i, ptr %arrayidx.i23.i.i.i.i.i1928.i monotonic, align 4 %753 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i1929.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %753, i64 %idxprom.i22.i.i.i.i.i1927.i %754 = load i64, ptr %arrayidx.i.i4.i.i1929.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i1930.i = trunc i64 %754 to i32 %conv.i.i.i.i17.i.i.i.i1932.i = trunc i64 %retval.sroa.2.1.i.i.i1909.i.lcssa to i32 %755 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i1932.i, i1 true) %iszero.i.i.i.i18.i.i.i.i1933.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i1932.i, 0 %sub.i.i.i.i19.i.i.i.i1934.i = select i1 %iszero.i.i.i.i18.i.i.i.i1933.i, i32 -1, i32 %755 br label %while.cond.i.i.i.i1935.i while.cond.i.i.i.i1935.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1947.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1916.i %port.sroa.43.0.i.i1936.i = phi i32 [ %conv.i.i.i.i.i.i1926.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1916.i ], [ %conv.i.i39.i.i.i.i1948.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1947.i ] %idx.0.i.i.i.i1937.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1916.i ], [ %add.i.i.i.i1950.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1947.i ] %cmp.i.i.i.i1938.i = icmp eq i64 %idx.0.i.i.i.i1937.i, 0 %756 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i1930.i, i1 %cmp.i.i.i.i1938.i) %tobool.not.i.i.i.i1939.i = icmp eq i32 %756, 0 %757 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i1940.i = getelementptr inbounds nuw i32, ptr %757, i64 %idxprom.i22.i.i.i.i.i1927.i %758 = load atomic i32, ptr %arrayidx.i22.i.i.i1940.i monotonic, align 4 br i1 %tobool.not.i.i.i.i1939.i, label %cond.false.i.i.i1959.i, label %cond.false.i11.i.i.i.i1941.i cond.false.i11.i.i.i.i1941.i: ; preds = %while.cond.i.i.i.i1935.i %759 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1932.i, i32 %758, i32 %sub.i.i.i.i19.i.i.i.i1934.i, i32 31) %760 = icmp eq i32 %759, %port.sroa.43.0.i.i1936.i br i1 %760, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1946.i, label %while.body.i.i33.i.i.i.i1942.i while.body.i.i33.i.i.i.i1942.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1943.i, %cond.false.i11.i.i.i.i1941.i %761 = phi ptr [ %762, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1943.i ], [ %757, %cond.false.i11.i.i.i.i1941.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i48.i.i.i.i1957.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1943.i if.then.i.i.i48.i.i.i.i1957.i: ; preds = %while.body.i.i33.i.i.i.i1942.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i1958.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1943.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1943.i: ; preds = %if.then.i.i.i48.i.i.i.i1957.i, %while.body.i.i33.i.i.i.i1942.i %762 = phi ptr [ %.pre.i.i.i.i1958.i, %if.then.i.i.i48.i.i.i.i1957.i ], [ %761, %while.body.i.i33.i.i.i.i1942.i ] %arrayidx.i.i.i35.i.i.i.i1944.i = getelementptr inbounds nuw i32, ptr %762, i64 %idxprom.i22.i.i.i.i.i1927.i %763 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i1944.i monotonic, align 4 %764 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1932.i, i32 %763, i32 %sub.i.i.i.i19.i.i.i.i1934.i, i32 31) %cmp.i.not.i.i36.i.i.i.i1945.i = icmp eq i32 %764, %port.sroa.43.0.i.i1936.i br i1 %cmp.i.not.i.i36.i.i.i.i1945.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1946.i, label %while.body.i.i33.i.i.i.i1942.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1946.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1943.i, %cond.false.i11.i.i.i.i1941.i fence acquire br i1 %cmp.i.i.i.i1938.i, label %if.then.i.i20.i.i.i.i.i1951.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1947.i if.then.i.i20.i.i.i.i.i1951.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1946.i %765 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i1955.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %765, i64 %idxprom.i18.i.i.i.i.i1920.i %arrayidx.i22.i.i.i.i.i1956.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i1955.i, i64 %sh_prom.i.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %arrayidx.i22.i.i.i.i.i1956.i, ptr noundef nonnull align 1 dereferenceable(6) %733, i64 6, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1947.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1947.i: ; preds = %if.then.i.i20.i.i.i.i.i1951.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1946.i %conv.i.i39.i.i.i.i1948.i = xor i32 %port.sroa.43.0.i.i1936.i, 1 fence release %766 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i1949.i = getelementptr inbounds nuw i32, ptr %766, i64 %idxprom.i22.i.i.i.i.i1927.i store atomic i32 %conv.i.i39.i.i.i.i1948.i, ptr %arrayidx.i24.i.i.i.i.i1949.i monotonic, align 4 %add.i.i.i.i1950.i = add i64 %idx.0.i.i.i.i1937.i, 64 br label %while.cond.i.i.i.i1935.i, !llvm.loop !71 cond.false.i.i.i1959.i: ; preds = %while.cond.i.i.i.i1935.i %port.sroa.43.0.i.i1936.i.lcssa = phi i32 [ %port.sroa.43.0.i.i1936.i, %while.cond.i.i.i.i1935.i ] %.lcssa137 = phi ptr [ %757, %while.cond.i.i.i.i1935.i ] %.lcssa136 = phi i32 [ %758, %while.cond.i.i.i.i1935.i ] %767 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1932.i, i32 %.lcssa136, i32 %sub.i.i.i.i19.i.i.i.i1934.i, i32 31) %768 = icmp eq i32 %767, %port.sroa.43.0.i.i1936.i.lcssa br i1 %768, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit1984.i, label %while.body.i.i.i.i1960.i while.body.i.i.i.i1960.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1961.i, %cond.false.i.i.i1959.i %769 = phi ptr [ %770, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1961.i ], [ %.lcssa137, %cond.false.i.i.i1959.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i.i.i1974.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1961.i if.then.i.i.i.i.i1974.i: ; preds = %while.body.i.i.i.i1960.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i1975.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1961.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1961.i: ; preds = %if.then.i.i.i.i.i1974.i, %while.body.i.i.i.i1960.i %770 = phi ptr [ %.pre.i.i1975.i, %if.then.i.i.i.i.i1974.i ], [ %769, %while.body.i.i.i.i1960.i ] %arrayidx.i.i.i11.i.i1962.i = getelementptr inbounds nuw i32, ptr %770, i64 %idxprom.i22.i.i.i.i.i1927.i %771 = load atomic i32, ptr %arrayidx.i.i.i11.i.i1962.i monotonic, align 4 %772 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1932.i, i32 %771, i32 %sub.i.i.i.i19.i.i.i.i1934.i, i32 31) %cmp.i.not.i.i.i.i1963.i = icmp eq i32 %772, %port.sroa.43.0.i.i1936.i.lcssa br i1 %cmp.i.not.i.i.i.i1963.i, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit1984.i, label %while.body.i.i.i.i1960.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit1984.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1961.i, %cond.false.i.i.i1959.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1932.i) fence release %773 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i1909.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i1965.i = icmp ne i64 %retval.sroa.2.1.i.i.i1909.i.lcssa, 0 %cmp2.i.i.i.i19.i.i1966.i = icmp eq i64 %773, %sh_prom.i.i.i.i.i %cmp.i.i.i.i20.i.i1967.i = select i1 %iszero.i.i.i.i.i18.i.i1965.i, i1 %cmp2.i.i.i.i19.i.i1966.i, i1 false %div8.i.i.i21.i.i1968.i = lshr i32 %retval.sroa.6.1.i.i.i1908.i.lcssa, 5 %774 = and i32 %retval.sroa.6.1.i.i.i1908.i.lcssa, 31 %idxprom.i.i.i22.i.i1969.i = zext nneg i32 %div8.i.i.i21.i.i1968.i to i64 %arrayidx.i.i.i23.i.i1970.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i1969.i %conv4.i.i.i24.i.i1971.i = zext i1 %cmp.i.i.i.i20.i.i1967.i to i32 %shl.i.i.i25.i.i1972.i = shl nuw i32 %conv4.i.i.i24.i.i1971.i, %774 %xor.i.i.i26.i.i1973.i = xor i32 %shl.i.i.i25.i.i1972.i, -1 %775 = atomicrmw and ptr %arrayidx.i.i.i23.i.i1970.i, i32 %xor.i.i.i26.i.i1973.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1932.i) br label %for.cond.i.i.i1996.i for.cond.i.i.i1996.i: ; preds = %for.inc.i.i.i2031.i, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit1984.i %retval.sroa.6.0.i.i.i1997.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit1984.i ], [ %retval.sroa.6.2.i.i.i2032.i, %for.inc.i.i.i2031.i ] %retval.sroa.2.0.i.i.i1998.i = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit1984.i ], [ %retval.sroa.2.2.i.i.i2033.i, %for.inc.i.i.i2031.i ] %retval.sroa.8.0.i.i.i1999.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit1984.i ], [ %retval.sroa.8.2.i.i.i2034.i, %for.inc.i.i.i2031.i ] %index.0.i.i.i2000.i = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp6stringEEERS1_T_.exit1984.i ], [ %inc.i.i.i2035.i, %for.inc.i.i.i2031.i ] %776 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i2001.i = icmp ult i32 %index.0.i.i.i2000.i, %776 %spec.store.select.i.i.i2002.i = select i1 %cmp.not.i.i.i2001.i, i32 %index.0.i.i.i2000.i, i32 0 %777 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i2003.i = zext i32 %777 to i64 %div8.i.i.i.i.i2004.i = lshr i32 %spec.store.select.i.i.i2002.i, 5 %778 = and i32 %spec.store.select.i.i.i2002.i, 31 %idxprom.i.i.i.i.i2005.i = zext nneg i32 %div8.i.i.i.i.i2004.i to i64 %arrayidx.i.i.i.i.i2006.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i2005.i %779 = lshr i32 %777, %5 %conv4.i.i.i.i.i2007.i = and i32 %779, 1 %shl.i.i.i.i.i2008.i = shl nuw i32 %conv4.i.i.i.i.i2007.i, %778 %780 = atomicrmw or ptr %arrayidx.i.i.i.i.i2006.i, i32 %shl.i.i.i.i.i2008.i monotonic, align 4 %shl5.i.i.i.i.i2009.i = shl nuw i32 1, %778 %and.i.i.i.i.i2010.i = and i32 %shl5.i.i.i.i.i2009.i, %780 %tobool3.i.i.i.i2011.i = icmp ne i32 %and.i.i.i.i.i2010.i, 0 %781 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %777, i1 %tobool3.i.i.i.i2011.i) %cmp.i.not.i.i.i2012.i = icmp eq i32 %777, %781 br i1 %cmp.i.not.i.i.i2012.i, label %for.inc.i.i.i2031.i, label %if.then.i.i.i.i2013.i if.then.i.i.i.i2013.i: ; preds = %for.cond.i.i.i1996.i fence acquire %782 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i2014.i = zext i32 %spec.store.select.i.i.i2002.i to i64 %arrayidx.i.i.i.i2015.i = getelementptr inbounds nuw i32, ptr %782, i64 %idxprom.i.i.i.i2014.i %783 = load atomic i32, ptr %arrayidx.i.i.i.i2015.i monotonic, align 4 %784 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %777, i1 true) %iszero.i.i.i.i.i.i2016.i = icmp eq i32 %777, 0 %sub.i.i.i.i.i.i2017.i = select i1 %iszero.i.i.i.i.i.i2016.i, i32 -1, i32 %784 %785 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %777, i32 %783, i32 %sub.i.i.i.i.i.i2017.i, i32 31) %786 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i2018.i = getelementptr inbounds nuw i32, ptr %786, i64 %idxprom.i.i.i.i2014.i %787 = load atomic i32, ptr %arrayidx.i45.i.i.i2018.i monotonic, align 4 %788 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %777, i32 %787, i32 %sub.i.i.i.i.i.i2017.i, i32 31) %cmp.i48.not.i.i.i2019.i = icmp eq i32 %785, %788 br i1 %cmp.i48.not.i.i.i2019.i, label %if.end14.i.i.i2096.i, label %if.then12.i.i.i2020.i if.then12.i.i.i2020.i: ; preds = %if.then.i.i.i.i2013.i fence release %789 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2003.i, i1 true) %iszero.i.i.i.i.i.i.i2021.i = icmp ne i32 %777, 0 %cmp2.i.i.i.i.i.i2022.i = icmp eq i64 %789, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i2023.i = select i1 %iszero.i.i.i.i.i.i.i2021.i, i1 %cmp2.i.i.i.i.i.i2022.i, i1 false %conv4.i.i53.i.i.i2024.i = zext i1 %cmp.i.i.i.i.i.i2023.i to i32 %shl.i.i54.i.i.i2025.i = shl nuw i32 %conv4.i.i53.i.i.i2024.i, %778 %xor.i.i.i.i.i2026.i = xor i32 %shl.i.i54.i.i.i2025.i, -1 %790 = atomicrmw and ptr %arrayidx.i.i.i.i.i2006.i, i32 %xor.i.i.i.i.i2026.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %777) br label %cleanup26.i.i.i2027.i if.end14.i.i.i2096.i: ; preds = %if.then.i.i.i.i2013.i %791 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2003.i, i1 true) %iszero.i.i.i56.i.i.i2097.i = icmp ne i32 %777, 0 %cmp2.i.i.i.i.i2098.i = icmp eq i64 %791, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i2099.i = select i1 %iszero.i.i.i56.i.i.i2097.i, i1 %cmp2.i.i.i.i.i2098.i, i1 false br i1 %cmp.i.i.i.i.i2099.i, label %if.then16.i.i.i2101.i, label %if.end22.i.i.i2100.i if.then16.i.i.i2101.i: ; preds = %if.end14.i.i.i2096.i %792 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i2102.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %792, i64 %idxprom.i.i.i.i2014.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i2102.i, align 8, !tbaa !61 %arrayidx21.i.i.i2103.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %792, i64 %idxprom.i.i.i.i2014.i store i64 %conv.i.i.i.i.i2003.i, ptr %arrayidx21.i.i.i2103.i, align 8, !tbaa !64 br label %if.end22.i.i.i2100.i if.end22.i.i.i2100.i: ; preds = %if.then16.i.i.i2101.i, %if.end14.i.i.i2096.i tail call void @llvm.nvvm.bar.warp.sync(i32 %777) br label %cleanup26.i.i.i2027.i cleanup26.i.i.i2027.i: ; preds = %if.end22.i.i.i2100.i, %if.then12.i.i.i2020.i %retval.sroa.6.1.i.i.i2028.i = phi i32 [ %retval.sroa.6.0.i.i.i1997.i, %if.then12.i.i.i2020.i ], [ %spec.store.select.i.i.i2002.i, %if.end22.i.i.i2100.i ] %retval.sroa.2.1.i.i.i2029.i = phi i64 [ %retval.sroa.2.0.i.i.i1998.i, %if.then12.i.i.i2020.i ], [ %conv.i.i.i.i.i2003.i, %if.end22.i.i.i2100.i ] %retval.sroa.8.1.i.i.i2030.i = phi i32 [ %retval.sroa.8.0.i.i.i1999.i, %if.then12.i.i.i2020.i ], [ %785, %if.end22.i.i.i2100.i ] br i1 %cmp.i48.not.i.i.i2019.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2036.i, label %for.inc.i.i.i2031.i for.inc.i.i.i2031.i: ; preds = %cleanup26.i.i.i2027.i, %for.cond.i.i.i1996.i %retval.sroa.6.2.i.i.i2032.i = phi i32 [ %retval.sroa.6.1.i.i.i2028.i, %cleanup26.i.i.i2027.i ], [ %retval.sroa.6.0.i.i.i1997.i, %for.cond.i.i.i1996.i ] %retval.sroa.2.2.i.i.i2033.i = phi i64 [ %retval.sroa.2.1.i.i.i2029.i, %cleanup26.i.i.i2027.i ], [ %retval.sroa.2.0.i.i.i1998.i, %for.cond.i.i.i1996.i ] %retval.sroa.8.2.i.i.i2034.i = phi i32 [ %retval.sroa.8.1.i.i.i2030.i, %cleanup26.i.i.i2027.i ], [ %retval.sroa.8.0.i.i.i1999.i, %for.cond.i.i.i1996.i ] %inc.i.i.i2035.i = add i32 %spec.store.select.i.i.i2002.i, 1 br label %for.cond.i.i.i1996.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2036.i: ; preds = %cleanup26.i.i.i2027.i %retval.sroa.6.1.i.i.i2028.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i2028.i, %cleanup26.i.i.i2027.i ] %retval.sroa.2.1.i.i.i2029.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i2029.i, %cleanup26.i.i.i2027.i ] %retval.sroa.8.1.i.i.i2030.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i2030.i, %cleanup26.i.i.i2027.i ] fence acquire %793 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i2039.i = shl i32 %retval.sroa.6.1.i.i.i2028.i.lcssa, 5 %idxprom.i18.i.i.i.i.i2040.i = zext i32 %mul.i.i.i.i.i.i2039.i to i64 %arrayidx.i19.i.i.i.i.i2041.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %793, i64 %idxprom.i18.i.i.i.i.i2040.i %arrayidx.i21.i.i.i.i.i2042.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i2041.i, i64 %sh_prom.i.i.i.i.i store i64 10, ptr %arrayidx.i21.i.i.i.i.i2042.i, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i2044.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i2042.i, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(10) %arrayidx6.i.i.i.i.i.i.i2044.i, ptr noundef nonnull align 1 dereferenceable(10) @.str35, i64 10, i1 false) %tobool.not.i.i.i.i.i.i2045.i = icmp eq i32 %retval.sroa.8.1.i.i.i2030.i.lcssa, 0 %conv.i.i.i.i.i.i2046.i = zext i1 %tobool.not.i.i.i.i.i.i2045.i to i32 fence release %794 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i2047.i = zext i32 %retval.sroa.6.1.i.i.i2028.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i2048.i = getelementptr inbounds nuw i32, ptr %794, i64 %idxprom.i22.i.i.i.i.i2047.i store atomic i32 %conv.i.i.i.i.i.i2046.i, ptr %arrayidx.i23.i.i.i.i.i2048.i monotonic, align 4 %795 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i2049.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %795, i64 %idxprom.i22.i.i.i.i.i2047.i %796 = load i64, ptr %arrayidx.i.i4.i.i2049.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i2050.i = trunc i64 %796 to i32 %conv.i.i.i.i17.i.i.i.i2052.i = trunc i64 %retval.sroa.2.1.i.i.i2029.i.lcssa to i32 %797 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i2052.i, i1 true) %iszero.i.i.i.i18.i.i.i.i2053.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i2052.i, 0 %sub.i.i.i.i19.i.i.i.i2054.i = select i1 %iszero.i.i.i.i18.i.i.i.i2053.i, i32 -1, i32 %797 br label %while.cond.i.i.i.i2055.i while.cond.i.i.i.i2055.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2067.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2036.i %port.sroa.43.0.i.i2056.i = phi i32 [ %conv.i.i.i.i.i.i2046.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2036.i ], [ %conv.i.i39.i.i.i.i2068.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2067.i ] %idx.0.i.i.i.i2057.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2036.i ], [ %add.i.i.i.i2070.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2067.i ] %cmp.i.i.i2.i2058.i = icmp ult i64 %idx.0.i.i.i.i2057.i, 10 %798 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i2050.i, i1 %cmp.i.i.i2.i2058.i) %tobool.not.i.i.i.i2059.i = icmp eq i32 %798, 0 %799 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i2060.i = getelementptr inbounds nuw i32, ptr %799, i64 %idxprom.i22.i.i.i.i.i2047.i %800 = load atomic i32, ptr %arrayidx.i22.i.i.i2060.i monotonic, align 4 br i1 %tobool.not.i.i.i.i2059.i, label %cond.false.i.i.i2079.i, label %cond.false.i11.i.i.i.i2061.i cond.false.i11.i.i.i.i2061.i: ; preds = %while.cond.i.i.i.i2055.i %801 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2052.i, i32 %800, i32 %sub.i.i.i.i19.i.i.i.i2054.i, i32 31) %802 = icmp eq i32 %801, %port.sroa.43.0.i.i2056.i br i1 %802, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2066.i, label %while.body.i.i33.i.i.i.i2062.i while.body.i.i33.i.i.i.i2062.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2063.i, %cond.false.i11.i.i.i.i2061.i %803 = phi ptr [ %804, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2063.i ], [ %799, %cond.false.i11.i.i.i.i2061.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i48.i.i.i.i2077.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2063.i if.then.i.i.i48.i.i.i.i2077.i: ; preds = %while.body.i.i33.i.i.i.i2062.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i2078.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2063.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2063.i: ; preds = %if.then.i.i.i48.i.i.i.i2077.i, %while.body.i.i33.i.i.i.i2062.i %804 = phi ptr [ %.pre.i.i.i.i2078.i, %if.then.i.i.i48.i.i.i.i2077.i ], [ %803, %while.body.i.i33.i.i.i.i2062.i ] %arrayidx.i.i.i35.i.i.i.i2064.i = getelementptr inbounds nuw i32, ptr %804, i64 %idxprom.i22.i.i.i.i.i2047.i %805 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i2064.i monotonic, align 4 %806 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2052.i, i32 %805, i32 %sub.i.i.i.i19.i.i.i.i2054.i, i32 31) %cmp.i.not.i.i36.i.i.i.i2065.i = icmp eq i32 %806, %port.sroa.43.0.i.i2056.i br i1 %cmp.i.not.i.i36.i.i.i.i2065.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2066.i, label %while.body.i.i33.i.i.i.i2062.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2066.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2063.i, %cond.false.i11.i.i.i.i2061.i fence acquire br i1 %cmp.i.i.i2.i2058.i, label %if.then.i.i20.i.i.i.i.i2071.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2067.i if.then.i.i20.i.i.i.i.i2071.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2066.i %add.ptr.i.i.i.i.i.i.i.i2072.i = getelementptr inbounds nuw i8, ptr @.str35, i64 %idx.0.i.i.i.i2057.i %sub.i.i.i.i.i.i.i2073.i = sub nuw nsw i64 10, %idx.0.i.i.i.i2057.i %807 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i2075.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %807, i64 %idxprom.i18.i.i.i.i.i2040.i %arrayidx.i22.i.i.i.i.i2076.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i2075.i, i64 %sh_prom.i.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %arrayidx.i22.i.i.i.i.i2076.i, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr.i.i.i.i.i.i.i.i2072.i, i64 %sub.i.i.i.i.i.i.i2073.i, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2067.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2067.i: ; preds = %if.then.i.i20.i.i.i.i.i2071.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2066.i %conv.i.i39.i.i.i.i2068.i = xor i32 %port.sroa.43.0.i.i2056.i, 1 fence release %808 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i2069.i = getelementptr inbounds nuw i32, ptr %808, i64 %idxprom.i22.i.i.i.i.i2047.i store atomic i32 %conv.i.i39.i.i.i.i2068.i, ptr %arrayidx.i24.i.i.i.i.i2069.i monotonic, align 4 %add.i.i.i.i2070.i = add i64 %idx.0.i.i.i.i2057.i, 64 br label %while.cond.i.i.i.i2055.i, !llvm.loop !71 cond.false.i.i.i2079.i: ; preds = %while.cond.i.i.i.i2055.i %port.sroa.43.0.i.i2056.i.lcssa = phi i32 [ %port.sroa.43.0.i.i2056.i, %while.cond.i.i.i.i2055.i ] %.lcssa135 = phi ptr [ %799, %while.cond.i.i.i.i2055.i ] %.lcssa134 = phi i32 [ %800, %while.cond.i.i.i.i2055.i ] %809 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2052.i, i32 %.lcssa134, i32 %sub.i.i.i.i19.i.i.i.i2054.i, i32 31) %810 = icmp eq i32 %809, %port.sroa.43.0.i.i2056.i.lcssa br i1 %810, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2104.i, label %while.body.i.i.i.i2080.i while.body.i.i.i.i2080.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2081.i, %cond.false.i.i.i2079.i %811 = phi ptr [ %812, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2081.i ], [ %.lcssa135, %cond.false.i.i.i2079.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i.i.i2094.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2081.i if.then.i.i.i.i.i2094.i: ; preds = %while.body.i.i.i.i2080.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i2095.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2081.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2081.i: ; preds = %if.then.i.i.i.i.i2094.i, %while.body.i.i.i.i2080.i %812 = phi ptr [ %.pre.i.i2095.i, %if.then.i.i.i.i.i2094.i ], [ %811, %while.body.i.i.i.i2080.i ] %arrayidx.i.i.i11.i.i2082.i = getelementptr inbounds nuw i32, ptr %812, i64 %idxprom.i22.i.i.i.i.i2047.i %813 = load atomic i32, ptr %arrayidx.i.i.i11.i.i2082.i monotonic, align 4 %814 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2052.i, i32 %813, i32 %sub.i.i.i.i19.i.i.i.i2054.i, i32 31) %cmp.i.not.i.i.i.i2083.i = icmp eq i32 %814, %port.sroa.43.0.i.i2056.i.lcssa br i1 %cmp.i.not.i.i.i.i2083.i, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2104.i, label %while.body.i.i.i.i2080.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2104.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2081.i, %cond.false.i.i.i2079.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2052.i) fence release %815 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i2029.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i2085.i = icmp ne i64 %retval.sroa.2.1.i.i.i2029.i.lcssa, 0 %cmp2.i.i.i.i19.i.i2086.i = icmp eq i64 %815, %sh_prom.i.i.i.i.i %cmp.i.i.i.i20.i.i2087.i = select i1 %iszero.i.i.i.i.i18.i.i2085.i, i1 %cmp2.i.i.i.i19.i.i2086.i, i1 false %div8.i.i.i21.i.i2088.i = lshr i32 %retval.sroa.6.1.i.i.i2028.i.lcssa, 5 %816 = and i32 %retval.sroa.6.1.i.i.i2028.i.lcssa, 31 %idxprom.i.i.i22.i.i2089.i = zext nneg i32 %div8.i.i.i21.i.i2088.i to i64 %arrayidx.i.i.i23.i.i2090.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i2089.i %conv4.i.i.i24.i.i2091.i = zext i1 %cmp.i.i.i.i20.i.i2087.i to i32 %shl.i.i.i25.i.i2092.i = shl nuw i32 %conv4.i.i.i24.i.i2091.i, %816 %xor.i.i.i26.i.i2093.i = xor i32 %shl.i.i.i25.i.i2092.i, -1 %817 = atomicrmw and ptr %arrayidx.i.i.i23.i.i2090.i, i32 %xor.i.i.i26.i.i2093.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2052.i) br label %for.cond.i.i.i2108.i for.cond.i.i.i2108.i: ; preds = %for.inc.i.i.i2143.i, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2104.i %retval.sroa.6.0.i.i.i2109.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2104.i ], [ %retval.sroa.6.2.i.i.i2144.i, %for.inc.i.i.i2143.i ] %retval.sroa.2.0.i.i.i2110.i = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2104.i ], [ %retval.sroa.2.2.i.i.i2145.i, %for.inc.i.i.i2143.i ] %retval.sroa.8.0.i.i.i2111.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2104.i ], [ %retval.sroa.8.2.i.i.i2146.i, %for.inc.i.i.i2143.i ] %index.0.i.i.i2112.i = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2104.i ], [ %inc.i.i.i2147.i, %for.inc.i.i.i2143.i ] %818 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i2113.i = icmp ult i32 %index.0.i.i.i2112.i, %818 %spec.store.select.i.i.i2114.i = select i1 %cmp.not.i.i.i2113.i, i32 %index.0.i.i.i2112.i, i32 0 %819 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i2115.i = zext i32 %819 to i64 %div8.i.i.i.i.i2116.i = lshr i32 %spec.store.select.i.i.i2114.i, 5 %820 = and i32 %spec.store.select.i.i.i2114.i, 31 %idxprom.i.i.i.i.i2117.i = zext nneg i32 %div8.i.i.i.i.i2116.i to i64 %arrayidx.i.i.i.i.i2118.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i2117.i %821 = lshr i32 %819, %5 %conv4.i.i.i.i.i2119.i = and i32 %821, 1 %shl.i.i.i.i.i2120.i = shl nuw i32 %conv4.i.i.i.i.i2119.i, %820 %822 = atomicrmw or ptr %arrayidx.i.i.i.i.i2118.i, i32 %shl.i.i.i.i.i2120.i monotonic, align 4 %shl5.i.i.i.i.i2121.i = shl nuw i32 1, %820 %and.i.i.i.i.i2122.i = and i32 %shl5.i.i.i.i.i2121.i, %822 %tobool3.i.i.i.i2123.i = icmp ne i32 %and.i.i.i.i.i2122.i, 0 %823 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %819, i1 %tobool3.i.i.i.i2123.i) %cmp.i.not.i.i.i2124.i = icmp eq i32 %819, %823 br i1 %cmp.i.not.i.i.i2124.i, label %for.inc.i.i.i2143.i, label %if.then.i.i.i.i2125.i if.then.i.i.i.i2125.i: ; preds = %for.cond.i.i.i2108.i fence acquire %824 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i2126.i = zext i32 %spec.store.select.i.i.i2114.i to i64 %arrayidx.i.i.i.i2127.i = getelementptr inbounds nuw i32, ptr %824, i64 %idxprom.i.i.i.i2126.i %825 = load atomic i32, ptr %arrayidx.i.i.i.i2127.i monotonic, align 4 %826 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %819, i1 true) %iszero.i.i.i.i.i.i2128.i = icmp eq i32 %819, 0 %sub.i.i.i.i.i.i2129.i = select i1 %iszero.i.i.i.i.i.i2128.i, i32 -1, i32 %826 %827 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %819, i32 %825, i32 %sub.i.i.i.i.i.i2129.i, i32 31) %828 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i2130.i = getelementptr inbounds nuw i32, ptr %828, i64 %idxprom.i.i.i.i2126.i %829 = load atomic i32, ptr %arrayidx.i45.i.i.i2130.i monotonic, align 4 %830 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %819, i32 %829, i32 %sub.i.i.i.i.i.i2129.i, i32 31) %cmp.i48.not.i.i.i2131.i = icmp eq i32 %827, %830 br i1 %cmp.i48.not.i.i.i2131.i, label %if.end14.i.i.i2208.i, label %if.then12.i.i.i2132.i if.then12.i.i.i2132.i: ; preds = %if.then.i.i.i.i2125.i fence release %831 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2115.i, i1 true) %iszero.i.i.i.i.i.i.i2133.i = icmp ne i32 %819, 0 %cmp2.i.i.i.i.i.i2134.i = icmp eq i64 %831, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i2135.i = select i1 %iszero.i.i.i.i.i.i.i2133.i, i1 %cmp2.i.i.i.i.i.i2134.i, i1 false %conv4.i.i53.i.i.i2136.i = zext i1 %cmp.i.i.i.i.i.i2135.i to i32 %shl.i.i54.i.i.i2137.i = shl nuw i32 %conv4.i.i53.i.i.i2136.i, %820 %xor.i.i.i.i.i2138.i = xor i32 %shl.i.i54.i.i.i2137.i, -1 %832 = atomicrmw and ptr %arrayidx.i.i.i.i.i2118.i, i32 %xor.i.i.i.i.i2138.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %819) br label %cleanup26.i.i.i2139.i if.end14.i.i.i2208.i: ; preds = %if.then.i.i.i.i2125.i %833 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2115.i, i1 true) %iszero.i.i.i56.i.i.i2209.i = icmp ne i32 %819, 0 %cmp2.i.i.i.i.i2210.i = icmp eq i64 %833, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i2211.i = select i1 %iszero.i.i.i56.i.i.i2209.i, i1 %cmp2.i.i.i.i.i2210.i, i1 false br i1 %cmp.i.i.i.i.i2211.i, label %if.then16.i.i.i2213.i, label %if.end22.i.i.i2212.i if.then16.i.i.i2213.i: ; preds = %if.end14.i.i.i2208.i %834 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i2214.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %834, i64 %idxprom.i.i.i.i2126.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i2214.i, align 8, !tbaa !61 %arrayidx21.i.i.i2215.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %834, i64 %idxprom.i.i.i.i2126.i store i64 %conv.i.i.i.i.i2115.i, ptr %arrayidx21.i.i.i2215.i, align 8, !tbaa !64 br label %if.end22.i.i.i2212.i if.end22.i.i.i2212.i: ; preds = %if.then16.i.i.i2213.i, %if.end14.i.i.i2208.i tail call void @llvm.nvvm.bar.warp.sync(i32 %819) br label %cleanup26.i.i.i2139.i cleanup26.i.i.i2139.i: ; preds = %if.end22.i.i.i2212.i, %if.then12.i.i.i2132.i %retval.sroa.6.1.i.i.i2140.i = phi i32 [ %retval.sroa.6.0.i.i.i2109.i, %if.then12.i.i.i2132.i ], [ %spec.store.select.i.i.i2114.i, %if.end22.i.i.i2212.i ] %retval.sroa.2.1.i.i.i2141.i = phi i64 [ %retval.sroa.2.0.i.i.i2110.i, %if.then12.i.i.i2132.i ], [ %conv.i.i.i.i.i2115.i, %if.end22.i.i.i2212.i ] %retval.sroa.8.1.i.i.i2142.i = phi i32 [ %retval.sroa.8.0.i.i.i2111.i, %if.then12.i.i.i2132.i ], [ %827, %if.end22.i.i.i2212.i ] br i1 %cmp.i48.not.i.i.i2131.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2148.i, label %for.inc.i.i.i2143.i for.inc.i.i.i2143.i: ; preds = %cleanup26.i.i.i2139.i, %for.cond.i.i.i2108.i %retval.sroa.6.2.i.i.i2144.i = phi i32 [ %retval.sroa.6.1.i.i.i2140.i, %cleanup26.i.i.i2139.i ], [ %retval.sroa.6.0.i.i.i2109.i, %for.cond.i.i.i2108.i ] %retval.sroa.2.2.i.i.i2145.i = phi i64 [ %retval.sroa.2.1.i.i.i2141.i, %cleanup26.i.i.i2139.i ], [ %retval.sroa.2.0.i.i.i2110.i, %for.cond.i.i.i2108.i ] %retval.sroa.8.2.i.i.i2146.i = phi i32 [ %retval.sroa.8.1.i.i.i2142.i, %cleanup26.i.i.i2139.i ], [ %retval.sroa.8.0.i.i.i2111.i, %for.cond.i.i.i2108.i ] %inc.i.i.i2147.i = add i32 %spec.store.select.i.i.i2114.i, 1 br label %for.cond.i.i.i2108.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2148.i: ; preds = %cleanup26.i.i.i2139.i %retval.sroa.6.1.i.i.i2140.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i2140.i, %cleanup26.i.i.i2139.i ] %retval.sroa.2.1.i.i.i2141.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i2141.i, %cleanup26.i.i.i2139.i ] %retval.sroa.8.1.i.i.i2142.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i2142.i, %cleanup26.i.i.i2139.i ] fence acquire %835 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i2151.i = shl i32 %retval.sroa.6.1.i.i.i2140.i.lcssa, 5 %idxprom.i18.i.i.i.i.i2152.i = zext i32 %mul.i.i.i.i.i.i2151.i to i64 %arrayidx.i19.i.i.i.i.i2153.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %835, i64 %idxprom.i18.i.i.i.i.i2152.i %arrayidx.i21.i.i.i.i.i2154.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i2153.i, i64 %sh_prom.i.i.i.i.i store i64 2, ptr %arrayidx.i21.i.i.i.i.i2154.i, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i2156.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i2154.i, i64 8 store i16 12589, ptr %arrayidx6.i.i.i.i.i.i.i2156.i, align 8 %tobool.not.i.i.i.i.i.i2157.i = icmp eq i32 %retval.sroa.8.1.i.i.i2142.i.lcssa, 0 %conv.i.i.i.i.i.i2158.i = zext i1 %tobool.not.i.i.i.i.i.i2157.i to i32 fence release %836 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i2159.i = zext i32 %retval.sroa.6.1.i.i.i2140.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i2160.i = getelementptr inbounds nuw i32, ptr %836, i64 %idxprom.i22.i.i.i.i.i2159.i store atomic i32 %conv.i.i.i.i.i.i2158.i, ptr %arrayidx.i23.i.i.i.i.i2160.i monotonic, align 4 %837 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i2161.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %837, i64 %idxprom.i22.i.i.i.i.i2159.i %838 = load i64, ptr %arrayidx.i.i4.i.i2161.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i2162.i = trunc i64 %838 to i32 %conv.i.i.i.i17.i.i.i.i2164.i = trunc i64 %retval.sroa.2.1.i.i.i2141.i.lcssa to i32 %839 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i2164.i, i1 true) %iszero.i.i.i.i18.i.i.i.i2165.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i2164.i, 0 %sub.i.i.i.i19.i.i.i.i2166.i = select i1 %iszero.i.i.i.i18.i.i.i.i2165.i, i32 -1, i32 %839 br label %while.cond.i.i.i.i2167.i while.cond.i.i.i.i2167.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2179.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2148.i %port.sroa.43.0.i.i2168.i = phi i32 [ %conv.i.i.i.i.i.i2158.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2148.i ], [ %conv.i.i39.i.i.i.i2180.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2179.i ] %idx.0.i.i.i.i2169.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2148.i ], [ %add.i.i.i.i2182.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2179.i ] %cmp.i.i.i.i2170.i = icmp eq i64 %idx.0.i.i.i.i2169.i, 0 %840 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i2162.i, i1 %cmp.i.i.i.i2170.i) %tobool.not.i.i.i.i2171.i = icmp eq i32 %840, 0 %841 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i2172.i = getelementptr inbounds nuw i32, ptr %841, i64 %idxprom.i22.i.i.i.i.i2159.i %842 = load atomic i32, ptr %arrayidx.i22.i.i.i2172.i monotonic, align 4 br i1 %tobool.not.i.i.i.i2171.i, label %cond.false.i.i.i2191.i, label %cond.false.i11.i.i.i.i2173.i cond.false.i11.i.i.i.i2173.i: ; preds = %while.cond.i.i.i.i2167.i %843 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2164.i, i32 %842, i32 %sub.i.i.i.i19.i.i.i.i2166.i, i32 31) %844 = icmp eq i32 %843, %port.sroa.43.0.i.i2168.i br i1 %844, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2178.i, label %while.body.i.i33.i.i.i.i2174.i while.body.i.i33.i.i.i.i2174.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2175.i, %cond.false.i11.i.i.i.i2173.i %845 = phi ptr [ %846, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2175.i ], [ %841, %cond.false.i11.i.i.i.i2173.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i48.i.i.i.i2189.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2175.i if.then.i.i.i48.i.i.i.i2189.i: ; preds = %while.body.i.i33.i.i.i.i2174.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i2190.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2175.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2175.i: ; preds = %if.then.i.i.i48.i.i.i.i2189.i, %while.body.i.i33.i.i.i.i2174.i %846 = phi ptr [ %.pre.i.i.i.i2190.i, %if.then.i.i.i48.i.i.i.i2189.i ], [ %845, %while.body.i.i33.i.i.i.i2174.i ] %arrayidx.i.i.i35.i.i.i.i2176.i = getelementptr inbounds nuw i32, ptr %846, i64 %idxprom.i22.i.i.i.i.i2159.i %847 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i2176.i monotonic, align 4 %848 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2164.i, i32 %847, i32 %sub.i.i.i.i19.i.i.i.i2166.i, i32 31) %cmp.i.not.i.i36.i.i.i.i2177.i = icmp eq i32 %848, %port.sroa.43.0.i.i2168.i br i1 %cmp.i.not.i.i36.i.i.i.i2177.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2178.i, label %while.body.i.i33.i.i.i.i2174.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2178.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2175.i, %cond.false.i11.i.i.i.i2173.i fence acquire br i1 %cmp.i.i.i.i2170.i, label %if.then.i.i20.i.i.i.i.i2183.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2179.i if.then.i.i20.i.i.i.i.i2183.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2178.i %849 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i2187.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %849, i64 %idxprom.i18.i.i.i.i.i2152.i %arrayidx.i22.i.i.i.i.i2188.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i2187.i, i64 %sh_prom.i.i.i.i.i store i16 12589, ptr %arrayidx.i22.i.i.i.i.i2188.i, align 1 br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2179.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2179.i: ; preds = %if.then.i.i20.i.i.i.i.i2183.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2178.i %conv.i.i39.i.i.i.i2180.i = xor i32 %port.sroa.43.0.i.i2168.i, 1 fence release %850 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i2181.i = getelementptr inbounds nuw i32, ptr %850, i64 %idxprom.i22.i.i.i.i.i2159.i store atomic i32 %conv.i.i39.i.i.i.i2180.i, ptr %arrayidx.i24.i.i.i.i.i2181.i monotonic, align 4 %add.i.i.i.i2182.i = add i64 %idx.0.i.i.i.i2169.i, 64 br label %while.cond.i.i.i.i2167.i, !llvm.loop !71 cond.false.i.i.i2191.i: ; preds = %while.cond.i.i.i.i2167.i %port.sroa.43.0.i.i2168.i.lcssa = phi i32 [ %port.sroa.43.0.i.i2168.i, %while.cond.i.i.i.i2167.i ] %.lcssa133 = phi ptr [ %841, %while.cond.i.i.i.i2167.i ] %.lcssa132 = phi i32 [ %842, %while.cond.i.i.i.i2167.i ] %851 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2164.i, i32 %.lcssa132, i32 %sub.i.i.i.i19.i.i.i.i2166.i, i32 31) %852 = icmp eq i32 %851, %port.sroa.43.0.i.i2168.i.lcssa br i1 %852, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit2216.i, label %while.body.i.i.i.i2192.i while.body.i.i.i.i2192.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2193.i, %cond.false.i.i.i2191.i %853 = phi ptr [ %854, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2193.i ], [ %.lcssa133, %cond.false.i.i.i2191.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i.i.i2206.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2193.i if.then.i.i.i.i.i2206.i: ; preds = %while.body.i.i.i.i2192.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i2207.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2193.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2193.i: ; preds = %if.then.i.i.i.i.i2206.i, %while.body.i.i.i.i2192.i %854 = phi ptr [ %.pre.i.i2207.i, %if.then.i.i.i.i.i2206.i ], [ %853, %while.body.i.i.i.i2192.i ] %arrayidx.i.i.i11.i.i2194.i = getelementptr inbounds nuw i32, ptr %854, i64 %idxprom.i22.i.i.i.i.i2159.i %855 = load atomic i32, ptr %arrayidx.i.i.i11.i.i2194.i monotonic, align 4 %856 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2164.i, i32 %855, i32 %sub.i.i.i.i19.i.i.i.i2166.i, i32 31) %cmp.i.not.i.i.i.i2195.i = icmp eq i32 %856, %port.sroa.43.0.i.i2168.i.lcssa br i1 %cmp.i.not.i.i.i.i2195.i, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit2216.i, label %while.body.i.i.i.i2192.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit2216.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2193.i, %cond.false.i.i.i2191.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2164.i) fence release %857 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i2141.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i2197.i = icmp ne i64 %retval.sroa.2.1.i.i.i2141.i.lcssa, 0 %cmp2.i.i.i.i19.i.i2198.i = icmp eq i64 %857, %sh_prom.i.i.i.i.i %cmp.i.i.i.i20.i.i2199.i = select i1 %iszero.i.i.i.i.i18.i.i2197.i, i1 %cmp2.i.i.i.i19.i.i2198.i, i1 false %div8.i.i.i21.i.i2200.i = lshr i32 %retval.sroa.6.1.i.i.i2140.i.lcssa, 5 %858 = and i32 %retval.sroa.6.1.i.i.i2140.i.lcssa, 31 %idxprom.i.i.i22.i.i2201.i = zext nneg i32 %div8.i.i.i21.i.i2200.i to i64 %arrayidx.i.i.i23.i.i2202.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i2201.i %conv4.i.i.i24.i.i2203.i = zext i1 %cmp.i.i.i.i20.i.i2199.i to i32 %shl.i.i.i25.i.i2204.i = shl nuw i32 %conv4.i.i.i24.i.i2203.i, %858 %xor.i.i.i26.i.i2205.i = xor i32 %shl.i.i.i25.i.i2204.i, -1 %859 = atomicrmw and ptr %arrayidx.i.i.i23.i.i2202.i, i32 %xor.i.i.i26.i.i2205.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2164.i) call void @llvm.lifetime.start.p0(ptr nonnull %ch.addr.i2219.i) store i8 10, ptr %ch.addr.i2219.i, align 1, !tbaa !36 br label %for.cond.i.i.i2222.i for.cond.i.i.i2222.i: ; preds = %for.inc.i.i.i2257.i, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit2216.i %retval.sroa.6.0.i.i.i2223.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit2216.i ], [ %retval.sroa.6.2.i.i.i2258.i, %for.inc.i.i.i2257.i ] %retval.sroa.2.0.i.i.i2224.i = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit2216.i ], [ %retval.sroa.2.2.i.i.i2259.i, %for.inc.i.i.i2257.i ] %retval.sroa.8.0.i.i.i2225.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit2216.i ], [ %retval.sroa.8.2.i.i.i2260.i, %for.inc.i.i.i2257.i ] %index.0.i.i.i2226.i = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsINS_3cpp11string_viewEEERS1_T_.exit2216.i ], [ %inc.i.i.i2261.i, %for.inc.i.i.i2257.i ] %860 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i2227.i = icmp ult i32 %index.0.i.i.i2226.i, %860 %spec.store.select.i.i.i2228.i = select i1 %cmp.not.i.i.i2227.i, i32 %index.0.i.i.i2226.i, i32 0 %861 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i2229.i = zext i32 %861 to i64 %div8.i.i.i.i.i2230.i = lshr i32 %spec.store.select.i.i.i2228.i, 5 %862 = and i32 %spec.store.select.i.i.i2228.i, 31 %idxprom.i.i.i.i.i2231.i = zext nneg i32 %div8.i.i.i.i.i2230.i to i64 %arrayidx.i.i.i.i.i2232.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i2231.i %863 = lshr i32 %861, %5 %conv4.i.i.i.i.i2233.i = and i32 %863, 1 %shl.i.i.i.i.i2234.i = shl nuw i32 %conv4.i.i.i.i.i2233.i, %862 %864 = atomicrmw or ptr %arrayidx.i.i.i.i.i2232.i, i32 %shl.i.i.i.i.i2234.i monotonic, align 4 %shl5.i.i.i.i.i2235.i = shl nuw i32 1, %862 %and.i.i.i.i.i2236.i = and i32 %shl5.i.i.i.i.i2235.i, %864 %tobool3.i.i.i.i2237.i = icmp ne i32 %and.i.i.i.i.i2236.i, 0 %865 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %861, i1 %tobool3.i.i.i.i2237.i) %cmp.i.not.i.i.i2238.i = icmp eq i32 %861, %865 br i1 %cmp.i.not.i.i.i2238.i, label %for.inc.i.i.i2257.i, label %if.then.i.i.i.i2239.i if.then.i.i.i.i2239.i: ; preds = %for.cond.i.i.i2222.i fence acquire %866 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i2240.i = zext i32 %spec.store.select.i.i.i2228.i to i64 %arrayidx.i.i.i.i2241.i = getelementptr inbounds nuw i32, ptr %866, i64 %idxprom.i.i.i.i2240.i %867 = load atomic i32, ptr %arrayidx.i.i.i.i2241.i monotonic, align 4 %868 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %861, i1 true) %iszero.i.i.i.i.i.i2242.i = icmp eq i32 %861, 0 %sub.i.i.i.i.i.i2243.i = select i1 %iszero.i.i.i.i.i.i2242.i, i32 -1, i32 %868 %869 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %861, i32 %867, i32 %sub.i.i.i.i.i.i2243.i, i32 31) %870 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i2244.i = getelementptr inbounds nuw i32, ptr %870, i64 %idxprom.i.i.i.i2240.i %871 = load atomic i32, ptr %arrayidx.i45.i.i.i2244.i monotonic, align 4 %872 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %861, i32 %871, i32 %sub.i.i.i.i.i.i2243.i, i32 31) %cmp.i48.not.i.i.i2245.i = icmp eq i32 %869, %872 br i1 %cmp.i48.not.i.i.i2245.i, label %if.end14.i.i.i2322.i, label %if.then12.i.i.i2246.i if.then12.i.i.i2246.i: ; preds = %if.then.i.i.i.i2239.i fence release %873 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2229.i, i1 true) %iszero.i.i.i.i.i.i.i2247.i = icmp ne i32 %861, 0 %cmp2.i.i.i.i.i.i2248.i = icmp eq i64 %873, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i.i2249.i = select i1 %iszero.i.i.i.i.i.i.i2247.i, i1 %cmp2.i.i.i.i.i.i2248.i, i1 false %conv4.i.i53.i.i.i2250.i = zext i1 %cmp.i.i.i.i.i.i2249.i to i32 %shl.i.i54.i.i.i2251.i = shl nuw i32 %conv4.i.i53.i.i.i2250.i, %862 %xor.i.i.i.i.i2252.i = xor i32 %shl.i.i54.i.i.i2251.i, -1 %874 = atomicrmw and ptr %arrayidx.i.i.i.i.i2232.i, i32 %xor.i.i.i.i.i2252.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %861) br label %cleanup26.i.i.i2253.i if.end14.i.i.i2322.i: ; preds = %if.then.i.i.i.i2239.i %875 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2229.i, i1 true) %iszero.i.i.i56.i.i.i2323.i = icmp ne i32 %861, 0 %cmp2.i.i.i.i.i2324.i = icmp eq i64 %875, %sh_prom.i.i.i.i.i %cmp.i.i.i.i.i2325.i = select i1 %iszero.i.i.i56.i.i.i2323.i, i1 %cmp2.i.i.i.i.i2324.i, i1 false br i1 %cmp.i.i.i.i.i2325.i, label %if.then16.i.i.i2327.i, label %if.end22.i.i.i2326.i if.then16.i.i.i2327.i: ; preds = %if.end14.i.i.i2322.i %876 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i2328.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %876, i64 %idxprom.i.i.i.i2240.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i2328.i, align 8, !tbaa !61 %arrayidx21.i.i.i2329.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %876, i64 %idxprom.i.i.i.i2240.i store i64 %conv.i.i.i.i.i2229.i, ptr %arrayidx21.i.i.i2329.i, align 8, !tbaa !64 br label %if.end22.i.i.i2326.i if.end22.i.i.i2326.i: ; preds = %if.then16.i.i.i2327.i, %if.end14.i.i.i2322.i tail call void @llvm.nvvm.bar.warp.sync(i32 %861) br label %cleanup26.i.i.i2253.i cleanup26.i.i.i2253.i: ; preds = %if.end22.i.i.i2326.i, %if.then12.i.i.i2246.i %retval.sroa.6.1.i.i.i2254.i = phi i32 [ %retval.sroa.6.0.i.i.i2223.i, %if.then12.i.i.i2246.i ], [ %spec.store.select.i.i.i2228.i, %if.end22.i.i.i2326.i ] %retval.sroa.2.1.i.i.i2255.i = phi i64 [ %retval.sroa.2.0.i.i.i2224.i, %if.then12.i.i.i2246.i ], [ %conv.i.i.i.i.i2229.i, %if.end22.i.i.i2326.i ] %retval.sroa.8.1.i.i.i2256.i = phi i32 [ %retval.sroa.8.0.i.i.i2225.i, %if.then12.i.i.i2246.i ], [ %869, %if.end22.i.i.i2326.i ] br i1 %cmp.i48.not.i.i.i2245.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2262.i, label %for.inc.i.i.i2257.i for.inc.i.i.i2257.i: ; preds = %cleanup26.i.i.i2253.i, %for.cond.i.i.i2222.i %retval.sroa.6.2.i.i.i2258.i = phi i32 [ %retval.sroa.6.1.i.i.i2254.i, %cleanup26.i.i.i2253.i ], [ %retval.sroa.6.0.i.i.i2223.i, %for.cond.i.i.i2222.i ] %retval.sroa.2.2.i.i.i2259.i = phi i64 [ %retval.sroa.2.1.i.i.i2255.i, %cleanup26.i.i.i2253.i ], [ %retval.sroa.2.0.i.i.i2224.i, %for.cond.i.i.i2222.i ] %retval.sroa.8.2.i.i.i2260.i = phi i32 [ %retval.sroa.8.1.i.i.i2256.i, %cleanup26.i.i.i2253.i ], [ %retval.sroa.8.0.i.i.i2225.i, %for.cond.i.i.i2222.i ] %inc.i.i.i2261.i = add i32 %spec.store.select.i.i.i2228.i, 1 br label %for.cond.i.i.i2222.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2262.i: ; preds = %cleanup26.i.i.i2253.i %retval.sroa.6.1.i.i.i2254.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i2254.i, %cleanup26.i.i.i2253.i ] %retval.sroa.2.1.i.i.i2255.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i2255.i, %cleanup26.i.i.i2253.i ] %retval.sroa.8.1.i.i.i2256.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i2256.i, %cleanup26.i.i.i2253.i ] fence acquire %877 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i2265.i = shl i32 %retval.sroa.6.1.i.i.i2254.i.lcssa, 5 %idxprom.i18.i.i.i.i.i2266.i = zext i32 %mul.i.i.i.i.i.i2265.i to i64 %arrayidx.i19.i.i.i.i.i2267.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %877, i64 %idxprom.i18.i.i.i.i.i2266.i %arrayidx.i21.i.i.i.i.i2268.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i2267.i, i64 %sh_prom.i.i.i.i.i store i64 1, ptr %arrayidx.i21.i.i.i.i.i2268.i, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i2270.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i2268.i, i64 8 %878 = load i8, ptr %ch.addr.i2219.i, align 1 store i8 %878, ptr %arrayidx6.i.i.i.i.i.i.i2270.i, align 8 %tobool.not.i.i.i.i.i.i2271.i = icmp eq i32 %retval.sroa.8.1.i.i.i2256.i.lcssa, 0 %conv.i.i.i.i.i.i2272.i = zext i1 %tobool.not.i.i.i.i.i.i2271.i to i32 fence release %879 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i2273.i = zext i32 %retval.sroa.6.1.i.i.i2254.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i2274.i = getelementptr inbounds nuw i32, ptr %879, i64 %idxprom.i22.i.i.i.i.i2273.i store atomic i32 %conv.i.i.i.i.i.i2272.i, ptr %arrayidx.i23.i.i.i.i.i2274.i monotonic, align 4 %880 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i2275.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %880, i64 %idxprom.i22.i.i.i.i.i2273.i %881 = load i64, ptr %arrayidx.i.i4.i.i2275.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i2276.i = trunc i64 %881 to i32 %conv.i.i.i.i17.i.i.i.i2278.i = trunc i64 %retval.sroa.2.1.i.i.i2255.i.lcssa to i32 %882 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i2278.i, i1 true) %iszero.i.i.i.i18.i.i.i.i2279.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i2278.i, 0 %sub.i.i.i.i19.i.i.i.i2280.i = select i1 %iszero.i.i.i.i18.i.i.i.i2279.i, i32 -1, i32 %882 br label %while.cond.i.i.i.i2281.i while.cond.i.i.i.i2281.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2293.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2262.i %port.sroa.43.0.i.i2282.i = phi i32 [ %conv.i.i.i.i.i.i2272.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2262.i ], [ %conv.i.i39.i.i.i.i2294.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2293.i ] %idx.0.i.i.i.i2283.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2262.i ], [ %add.i.i.i.i2296.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2293.i ] %cmp.i.i.i.i2284.i = icmp eq i64 %idx.0.i.i.i.i2283.i, 0 %883 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i2276.i, i1 %cmp.i.i.i.i2284.i) %tobool.not.i.i.i.i2285.i = icmp eq i32 %883, 0 %884 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i2286.i = getelementptr inbounds nuw i32, ptr %884, i64 %idxprom.i22.i.i.i.i.i2273.i %885 = load atomic i32, ptr %arrayidx.i22.i.i.i2286.i monotonic, align 4 br i1 %tobool.not.i.i.i.i2285.i, label %cond.false.i.i.i2305.i, label %cond.false.i11.i.i.i.i2287.i cond.false.i11.i.i.i.i2287.i: ; preds = %while.cond.i.i.i.i2281.i %886 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2278.i, i32 %885, i32 %sub.i.i.i.i19.i.i.i.i2280.i, i32 31) %887 = icmp eq i32 %886, %port.sroa.43.0.i.i2282.i br i1 %887, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2292.i, label %while.body.i.i33.i.i.i.i2288.i while.body.i.i33.i.i.i.i2288.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2289.i, %cond.false.i11.i.i.i.i2287.i %888 = phi ptr [ %889, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2289.i ], [ %884, %cond.false.i11.i.i.i.i2287.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i48.i.i.i.i2303.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2289.i if.then.i.i.i48.i.i.i.i2303.i: ; preds = %while.body.i.i33.i.i.i.i2288.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i2304.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2289.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2289.i: ; preds = %if.then.i.i.i48.i.i.i.i2303.i, %while.body.i.i33.i.i.i.i2288.i %889 = phi ptr [ %.pre.i.i.i.i2304.i, %if.then.i.i.i48.i.i.i.i2303.i ], [ %888, %while.body.i.i33.i.i.i.i2288.i ] %arrayidx.i.i.i35.i.i.i.i2290.i = getelementptr inbounds nuw i32, ptr %889, i64 %idxprom.i22.i.i.i.i.i2273.i %890 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i2290.i monotonic, align 4 %891 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2278.i, i32 %890, i32 %sub.i.i.i.i19.i.i.i.i2280.i, i32 31) %cmp.i.not.i.i36.i.i.i.i2291.i = icmp eq i32 %891, %port.sroa.43.0.i.i2282.i br i1 %cmp.i.not.i.i36.i.i.i.i2291.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2292.i, label %while.body.i.i33.i.i.i.i2288.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2292.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2289.i, %cond.false.i11.i.i.i.i2287.i fence acquire br i1 %cmp.i.i.i.i2284.i, label %if.then.i.i20.i.i.i.i.i2297.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2293.i if.then.i.i20.i.i.i.i.i2297.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2292.i %892 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i2301.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %892, i64 %idxprom.i18.i.i.i.i.i2266.i %arrayidx.i22.i.i.i.i.i2302.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i2301.i, i64 %sh_prom.i.i.i.i.i %893 = load i8, ptr %ch.addr.i2219.i, align 1 store i8 %893, ptr %arrayidx.i22.i.i.i.i.i2302.i, align 1 br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2293.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2293.i: ; preds = %if.then.i.i20.i.i.i.i.i2297.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2292.i %conv.i.i39.i.i.i.i2294.i = xor i32 %port.sroa.43.0.i.i2282.i, 1 fence release %894 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i2295.i = getelementptr inbounds nuw i32, ptr %894, i64 %idxprom.i22.i.i.i.i.i2273.i store atomic i32 %conv.i.i39.i.i.i.i2294.i, ptr %arrayidx.i24.i.i.i.i.i2295.i monotonic, align 4 %add.i.i.i.i2296.i = add i64 %idx.0.i.i.i.i2283.i, 64 br label %while.cond.i.i.i.i2281.i, !llvm.loop !71 cond.false.i.i.i2305.i: ; preds = %while.cond.i.i.i.i2281.i %port.sroa.43.0.i.i2282.i.lcssa = phi i32 [ %port.sroa.43.0.i.i2282.i, %while.cond.i.i.i.i2281.i ] %.lcssa131 = phi ptr [ %884, %while.cond.i.i.i.i2281.i ] %.lcssa = phi i32 [ %885, %while.cond.i.i.i.i2281.i ] %895 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2278.i, i32 %.lcssa, i32 %sub.i.i.i.i19.i.i.i.i2280.i, i32 31) %896 = icmp eq i32 %895, %port.sroa.43.0.i.i2282.i.lcssa br i1 %896, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit2330.i, label %while.body.i.i.i.i2306.i while.body.i.i.i.i2306.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2307.i, %cond.false.i.i.i2305.i %897 = phi ptr [ %898, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2307.i ], [ %.lcssa131, %cond.false.i.i.i2305.i ] br i1 %cmp.i3.i.i27.i.i.i.i.i, label %if.then.i.i.i.i.i2320.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2307.i if.then.i.i.i.i.i2320.i: ; preds = %while.body.i.i.i.i2306.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i2321.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2307.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2307.i: ; preds = %if.then.i.i.i.i.i2320.i, %while.body.i.i.i.i2306.i %898 = phi ptr [ %.pre.i.i2321.i, %if.then.i.i.i.i.i2320.i ], [ %897, %while.body.i.i.i.i2306.i ] %arrayidx.i.i.i11.i.i2308.i = getelementptr inbounds nuw i32, ptr %898, i64 %idxprom.i22.i.i.i.i.i2273.i %899 = load atomic i32, ptr %arrayidx.i.i.i11.i.i2308.i monotonic, align 4 %900 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2278.i, i32 %899, i32 %sub.i.i.i.i19.i.i.i.i2280.i, i32 31) %cmp.i.not.i.i.i.i2309.i = icmp eq i32 %900, %port.sroa.43.0.i.i2282.i.lcssa br i1 %cmp.i.not.i.i.i.i2309.i, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit2330.i, label %while.body.i.i.i.i2306.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit2330.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2307.i, %cond.false.i.i.i2305.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2278.i) fence release %901 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i2255.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i2311.i = icmp ne i64 %retval.sroa.2.1.i.i.i2255.i.lcssa, 0 %cmp2.i.i.i.i19.i.i2312.i = icmp eq i64 %901, %sh_prom.i.i.i.i.i %cmp.i.i.i.i20.i.i2313.i = select i1 %iszero.i.i.i.i.i18.i.i2311.i, i1 %cmp2.i.i.i.i19.i.i2312.i, i1 false %div8.i.i.i21.i.i2314.i = lshr i32 %retval.sroa.6.1.i.i.i2254.i.lcssa, 5 %902 = and i32 %retval.sroa.6.1.i.i.i2254.i.lcssa, 31 %idxprom.i.i.i22.i.i2315.i = zext nneg i32 %div8.i.i.i21.i.i2314.i to i64 %arrayidx.i.i.i23.i.i2316.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i2315.i %conv4.i.i.i24.i.i2317.i = zext i1 %cmp.i.i.i.i20.i.i2313.i to i32 %shl.i.i.i25.i.i2318.i = shl nuw i32 %conv4.i.i.i24.i.i2317.i, %902 %xor.i.i.i26.i.i2319.i = xor i32 %shl.i.i.i25.i.i2318.i, -1 %903 = atomicrmw and ptr %arrayidx.i.i.i23.i.i2316.i, i32 %xor.i.i.i26.i.i2319.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2278.i) call void @llvm.lifetime.end.p0(ptr nonnull %ch.addr.i2219.i) br label %_ZN22__llvm_libc_22_0_0_git7testing8internal4testINS_3cpp11string_viewEEEbPNS1_10RunContextENS0_8TestCondET_S8_PKcSA_NS1_8LocationE.exit _ZN22__llvm_libc_22_0_0_git7testing8internal4testINS_3cpp11string_viewEEEbPNS1_10RunContextENS0_8TestCondET_S8_PKcSA_NS1_8LocationE.exit: ; preds = %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit2330.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i.i call void @llvm.lifetime.end.p0(ptr nonnull %buffer) #32 ret void } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) define internal noundef nonnull ptr @_ZNK33LlvmLibcIntegerToStringTest_INT327getNameEv(ptr nonnull readnone align 8 captures(none) %this) unnamed_addr #2 comdat align 2 { entry: ret ptr @.str4 } ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.start.p0(ptr captures(none)) #6 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(ptr captures(none)) #6 ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn define dso_local noundef range(i64 0, 18446744073709552) i64 @clock() local_unnamed_addr #7 { entry: %0 = tail call noundef i64 @llvm.readsteadycounter() %div.i = udiv i64 %0, 1000 ret i64 %div.i } ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) declare void @llvm.assume(i1 noundef) #8 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #9 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #10 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.umin.i64(i64, i64) #11 ; Function Attrs: convergent mustprogress nounwind define internal fastcc noundef range(i32 0, 2) i32 @_ZN22__llvm_libc_22_0_0_git7testing4Test8runTestsERKNS0_11TestOptionsE(ptr noundef nonnull readonly align 8 captures(none) dereferenceable(10) %Options) unnamed_addr #5 align 2 { entry: %ch.addr.i5233 = alloca i8, align 1 %ch.addr.i4758 = alloca i8, align 1 %buffer.i.i.i4577 = alloca %"class.__llvm_libc_22_0_0_git::IntegerToString", align 8 %ch.addr.i4343 = alloca i8, align 1 %buffer.i.i.i4162 = alloca %"class.__llvm_libc_22_0_0_git::IntegerToString", align 8 %buffer.i.i.i3741 = alloca %"class.__llvm_libc_22_0_0_git::IntegerToString", align 8 %buffer.i.i.i3330 = alloca %"class.__llvm_libc_22_0_0_git::IntegerToString.21", align 8 %buffer.i.i.i3039 = alloca %"class.__llvm_libc_22_0_0_git::IntegerToString.21", align 8 %buffer.i.i.i2758 = alloca %"class.__llvm_libc_22_0_0_git::IntegerToString.21", align 8 %ch.addr.i1921 = alloca i8, align 1 %ch.addr.i = alloca i8, align 1 %buffer.i.i.i = alloca %"class.__llvm_libc_22_0_0_git::IntegerToString", align 8 %Ctx = alloca %"struct.__llvm_libc_22_0_0_git::testing::TestLogger", align 1 %PrintColor = getelementptr inbounds nuw i8, ptr %Options, i64 8 %0 = load i8, ptr %PrintColor, align 8, !tbaa !94, !range !97, !noundef !98 br label %for.inc.i for.inc.i: ; preds = %for.inc.i, %entry %T.06.i = phi ptr [ %T.0.i, %for.inc.i ], [ @LlvmLibcIntegerToStringTest_INT32_Instance, %entry ] %N.05.i = phi i32 [ %inc.i, %for.inc.i ], [ 0, %entry ] %Next.i = getelementptr inbounds nuw i8, ptr %T.06.i, i64 8 %inc.i = add nuw nsw i32 %N.05.i, 1 %T.0.i = load ptr, ptr %Next.i, align 8, !tbaa !99 %tobool.not.i = icmp eq ptr %T.0.i, null br i1 %tobool.not.i, label %_ZN22__llvm_libc_22_0_0_git7testing4Test11getNumTestsEv.exit, label %for.inc.i, !llvm.loop !100 _ZN22__llvm_libc_22_0_0_git7testing4Test11getNumTestsEv.exit: ; preds = %for.inc.i %N.05.i.lcssa = phi i32 [ %N.05.i, %for.inc.i ] %inc.i.lcssa = phi i32 [ %inc.i, %for.inc.i ] %loadedv = trunc nuw i8 %0 to i1 %cond = select i1 %loadedv, ptr @.str8, ptr @.str9 %cond3 = select i1 %loadedv, ptr @.str10, ptr @.str9 %cond6 = select i1 %loadedv, ptr @.str11, ptr @.str9 br label %for.cond.i.i.i.i for.cond.i.i.i.i: ; preds = %for.cond.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git7testing4Test11getNumTestsEv.exit %End.0.i.i.i.i = phi ptr [ %cond, %_ZN22__llvm_libc_22_0_0_git7testing4Test11getNumTestsEv.exit ], [ %incdec.ptr.i.i.i.i, %for.cond.i.i.i.i ] %1 = load i8, ptr %End.0.i.i.i.i, align 1, !tbaa !36 %cmp.i.i.i.i1 = icmp eq i8 %1, 0 %incdec.ptr.i.i.i.i = getelementptr inbounds nuw i8, ptr %End.0.i.i.i.i, i64 1 br i1 %cmp.i.i.i.i1, label %_ZN22__llvm_libc_22_0_0_git3cpp11string_viewC1EPKc.exit.i, label %for.cond.i.i.i.i, !llvm.loop !101 _ZN22__llvm_libc_22_0_0_git3cpp11string_viewC1EPKc.exit.i: ; preds = %for.cond.i.i.i.i %End.0.i.i.i.i.lcssa = phi ptr [ %End.0.i.i.i.i, %for.cond.i.i.i.i ] %2 = tail call range(i32 0, 32) i32 @llvm.nvvm.read.ptx.sreg.laneid() %sh_prom.i.i.i.i = zext nneg i32 %2 to i64 br label %for.cond.i.i.i for.cond.i.i.i: ; preds = %for.inc.i.i.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_viewC1EPKc.exit.i %retval.sroa.6.0.i.i.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp11string_viewC1EPKc.exit.i ], [ %retval.sroa.6.2.i.i.i, %for.inc.i.i.i ] %retval.sroa.2.0.i.i.i = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp11string_viewC1EPKc.exit.i ], [ %retval.sroa.2.2.i.i.i, %for.inc.i.i.i ] %retval.sroa.8.0.i.i.i = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp11string_viewC1EPKc.exit.i ], [ %retval.sroa.8.2.i.i.i, %for.inc.i.i.i ] %index.0.i.i.i = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git3cpp11string_viewC1EPKc.exit.i ], [ %inc.i.i.i, %for.inc.i.i.i ] %3 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i = icmp ult i32 %index.0.i.i.i, %3 %spec.store.select.i.i.i = select i1 %cmp.not.i.i.i, i32 %index.0.i.i.i, i32 0 %4 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i = zext i32 %4 to i64 %div8.i.i.i.i.i = lshr i32 %spec.store.select.i.i.i, 5 %5 = and i32 %spec.store.select.i.i.i, 31 %idxprom.i.i.i.i.i = zext nneg i32 %div8.i.i.i.i.i to i64 %arrayidx.i.i.i.i.i2 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i %6 = lshr i32 %4, %2 %conv4.i.i.i.i.i = and i32 %6, 1 %shl.i.i.i.i.i = shl nuw i32 %conv4.i.i.i.i.i, %5 %7 = atomicrmw or ptr %arrayidx.i.i.i.i.i2, i32 %shl.i.i.i.i.i monotonic, align 4 %shl5.i.i.i.i.i = shl nuw i32 1, %5 %and.i.i.i.i.i = and i32 %shl5.i.i.i.i.i, %7 %tobool3.i.i.i.i = icmp ne i32 %and.i.i.i.i.i, 0 %8 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %4, i1 %tobool3.i.i.i.i) %cmp.i.not.i.i.i3 = icmp eq i32 %4, %8 br i1 %cmp.i.not.i.i.i3, label %for.inc.i.i.i, label %if.then.i.i.i.i4 if.then.i.i.i.i4: ; preds = %for.cond.i.i.i fence acquire %9 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i = zext i32 %spec.store.select.i.i.i to i64 %arrayidx.i.i.i.i = getelementptr inbounds nuw i32, ptr %9, i64 %idxprom.i.i.i.i %10 = load atomic i32, ptr %arrayidx.i.i.i.i monotonic, align 4 %11 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %4, i1 true) %iszero.i.i.i.i.i.i = icmp eq i32 %4, 0 %sub.i.i.i.i.i.i = select i1 %iszero.i.i.i.i.i.i, i32 -1, i32 %11 %12 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %4, i32 %10, i32 %sub.i.i.i.i.i.i, i32 31) %13 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i = getelementptr inbounds nuw i32, ptr %13, i64 %idxprom.i.i.i.i %14 = load atomic i32, ptr %arrayidx.i45.i.i.i monotonic, align 4 %15 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %4, i32 %14, i32 %sub.i.i.i.i.i.i, i32 31) %cmp.i48.not.i.i.i = icmp eq i32 %12, %15 br i1 %cmp.i48.not.i.i.i, label %if.end14.i.i.i, label %if.then12.i.i.i if.then12.i.i.i: ; preds = %if.then.i.i.i.i4 fence release %16 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i, i1 true) %iszero.i.i.i.i.i.i.i = icmp ne i32 %4, 0 %cmp2.i.i.i.i.i.i = icmp eq i64 %16, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i = select i1 %iszero.i.i.i.i.i.i.i, i1 %cmp2.i.i.i.i.i.i, i1 false %conv4.i.i53.i.i.i = zext i1 %cmp.i.i.i.i.i.i to i32 %shl.i.i54.i.i.i = shl nuw i32 %conv4.i.i53.i.i.i, %5 %xor.i.i.i.i.i = xor i32 %shl.i.i54.i.i.i, -1 %17 = atomicrmw and ptr %arrayidx.i.i.i.i.i2, i32 %xor.i.i.i.i.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %4) br label %cleanup26.i.i.i if.end14.i.i.i: ; preds = %if.then.i.i.i.i4 %18 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i, i1 true) %iszero.i.i.i56.i.i.i = icmp ne i32 %4, 0 %cmp2.i.i.i.i.i6 = icmp eq i64 %18, %sh_prom.i.i.i.i %cmp.i.i.i.i.i = select i1 %iszero.i.i.i56.i.i.i, i1 %cmp2.i.i.i.i.i6, i1 false br i1 %cmp.i.i.i.i.i, label %if.then16.i.i.i, label %if.end22.i.i.i if.then16.i.i.i: ; preds = %if.end14.i.i.i %19 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %19, i64 %idxprom.i.i.i.i, i32 1 store i32 1660944387, ptr %opcode.i.i.i, align 8, !tbaa !61 %arrayidx21.i.i.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %19, i64 %idxprom.i.i.i.i store i64 %conv.i.i.i.i.i, ptr %arrayidx21.i.i.i, align 8, !tbaa !64 br label %if.end22.i.i.i if.end22.i.i.i: ; preds = %if.then16.i.i.i, %if.end14.i.i.i tail call void @llvm.nvvm.bar.warp.sync(i32 %4) br label %cleanup26.i.i.i cleanup26.i.i.i: ; preds = %if.end22.i.i.i, %if.then12.i.i.i %retval.sroa.6.1.i.i.i = phi i32 [ %retval.sroa.6.0.i.i.i, %if.then12.i.i.i ], [ %spec.store.select.i.i.i, %if.end22.i.i.i ] %retval.sroa.2.1.i.i.i = phi i64 [ %retval.sroa.2.0.i.i.i, %if.then12.i.i.i ], [ %conv.i.i.i.i.i, %if.end22.i.i.i ] %retval.sroa.8.1.i.i.i = phi i32 [ %retval.sroa.8.0.i.i.i, %if.then12.i.i.i ], [ %12, %if.end22.i.i.i ] br i1 %cmp.i48.not.i.i.i, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i, label %for.inc.i.i.i for.inc.i.i.i: ; preds = %cleanup26.i.i.i, %for.cond.i.i.i %retval.sroa.6.2.i.i.i = phi i32 [ %retval.sroa.6.1.i.i.i, %cleanup26.i.i.i ], [ %retval.sroa.6.0.i.i.i, %for.cond.i.i.i ] %retval.sroa.2.2.i.i.i = phi i64 [ %retval.sroa.2.1.i.i.i, %cleanup26.i.i.i ], [ %retval.sroa.2.0.i.i.i, %for.cond.i.i.i ] %retval.sroa.8.2.i.i.i = phi i32 [ %retval.sroa.8.1.i.i.i, %cleanup26.i.i.i ], [ %retval.sroa.8.0.i.i.i, %for.cond.i.i.i ] %inc.i.i.i = add i32 %spec.store.select.i.i.i, 1 br label %for.cond.i.i.i, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i: ; preds = %cleanup26.i.i.i %retval.sroa.6.1.i.i.i.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i, %cleanup26.i.i.i ] %retval.sroa.2.1.i.i.i.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i, %cleanup26.i.i.i ] %retval.sroa.8.1.i.i.i.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i, %cleanup26.i.i.i ] %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %End.0.i.i.i.i.lcssa to i64 %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %cond to i64 %sub.ptr.sub.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i %.pre54.i.i.i.i = tail call i32 @llvm.nvvm.reflect(ptr nonnull @.str80) fence acquire %20 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i = shl i32 %retval.sroa.6.1.i.i.i.lcssa, 5 %idxprom.i18.i.i.i.i.i = zext i32 %mul.i.i.i.i.i.i to i64 %arrayidx.i19.i.i.i.i.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %20, i64 %idxprom.i18.i.i.i.i.i %arrayidx.i21.i.i.i.i.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i, i64 %sh_prom.i.i.i.i store i64 %sub.ptr.sub.i.i.i.i, ptr %arrayidx.i21.i.i.i.i.i, align 8, !tbaa !67 %spec.select.i.i.i.i.i.i.i = tail call i64 @llvm.umin.i64(i64 %sub.ptr.sub.i.i.i.i, i64 56) %arrayidx6.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %arrayidx6.i.i.i.i.i.i.i, ptr nonnull align 1 %cond, i64 %spec.select.i.i.i.i.i.i.i, i1 false) %tobool.not.i.i.i.i.i.i = icmp eq i32 %retval.sroa.8.1.i.i.i.lcssa, 0 %conv.i.i.i.i.i.i = zext i1 %tobool.not.i.i.i.i.i.i to i32 fence release %21 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i = zext i32 %retval.sroa.6.1.i.i.i.lcssa to i64 %arrayidx.i23.i.i.i.i.i = getelementptr inbounds nuw i32, ptr %21, i64 %idxprom.i22.i.i.i.i.i store atomic i32 %conv.i.i.i.i.i.i, ptr %arrayidx.i23.i.i.i.i.i monotonic, align 4 %22 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i = getelementptr inbounds nuw %"struct.rpc::Header", ptr %22, i64 %idxprom.i22.i.i.i.i.i %23 = load i64, ptr %arrayidx.i.i4.i.i, align 8, !tbaa !64 %conv.i.i7.i.i.i.i = trunc i64 %23 to i32 %cmp.i3.i.i27.i.i.i.i = icmp ugt i32 %.pre54.i.i.i.i, 699 %conv.i.i.i.i17.i.i.i.i = trunc i64 %retval.sroa.2.1.i.i.i.lcssa to i32 %24 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i, i1 true) %iszero.i.i.i.i18.i.i.i.i = icmp eq i32 %conv.i.i.i.i17.i.i.i.i, 0 %sub.i.i.i.i19.i.i.i.i = select i1 %iszero.i.i.i.i18.i.i.i.i, i32 -1, i32 %24 br label %while.cond.i.i.i.i while.cond.i.i.i.i: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i %port.sroa.43.0.i.i = phi i32 [ %conv.i.i.i.i.i.i, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i ], [ %conv.i.i39.i.i.i.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i ] %idx.0.i.i.i.i = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i ], [ %add.i.i.i.i, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i ] %cmp.i.i.i2.i = icmp ult i64 %idx.0.i.i.i.i, %sub.ptr.sub.i.i.i.i %25 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i, i1 %cmp.i.i.i2.i) %tobool.not.i.i.i.i = icmp eq i32 %25, 0 %26 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i = getelementptr inbounds nuw i32, ptr %26, i64 %idxprom.i22.i.i.i.i.i %27 = load atomic i32, ptr %arrayidx.i22.i.i.i monotonic, align 4 br i1 %tobool.not.i.i.i.i, label %cond.false.i.i.i, label %cond.false.i11.i.i.i.i cond.false.i11.i.i.i.i: ; preds = %while.cond.i.i.i.i %28 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i, i32 %27, i32 %sub.i.i.i.i19.i.i.i.i, i32 31) %29 = icmp eq i32 %28, %port.sroa.43.0.i.i br i1 %29, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i, label %while.body.i.i33.i.i.i.i while.body.i.i33.i.i.i.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i, %cond.false.i11.i.i.i.i %30 = phi ptr [ %31, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i ], [ %26, %cond.false.i11.i.i.i.i ] br i1 %cmp.i3.i.i27.i.i.i.i, label %if.then.i.i.i48.i.i.i.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i if.then.i.i.i48.i.i.i.i: ; preds = %while.body.i.i33.i.i.i.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i: ; preds = %if.then.i.i.i48.i.i.i.i, %while.body.i.i33.i.i.i.i %31 = phi ptr [ %.pre.i.i.i.i, %if.then.i.i.i48.i.i.i.i ], [ %30, %while.body.i.i33.i.i.i.i ] %arrayidx.i.i.i35.i.i.i.i = getelementptr inbounds nuw i32, ptr %31, i64 %idxprom.i22.i.i.i.i.i %32 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i monotonic, align 4 %33 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i, i32 %32, i32 %sub.i.i.i.i19.i.i.i.i, i32 31) %cmp.i.not.i.i36.i.i.i.i = icmp eq i32 %33, %port.sroa.43.0.i.i br i1 %cmp.i.not.i.i36.i.i.i.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i, label %while.body.i.i33.i.i.i.i, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i, %cond.false.i11.i.i.i.i fence acquire br i1 %cmp.i.i.i2.i, label %if.then.i.i20.i.i.i.i.i, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i if.then.i.i20.i.i.i.i.i: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i %add.ptr.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %cond, i64 %idx.0.i.i.i.i %sub.i.i.i.i.i.i.i = sub nuw i64 %sub.ptr.sub.i.i.i.i, %idx.0.i.i.i.i %spec.select.i.i.i47.i.i.i.i = tail call i64 @llvm.umin.i64(i64 %sub.i.i.i.i.i.i.i, i64 64) %34 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %34, i64 %idxprom.i18.i.i.i.i.i %arrayidx.i22.i.i.i.i.i = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i, i64 %sh_prom.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %arrayidx.i22.i.i.i.i.i, ptr nonnull align 1 %add.ptr.i.i.i.i.i.i.i.i, i64 %spec.select.i.i.i47.i.i.i.i, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i: ; preds = %if.then.i.i20.i.i.i.i.i, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i %conv.i.i39.i.i.i.i = xor i32 %port.sroa.43.0.i.i, 1 fence release %35 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i = getelementptr inbounds nuw i32, ptr %35, i64 %idxprom.i22.i.i.i.i.i store atomic i32 %conv.i.i39.i.i.i.i, ptr %arrayidx.i24.i.i.i.i.i monotonic, align 4 %add.i.i.i.i = add i64 %idx.0.i.i.i.i, 64 br label %while.cond.i.i.i.i, !llvm.loop !71 cond.false.i.i.i: ; preds = %while.cond.i.i.i.i %port.sroa.43.0.i.i.lcssa = phi i32 [ %port.sroa.43.0.i.i, %while.cond.i.i.i.i ] %.lcssa5688 = phi ptr [ %26, %while.cond.i.i.i.i ] %.lcssa5687 = phi i32 [ %27, %while.cond.i.i.i.i ] %36 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i, i32 %.lcssa5687, i32 %sub.i.i.i.i19.i.i.i.i, i32 31) %37 = icmp eq i32 %36, %port.sroa.43.0.i.i.lcssa br i1 %37, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit, label %while.body.i.i.i.i while.body.i.i.i.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i, %cond.false.i.i.i %38 = phi ptr [ %39, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i ], [ %.lcssa5688, %cond.false.i.i.i ] br i1 %cmp.i3.i.i27.i.i.i.i, label %if.then.i.i.i.i.i5, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i if.then.i.i.i.i.i5: ; preds = %while.body.i.i.i.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i: ; preds = %if.then.i.i.i.i.i5, %while.body.i.i.i.i %39 = phi ptr [ %.pre.i.i, %if.then.i.i.i.i.i5 ], [ %38, %while.body.i.i.i.i ] %arrayidx.i.i.i11.i.i = getelementptr inbounds nuw i32, ptr %39, i64 %idxprom.i22.i.i.i.i.i %40 = load atomic i32, ptr %arrayidx.i.i.i11.i.i monotonic, align 4 %41 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i, i32 %40, i32 %sub.i.i.i.i19.i.i.i.i, i32 31) %cmp.i.not.i.i.i.i = icmp eq i32 %41, %port.sroa.43.0.i.i.lcssa br i1 %cmp.i.not.i.i.i.i, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit, label %while.body.i.i.i.i, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i, %cond.false.i.i.i fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i) fence release %42 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i = icmp ne i64 %retval.sroa.2.1.i.i.i.lcssa, 0 %cmp2.i.i.i.i19.i.i = icmp eq i64 %42, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i = select i1 %iszero.i.i.i.i.i18.i.i, i1 %cmp2.i.i.i.i19.i.i, i1 false %div8.i.i.i21.i.i = lshr i32 %retval.sroa.6.1.i.i.i.lcssa, 5 %43 = and i32 %retval.sroa.6.1.i.i.i.lcssa, 31 %idxprom.i.i.i22.i.i = zext nneg i32 %div8.i.i.i21.i.i to i64 %arrayidx.i.i.i23.i.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i %conv4.i.i.i24.i.i = zext i1 %cmp.i.i.i.i20.i.i to i32 %shl.i.i.i25.i.i = shl nuw i32 %conv4.i.i.i24.i.i, %43 %xor.i.i.i26.i.i = xor i32 %shl.i.i.i25.i.i, -1 %44 = atomicrmw and ptr %arrayidx.i.i.i23.i.i, i32 %xor.i.i.i26.i.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i) br label %for.cond.i.i.i18 for.cond.i.i.i18: ; preds = %for.inc.i.i.i53, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit %retval.sroa.6.0.i.i.i19 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit ], [ %retval.sroa.6.2.i.i.i54, %for.inc.i.i.i53 ] %retval.sroa.2.0.i.i.i20 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit ], [ %retval.sroa.2.2.i.i.i55, %for.inc.i.i.i53 ] %retval.sroa.8.0.i.i.i21 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit ], [ %retval.sroa.8.2.i.i.i56, %for.inc.i.i.i53 ] %index.0.i.i.i22 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit ], [ %inc.i.i.i57, %for.inc.i.i.i53 ] %45 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i23 = icmp ult i32 %index.0.i.i.i22, %45 %spec.store.select.i.i.i24 = select i1 %cmp.not.i.i.i23, i32 %index.0.i.i.i22, i32 0 %46 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i25 = zext i32 %46 to i64 %div8.i.i.i.i.i26 = lshr i32 %spec.store.select.i.i.i24, 5 %47 = and i32 %spec.store.select.i.i.i24, 31 %idxprom.i.i.i.i.i27 = zext nneg i32 %div8.i.i.i.i.i26 to i64 %arrayidx.i.i.i.i.i28 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i27 %48 = lshr i32 %46, %2 %conv4.i.i.i.i.i29 = and i32 %48, 1 %shl.i.i.i.i.i30 = shl nuw i32 %conv4.i.i.i.i.i29, %47 %49 = atomicrmw or ptr %arrayidx.i.i.i.i.i28, i32 %shl.i.i.i.i.i30 monotonic, align 4 %shl5.i.i.i.i.i31 = shl nuw i32 1, %47 %and.i.i.i.i.i32 = and i32 %shl5.i.i.i.i.i31, %49 %tobool3.i.i.i.i33 = icmp ne i32 %and.i.i.i.i.i32, 0 %50 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %46, i1 %tobool3.i.i.i.i33) %cmp.i.not.i.i.i34 = icmp eq i32 %46, %50 br i1 %cmp.i.not.i.i.i34, label %for.inc.i.i.i53, label %if.then.i.i.i.i35 if.then.i.i.i.i35: ; preds = %for.cond.i.i.i18 fence acquire %51 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i36 = zext i32 %spec.store.select.i.i.i24 to i64 %arrayidx.i.i.i.i37 = getelementptr inbounds nuw i32, ptr %51, i64 %idxprom.i.i.i.i36 %52 = load atomic i32, ptr %arrayidx.i.i.i.i37 monotonic, align 4 %53 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %46, i1 true) %iszero.i.i.i.i.i.i38 = icmp eq i32 %46, 0 %sub.i.i.i.i.i.i39 = select i1 %iszero.i.i.i.i.i.i38, i32 -1, i32 %53 %54 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %46, i32 %52, i32 %sub.i.i.i.i.i.i39, i32 31) %55 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i40 = getelementptr inbounds nuw i32, ptr %55, i64 %idxprom.i.i.i.i36 %56 = load atomic i32, ptr %arrayidx.i45.i.i.i40 monotonic, align 4 %57 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %46, i32 %56, i32 %sub.i.i.i.i.i.i39, i32 31) %cmp.i48.not.i.i.i41 = icmp eq i32 %54, %57 br i1 %cmp.i48.not.i.i.i41, label %if.end14.i.i.i117, label %if.then12.i.i.i42 if.then12.i.i.i42: ; preds = %if.then.i.i.i.i35 fence release %58 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i25, i1 true) %iszero.i.i.i.i.i.i.i43 = icmp ne i32 %46, 0 %cmp2.i.i.i.i.i.i44 = icmp eq i64 %58, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i45 = select i1 %iszero.i.i.i.i.i.i.i43, i1 %cmp2.i.i.i.i.i.i44, i1 false %conv4.i.i53.i.i.i46 = zext i1 %cmp.i.i.i.i.i.i45 to i32 %shl.i.i54.i.i.i47 = shl nuw i32 %conv4.i.i53.i.i.i46, %47 %xor.i.i.i.i.i48 = xor i32 %shl.i.i54.i.i.i47, -1 %59 = atomicrmw and ptr %arrayidx.i.i.i.i.i28, i32 %xor.i.i.i.i.i48 monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %46) br label %cleanup26.i.i.i49 if.end14.i.i.i117: ; preds = %if.then.i.i.i.i35 %60 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i25, i1 true) %iszero.i.i.i56.i.i.i118 = icmp ne i32 %46, 0 %cmp2.i.i.i.i.i119 = icmp eq i64 %60, %sh_prom.i.i.i.i %cmp.i.i.i.i.i120 = select i1 %iszero.i.i.i56.i.i.i118, i1 %cmp2.i.i.i.i.i119, i1 false br i1 %cmp.i.i.i.i.i120, label %if.then16.i.i.i122, label %if.end22.i.i.i121 if.then16.i.i.i122: ; preds = %if.end14.i.i.i117 %61 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i123 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %61, i64 %idxprom.i.i.i.i36, i32 1 store i32 1660944387, ptr %opcode.i.i.i123, align 8, !tbaa !61 %arrayidx21.i.i.i124 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %61, i64 %idxprom.i.i.i.i36 store i64 %conv.i.i.i.i.i25, ptr %arrayidx21.i.i.i124, align 8, !tbaa !64 br label %if.end22.i.i.i121 if.end22.i.i.i121: ; preds = %if.then16.i.i.i122, %if.end14.i.i.i117 tail call void @llvm.nvvm.bar.warp.sync(i32 %46) br label %cleanup26.i.i.i49 cleanup26.i.i.i49: ; preds = %if.end22.i.i.i121, %if.then12.i.i.i42 %retval.sroa.6.1.i.i.i50 = phi i32 [ %retval.sroa.6.0.i.i.i19, %if.then12.i.i.i42 ], [ %spec.store.select.i.i.i24, %if.end22.i.i.i121 ] %retval.sroa.2.1.i.i.i51 = phi i64 [ %retval.sroa.2.0.i.i.i20, %if.then12.i.i.i42 ], [ %conv.i.i.i.i.i25, %if.end22.i.i.i121 ] %retval.sroa.8.1.i.i.i52 = phi i32 [ %retval.sroa.8.0.i.i.i21, %if.then12.i.i.i42 ], [ %54, %if.end22.i.i.i121 ] br i1 %cmp.i48.not.i.i.i41, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i58, label %for.inc.i.i.i53 for.inc.i.i.i53: ; preds = %cleanup26.i.i.i49, %for.cond.i.i.i18 %retval.sroa.6.2.i.i.i54 = phi i32 [ %retval.sroa.6.1.i.i.i50, %cleanup26.i.i.i49 ], [ %retval.sroa.6.0.i.i.i19, %for.cond.i.i.i18 ] %retval.sroa.2.2.i.i.i55 = phi i64 [ %retval.sroa.2.1.i.i.i51, %cleanup26.i.i.i49 ], [ %retval.sroa.2.0.i.i.i20, %for.cond.i.i.i18 ] %retval.sroa.8.2.i.i.i56 = phi i32 [ %retval.sroa.8.1.i.i.i52, %cleanup26.i.i.i49 ], [ %retval.sroa.8.0.i.i.i21, %for.cond.i.i.i18 ] %inc.i.i.i57 = add i32 %spec.store.select.i.i.i24, 1 br label %for.cond.i.i.i18, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i58: ; preds = %cleanup26.i.i.i49 %retval.sroa.6.1.i.i.i50.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i50, %cleanup26.i.i.i49 ] %retval.sroa.2.1.i.i.i51.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i51, %cleanup26.i.i.i49 ] %retval.sroa.8.1.i.i.i52.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i52, %cleanup26.i.i.i49 ] fence acquire %62 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i61 = shl i32 %retval.sroa.6.1.i.i.i50.lcssa, 5 %idxprom.i18.i.i.i.i.i62 = zext i32 %mul.i.i.i.i.i.i61 to i64 %arrayidx.i19.i.i.i.i.i63 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %62, i64 %idxprom.i18.i.i.i.i.i62 %arrayidx.i21.i.i.i.i.i64 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i63, i64 %sh_prom.i.i.i.i store i64 13, ptr %arrayidx.i21.i.i.i.i.i64, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i66 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i64, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(13) %arrayidx6.i.i.i.i.i.i.i66, ptr noundef nonnull align 1 dereferenceable(13) @.str12, i64 13, i1 false) %tobool.not.i.i.i.i.i.i67 = icmp eq i32 %retval.sroa.8.1.i.i.i52.lcssa, 0 %conv.i.i.i.i.i.i68 = zext i1 %tobool.not.i.i.i.i.i.i67 to i32 fence release %63 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i69 = zext i32 %retval.sroa.6.1.i.i.i50.lcssa to i64 %arrayidx.i23.i.i.i.i.i70 = getelementptr inbounds nuw i32, ptr %63, i64 %idxprom.i22.i.i.i.i.i69 store atomic i32 %conv.i.i.i.i.i.i68, ptr %arrayidx.i23.i.i.i.i.i70 monotonic, align 4 %64 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i71 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %64, i64 %idxprom.i22.i.i.i.i.i69 %65 = load i64, ptr %arrayidx.i.i4.i.i71, align 8, !tbaa !64 %conv.i.i7.i.i.i.i72 = trunc i64 %65 to i32 %conv.i.i.i.i17.i.i.i.i74 = trunc i64 %retval.sroa.2.1.i.i.i51.lcssa to i32 %66 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i74, i1 true) %iszero.i.i.i.i18.i.i.i.i75 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i74, 0 %sub.i.i.i.i19.i.i.i.i76 = select i1 %iszero.i.i.i.i18.i.i.i.i75, i32 -1, i32 %66 br label %while.cond.i.i.i.i77 while.cond.i.i.i.i77: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i89, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i58 %port.sroa.43.0.i.i78 = phi i32 [ %conv.i.i.i.i.i.i68, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i58 ], [ %conv.i.i39.i.i.i.i90, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i89 ] %idx.0.i.i.i.i79 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i58 ], [ %add.i.i.i.i92, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i89 ] %cmp.i.i.i2.i80 = icmp ult i64 %idx.0.i.i.i.i79, 13 %67 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i72, i1 %cmp.i.i.i2.i80) %tobool.not.i.i.i.i81 = icmp eq i32 %67, 0 %68 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i82 = getelementptr inbounds nuw i32, ptr %68, i64 %idxprom.i22.i.i.i.i.i69 %69 = load atomic i32, ptr %arrayidx.i22.i.i.i82 monotonic, align 4 br i1 %tobool.not.i.i.i.i81, label %cond.false.i.i.i101, label %cond.false.i11.i.i.i.i83 cond.false.i11.i.i.i.i83: ; preds = %while.cond.i.i.i.i77 %70 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i74, i32 %69, i32 %sub.i.i.i.i19.i.i.i.i76, i32 31) %71 = icmp eq i32 %70, %port.sroa.43.0.i.i78 br i1 %71, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i88, label %while.body.i.i33.i.i.i.i84 while.body.i.i33.i.i.i.i84: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i85, %cond.false.i11.i.i.i.i83 %72 = phi ptr [ %73, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i85 ], [ %68, %cond.false.i11.i.i.i.i83 ] br i1 %cmp.i3.i.i27.i.i.i.i, label %if.then.i.i.i48.i.i.i.i99, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i85 if.then.i.i.i48.i.i.i.i99: ; preds = %while.body.i.i33.i.i.i.i84 tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i100 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i85 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i85: ; preds = %if.then.i.i.i48.i.i.i.i99, %while.body.i.i33.i.i.i.i84 %73 = phi ptr [ %.pre.i.i.i.i100, %if.then.i.i.i48.i.i.i.i99 ], [ %72, %while.body.i.i33.i.i.i.i84 ] %arrayidx.i.i.i35.i.i.i.i86 = getelementptr inbounds nuw i32, ptr %73, i64 %idxprom.i22.i.i.i.i.i69 %74 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i86 monotonic, align 4 %75 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i74, i32 %74, i32 %sub.i.i.i.i19.i.i.i.i76, i32 31) %cmp.i.not.i.i36.i.i.i.i87 = icmp eq i32 %75, %port.sroa.43.0.i.i78 br i1 %cmp.i.not.i.i36.i.i.i.i87, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i88, label %while.body.i.i33.i.i.i.i84, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i88: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i85, %cond.false.i11.i.i.i.i83 fence acquire br i1 %cmp.i.i.i2.i80, label %if.then.i.i20.i.i.i.i.i93, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i89 if.then.i.i20.i.i.i.i.i93: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i88 %add.ptr.i.i.i.i.i.i.i.i94 = getelementptr inbounds nuw i8, ptr @.str12, i64 %idx.0.i.i.i.i79 %sub.i.i.i.i.i.i.i95 = sub nuw nsw i64 13, %idx.0.i.i.i.i79 %76 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i97 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %76, i64 %idxprom.i18.i.i.i.i.i62 %arrayidx.i22.i.i.i.i.i98 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i97, i64 %sh_prom.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %arrayidx.i22.i.i.i.i.i98, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr.i.i.i.i.i.i.i.i94, i64 %sub.i.i.i.i.i.i.i95, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i89 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i89: ; preds = %if.then.i.i20.i.i.i.i.i93, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i88 %conv.i.i39.i.i.i.i90 = xor i32 %port.sroa.43.0.i.i78, 1 fence release %77 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i91 = getelementptr inbounds nuw i32, ptr %77, i64 %idxprom.i22.i.i.i.i.i69 store atomic i32 %conv.i.i39.i.i.i.i90, ptr %arrayidx.i24.i.i.i.i.i91 monotonic, align 4 %add.i.i.i.i92 = add i64 %idx.0.i.i.i.i79, 64 br label %while.cond.i.i.i.i77, !llvm.loop !71 cond.false.i.i.i101: ; preds = %while.cond.i.i.i.i77 %port.sroa.43.0.i.i78.lcssa = phi i32 [ %port.sroa.43.0.i.i78, %while.cond.i.i.i.i77 ] %.lcssa5686 = phi ptr [ %68, %while.cond.i.i.i.i77 ] %.lcssa5685 = phi i32 [ %69, %while.cond.i.i.i.i77 ] %78 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i74, i32 %.lcssa5685, i32 %sub.i.i.i.i19.i.i.i.i76, i32 31) %79 = icmp eq i32 %78, %port.sroa.43.0.i.i78.lcssa br i1 %79, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit125, label %while.body.i.i.i.i102 while.body.i.i.i.i102: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i103, %cond.false.i.i.i101 %80 = phi ptr [ %81, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i103 ], [ %.lcssa5686, %cond.false.i.i.i101 ] br i1 %cmp.i3.i.i27.i.i.i.i, label %if.then.i.i.i.i.i115, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i103 if.then.i.i.i.i.i115: ; preds = %while.body.i.i.i.i102 tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i116 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i103 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i103: ; preds = %if.then.i.i.i.i.i115, %while.body.i.i.i.i102 %81 = phi ptr [ %.pre.i.i116, %if.then.i.i.i.i.i115 ], [ %80, %while.body.i.i.i.i102 ] %arrayidx.i.i.i11.i.i104 = getelementptr inbounds nuw i32, ptr %81, i64 %idxprom.i22.i.i.i.i.i69 %82 = load atomic i32, ptr %arrayidx.i.i.i11.i.i104 monotonic, align 4 %83 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i74, i32 %82, i32 %sub.i.i.i.i19.i.i.i.i76, i32 31) %cmp.i.not.i.i.i.i105 = icmp eq i32 %83, %port.sroa.43.0.i.i78.lcssa br i1 %cmp.i.not.i.i.i.i105, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit125, label %while.body.i.i.i.i102, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit125: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i103, %cond.false.i.i.i101 fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i74) fence release %84 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i51.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i106 = icmp ne i64 %retval.sroa.2.1.i.i.i51.lcssa, 0 %cmp2.i.i.i.i19.i.i107 = icmp eq i64 %84, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i108 = select i1 %iszero.i.i.i.i.i18.i.i106, i1 %cmp2.i.i.i.i19.i.i107, i1 false %div8.i.i.i21.i.i109 = lshr i32 %retval.sroa.6.1.i.i.i50.lcssa, 5 %85 = and i32 %retval.sroa.6.1.i.i.i50.lcssa, 31 %idxprom.i.i.i22.i.i110 = zext nneg i32 %div8.i.i.i21.i.i109 to i64 %arrayidx.i.i.i23.i.i111 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i110 %conv4.i.i.i24.i.i112 = zext i1 %cmp.i.i.i.i20.i.i108 to i32 %shl.i.i.i25.i.i113 = shl nuw i32 %conv4.i.i.i24.i.i112, %85 %xor.i.i.i26.i.i114 = xor i32 %shl.i.i.i25.i.i113, -1 %86 = atomicrmw and ptr %arrayidx.i.i.i23.i.i111, i32 %xor.i.i.i26.i.i114 monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i74) br label %for.cond.i.i.i.i128 for.cond.i.i.i.i128: ; preds = %for.cond.i.i.i.i128, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit125 %End.0.i.i.i.i129 = phi ptr [ %cond6, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit125 ], [ %incdec.ptr.i.i.i.i131, %for.cond.i.i.i.i128 ] %87 = load i8, ptr %End.0.i.i.i.i129, align 1, !tbaa !36 %cmp.i.i.i.i130 = icmp eq i8 %87, 0 %incdec.ptr.i.i.i.i131 = getelementptr inbounds nuw i8, ptr %End.0.i.i.i.i129, i64 1 br i1 %cmp.i.i.i.i130, label %for.cond.i.i.i138.preheader, label %for.cond.i.i.i.i128, !llvm.loop !101 for.cond.i.i.i138.preheader: ; preds = %for.cond.i.i.i.i128 %End.0.i.i.i.i129.lcssa = phi ptr [ %End.0.i.i.i.i129, %for.cond.i.i.i.i128 ] br label %for.cond.i.i.i138 for.cond.i.i.i138: ; preds = %for.inc.i.i.i173, %for.cond.i.i.i138.preheader %retval.sroa.6.0.i.i.i139 = phi i32 [ %retval.sroa.6.2.i.i.i174, %for.inc.i.i.i173 ], [ undef, %for.cond.i.i.i138.preheader ] %retval.sroa.2.0.i.i.i140 = phi i64 [ %retval.sroa.2.2.i.i.i175, %for.inc.i.i.i173 ], [ undef, %for.cond.i.i.i138.preheader ] %retval.sroa.8.0.i.i.i141 = phi i32 [ %retval.sroa.8.2.i.i.i176, %for.inc.i.i.i173 ], [ undef, %for.cond.i.i.i138.preheader ] %index.0.i.i.i142 = phi i32 [ %inc.i.i.i177, %for.inc.i.i.i173 ], [ 0, %for.cond.i.i.i138.preheader ] %88 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i143 = icmp ult i32 %index.0.i.i.i142, %88 %spec.store.select.i.i.i144 = select i1 %cmp.not.i.i.i143, i32 %index.0.i.i.i142, i32 0 %89 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i145 = zext i32 %89 to i64 %div8.i.i.i.i.i146 = lshr i32 %spec.store.select.i.i.i144, 5 %90 = and i32 %spec.store.select.i.i.i144, 31 %idxprom.i.i.i.i.i147 = zext nneg i32 %div8.i.i.i.i.i146 to i64 %arrayidx.i.i.i.i.i148 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i147 %91 = lshr i32 %89, %2 %conv4.i.i.i.i.i149 = and i32 %91, 1 %shl.i.i.i.i.i150 = shl nuw i32 %conv4.i.i.i.i.i149, %90 %92 = atomicrmw or ptr %arrayidx.i.i.i.i.i148, i32 %shl.i.i.i.i.i150 monotonic, align 4 %shl5.i.i.i.i.i151 = shl nuw i32 1, %90 %and.i.i.i.i.i152 = and i32 %shl5.i.i.i.i.i151, %92 %tobool3.i.i.i.i153 = icmp ne i32 %and.i.i.i.i.i152, 0 %93 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %89, i1 %tobool3.i.i.i.i153) %cmp.i.not.i.i.i154 = icmp eq i32 %89, %93 br i1 %cmp.i.not.i.i.i154, label %for.inc.i.i.i173, label %if.then.i.i.i.i155 if.then.i.i.i.i155: ; preds = %for.cond.i.i.i138 fence acquire %94 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i156 = zext i32 %spec.store.select.i.i.i144 to i64 %arrayidx.i.i.i.i157 = getelementptr inbounds nuw i32, ptr %94, i64 %idxprom.i.i.i.i156 %95 = load atomic i32, ptr %arrayidx.i.i.i.i157 monotonic, align 4 %96 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %89, i1 true) %iszero.i.i.i.i.i.i158 = icmp eq i32 %89, 0 %sub.i.i.i.i.i.i159 = select i1 %iszero.i.i.i.i.i.i158, i32 -1, i32 %96 %97 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %89, i32 %95, i32 %sub.i.i.i.i.i.i159, i32 31) %98 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i160 = getelementptr inbounds nuw i32, ptr %98, i64 %idxprom.i.i.i.i156 %99 = load atomic i32, ptr %arrayidx.i45.i.i.i160 monotonic, align 4 %100 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %89, i32 %99, i32 %sub.i.i.i.i.i.i159, i32 31) %cmp.i48.not.i.i.i161 = icmp eq i32 %97, %100 br i1 %cmp.i48.not.i.i.i161, label %if.end14.i.i.i237, label %if.then12.i.i.i162 if.then12.i.i.i162: ; preds = %if.then.i.i.i.i155 fence release %101 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i145, i1 true) %iszero.i.i.i.i.i.i.i163 = icmp ne i32 %89, 0 %cmp2.i.i.i.i.i.i164 = icmp eq i64 %101, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i165 = select i1 %iszero.i.i.i.i.i.i.i163, i1 %cmp2.i.i.i.i.i.i164, i1 false %conv4.i.i53.i.i.i166 = zext i1 %cmp.i.i.i.i.i.i165 to i32 %shl.i.i54.i.i.i167 = shl nuw i32 %conv4.i.i53.i.i.i166, %90 %xor.i.i.i.i.i168 = xor i32 %shl.i.i54.i.i.i167, -1 %102 = atomicrmw and ptr %arrayidx.i.i.i.i.i148, i32 %xor.i.i.i.i.i168 monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %89) br label %cleanup26.i.i.i169 if.end14.i.i.i237: ; preds = %if.then.i.i.i.i155 %103 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i145, i1 true) %iszero.i.i.i56.i.i.i238 = icmp ne i32 %89, 0 %cmp2.i.i.i.i.i239 = icmp eq i64 %103, %sh_prom.i.i.i.i %cmp.i.i.i.i.i240 = select i1 %iszero.i.i.i56.i.i.i238, i1 %cmp2.i.i.i.i.i239, i1 false br i1 %cmp.i.i.i.i.i240, label %if.then16.i.i.i242, label %if.end22.i.i.i241 if.then16.i.i.i242: ; preds = %if.end14.i.i.i237 %104 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i243 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %104, i64 %idxprom.i.i.i.i156, i32 1 store i32 1660944387, ptr %opcode.i.i.i243, align 8, !tbaa !61 %arrayidx21.i.i.i244 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %104, i64 %idxprom.i.i.i.i156 store i64 %conv.i.i.i.i.i145, ptr %arrayidx21.i.i.i244, align 8, !tbaa !64 br label %if.end22.i.i.i241 if.end22.i.i.i241: ; preds = %if.then16.i.i.i242, %if.end14.i.i.i237 tail call void @llvm.nvvm.bar.warp.sync(i32 %89) br label %cleanup26.i.i.i169 cleanup26.i.i.i169: ; preds = %if.end22.i.i.i241, %if.then12.i.i.i162 %retval.sroa.6.1.i.i.i170 = phi i32 [ %retval.sroa.6.0.i.i.i139, %if.then12.i.i.i162 ], [ %spec.store.select.i.i.i144, %if.end22.i.i.i241 ] %retval.sroa.2.1.i.i.i171 = phi i64 [ %retval.sroa.2.0.i.i.i140, %if.then12.i.i.i162 ], [ %conv.i.i.i.i.i145, %if.end22.i.i.i241 ] %retval.sroa.8.1.i.i.i172 = phi i32 [ %retval.sroa.8.0.i.i.i141, %if.then12.i.i.i162 ], [ %97, %if.end22.i.i.i241 ] br i1 %cmp.i48.not.i.i.i161, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i178, label %for.inc.i.i.i173 for.inc.i.i.i173: ; preds = %cleanup26.i.i.i169, %for.cond.i.i.i138 %retval.sroa.6.2.i.i.i174 = phi i32 [ %retval.sroa.6.1.i.i.i170, %cleanup26.i.i.i169 ], [ %retval.sroa.6.0.i.i.i139, %for.cond.i.i.i138 ] %retval.sroa.2.2.i.i.i175 = phi i64 [ %retval.sroa.2.1.i.i.i171, %cleanup26.i.i.i169 ], [ %retval.sroa.2.0.i.i.i140, %for.cond.i.i.i138 ] %retval.sroa.8.2.i.i.i176 = phi i32 [ %retval.sroa.8.1.i.i.i172, %cleanup26.i.i.i169 ], [ %retval.sroa.8.0.i.i.i141, %for.cond.i.i.i138 ] %inc.i.i.i177 = add i32 %spec.store.select.i.i.i144, 1 br label %for.cond.i.i.i138, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i178: ; preds = %cleanup26.i.i.i169 %retval.sroa.6.1.i.i.i170.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i170, %cleanup26.i.i.i169 ] %retval.sroa.2.1.i.i.i171.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i171, %cleanup26.i.i.i169 ] %retval.sroa.8.1.i.i.i172.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i172, %cleanup26.i.i.i169 ] %sub.ptr.lhs.cast.i.i.i.i133 = ptrtoint ptr %End.0.i.i.i.i129.lcssa to i64 %sub.ptr.rhs.cast.i.i.i.i134 = ptrtoint ptr %cond6 to i64 %sub.ptr.sub.i.i.i.i135 = sub i64 %sub.ptr.lhs.cast.i.i.i.i133, %sub.ptr.rhs.cast.i.i.i.i134 fence acquire %105 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i181 = shl i32 %retval.sroa.6.1.i.i.i170.lcssa, 5 %idxprom.i18.i.i.i.i.i182 = zext i32 %mul.i.i.i.i.i.i181 to i64 %arrayidx.i19.i.i.i.i.i183 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %105, i64 %idxprom.i18.i.i.i.i.i182 %arrayidx.i21.i.i.i.i.i184 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i183, i64 %sh_prom.i.i.i.i store i64 %sub.ptr.sub.i.i.i.i135, ptr %arrayidx.i21.i.i.i.i.i184, align 8, !tbaa !67 %spec.select.i.i.i.i.i.i.i185 = tail call i64 @llvm.umin.i64(i64 %sub.ptr.sub.i.i.i.i135, i64 56) %arrayidx6.i.i.i.i.i.i.i186 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i184, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %arrayidx6.i.i.i.i.i.i.i186, ptr nonnull align 1 %cond6, i64 %spec.select.i.i.i.i.i.i.i185, i1 false) %tobool.not.i.i.i.i.i.i187 = icmp eq i32 %retval.sroa.8.1.i.i.i172.lcssa, 0 %conv.i.i.i.i.i.i188 = zext i1 %tobool.not.i.i.i.i.i.i187 to i32 fence release %106 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i189 = zext i32 %retval.sroa.6.1.i.i.i170.lcssa to i64 %arrayidx.i23.i.i.i.i.i190 = getelementptr inbounds nuw i32, ptr %106, i64 %idxprom.i22.i.i.i.i.i189 store atomic i32 %conv.i.i.i.i.i.i188, ptr %arrayidx.i23.i.i.i.i.i190 monotonic, align 4 %107 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i191 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %107, i64 %idxprom.i22.i.i.i.i.i189 %108 = load i64, ptr %arrayidx.i.i4.i.i191, align 8, !tbaa !64 %conv.i.i7.i.i.i.i192 = trunc i64 %108 to i32 %conv.i.i.i.i17.i.i.i.i194 = trunc i64 %retval.sroa.2.1.i.i.i171.lcssa to i32 %109 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i194, i1 true) %iszero.i.i.i.i18.i.i.i.i195 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i194, 0 %sub.i.i.i.i19.i.i.i.i196 = select i1 %iszero.i.i.i.i18.i.i.i.i195, i32 -1, i32 %109 br label %while.cond.i.i.i.i197 while.cond.i.i.i.i197: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i209, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i178 %port.sroa.43.0.i.i198 = phi i32 [ %conv.i.i.i.i.i.i188, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i178 ], [ %conv.i.i39.i.i.i.i210, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i209 ] %idx.0.i.i.i.i199 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i178 ], [ %add.i.i.i.i212, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i209 ] %cmp.i.i.i2.i200 = icmp ult i64 %idx.0.i.i.i.i199, %sub.ptr.sub.i.i.i.i135 %110 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i192, i1 %cmp.i.i.i2.i200) %tobool.not.i.i.i.i201 = icmp eq i32 %110, 0 %111 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i202 = getelementptr inbounds nuw i32, ptr %111, i64 %idxprom.i22.i.i.i.i.i189 %112 = load atomic i32, ptr %arrayidx.i22.i.i.i202 monotonic, align 4 br i1 %tobool.not.i.i.i.i201, label %cond.false.i.i.i221, label %cond.false.i11.i.i.i.i203 cond.false.i11.i.i.i.i203: ; preds = %while.cond.i.i.i.i197 %113 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i194, i32 %112, i32 %sub.i.i.i.i19.i.i.i.i196, i32 31) %114 = icmp eq i32 %113, %port.sroa.43.0.i.i198 br i1 %114, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i208, label %while.body.i.i33.i.i.i.i204 while.body.i.i33.i.i.i.i204: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i205, %cond.false.i11.i.i.i.i203 %115 = phi ptr [ %116, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i205 ], [ %111, %cond.false.i11.i.i.i.i203 ] br i1 %cmp.i3.i.i27.i.i.i.i, label %if.then.i.i.i48.i.i.i.i219, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i205 if.then.i.i.i48.i.i.i.i219: ; preds = %while.body.i.i33.i.i.i.i204 tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i220 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i205 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i205: ; preds = %if.then.i.i.i48.i.i.i.i219, %while.body.i.i33.i.i.i.i204 %116 = phi ptr [ %.pre.i.i.i.i220, %if.then.i.i.i48.i.i.i.i219 ], [ %115, %while.body.i.i33.i.i.i.i204 ] %arrayidx.i.i.i35.i.i.i.i206 = getelementptr inbounds nuw i32, ptr %116, i64 %idxprom.i22.i.i.i.i.i189 %117 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i206 monotonic, align 4 %118 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i194, i32 %117, i32 %sub.i.i.i.i19.i.i.i.i196, i32 31) %cmp.i.not.i.i36.i.i.i.i207 = icmp eq i32 %118, %port.sroa.43.0.i.i198 br i1 %cmp.i.not.i.i36.i.i.i.i207, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i208, label %while.body.i.i33.i.i.i.i204, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i208: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i205, %cond.false.i11.i.i.i.i203 fence acquire br i1 %cmp.i.i.i2.i200, label %if.then.i.i20.i.i.i.i.i213, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i209 if.then.i.i20.i.i.i.i.i213: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i208 %add.ptr.i.i.i.i.i.i.i.i214 = getelementptr inbounds nuw i8, ptr %cond6, i64 %idx.0.i.i.i.i199 %sub.i.i.i.i.i.i.i215 = sub nuw i64 %sub.ptr.sub.i.i.i.i135, %idx.0.i.i.i.i199 %spec.select.i.i.i47.i.i.i.i216 = tail call i64 @llvm.umin.i64(i64 %sub.i.i.i.i.i.i.i215, i64 64) %119 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i217 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %119, i64 %idxprom.i18.i.i.i.i.i182 %arrayidx.i22.i.i.i.i.i218 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i217, i64 %sh_prom.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %arrayidx.i22.i.i.i.i.i218, ptr nonnull align 1 %add.ptr.i.i.i.i.i.i.i.i214, i64 %spec.select.i.i.i47.i.i.i.i216, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i209 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i209: ; preds = %if.then.i.i20.i.i.i.i.i213, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i208 %conv.i.i39.i.i.i.i210 = xor i32 %port.sroa.43.0.i.i198, 1 fence release %120 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i211 = getelementptr inbounds nuw i32, ptr %120, i64 %idxprom.i22.i.i.i.i.i189 store atomic i32 %conv.i.i39.i.i.i.i210, ptr %arrayidx.i24.i.i.i.i.i211 monotonic, align 4 %add.i.i.i.i212 = add i64 %idx.0.i.i.i.i199, 64 br label %while.cond.i.i.i.i197, !llvm.loop !71 cond.false.i.i.i221: ; preds = %while.cond.i.i.i.i197 %port.sroa.43.0.i.i198.lcssa = phi i32 [ %port.sroa.43.0.i.i198, %while.cond.i.i.i.i197 ] %.lcssa5684 = phi ptr [ %111, %while.cond.i.i.i.i197 ] %.lcssa5683 = phi i32 [ %112, %while.cond.i.i.i.i197 ] %121 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i194, i32 %.lcssa5683, i32 %sub.i.i.i.i19.i.i.i.i196, i32 31) %122 = icmp eq i32 %121, %port.sroa.43.0.i.i198.lcssa br i1 %122, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit245, label %while.body.i.i.i.i222 while.body.i.i.i.i222: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i223, %cond.false.i.i.i221 %123 = phi ptr [ %124, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i223 ], [ %.lcssa5684, %cond.false.i.i.i221 ] br i1 %cmp.i3.i.i27.i.i.i.i, label %if.then.i.i.i.i.i235, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i223 if.then.i.i.i.i.i235: ; preds = %while.body.i.i.i.i222 tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i236 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i223 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i223: ; preds = %if.then.i.i.i.i.i235, %while.body.i.i.i.i222 %124 = phi ptr [ %.pre.i.i236, %if.then.i.i.i.i.i235 ], [ %123, %while.body.i.i.i.i222 ] %arrayidx.i.i.i11.i.i224 = getelementptr inbounds nuw i32, ptr %124, i64 %idxprom.i22.i.i.i.i.i189 %125 = load atomic i32, ptr %arrayidx.i.i.i11.i.i224 monotonic, align 4 %126 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i194, i32 %125, i32 %sub.i.i.i.i19.i.i.i.i196, i32 31) %cmp.i.not.i.i.i.i225 = icmp eq i32 %126, %port.sroa.43.0.i.i198.lcssa br i1 %cmp.i.not.i.i.i.i225, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit245, label %while.body.i.i.i.i222, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit245: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i223, %cond.false.i.i.i221 fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i194) fence release %127 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i171.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i226 = icmp ne i64 %retval.sroa.2.1.i.i.i171.lcssa, 0 %cmp2.i.i.i.i19.i.i227 = icmp eq i64 %127, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i228 = select i1 %iszero.i.i.i.i.i18.i.i226, i1 %cmp2.i.i.i.i19.i.i227, i1 false %div8.i.i.i21.i.i229 = lshr i32 %retval.sroa.6.1.i.i.i170.lcssa, 5 %128 = and i32 %retval.sroa.6.1.i.i.i170.lcssa, 31 %idxprom.i.i.i22.i.i230 = zext nneg i32 %div8.i.i.i21.i.i229 to i64 %arrayidx.i.i.i23.i.i231 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i230 %conv4.i.i.i24.i.i232 = zext i1 %cmp.i.i.i.i20.i.i228 to i32 %shl.i.i.i25.i.i233 = shl nuw i32 %conv4.i.i.i24.i.i232, %128 %xor.i.i.i26.i.i234 = xor i32 %shl.i.i.i25.i.i233, -1 %129 = atomicrmw and ptr %arrayidx.i.i.i23.i.i231, i32 %xor.i.i.i26.i.i234 monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i194) br label %for.cond.i.i.i257 for.cond.i.i.i257: ; preds = %for.inc.i.i.i292, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit245 %retval.sroa.6.0.i.i.i258 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit245 ], [ %retval.sroa.6.2.i.i.i293, %for.inc.i.i.i292 ] %retval.sroa.2.0.i.i.i259 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit245 ], [ %retval.sroa.2.2.i.i.i294, %for.inc.i.i.i292 ] %retval.sroa.8.0.i.i.i260 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit245 ], [ %retval.sroa.8.2.i.i.i295, %for.inc.i.i.i292 ] %index.0.i.i.i261 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit245 ], [ %inc.i.i.i296, %for.inc.i.i.i292 ] %130 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i262 = icmp ult i32 %index.0.i.i.i261, %130 %spec.store.select.i.i.i263 = select i1 %cmp.not.i.i.i262, i32 %index.0.i.i.i261, i32 0 %131 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i264 = zext i32 %131 to i64 %div8.i.i.i.i.i265 = lshr i32 %spec.store.select.i.i.i263, 5 %132 = and i32 %spec.store.select.i.i.i263, 31 %idxprom.i.i.i.i.i266 = zext nneg i32 %div8.i.i.i.i.i265 to i64 %arrayidx.i.i.i.i.i267 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i266 %133 = lshr i32 %131, %2 %conv4.i.i.i.i.i268 = and i32 %133, 1 %shl.i.i.i.i.i269 = shl nuw i32 %conv4.i.i.i.i.i268, %132 %134 = atomicrmw or ptr %arrayidx.i.i.i.i.i267, i32 %shl.i.i.i.i.i269 monotonic, align 4 %shl5.i.i.i.i.i270 = shl nuw i32 1, %132 %and.i.i.i.i.i271 = and i32 %shl5.i.i.i.i.i270, %134 %tobool3.i.i.i.i272 = icmp ne i32 %and.i.i.i.i.i271, 0 %135 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %131, i1 %tobool3.i.i.i.i272) %cmp.i.not.i.i.i273 = icmp eq i32 %131, %135 br i1 %cmp.i.not.i.i.i273, label %for.inc.i.i.i292, label %if.then.i.i.i.i274 if.then.i.i.i.i274: ; preds = %for.cond.i.i.i257 fence acquire %136 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i275 = zext i32 %spec.store.select.i.i.i263 to i64 %arrayidx.i.i.i.i276 = getelementptr inbounds nuw i32, ptr %136, i64 %idxprom.i.i.i.i275 %137 = load atomic i32, ptr %arrayidx.i.i.i.i276 monotonic, align 4 %138 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %131, i1 true) %iszero.i.i.i.i.i.i277 = icmp eq i32 %131, 0 %sub.i.i.i.i.i.i278 = select i1 %iszero.i.i.i.i.i.i277, i32 -1, i32 %138 %139 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %131, i32 %137, i32 %sub.i.i.i.i.i.i278, i32 31) %140 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i279 = getelementptr inbounds nuw i32, ptr %140, i64 %idxprom.i.i.i.i275 %141 = load atomic i32, ptr %arrayidx.i45.i.i.i279 monotonic, align 4 %142 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %131, i32 %141, i32 %sub.i.i.i.i.i.i278, i32 31) %cmp.i48.not.i.i.i280 = icmp eq i32 %139, %142 br i1 %cmp.i48.not.i.i.i280, label %if.end14.i.i.i356, label %if.then12.i.i.i281 if.then12.i.i.i281: ; preds = %if.then.i.i.i.i274 fence release %143 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i264, i1 true) %iszero.i.i.i.i.i.i.i282 = icmp ne i32 %131, 0 %cmp2.i.i.i.i.i.i283 = icmp eq i64 %143, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i284 = select i1 %iszero.i.i.i.i.i.i.i282, i1 %cmp2.i.i.i.i.i.i283, i1 false %conv4.i.i53.i.i.i285 = zext i1 %cmp.i.i.i.i.i.i284 to i32 %shl.i.i54.i.i.i286 = shl nuw i32 %conv4.i.i53.i.i.i285, %132 %xor.i.i.i.i.i287 = xor i32 %shl.i.i54.i.i.i286, -1 %144 = atomicrmw and ptr %arrayidx.i.i.i.i.i267, i32 %xor.i.i.i.i.i287 monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %131) br label %cleanup26.i.i.i288 if.end14.i.i.i356: ; preds = %if.then.i.i.i.i274 %145 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i264, i1 true) %iszero.i.i.i56.i.i.i357 = icmp ne i32 %131, 0 %cmp2.i.i.i.i.i358 = icmp eq i64 %145, %sh_prom.i.i.i.i %cmp.i.i.i.i.i359 = select i1 %iszero.i.i.i56.i.i.i357, i1 %cmp2.i.i.i.i.i358, i1 false br i1 %cmp.i.i.i.i.i359, label %if.then16.i.i.i361, label %if.end22.i.i.i360 if.then16.i.i.i361: ; preds = %if.end14.i.i.i356 %146 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i362 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %146, i64 %idxprom.i.i.i.i275, i32 1 store i32 1660944387, ptr %opcode.i.i.i362, align 8, !tbaa !61 %arrayidx21.i.i.i363 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %146, i64 %idxprom.i.i.i.i275 store i64 %conv.i.i.i.i.i264, ptr %arrayidx21.i.i.i363, align 8, !tbaa !64 br label %if.end22.i.i.i360 if.end22.i.i.i360: ; preds = %if.then16.i.i.i361, %if.end14.i.i.i356 tail call void @llvm.nvvm.bar.warp.sync(i32 %131) br label %cleanup26.i.i.i288 cleanup26.i.i.i288: ; preds = %if.end22.i.i.i360, %if.then12.i.i.i281 %retval.sroa.6.1.i.i.i289 = phi i32 [ %retval.sroa.6.0.i.i.i258, %if.then12.i.i.i281 ], [ %spec.store.select.i.i.i263, %if.end22.i.i.i360 ] %retval.sroa.2.1.i.i.i290 = phi i64 [ %retval.sroa.2.0.i.i.i259, %if.then12.i.i.i281 ], [ %conv.i.i.i.i.i264, %if.end22.i.i.i360 ] %retval.sroa.8.1.i.i.i291 = phi i32 [ %retval.sroa.8.0.i.i.i260, %if.then12.i.i.i281 ], [ %139, %if.end22.i.i.i360 ] br i1 %cmp.i48.not.i.i.i280, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i297, label %for.inc.i.i.i292 for.inc.i.i.i292: ; preds = %cleanup26.i.i.i288, %for.cond.i.i.i257 %retval.sroa.6.2.i.i.i293 = phi i32 [ %retval.sroa.6.1.i.i.i289, %cleanup26.i.i.i288 ], [ %retval.sroa.6.0.i.i.i258, %for.cond.i.i.i257 ] %retval.sroa.2.2.i.i.i294 = phi i64 [ %retval.sroa.2.1.i.i.i290, %cleanup26.i.i.i288 ], [ %retval.sroa.2.0.i.i.i259, %for.cond.i.i.i257 ] %retval.sroa.8.2.i.i.i295 = phi i32 [ %retval.sroa.8.1.i.i.i291, %cleanup26.i.i.i288 ], [ %retval.sroa.8.0.i.i.i260, %for.cond.i.i.i257 ] %inc.i.i.i296 = add i32 %spec.store.select.i.i.i263, 1 br label %for.cond.i.i.i257, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i297: ; preds = %cleanup26.i.i.i288 %retval.sroa.6.1.i.i.i289.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i289, %cleanup26.i.i.i288 ] %retval.sroa.2.1.i.i.i290.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i290, %cleanup26.i.i.i288 ] %retval.sroa.8.1.i.i.i291.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i291, %cleanup26.i.i.i288 ] fence acquire %147 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i300 = shl i32 %retval.sroa.6.1.i.i.i289.lcssa, 5 %idxprom.i18.i.i.i.i.i301 = zext i32 %mul.i.i.i.i.i.i300 to i64 %arrayidx.i19.i.i.i.i.i302 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %147, i64 %idxprom.i18.i.i.i.i.i301 %arrayidx.i21.i.i.i.i.i303 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i302, i64 %sh_prom.i.i.i.i store i64 8, ptr %arrayidx.i21.i.i.i.i.i303, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i305 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i303, i64 8 store i64 2334956330918245714, ptr %arrayidx6.i.i.i.i.i.i.i305, align 8 %tobool.not.i.i.i.i.i.i306 = icmp eq i32 %retval.sroa.8.1.i.i.i291.lcssa, 0 %conv.i.i.i.i.i.i307 = zext i1 %tobool.not.i.i.i.i.i.i306 to i32 fence release %148 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i308 = zext i32 %retval.sroa.6.1.i.i.i289.lcssa to i64 %arrayidx.i23.i.i.i.i.i309 = getelementptr inbounds nuw i32, ptr %148, i64 %idxprom.i22.i.i.i.i.i308 store atomic i32 %conv.i.i.i.i.i.i307, ptr %arrayidx.i23.i.i.i.i.i309 monotonic, align 4 %149 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i310 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %149, i64 %idxprom.i22.i.i.i.i.i308 %150 = load i64, ptr %arrayidx.i.i4.i.i310, align 8, !tbaa !64 %conv.i.i7.i.i.i.i311 = trunc i64 %150 to i32 %conv.i.i.i.i17.i.i.i.i313 = trunc i64 %retval.sroa.2.1.i.i.i290.lcssa to i32 %151 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i313, i1 true) %iszero.i.i.i.i18.i.i.i.i314 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i313, 0 %sub.i.i.i.i19.i.i.i.i315 = select i1 %iszero.i.i.i.i18.i.i.i.i314, i32 -1, i32 %151 br label %while.cond.i.i.i.i316 while.cond.i.i.i.i316: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i328, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i297 %port.sroa.43.0.i.i317 = phi i32 [ %conv.i.i.i.i.i.i307, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i297 ], [ %conv.i.i39.i.i.i.i329, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i328 ] %idx.0.i.i.i.i318 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i297 ], [ %add.i.i.i.i331, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i328 ] %cmp.i.i.i2.i319 = icmp eq i64 %idx.0.i.i.i.i318, 0 %152 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i311, i1 %cmp.i.i.i2.i319) %tobool.not.i.i.i.i320 = icmp eq i32 %152, 0 %153 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i321 = getelementptr inbounds nuw i32, ptr %153, i64 %idxprom.i22.i.i.i.i.i308 %154 = load atomic i32, ptr %arrayidx.i22.i.i.i321 monotonic, align 4 br i1 %tobool.not.i.i.i.i320, label %cond.false.i.i.i340, label %cond.false.i11.i.i.i.i322 cond.false.i11.i.i.i.i322: ; preds = %while.cond.i.i.i.i316 %155 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i313, i32 %154, i32 %sub.i.i.i.i19.i.i.i.i315, i32 31) %156 = icmp eq i32 %155, %port.sroa.43.0.i.i317 br i1 %156, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i327, label %while.body.i.i33.i.i.i.i323 while.body.i.i33.i.i.i.i323: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i324, %cond.false.i11.i.i.i.i322 %157 = phi ptr [ %158, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i324 ], [ %153, %cond.false.i11.i.i.i.i322 ] br i1 %cmp.i3.i.i27.i.i.i.i, label %if.then.i.i.i48.i.i.i.i338, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i324 if.then.i.i.i48.i.i.i.i338: ; preds = %while.body.i.i33.i.i.i.i323 tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i339 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i324 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i324: ; preds = %if.then.i.i.i48.i.i.i.i338, %while.body.i.i33.i.i.i.i323 %158 = phi ptr [ %.pre.i.i.i.i339, %if.then.i.i.i48.i.i.i.i338 ], [ %157, %while.body.i.i33.i.i.i.i323 ] %arrayidx.i.i.i35.i.i.i.i325 = getelementptr inbounds nuw i32, ptr %158, i64 %idxprom.i22.i.i.i.i.i308 %159 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i325 monotonic, align 4 %160 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i313, i32 %159, i32 %sub.i.i.i.i19.i.i.i.i315, i32 31) %cmp.i.not.i.i36.i.i.i.i326 = icmp eq i32 %160, %port.sroa.43.0.i.i317 br i1 %cmp.i.not.i.i36.i.i.i.i326, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i327, label %while.body.i.i33.i.i.i.i323, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i327: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i324, %cond.false.i11.i.i.i.i322 fence acquire br i1 %cmp.i.i.i2.i319, label %if.then.i.i20.i.i.i.i.i332, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i328 if.then.i.i20.i.i.i.i.i332: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i327 %161 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i336 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %161, i64 %idxprom.i18.i.i.i.i.i301 %arrayidx.i22.i.i.i.i.i337 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i336, i64 %sh_prom.i.i.i.i store i64 2334956330918245714, ptr %arrayidx.i22.i.i.i.i.i337, align 1 br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i328 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i328: ; preds = %if.then.i.i20.i.i.i.i.i332, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i327 %conv.i.i39.i.i.i.i329 = xor i32 %port.sroa.43.0.i.i317, 1 fence release %162 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i330 = getelementptr inbounds nuw i32, ptr %162, i64 %idxprom.i22.i.i.i.i.i308 store atomic i32 %conv.i.i39.i.i.i.i329, ptr %arrayidx.i24.i.i.i.i.i330 monotonic, align 4 %add.i.i.i.i331 = add i64 %idx.0.i.i.i.i318, 64 br label %while.cond.i.i.i.i316, !llvm.loop !71 cond.false.i.i.i340: ; preds = %while.cond.i.i.i.i316 %port.sroa.43.0.i.i317.lcssa = phi i32 [ %port.sroa.43.0.i.i317, %while.cond.i.i.i.i316 ] %.lcssa5682 = phi ptr [ %153, %while.cond.i.i.i.i316 ] %.lcssa5681 = phi i32 [ %154, %while.cond.i.i.i.i316 ] %163 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i313, i32 %.lcssa5681, i32 %sub.i.i.i.i19.i.i.i.i315, i32 31) %164 = icmp eq i32 %163, %port.sroa.43.0.i.i317.lcssa br i1 %164, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit364, label %while.body.i.i.i.i341 while.body.i.i.i.i341: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i342, %cond.false.i.i.i340 %165 = phi ptr [ %166, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i342 ], [ %.lcssa5682, %cond.false.i.i.i340 ] br i1 %cmp.i3.i.i27.i.i.i.i, label %if.then.i.i.i.i.i354, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i342 if.then.i.i.i.i.i354: ; preds = %while.body.i.i.i.i341 tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i355 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i342 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i342: ; preds = %if.then.i.i.i.i.i354, %while.body.i.i.i.i341 %166 = phi ptr [ %.pre.i.i355, %if.then.i.i.i.i.i354 ], [ %165, %while.body.i.i.i.i341 ] %arrayidx.i.i.i11.i.i343 = getelementptr inbounds nuw i32, ptr %166, i64 %idxprom.i22.i.i.i.i.i308 %167 = load atomic i32, ptr %arrayidx.i.i.i11.i.i343 monotonic, align 4 %168 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i313, i32 %167, i32 %sub.i.i.i.i19.i.i.i.i315, i32 31) %cmp.i.not.i.i.i.i344 = icmp eq i32 %168, %port.sroa.43.0.i.i317.lcssa br i1 %cmp.i.not.i.i.i.i344, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit364, label %while.body.i.i.i.i341, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit364: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i342, %cond.false.i.i.i340 fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i313) fence release %169 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i290.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i345 = icmp ne i64 %retval.sroa.2.1.i.i.i290.lcssa, 0 %cmp2.i.i.i.i19.i.i346 = icmp eq i64 %169, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i347 = select i1 %iszero.i.i.i.i.i18.i.i345, i1 %cmp2.i.i.i.i19.i.i346, i1 false %div8.i.i.i21.i.i348 = lshr i32 %retval.sroa.6.1.i.i.i289.lcssa, 5 %170 = and i32 %retval.sroa.6.1.i.i.i289.lcssa, 31 %idxprom.i.i.i22.i.i349 = zext nneg i32 %div8.i.i.i21.i.i348 to i64 %arrayidx.i.i.i23.i.i350 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i349 %conv4.i.i.i24.i.i351 = zext i1 %cmp.i.i.i.i20.i.i347 to i32 %shl.i.i.i25.i.i352 = shl nuw i32 %conv4.i.i.i24.i.i351, %170 %xor.i.i.i26.i.i353 = xor i32 %shl.i.i.i25.i.i352, -1 %171 = atomicrmw and ptr %arrayidx.i.i.i23.i.i350, i32 %xor.i.i.i26.i.i353 monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i313) call void @llvm.lifetime.start.p0(ptr nonnull %buffer.i.i.i) #32, !noalias !102 %172 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i, i64 11 br label %while.body.i.i.i.i.i.i.i while.body.i.i.i.i.i.i.i: ; preds = %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit364 %writer.sroa.10.0.i.i.i.i.i = phi i64 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit364 ], [ %writer.sroa.10.1.i.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i ] %value.addr.09.i.i.i.i.i.i.i = phi i32 [ %inc.i.lcssa, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit364 ], [ %div.i.i.i.i.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i ] %div.i.i.i.i.i.i.i.i = udiv i32 %value.addr.09.i.i.i.i.i.i.i, 10 %cmp.i.i.i.i.i.i.i.i.i = icmp eq i64 %writer.sroa.10.0.i.i.i.i.i, 11 br i1 %cmp.i.i.i.i.i.i.i.i.i, label %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i, label %if.then3.i.i.i.i.i.i.i.i if.then3.i.i.i.i.i.i.i.i: ; preds = %while.body.i.i.i.i.i.i.i %.neg.i = mul i32 %div.i.i.i.i.i.i.i.i, 246 %rem.i.i.i.i.i.i.i.decomposed.i = add i32 %.neg.i, %value.addr.09.i.i.i.i.i.i.i %conv.i.i.i.i.i.i.i.i = trunc i32 %rem.i.i.i.i.i.i.i.decomposed.i to i8 %switch.offset.i = or disjoint i8 %conv.i.i.i.i.i.i.i.i, 48 %inc.i.i.i.i.i.i.i.i = add i64 %writer.sroa.10.0.i.i.i.i.i, 1 %173 = xor i64 %writer.sroa.10.0.i.i.i.i.i, -1 %arrayidx.i.i.i.i.i.i.i.i.i = getelementptr i8, ptr %172, i64 %173 store i8 %switch.offset.i, ptr %arrayidx.i.i.i.i.i.i.i.i.i, align 1, !tbaa !36, !noalias !102 br label %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i _ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i: ; preds = %if.then3.i.i.i.i.i.i.i.i, %while.body.i.i.i.i.i.i.i %writer.sroa.10.1.i.i.i.i.i = phi i64 [ %inc.i.i.i.i.i.i.i.i, %if.then3.i.i.i.i.i.i.i.i ], [ 11, %while.body.i.i.i.i.i.i.i ] %cmp.i.i.i.i.i.i.i = icmp samesign ult i32 %value.addr.09.i.i.i.i.i.i.i, 10 %.not.i.i.i.i.i.i.i = or i1 %cmp.i.i.i.i.i.i.i.i.i, %cmp.i.i.i.i.i.i.i br i1 %.not.i.i.i.i.i.i.i, label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i, label %while.body.i.i.i.i.i.i.i, !llvm.loop !77 _ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i: ; preds = %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i %writer.sroa.10.1.i.i.i.i.i.lcssa = phi i64 [ %writer.sroa.10.1.i.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i ] %cmp.i.i.i.i.i.i.i.i.i.lcssa = phi i1 [ %cmp.i.i.i.i.i.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i ] %cmp.i21.i.i.i.i.i = icmp ne i64 %writer.sroa.10.1.i.i.i.i.i.lcssa, 0 %or.cond.not.i.i.i.i.i = or i1 %cmp.i.i.i.i.i.i.i.i.i.lcssa, %cmp.i21.i.i.i.i.i br i1 %or.cond.not.i.i.i.i.i, label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i, label %if.then3.i.i.lr.ph.i.i.i.i.i if.then3.i.i.lr.ph.i.i.i.i.i: ; preds = %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i %arrayidx.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %buffer.i.i.i, i64 10 store i8 48, ptr %arrayidx.i.i.i.i.i.i.i.i, align 2, !tbaa !36, !noalias !102 br label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i _ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i: ; preds = %if.then3.i.i.lr.ph.i.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i %writer.sroa.10.4.i.i.i.i.i = phi i64 [ %writer.sroa.10.1.i.i.i.i.i.lcssa, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i ], [ 1, %if.then3.i.i.lr.ph.i.i.i.i.i ] %written.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %buffer.i.i.i, i64 16 store i64 %writer.sroa.10.4.i.i.i.i.i, ptr %written.i.i.i.i.i, align 8, !tbaa !40, !noalias !102 %cmp.i.not.i.i.i.i.i.i = icmp eq i64 %writer.sroa.10.4.i.i.i.i.i, 0 br i1 %cmp.i.not.i.i.i.i.i.i, label %if.end.i.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i.i if.then.i.i.i.i.i.i.i: ; preds = %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i %inc.i.i.i.i.i2.i.i.i = add i64 %writer.sroa.10.4.i.i.i.i.i, 1 %cmp.not.i.i.not.i.i.i.i.i.i = icmp eq i64 %inc.i.i.i.i.i2.i.i.i, 0 br i1 %cmp.not.i.i.not.i.i.i.i.i.i, label %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i, label %if.end.i.i.i.i.i.i.i.i if.end.i.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i %cmp2.i.i.i.i.i.i.i.i = icmp ult i64 %inc.i.i.i.i.i2.i.i.i, 1676976733973595601 %mul.i.i.i.i.i.i.i.i = mul nuw i64 %inc.i.i.i.i.i2.i.i.i, 11 %div18.i.i.i.i.i.i.i.i = lshr i64 %mul.i.i.i.i.i.i.i.i, 3 %new_capacity.addr.0.i.i.i.i.i.i.i.i = select i1 %cmp2.i.i.i.i.i.i.i.i, i64 %div18.i.i.i.i.i.i.i.i, i64 %inc.i.i.i.i.i2.i.i.i %sub.i.i.i = add i64 %new_capacity.addr.0.i.i.i.i.i.i.i.i, 7 %div2.i.i.i = and i64 %sub.i.i.i, -8 %174 = load ptr, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34, !noalias !102 %add.ptr.i.i.i = getelementptr inbounds nuw i8, ptr %174, i64 %div2.i.i.i store ptr %add.ptr.i.i.i, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34, !noalias !102 %sub.ptr.lhs.cast.i.i.i = ptrtoint ptr %add.ptr.i.i.i to i64 %sub.ptr.sub.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i, ptrtoint (ptr @_ZN12_GLOBAL__N_16memoryE to i64) %cmp.i.i.i = icmp ugt i64 %sub.ptr.sub.i.i.i, 65335 %cond.i.i.i = select i1 %cmp.i.i.i, ptr null, ptr %174 %tobool.i.i.i.i.i.i.i.i = icmp ne ptr %cond.i.i.i, null tail call void @llvm.assume(i1 %tobool.i.i.i.i.i.i.i.i) br label %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i _ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i: ; preds = %if.end.i.i.i.i.i.i.i.i, %if.then.i.i.i.i.i.i.i %agg.tmp.sroa.0.0.i = phi ptr [ @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE, %if.then.i.i.i.i.i.i.i ], [ %cond.i.i.i, %if.end.i.i.i.i.i.i.i.i ] tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %agg.tmp.sroa.0.0.i, i8 0, i64 %writer.sroa.10.4.i.i.i.i.i, i1 false), !noalias !102 br label %if.end.i.i.i.i.i.i.i if.end.i.i.i.i.i.i.i: ; preds = %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i %agg.tmp.sroa.0.1.i = phi ptr [ @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i ], [ %agg.tmp.sroa.0.0.i, %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i ] %cmp.not.i6.i.i.i.i.i.i.i = icmp eq ptr %agg.tmp.sroa.0.1.i, @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE br i1 %cmp.not.i6.i.i.i.i.i.i.i, label %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i, label %if.then.i.i.i.i.i3.i.i.i if.then.i.i.i.i.i3.i.i.i: ; preds = %if.end.i.i.i.i.i.i.i %arrayidx.i.i.i.i.i4.i.i.i = getelementptr inbounds nuw i8, ptr %agg.tmp.sroa.0.1.i, i64 %writer.sroa.10.4.i.i.i.i.i store i8 0, ptr %arrayidx.i.i.i.i.i4.i.i.i, align 1, !tbaa !36, !noalias !102 br label %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i _ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i: ; preds = %if.then.i.i.i.i.i3.i.i.i, %if.end.i.i.i.i.i.i.i %add.ptr.i.i.i.i = getelementptr inbounds nuw i8, ptr %buffer.i.i.i, i64 11 %idx.neg.i.i.i.i = sub i64 0, %writer.sroa.10.4.i.i.i.i.i %add.ptr5.i.i.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i.i, i64 %idx.neg.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %agg.tmp.sroa.0.1.i, ptr nonnull align 1 %add.ptr5.i.i.i.i, i64 %writer.sroa.10.4.i.i.i.i.i, i1 false), !alias.scope !107, !noalias !102 call void @llvm.lifetime.end.p0(ptr nonnull %buffer.i.i.i) #32, !noalias !102 br label %for.cond.i.i.i366 for.cond.i.i.i366: ; preds = %for.inc.i.i.i401, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i %retval.sroa.6.0.i.i.i367 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i ], [ %retval.sroa.6.2.i.i.i402, %for.inc.i.i.i401 ] %retval.sroa.2.0.i.i.i368 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i ], [ %retval.sroa.2.2.i.i.i403, %for.inc.i.i.i401 ] %retval.sroa.8.0.i.i.i369 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i ], [ %retval.sroa.8.2.i.i.i404, %for.inc.i.i.i401 ] %index.0.i.i.i370 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i ], [ %inc.i.i.i405, %for.inc.i.i.i401 ] %175 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i371 = icmp ult i32 %index.0.i.i.i370, %175 %spec.store.select.i.i.i372 = select i1 %cmp.not.i.i.i371, i32 %index.0.i.i.i370, i32 0 %176 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i373 = zext i32 %176 to i64 %div8.i.i.i.i.i374 = lshr i32 %spec.store.select.i.i.i372, 5 %177 = and i32 %spec.store.select.i.i.i372, 31 %idxprom.i.i.i.i.i375 = zext nneg i32 %div8.i.i.i.i.i374 to i64 %arrayidx.i.i.i.i.i376 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i375 %178 = lshr i32 %176, %2 %conv4.i.i.i.i.i377 = and i32 %178, 1 %shl.i.i.i.i.i378 = shl nuw i32 %conv4.i.i.i.i.i377, %177 %179 = atomicrmw or ptr %arrayidx.i.i.i.i.i376, i32 %shl.i.i.i.i.i378 monotonic, align 4 %shl5.i.i.i.i.i379 = shl nuw i32 1, %177 %and.i.i.i.i.i380 = and i32 %shl5.i.i.i.i.i379, %179 %tobool3.i.i.i.i381 = icmp ne i32 %and.i.i.i.i.i380, 0 %180 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %176, i1 %tobool3.i.i.i.i381) %cmp.i.not.i.i.i382 = icmp eq i32 %176, %180 br i1 %cmp.i.not.i.i.i382, label %for.inc.i.i.i401, label %if.then.i.i.i.i383 if.then.i.i.i.i383: ; preds = %for.cond.i.i.i366 fence acquire %181 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i384 = zext i32 %spec.store.select.i.i.i372 to i64 %arrayidx.i.i.i.i385 = getelementptr inbounds nuw i32, ptr %181, i64 %idxprom.i.i.i.i384 %182 = load atomic i32, ptr %arrayidx.i.i.i.i385 monotonic, align 4 %183 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %176, i1 true) %iszero.i.i.i.i.i.i386 = icmp eq i32 %176, 0 %sub.i.i.i.i.i.i387 = select i1 %iszero.i.i.i.i.i.i386, i32 -1, i32 %183 %184 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %176, i32 %182, i32 %sub.i.i.i.i.i.i387, i32 31) %185 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i388 = getelementptr inbounds nuw i32, ptr %185, i64 %idxprom.i.i.i.i384 %186 = load atomic i32, ptr %arrayidx.i45.i.i.i388 monotonic, align 4 %187 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %176, i32 %186, i32 %sub.i.i.i.i.i.i387, i32 31) %cmp.i48.not.i.i.i389 = icmp eq i32 %184, %187 br i1 %cmp.i48.not.i.i.i389, label %if.end14.i.i.i465, label %if.then12.i.i.i390 if.then12.i.i.i390: ; preds = %if.then.i.i.i.i383 fence release %188 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i373, i1 true) %iszero.i.i.i.i.i.i.i391 = icmp ne i32 %176, 0 %cmp2.i.i.i.i.i.i392 = icmp eq i64 %188, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i393 = select i1 %iszero.i.i.i.i.i.i.i391, i1 %cmp2.i.i.i.i.i.i392, i1 false %conv4.i.i53.i.i.i394 = zext i1 %cmp.i.i.i.i.i.i393 to i32 %shl.i.i54.i.i.i395 = shl nuw i32 %conv4.i.i53.i.i.i394, %177 %xor.i.i.i.i.i396 = xor i32 %shl.i.i54.i.i.i395, -1 %189 = atomicrmw and ptr %arrayidx.i.i.i.i.i376, i32 %xor.i.i.i.i.i396 monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %176) br label %cleanup26.i.i.i397 if.end14.i.i.i465: ; preds = %if.then.i.i.i.i383 %190 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i373, i1 true) %iszero.i.i.i56.i.i.i466 = icmp ne i32 %176, 0 %cmp2.i.i.i.i.i467 = icmp eq i64 %190, %sh_prom.i.i.i.i %cmp.i.i.i.i.i468 = select i1 %iszero.i.i.i56.i.i.i466, i1 %cmp2.i.i.i.i.i467, i1 false br i1 %cmp.i.i.i.i.i468, label %if.then16.i.i.i470, label %if.end22.i.i.i469 if.then16.i.i.i470: ; preds = %if.end14.i.i.i465 %191 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i471 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %191, i64 %idxprom.i.i.i.i384, i32 1 store i32 1660944387, ptr %opcode.i.i.i471, align 8, !tbaa !61 %arrayidx21.i.i.i472 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %191, i64 %idxprom.i.i.i.i384 store i64 %conv.i.i.i.i.i373, ptr %arrayidx21.i.i.i472, align 8, !tbaa !64 br label %if.end22.i.i.i469 if.end22.i.i.i469: ; preds = %if.then16.i.i.i470, %if.end14.i.i.i465 tail call void @llvm.nvvm.bar.warp.sync(i32 %176) br label %cleanup26.i.i.i397 cleanup26.i.i.i397: ; preds = %if.end22.i.i.i469, %if.then12.i.i.i390 %retval.sroa.6.1.i.i.i398 = phi i32 [ %retval.sroa.6.0.i.i.i367, %if.then12.i.i.i390 ], [ %spec.store.select.i.i.i372, %if.end22.i.i.i469 ] %retval.sroa.2.1.i.i.i399 = phi i64 [ %retval.sroa.2.0.i.i.i368, %if.then12.i.i.i390 ], [ %conv.i.i.i.i.i373, %if.end22.i.i.i469 ] %retval.sroa.8.1.i.i.i400 = phi i32 [ %retval.sroa.8.0.i.i.i369, %if.then12.i.i.i390 ], [ %184, %if.end22.i.i.i469 ] br i1 %cmp.i48.not.i.i.i389, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i406, label %for.inc.i.i.i401 for.inc.i.i.i401: ; preds = %cleanup26.i.i.i397, %for.cond.i.i.i366 %retval.sroa.6.2.i.i.i402 = phi i32 [ %retval.sroa.6.1.i.i.i398, %cleanup26.i.i.i397 ], [ %retval.sroa.6.0.i.i.i367, %for.cond.i.i.i366 ] %retval.sroa.2.2.i.i.i403 = phi i64 [ %retval.sroa.2.1.i.i.i399, %cleanup26.i.i.i397 ], [ %retval.sroa.2.0.i.i.i368, %for.cond.i.i.i366 ] %retval.sroa.8.2.i.i.i404 = phi i32 [ %retval.sroa.8.1.i.i.i400, %cleanup26.i.i.i397 ], [ %retval.sroa.8.0.i.i.i369, %for.cond.i.i.i366 ] %inc.i.i.i405 = add i32 %spec.store.select.i.i.i372, 1 br label %for.cond.i.i.i366, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i406: ; preds = %cleanup26.i.i.i397 %retval.sroa.6.1.i.i.i398.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i398, %cleanup26.i.i.i397 ] %retval.sroa.2.1.i.i.i399.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i399, %cleanup26.i.i.i397 ] %retval.sroa.8.1.i.i.i400.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i400, %cleanup26.i.i.i397 ] fence acquire %192 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i409 = shl i32 %retval.sroa.6.1.i.i.i398.lcssa, 5 %idxprom.i18.i.i.i.i.i410 = zext i32 %mul.i.i.i.i.i.i409 to i64 %arrayidx.i19.i.i.i.i.i411 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %192, i64 %idxprom.i18.i.i.i.i.i410 %arrayidx.i21.i.i.i.i.i412 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i411, i64 %sh_prom.i.i.i.i store i64 %writer.sroa.10.4.i.i.i.i.i, ptr %arrayidx.i21.i.i.i.i.i412, align 8, !tbaa !67 %spec.select.i.i.i.i.i.i.i413 = tail call i64 @llvm.umin.i64(i64 %writer.sroa.10.4.i.i.i.i.i, i64 56) %arrayidx6.i.i.i.i.i.i.i414 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i412, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %arrayidx6.i.i.i.i.i.i.i414, ptr nonnull align 1 %agg.tmp.sroa.0.1.i, i64 %spec.select.i.i.i.i.i.i.i413, i1 false) %tobool.not.i.i.i.i.i.i415 = icmp eq i32 %retval.sroa.8.1.i.i.i400.lcssa, 0 %conv.i.i.i.i.i.i416 = zext i1 %tobool.not.i.i.i.i.i.i415 to i32 fence release %193 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i417 = zext i32 %retval.sroa.6.1.i.i.i398.lcssa to i64 %arrayidx.i23.i.i.i.i.i418 = getelementptr inbounds nuw i32, ptr %193, i64 %idxprom.i22.i.i.i.i.i417 store atomic i32 %conv.i.i.i.i.i.i416, ptr %arrayidx.i23.i.i.i.i.i418 monotonic, align 4 %194 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i419 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %194, i64 %idxprom.i22.i.i.i.i.i417 %195 = load i64, ptr %arrayidx.i.i4.i.i419, align 8, !tbaa !64 %conv.i.i7.i.i.i.i420 = trunc i64 %195 to i32 %conv.i.i.i.i17.i.i.i.i422 = trunc i64 %retval.sroa.2.1.i.i.i399.lcssa to i32 %196 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i422, i1 true) %iszero.i.i.i.i18.i.i.i.i423 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i422, 0 %sub.i.i.i.i19.i.i.i.i424 = select i1 %iszero.i.i.i.i18.i.i.i.i423, i32 -1, i32 %196 br label %while.cond.i.i.i.i425 while.cond.i.i.i.i425: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i437, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i406 %port.sroa.43.0.i.i426 = phi i32 [ %conv.i.i.i.i.i.i416, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i406 ], [ %conv.i.i39.i.i.i.i438, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i437 ] %idx.0.i.i.i.i427 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i406 ], [ %add.i.i.i.i440, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i437 ] %cmp.i.i.i.i428 = icmp ult i64 %idx.0.i.i.i.i427, %writer.sroa.10.4.i.i.i.i.i %197 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i420, i1 %cmp.i.i.i.i428) %tobool.not.i.i.i.i429 = icmp eq i32 %197, 0 %198 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i430 = getelementptr inbounds nuw i32, ptr %198, i64 %idxprom.i22.i.i.i.i.i417 %199 = load atomic i32, ptr %arrayidx.i22.i.i.i430 monotonic, align 4 br i1 %tobool.not.i.i.i.i429, label %cond.false.i.i.i449, label %cond.false.i11.i.i.i.i431 cond.false.i11.i.i.i.i431: ; preds = %while.cond.i.i.i.i425 %200 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i422, i32 %199, i32 %sub.i.i.i.i19.i.i.i.i424, i32 31) %201 = icmp eq i32 %200, %port.sroa.43.0.i.i426 br i1 %201, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i436, label %while.body.i.i33.i.i.i.i432 while.body.i.i33.i.i.i.i432: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i433, %cond.false.i11.i.i.i.i431 %202 = phi ptr [ %203, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i433 ], [ %198, %cond.false.i11.i.i.i.i431 ] br i1 %cmp.i3.i.i27.i.i.i.i, label %if.then.i.i.i48.i.i.i.i447, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i433 if.then.i.i.i48.i.i.i.i447: ; preds = %while.body.i.i33.i.i.i.i432 tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i448 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i433 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i433: ; preds = %if.then.i.i.i48.i.i.i.i447, %while.body.i.i33.i.i.i.i432 %203 = phi ptr [ %.pre.i.i.i.i448, %if.then.i.i.i48.i.i.i.i447 ], [ %202, %while.body.i.i33.i.i.i.i432 ] %arrayidx.i.i.i35.i.i.i.i434 = getelementptr inbounds nuw i32, ptr %203, i64 %idxprom.i22.i.i.i.i.i417 %204 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i434 monotonic, align 4 %205 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i422, i32 %204, i32 %sub.i.i.i.i19.i.i.i.i424, i32 31) %cmp.i.not.i.i36.i.i.i.i435 = icmp eq i32 %205, %port.sroa.43.0.i.i426 br i1 %cmp.i.not.i.i36.i.i.i.i435, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i436, label %while.body.i.i33.i.i.i.i432, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i436: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i433, %cond.false.i11.i.i.i.i431 fence acquire br i1 %cmp.i.i.i.i428, label %if.then.i.i20.i.i.i.i.i441, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i437 if.then.i.i20.i.i.i.i.i441: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i436 %add.ptr.i.i.i.i.i.i.i.i442 = getelementptr inbounds nuw i8, ptr %agg.tmp.sroa.0.1.i, i64 %idx.0.i.i.i.i427 %sub.i.i.i.i.i.i.i443 = sub nuw i64 %writer.sroa.10.4.i.i.i.i.i, %idx.0.i.i.i.i427 %spec.select.i.i.i47.i.i.i.i444 = tail call i64 @llvm.umin.i64(i64 %sub.i.i.i.i.i.i.i443, i64 64) %206 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i445 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %206, i64 %idxprom.i18.i.i.i.i.i410 %arrayidx.i22.i.i.i.i.i446 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i445, i64 %sh_prom.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %arrayidx.i22.i.i.i.i.i446, ptr nonnull align 1 %add.ptr.i.i.i.i.i.i.i.i442, i64 %spec.select.i.i.i47.i.i.i.i444, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i437 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i437: ; preds = %if.then.i.i20.i.i.i.i.i441, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i436 %conv.i.i39.i.i.i.i438 = xor i32 %port.sroa.43.0.i.i426, 1 fence release %207 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i439 = getelementptr inbounds nuw i32, ptr %207, i64 %idxprom.i22.i.i.i.i.i417 store atomic i32 %conv.i.i39.i.i.i.i438, ptr %arrayidx.i24.i.i.i.i.i439 monotonic, align 4 %add.i.i.i.i440 = add i64 %idx.0.i.i.i.i427, 64 br label %while.cond.i.i.i.i425, !llvm.loop !71 cond.false.i.i.i449: ; preds = %while.cond.i.i.i.i425 %port.sroa.43.0.i.i426.lcssa = phi i32 [ %port.sroa.43.0.i.i426, %while.cond.i.i.i.i425 ] %.lcssa5680 = phi ptr [ %198, %while.cond.i.i.i.i425 ] %.lcssa5679 = phi i32 [ %199, %while.cond.i.i.i.i425 ] %208 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i422, i32 %.lcssa5679, i32 %sub.i.i.i.i19.i.i.i.i424, i32 31) %209 = icmp eq i32 %208, %port.sroa.43.0.i.i426.lcssa br i1 %209, label %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i, label %while.body.i.i.i.i450 while.body.i.i.i.i450: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i451, %cond.false.i.i.i449 %210 = phi ptr [ %211, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i451 ], [ %.lcssa5680, %cond.false.i.i.i449 ] br i1 %cmp.i3.i.i27.i.i.i.i, label %if.then.i.i.i.i.i463, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i451 if.then.i.i.i.i.i463: ; preds = %while.body.i.i.i.i450 tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i464 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i451 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i451: ; preds = %if.then.i.i.i.i.i463, %while.body.i.i.i.i450 %211 = phi ptr [ %.pre.i.i464, %if.then.i.i.i.i.i463 ], [ %210, %while.body.i.i.i.i450 ] %arrayidx.i.i.i11.i.i452 = getelementptr inbounds nuw i32, ptr %211, i64 %idxprom.i22.i.i.i.i.i417 %212 = load atomic i32, ptr %arrayidx.i.i.i11.i.i452 monotonic, align 4 %213 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i422, i32 %212, i32 %sub.i.i.i.i19.i.i.i.i424, i32 31) %cmp.i.not.i.i.i.i453 = icmp eq i32 %213, %port.sroa.43.0.i.i426.lcssa br i1 %cmp.i.not.i.i.i.i453, label %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i, label %while.body.i.i.i.i450, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i451, %cond.false.i.i.i449 fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i422) fence release %214 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i399.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i454 = icmp ne i64 %retval.sroa.2.1.i.i.i399.lcssa, 0 %cmp2.i.i.i.i19.i.i455 = icmp eq i64 %214, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i456 = select i1 %iszero.i.i.i.i.i18.i.i454, i1 %cmp2.i.i.i.i19.i.i455, i1 false %div8.i.i.i21.i.i457 = lshr i32 %retval.sroa.6.1.i.i.i398.lcssa, 5 %215 = and i32 %retval.sroa.6.1.i.i.i398.lcssa, 31 %idxprom.i.i.i22.i.i458 = zext nneg i32 %div8.i.i.i21.i.i457 to i64 %arrayidx.i.i.i23.i.i459 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i458 %conv4.i.i.i24.i.i460 = zext i1 %cmp.i.i.i.i20.i.i456 to i32 %shl.i.i.i25.i.i461 = shl nuw i32 %conv4.i.i.i24.i.i460, %215 %xor.i.i.i26.i.i462 = xor i32 %shl.i.i.i25.i.i461, -1 %216 = atomicrmw and ptr %arrayidx.i.i.i23.i.i459, i32 %xor.i.i.i26.i.i462 monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i422) br label %for.cond.i.i.i484 for.cond.i.i.i484: ; preds = %for.inc.i.i.i519, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i %retval.sroa.6.0.i.i.i485 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i ], [ %retval.sroa.6.2.i.i.i520, %for.inc.i.i.i519 ] %retval.sroa.2.0.i.i.i486 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i ], [ %retval.sroa.2.2.i.i.i521, %for.inc.i.i.i519 ] %retval.sroa.8.0.i.i.i487 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i ], [ %retval.sroa.8.2.i.i.i522, %for.inc.i.i.i519 ] %index.0.i.i.i488 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i ], [ %inc.i.i.i523, %for.inc.i.i.i519 ] %217 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i489 = icmp ult i32 %index.0.i.i.i488, %217 %spec.store.select.i.i.i490 = select i1 %cmp.not.i.i.i489, i32 %index.0.i.i.i488, i32 0 %218 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i491 = zext i32 %218 to i64 %div8.i.i.i.i.i492 = lshr i32 %spec.store.select.i.i.i490, 5 %219 = and i32 %spec.store.select.i.i.i490, 31 %idxprom.i.i.i.i.i493 = zext nneg i32 %div8.i.i.i.i.i492 to i64 %arrayidx.i.i.i.i.i494 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i493 %220 = lshr i32 %218, %2 %conv4.i.i.i.i.i495 = and i32 %220, 1 %shl.i.i.i.i.i496 = shl nuw i32 %conv4.i.i.i.i.i495, %219 %221 = atomicrmw or ptr %arrayidx.i.i.i.i.i494, i32 %shl.i.i.i.i.i496 monotonic, align 4 %shl5.i.i.i.i.i497 = shl nuw i32 1, %219 %and.i.i.i.i.i498 = and i32 %shl5.i.i.i.i.i497, %221 %tobool3.i.i.i.i499 = icmp ne i32 %and.i.i.i.i.i498, 0 %222 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %218, i1 %tobool3.i.i.i.i499) %cmp.i.not.i.i.i500 = icmp eq i32 %218, %222 br i1 %cmp.i.not.i.i.i500, label %for.inc.i.i.i519, label %if.then.i.i.i.i501 if.then.i.i.i.i501: ; preds = %for.cond.i.i.i484 fence acquire %223 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i502 = zext i32 %spec.store.select.i.i.i490 to i64 %arrayidx.i.i.i.i503 = getelementptr inbounds nuw i32, ptr %223, i64 %idxprom.i.i.i.i502 %224 = load atomic i32, ptr %arrayidx.i.i.i.i503 monotonic, align 4 %225 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %218, i1 true) %iszero.i.i.i.i.i.i504 = icmp eq i32 %218, 0 %sub.i.i.i.i.i.i505 = select i1 %iszero.i.i.i.i.i.i504, i32 -1, i32 %225 %226 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %218, i32 %224, i32 %sub.i.i.i.i.i.i505, i32 31) %227 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i506 = getelementptr inbounds nuw i32, ptr %227, i64 %idxprom.i.i.i.i502 %228 = load atomic i32, ptr %arrayidx.i45.i.i.i506 monotonic, align 4 %229 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %218, i32 %228, i32 %sub.i.i.i.i.i.i505, i32 31) %cmp.i48.not.i.i.i507 = icmp eq i32 %226, %229 br i1 %cmp.i48.not.i.i.i507, label %if.end14.i.i.i584, label %if.then12.i.i.i508 if.then12.i.i.i508: ; preds = %if.then.i.i.i.i501 fence release %230 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i491, i1 true) %iszero.i.i.i.i.i.i.i509 = icmp ne i32 %218, 0 %cmp2.i.i.i.i.i.i510 = icmp eq i64 %230, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i511 = select i1 %iszero.i.i.i.i.i.i.i509, i1 %cmp2.i.i.i.i.i.i510, i1 false %conv4.i.i53.i.i.i512 = zext i1 %cmp.i.i.i.i.i.i511 to i32 %shl.i.i54.i.i.i513 = shl nuw i32 %conv4.i.i53.i.i.i512, %219 %xor.i.i.i.i.i514 = xor i32 %shl.i.i54.i.i.i513, -1 %231 = atomicrmw and ptr %arrayidx.i.i.i.i.i494, i32 %xor.i.i.i.i.i514 monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %218) br label %cleanup26.i.i.i515 if.end14.i.i.i584: ; preds = %if.then.i.i.i.i501 %232 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i491, i1 true) %iszero.i.i.i56.i.i.i585 = icmp ne i32 %218, 0 %cmp2.i.i.i.i.i586 = icmp eq i64 %232, %sh_prom.i.i.i.i %cmp.i.i.i.i.i587 = select i1 %iszero.i.i.i56.i.i.i585, i1 %cmp2.i.i.i.i.i586, i1 false br i1 %cmp.i.i.i.i.i587, label %if.then16.i.i.i589, label %if.end22.i.i.i588 if.then16.i.i.i589: ; preds = %if.end14.i.i.i584 %233 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i590 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %233, i64 %idxprom.i.i.i.i502, i32 1 store i32 1660944387, ptr %opcode.i.i.i590, align 8, !tbaa !61 %arrayidx21.i.i.i591 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %233, i64 %idxprom.i.i.i.i502 store i64 %conv.i.i.i.i.i491, ptr %arrayidx21.i.i.i591, align 8, !tbaa !64 br label %if.end22.i.i.i588 if.end22.i.i.i588: ; preds = %if.then16.i.i.i589, %if.end14.i.i.i584 tail call void @llvm.nvvm.bar.warp.sync(i32 %218) br label %cleanup26.i.i.i515 cleanup26.i.i.i515: ; preds = %if.end22.i.i.i588, %if.then12.i.i.i508 %retval.sroa.6.1.i.i.i516 = phi i32 [ %retval.sroa.6.0.i.i.i485, %if.then12.i.i.i508 ], [ %spec.store.select.i.i.i490, %if.end22.i.i.i588 ] %retval.sroa.2.1.i.i.i517 = phi i64 [ %retval.sroa.2.0.i.i.i486, %if.then12.i.i.i508 ], [ %conv.i.i.i.i.i491, %if.end22.i.i.i588 ] %retval.sroa.8.1.i.i.i518 = phi i32 [ %retval.sroa.8.0.i.i.i487, %if.then12.i.i.i508 ], [ %226, %if.end22.i.i.i588 ] br i1 %cmp.i48.not.i.i.i507, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i524, label %for.inc.i.i.i519 for.inc.i.i.i519: ; preds = %cleanup26.i.i.i515, %for.cond.i.i.i484 %retval.sroa.6.2.i.i.i520 = phi i32 [ %retval.sroa.6.1.i.i.i516, %cleanup26.i.i.i515 ], [ %retval.sroa.6.0.i.i.i485, %for.cond.i.i.i484 ] %retval.sroa.2.2.i.i.i521 = phi i64 [ %retval.sroa.2.1.i.i.i517, %cleanup26.i.i.i515 ], [ %retval.sroa.2.0.i.i.i486, %for.cond.i.i.i484 ] %retval.sroa.8.2.i.i.i522 = phi i32 [ %retval.sroa.8.1.i.i.i518, %cleanup26.i.i.i515 ], [ %retval.sroa.8.0.i.i.i487, %for.cond.i.i.i484 ] %inc.i.i.i523 = add i32 %spec.store.select.i.i.i490, 1 br label %for.cond.i.i.i484, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i524: ; preds = %cleanup26.i.i.i515 %retval.sroa.6.1.i.i.i516.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i516, %cleanup26.i.i.i515 ] %retval.sroa.2.1.i.i.i517.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i517, %cleanup26.i.i.i515 ] %retval.sroa.8.1.i.i.i518.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i518, %cleanup26.i.i.i515 ] fence acquire %234 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i527 = shl i32 %retval.sroa.6.1.i.i.i516.lcssa, 5 %idxprom.i18.i.i.i.i.i528 = zext i32 %mul.i.i.i.i.i.i527 to i64 %arrayidx.i19.i.i.i.i.i529 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %234, i64 %idxprom.i18.i.i.i.i.i528 %arrayidx.i21.i.i.i.i.i530 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i529, i64 %sh_prom.i.i.i.i store i64 5, ptr %arrayidx.i21.i.i.i.i.i530, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i532 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i530, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %arrayidx6.i.i.i.i.i.i.i532, ptr noundef nonnull align 1 dereferenceable(5) @.str14, i64 5, i1 false) %tobool.not.i.i.i.i.i.i533 = icmp eq i32 %retval.sroa.8.1.i.i.i518.lcssa, 0 %conv.i.i.i.i.i.i534 = zext i1 %tobool.not.i.i.i.i.i.i533 to i32 fence release %235 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i535 = zext i32 %retval.sroa.6.1.i.i.i516.lcssa to i64 %arrayidx.i23.i.i.i.i.i536 = getelementptr inbounds nuw i32, ptr %235, i64 %idxprom.i22.i.i.i.i.i535 store atomic i32 %conv.i.i.i.i.i.i534, ptr %arrayidx.i23.i.i.i.i.i536 monotonic, align 4 %236 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i537 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %236, i64 %idxprom.i22.i.i.i.i.i535 %237 = load i64, ptr %arrayidx.i.i4.i.i537, align 8, !tbaa !64 %conv.i.i7.i.i.i.i538 = trunc i64 %237 to i32 %conv.i.i.i.i17.i.i.i.i540 = trunc i64 %retval.sroa.2.1.i.i.i517.lcssa to i32 %238 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i540, i1 true) %iszero.i.i.i.i18.i.i.i.i541 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i540, 0 %sub.i.i.i.i19.i.i.i.i542 = select i1 %iszero.i.i.i.i18.i.i.i.i541, i32 -1, i32 %238 br label %while.cond.i.i.i.i543 while.cond.i.i.i.i543: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i555, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i524 %port.sroa.43.0.i.i544 = phi i32 [ %conv.i.i.i.i.i.i534, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i524 ], [ %conv.i.i39.i.i.i.i556, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i555 ] %idx.0.i.i.i.i545 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i524 ], [ %add.i.i.i.i558, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i555 ] %cmp.i.i.i2.i546 = icmp eq i64 %idx.0.i.i.i.i545, 0 %239 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i538, i1 %cmp.i.i.i2.i546) %tobool.not.i.i.i.i547 = icmp eq i32 %239, 0 %240 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i548 = getelementptr inbounds nuw i32, ptr %240, i64 %idxprom.i22.i.i.i.i.i535 %241 = load atomic i32, ptr %arrayidx.i22.i.i.i548 monotonic, align 4 br i1 %tobool.not.i.i.i.i547, label %cond.false.i.i.i567, label %cond.false.i11.i.i.i.i549 cond.false.i11.i.i.i.i549: ; preds = %while.cond.i.i.i.i543 %242 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i540, i32 %241, i32 %sub.i.i.i.i19.i.i.i.i542, i32 31) %243 = icmp eq i32 %242, %port.sroa.43.0.i.i544 br i1 %243, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i554, label %while.body.i.i33.i.i.i.i550 while.body.i.i33.i.i.i.i550: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i551, %cond.false.i11.i.i.i.i549 %244 = phi ptr [ %245, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i551 ], [ %240, %cond.false.i11.i.i.i.i549 ] br i1 %cmp.i3.i.i27.i.i.i.i, label %if.then.i.i.i48.i.i.i.i565, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i551 if.then.i.i.i48.i.i.i.i565: ; preds = %while.body.i.i33.i.i.i.i550 tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i566 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i551 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i551: ; preds = %if.then.i.i.i48.i.i.i.i565, %while.body.i.i33.i.i.i.i550 %245 = phi ptr [ %.pre.i.i.i.i566, %if.then.i.i.i48.i.i.i.i565 ], [ %244, %while.body.i.i33.i.i.i.i550 ] %arrayidx.i.i.i35.i.i.i.i552 = getelementptr inbounds nuw i32, ptr %245, i64 %idxprom.i22.i.i.i.i.i535 %246 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i552 monotonic, align 4 %247 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i540, i32 %246, i32 %sub.i.i.i.i19.i.i.i.i542, i32 31) %cmp.i.not.i.i36.i.i.i.i553 = icmp eq i32 %247, %port.sroa.43.0.i.i544 br i1 %cmp.i.not.i.i36.i.i.i.i553, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i554, label %while.body.i.i33.i.i.i.i550, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i554: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i551, %cond.false.i11.i.i.i.i549 fence acquire br i1 %cmp.i.i.i2.i546, label %if.then.i.i20.i.i.i.i.i559, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i555 if.then.i.i20.i.i.i.i.i559: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i554 %248 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i563 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %248, i64 %idxprom.i18.i.i.i.i.i528 %arrayidx.i22.i.i.i.i.i564 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i563, i64 %sh_prom.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %arrayidx.i22.i.i.i.i.i564, ptr noundef nonnull align 1 dereferenceable(5) @.str14, i64 5, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i555 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i555: ; preds = %if.then.i.i20.i.i.i.i.i559, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i554 %conv.i.i39.i.i.i.i556 = xor i32 %port.sroa.43.0.i.i544, 1 fence release %249 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i557 = getelementptr inbounds nuw i32, ptr %249, i64 %idxprom.i22.i.i.i.i.i535 store atomic i32 %conv.i.i39.i.i.i.i556, ptr %arrayidx.i24.i.i.i.i.i557 monotonic, align 4 %add.i.i.i.i558 = add i64 %idx.0.i.i.i.i545, 64 br label %while.cond.i.i.i.i543, !llvm.loop !71 cond.false.i.i.i567: ; preds = %while.cond.i.i.i.i543 %port.sroa.43.0.i.i544.lcssa = phi i32 [ %port.sroa.43.0.i.i544, %while.cond.i.i.i.i543 ] %.lcssa5678 = phi ptr [ %240, %while.cond.i.i.i.i543 ] %.lcssa5677 = phi i32 [ %241, %while.cond.i.i.i.i543 ] %250 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i540, i32 %.lcssa5677, i32 %sub.i.i.i.i19.i.i.i.i542, i32 31) %251 = icmp eq i32 %250, %port.sroa.43.0.i.i544.lcssa br i1 %251, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit592, label %while.body.i.i.i.i568 while.body.i.i.i.i568: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i569, %cond.false.i.i.i567 %252 = phi ptr [ %253, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i569 ], [ %.lcssa5678, %cond.false.i.i.i567 ] br i1 %cmp.i3.i.i27.i.i.i.i, label %if.then.i.i.i.i.i582, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i569 if.then.i.i.i.i.i582: ; preds = %while.body.i.i.i.i568 tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i583 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i569 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i569: ; preds = %if.then.i.i.i.i.i582, %while.body.i.i.i.i568 %253 = phi ptr [ %.pre.i.i583, %if.then.i.i.i.i.i582 ], [ %252, %while.body.i.i.i.i568 ] %arrayidx.i.i.i11.i.i570 = getelementptr inbounds nuw i32, ptr %253, i64 %idxprom.i22.i.i.i.i.i535 %254 = load atomic i32, ptr %arrayidx.i.i.i11.i.i570 monotonic, align 4 %255 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i540, i32 %254, i32 %sub.i.i.i.i19.i.i.i.i542, i32 31) %cmp.i.not.i.i.i.i571 = icmp eq i32 %255, %port.sroa.43.0.i.i544.lcssa br i1 %cmp.i.not.i.i.i.i571, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit592, label %while.body.i.i.i.i568, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit592: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i569, %cond.false.i.i.i567 fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i540) fence release %256 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i517.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i573 = icmp ne i64 %retval.sroa.2.1.i.i.i517.lcssa, 0 %cmp2.i.i.i.i19.i.i574 = icmp eq i64 %256, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i575 = select i1 %iszero.i.i.i.i.i18.i.i573, i1 %cmp2.i.i.i.i19.i.i574, i1 false %div8.i.i.i21.i.i576 = lshr i32 %retval.sroa.6.1.i.i.i516.lcssa, 5 %257 = and i32 %retval.sroa.6.1.i.i.i516.lcssa, 31 %idxprom.i.i.i22.i.i577 = zext nneg i32 %div8.i.i.i21.i.i576 to i64 %arrayidx.i.i.i23.i.i578 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i577 %conv4.i.i.i24.i.i579 = zext i1 %cmp.i.i.i.i20.i.i575 to i32 %shl.i.i.i25.i.i580 = shl nuw i32 %conv4.i.i.i24.i.i579, %257 %xor.i.i.i26.i.i581 = xor i32 %shl.i.i.i25.i.i580, -1 %258 = atomicrmw and ptr %arrayidx.i.i.i23.i.i578, i32 %xor.i.i.i26.i.i581 monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i540) %cmp.not = icmp eq i32 %N.05.i.lcssa, 0 br i1 %cmp.not, label %for.cond.i.i.i724.preheader, label %for.cond.i.i.i604 for.cond.i.i.i604: ; preds = %for.inc.i.i.i639, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit592 %retval.sroa.6.0.i.i.i605 = phi i32 [ %retval.sroa.6.2.i.i.i640, %for.inc.i.i.i639 ], [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit592 ] %retval.sroa.2.0.i.i.i606 = phi i64 [ %retval.sroa.2.2.i.i.i641, %for.inc.i.i.i639 ], [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit592 ] %retval.sroa.8.0.i.i.i607 = phi i32 [ %retval.sroa.8.2.i.i.i642, %for.inc.i.i.i639 ], [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit592 ] %index.0.i.i.i608 = phi i32 [ %inc.i.i.i643, %for.inc.i.i.i639 ], [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit592 ] %259 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i609 = icmp ult i32 %index.0.i.i.i608, %259 %spec.store.select.i.i.i610 = select i1 %cmp.not.i.i.i609, i32 %index.0.i.i.i608, i32 0 %260 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i611 = zext i32 %260 to i64 %div8.i.i.i.i.i612 = lshr i32 %spec.store.select.i.i.i610, 5 %261 = and i32 %spec.store.select.i.i.i610, 31 %idxprom.i.i.i.i.i613 = zext nneg i32 %div8.i.i.i.i.i612 to i64 %arrayidx.i.i.i.i.i614 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i613 %262 = lshr i32 %260, %2 %conv4.i.i.i.i.i615 = and i32 %262, 1 %shl.i.i.i.i.i616 = shl nuw i32 %conv4.i.i.i.i.i615, %261 %263 = atomicrmw or ptr %arrayidx.i.i.i.i.i614, i32 %shl.i.i.i.i.i616 monotonic, align 4 %shl5.i.i.i.i.i617 = shl nuw i32 1, %261 %and.i.i.i.i.i618 = and i32 %shl5.i.i.i.i.i617, %263 %tobool3.i.i.i.i619 = icmp ne i32 %and.i.i.i.i.i618, 0 %264 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %260, i1 %tobool3.i.i.i.i619) %cmp.i.not.i.i.i620 = icmp eq i32 %260, %264 br i1 %cmp.i.not.i.i.i620, label %for.inc.i.i.i639, label %if.then.i.i.i.i621 if.then.i.i.i.i621: ; preds = %for.cond.i.i.i604 fence acquire %265 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i622 = zext i32 %spec.store.select.i.i.i610 to i64 %arrayidx.i.i.i.i623 = getelementptr inbounds nuw i32, ptr %265, i64 %idxprom.i.i.i.i622 %266 = load atomic i32, ptr %arrayidx.i.i.i.i623 monotonic, align 4 %267 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %260, i1 true) %iszero.i.i.i.i.i.i624 = icmp eq i32 %260, 0 %sub.i.i.i.i.i.i625 = select i1 %iszero.i.i.i.i.i.i624, i32 -1, i32 %267 %268 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %260, i32 %266, i32 %sub.i.i.i.i.i.i625, i32 31) %269 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i626 = getelementptr inbounds nuw i32, ptr %269, i64 %idxprom.i.i.i.i622 %270 = load atomic i32, ptr %arrayidx.i45.i.i.i626 monotonic, align 4 %271 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %260, i32 %270, i32 %sub.i.i.i.i.i.i625, i32 31) %cmp.i48.not.i.i.i627 = icmp eq i32 %268, %271 br i1 %cmp.i48.not.i.i.i627, label %if.end14.i.i.i704, label %if.then12.i.i.i628 if.then12.i.i.i628: ; preds = %if.then.i.i.i.i621 fence release %272 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i611, i1 true) %iszero.i.i.i.i.i.i.i629 = icmp ne i32 %260, 0 %cmp2.i.i.i.i.i.i630 = icmp eq i64 %272, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i631 = select i1 %iszero.i.i.i.i.i.i.i629, i1 %cmp2.i.i.i.i.i.i630, i1 false %conv4.i.i53.i.i.i632 = zext i1 %cmp.i.i.i.i.i.i631 to i32 %shl.i.i54.i.i.i633 = shl nuw i32 %conv4.i.i53.i.i.i632, %261 %xor.i.i.i.i.i634 = xor i32 %shl.i.i54.i.i.i633, -1 %273 = atomicrmw and ptr %arrayidx.i.i.i.i.i614, i32 %xor.i.i.i.i.i634 monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %260) br label %cleanup26.i.i.i635 if.end14.i.i.i704: ; preds = %if.then.i.i.i.i621 %274 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i611, i1 true) %iszero.i.i.i56.i.i.i705 = icmp ne i32 %260, 0 %cmp2.i.i.i.i.i706 = icmp eq i64 %274, %sh_prom.i.i.i.i %cmp.i.i.i.i.i707 = select i1 %iszero.i.i.i56.i.i.i705, i1 %cmp2.i.i.i.i.i706, i1 false br i1 %cmp.i.i.i.i.i707, label %if.then16.i.i.i709, label %if.end22.i.i.i708 if.then16.i.i.i709: ; preds = %if.end14.i.i.i704 %275 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i710 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %275, i64 %idxprom.i.i.i.i622, i32 1 store i32 1660944387, ptr %opcode.i.i.i710, align 8, !tbaa !61 %arrayidx21.i.i.i711 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %275, i64 %idxprom.i.i.i.i622 store i64 %conv.i.i.i.i.i611, ptr %arrayidx21.i.i.i711, align 8, !tbaa !64 br label %if.end22.i.i.i708 if.end22.i.i.i708: ; preds = %if.then16.i.i.i709, %if.end14.i.i.i704 tail call void @llvm.nvvm.bar.warp.sync(i32 %260) br label %cleanup26.i.i.i635 cleanup26.i.i.i635: ; preds = %if.end22.i.i.i708, %if.then12.i.i.i628 %retval.sroa.6.1.i.i.i636 = phi i32 [ %retval.sroa.6.0.i.i.i605, %if.then12.i.i.i628 ], [ %spec.store.select.i.i.i610, %if.end22.i.i.i708 ] %retval.sroa.2.1.i.i.i637 = phi i64 [ %retval.sroa.2.0.i.i.i606, %if.then12.i.i.i628 ], [ %conv.i.i.i.i.i611, %if.end22.i.i.i708 ] %retval.sroa.8.1.i.i.i638 = phi i32 [ %retval.sroa.8.0.i.i.i607, %if.then12.i.i.i628 ], [ %268, %if.end22.i.i.i708 ] br i1 %cmp.i48.not.i.i.i627, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i644, label %for.inc.i.i.i639 for.inc.i.i.i639: ; preds = %cleanup26.i.i.i635, %for.cond.i.i.i604 %retval.sroa.6.2.i.i.i640 = phi i32 [ %retval.sroa.6.1.i.i.i636, %cleanup26.i.i.i635 ], [ %retval.sroa.6.0.i.i.i605, %for.cond.i.i.i604 ] %retval.sroa.2.2.i.i.i641 = phi i64 [ %retval.sroa.2.1.i.i.i637, %cleanup26.i.i.i635 ], [ %retval.sroa.2.0.i.i.i606, %for.cond.i.i.i604 ] %retval.sroa.8.2.i.i.i642 = phi i32 [ %retval.sroa.8.1.i.i.i638, %cleanup26.i.i.i635 ], [ %retval.sroa.8.0.i.i.i607, %for.cond.i.i.i604 ] %inc.i.i.i643 = add i32 %spec.store.select.i.i.i610, 1 br label %for.cond.i.i.i604, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i644: ; preds = %cleanup26.i.i.i635 %retval.sroa.6.1.i.i.i636.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i636, %cleanup26.i.i.i635 ] %retval.sroa.2.1.i.i.i637.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i637, %cleanup26.i.i.i635 ] %retval.sroa.8.1.i.i.i638.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i638, %cleanup26.i.i.i635 ] fence acquire %276 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i647 = shl i32 %retval.sroa.6.1.i.i.i636.lcssa, 5 %idxprom.i18.i.i.i.i.i648 = zext i32 %mul.i.i.i.i.i.i647 to i64 %arrayidx.i19.i.i.i.i.i649 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %276, i64 %idxprom.i18.i.i.i.i.i648 %arrayidx.i21.i.i.i.i.i650 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i649, i64 %sh_prom.i.i.i.i store i64 1, ptr %arrayidx.i21.i.i.i.i.i650, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i652 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i650, i64 8 store i8 115, ptr %arrayidx6.i.i.i.i.i.i.i652, align 8 %tobool.not.i.i.i.i.i.i653 = icmp eq i32 %retval.sroa.8.1.i.i.i638.lcssa, 0 %conv.i.i.i.i.i.i654 = zext i1 %tobool.not.i.i.i.i.i.i653 to i32 fence release %277 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i655 = zext i32 %retval.sroa.6.1.i.i.i636.lcssa to i64 %arrayidx.i23.i.i.i.i.i656 = getelementptr inbounds nuw i32, ptr %277, i64 %idxprom.i22.i.i.i.i.i655 store atomic i32 %conv.i.i.i.i.i.i654, ptr %arrayidx.i23.i.i.i.i.i656 monotonic, align 4 %278 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i657 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %278, i64 %idxprom.i22.i.i.i.i.i655 %279 = load i64, ptr %arrayidx.i.i4.i.i657, align 8, !tbaa !64 %conv.i.i7.i.i.i.i658 = trunc i64 %279 to i32 %conv.i.i.i.i17.i.i.i.i660 = trunc i64 %retval.sroa.2.1.i.i.i637.lcssa to i32 %280 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i660, i1 true) %iszero.i.i.i.i18.i.i.i.i661 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i660, 0 %sub.i.i.i.i19.i.i.i.i662 = select i1 %iszero.i.i.i.i18.i.i.i.i661, i32 -1, i32 %280 br label %while.cond.i.i.i.i663 while.cond.i.i.i.i663: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i675, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i644 %port.sroa.43.0.i.i664 = phi i32 [ %conv.i.i.i.i.i.i654, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i644 ], [ %conv.i.i39.i.i.i.i676, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i675 ] %idx.0.i.i.i.i665 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i644 ], [ %add.i.i.i.i678, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i675 ] %cmp.i.i.i2.i666 = icmp eq i64 %idx.0.i.i.i.i665, 0 %281 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i658, i1 %cmp.i.i.i2.i666) %tobool.not.i.i.i.i667 = icmp eq i32 %281, 0 %282 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i668 = getelementptr inbounds nuw i32, ptr %282, i64 %idxprom.i22.i.i.i.i.i655 %283 = load atomic i32, ptr %arrayidx.i22.i.i.i668 monotonic, align 4 br i1 %tobool.not.i.i.i.i667, label %cond.false.i.i.i687, label %cond.false.i11.i.i.i.i669 cond.false.i11.i.i.i.i669: ; preds = %while.cond.i.i.i.i663 %284 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i660, i32 %283, i32 %sub.i.i.i.i19.i.i.i.i662, i32 31) %285 = icmp eq i32 %284, %port.sroa.43.0.i.i664 br i1 %285, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i674, label %while.body.i.i33.i.i.i.i670 while.body.i.i33.i.i.i.i670: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i671, %cond.false.i11.i.i.i.i669 %286 = phi ptr [ %287, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i671 ], [ %282, %cond.false.i11.i.i.i.i669 ] br i1 %cmp.i3.i.i27.i.i.i.i, label %if.then.i.i.i48.i.i.i.i685, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i671 if.then.i.i.i48.i.i.i.i685: ; preds = %while.body.i.i33.i.i.i.i670 tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i686 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i671 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i671: ; preds = %if.then.i.i.i48.i.i.i.i685, %while.body.i.i33.i.i.i.i670 %287 = phi ptr [ %.pre.i.i.i.i686, %if.then.i.i.i48.i.i.i.i685 ], [ %286, %while.body.i.i33.i.i.i.i670 ] %arrayidx.i.i.i35.i.i.i.i672 = getelementptr inbounds nuw i32, ptr %287, i64 %idxprom.i22.i.i.i.i.i655 %288 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i672 monotonic, align 4 %289 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i660, i32 %288, i32 %sub.i.i.i.i19.i.i.i.i662, i32 31) %cmp.i.not.i.i36.i.i.i.i673 = icmp eq i32 %289, %port.sroa.43.0.i.i664 br i1 %cmp.i.not.i.i36.i.i.i.i673, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i674, label %while.body.i.i33.i.i.i.i670, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i674: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i671, %cond.false.i11.i.i.i.i669 fence acquire br i1 %cmp.i.i.i2.i666, label %if.then.i.i20.i.i.i.i.i679, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i675 if.then.i.i20.i.i.i.i.i679: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i674 %290 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i683 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %290, i64 %idxprom.i18.i.i.i.i.i648 %arrayidx.i22.i.i.i.i.i684 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i683, i64 %sh_prom.i.i.i.i store i8 115, ptr %arrayidx.i22.i.i.i.i.i684, align 1 br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i675 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i675: ; preds = %if.then.i.i20.i.i.i.i.i679, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i674 %conv.i.i39.i.i.i.i676 = xor i32 %port.sroa.43.0.i.i664, 1 fence release %291 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i677 = getelementptr inbounds nuw i32, ptr %291, i64 %idxprom.i22.i.i.i.i.i655 store atomic i32 %conv.i.i39.i.i.i.i676, ptr %arrayidx.i24.i.i.i.i.i677 monotonic, align 4 %add.i.i.i.i678 = add i64 %idx.0.i.i.i.i665, 64 br label %while.cond.i.i.i.i663, !llvm.loop !71 cond.false.i.i.i687: ; preds = %while.cond.i.i.i.i663 %port.sroa.43.0.i.i664.lcssa = phi i32 [ %port.sroa.43.0.i.i664, %while.cond.i.i.i.i663 ] %.lcssa5676 = phi ptr [ %282, %while.cond.i.i.i.i663 ] %.lcssa5675 = phi i32 [ %283, %while.cond.i.i.i.i663 ] %292 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i660, i32 %.lcssa5675, i32 %sub.i.i.i.i19.i.i.i.i662, i32 31) %293 = icmp eq i32 %292, %port.sroa.43.0.i.i664.lcssa br i1 %293, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit712, label %while.body.i.i.i.i688 while.body.i.i.i.i688: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i689, %cond.false.i.i.i687 %294 = phi ptr [ %295, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i689 ], [ %.lcssa5676, %cond.false.i.i.i687 ] br i1 %cmp.i3.i.i27.i.i.i.i, label %if.then.i.i.i.i.i702, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i689 if.then.i.i.i.i.i702: ; preds = %while.body.i.i.i.i688 tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i703 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i689 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i689: ; preds = %if.then.i.i.i.i.i702, %while.body.i.i.i.i688 %295 = phi ptr [ %.pre.i.i703, %if.then.i.i.i.i.i702 ], [ %294, %while.body.i.i.i.i688 ] %arrayidx.i.i.i11.i.i690 = getelementptr inbounds nuw i32, ptr %295, i64 %idxprom.i22.i.i.i.i.i655 %296 = load atomic i32, ptr %arrayidx.i.i.i11.i.i690 monotonic, align 4 %297 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i660, i32 %296, i32 %sub.i.i.i.i19.i.i.i.i662, i32 31) %cmp.i.not.i.i.i.i691 = icmp eq i32 %297, %port.sroa.43.0.i.i664.lcssa br i1 %cmp.i.not.i.i.i.i691, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit712, label %while.body.i.i.i.i688, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit712: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i689, %cond.false.i.i.i687 fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i660) fence release %298 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i637.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i693 = icmp ne i64 %retval.sroa.2.1.i.i.i637.lcssa, 0 %cmp2.i.i.i.i19.i.i694 = icmp eq i64 %298, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i695 = select i1 %iszero.i.i.i.i.i18.i.i693, i1 %cmp2.i.i.i.i19.i.i694, i1 false %div8.i.i.i21.i.i696 = lshr i32 %retval.sroa.6.1.i.i.i636.lcssa, 5 %299 = and i32 %retval.sroa.6.1.i.i.i636.lcssa, 31 %idxprom.i.i.i22.i.i697 = zext nneg i32 %div8.i.i.i21.i.i696 to i64 %arrayidx.i.i.i23.i.i698 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i697 %conv4.i.i.i24.i.i699 = zext i1 %cmp.i.i.i.i20.i.i695 to i32 %shl.i.i.i25.i.i700 = shl nuw i32 %conv4.i.i.i24.i.i699, %299 %xor.i.i.i26.i.i701 = xor i32 %shl.i.i.i25.i.i700, -1 %300 = atomicrmw and ptr %arrayidx.i.i.i23.i.i698, i32 %xor.i.i.i26.i.i701 monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i660) br label %for.cond.i.i.i724.preheader for.cond.i.i.i724.preheader: ; preds = %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit712, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit592 br label %for.cond.i.i.i724 for.cond.i.i.i724: ; preds = %for.inc.i.i.i759, %for.cond.i.i.i724.preheader %retval.sroa.6.0.i.i.i725 = phi i32 [ %retval.sroa.6.2.i.i.i760, %for.inc.i.i.i759 ], [ undef, %for.cond.i.i.i724.preheader ] %retval.sroa.2.0.i.i.i726 = phi i64 [ %retval.sroa.2.2.i.i.i761, %for.inc.i.i.i759 ], [ undef, %for.cond.i.i.i724.preheader ] %retval.sroa.8.0.i.i.i727 = phi i32 [ %retval.sroa.8.2.i.i.i762, %for.inc.i.i.i759 ], [ undef, %for.cond.i.i.i724.preheader ] %index.0.i.i.i728 = phi i32 [ %inc.i.i.i763, %for.inc.i.i.i759 ], [ 0, %for.cond.i.i.i724.preheader ] %301 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i729 = icmp ult i32 %index.0.i.i.i728, %301 %spec.store.select.i.i.i730 = select i1 %cmp.not.i.i.i729, i32 %index.0.i.i.i728, i32 0 %302 = tail call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i731 = zext i32 %302 to i64 %div8.i.i.i.i.i732 = lshr i32 %spec.store.select.i.i.i730, 5 %303 = and i32 %spec.store.select.i.i.i730, 31 %idxprom.i.i.i.i.i733 = zext nneg i32 %div8.i.i.i.i.i732 to i64 %arrayidx.i.i.i.i.i734 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i733 %304 = lshr i32 %302, %2 %conv4.i.i.i.i.i735 = and i32 %304, 1 %shl.i.i.i.i.i736 = shl nuw i32 %conv4.i.i.i.i.i735, %303 %305 = atomicrmw or ptr %arrayidx.i.i.i.i.i734, i32 %shl.i.i.i.i.i736 monotonic, align 4 %shl5.i.i.i.i.i737 = shl nuw i32 1, %303 %and.i.i.i.i.i738 = and i32 %shl5.i.i.i.i.i737, %305 %tobool3.i.i.i.i739 = icmp ne i32 %and.i.i.i.i.i738, 0 %306 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %302, i1 %tobool3.i.i.i.i739) %cmp.i.not.i.i.i740 = icmp eq i32 %302, %306 br i1 %cmp.i.not.i.i.i740, label %for.inc.i.i.i759, label %if.then.i.i.i.i741 if.then.i.i.i.i741: ; preds = %for.cond.i.i.i724 fence acquire %307 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i742 = zext i32 %spec.store.select.i.i.i730 to i64 %arrayidx.i.i.i.i743 = getelementptr inbounds nuw i32, ptr %307, i64 %idxprom.i.i.i.i742 %308 = load atomic i32, ptr %arrayidx.i.i.i.i743 monotonic, align 4 %309 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %302, i1 true) %iszero.i.i.i.i.i.i744 = icmp eq i32 %302, 0 %sub.i.i.i.i.i.i745 = select i1 %iszero.i.i.i.i.i.i744, i32 -1, i32 %309 %310 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %302, i32 %308, i32 %sub.i.i.i.i.i.i745, i32 31) %311 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i746 = getelementptr inbounds nuw i32, ptr %311, i64 %idxprom.i.i.i.i742 %312 = load atomic i32, ptr %arrayidx.i45.i.i.i746 monotonic, align 4 %313 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %302, i32 %312, i32 %sub.i.i.i.i.i.i745, i32 31) %cmp.i48.not.i.i.i747 = icmp eq i32 %310, %313 br i1 %cmp.i48.not.i.i.i747, label %if.end14.i.i.i824, label %if.then12.i.i.i748 if.then12.i.i.i748: ; preds = %if.then.i.i.i.i741 fence release %314 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i731, i1 true) %iszero.i.i.i.i.i.i.i749 = icmp ne i32 %302, 0 %cmp2.i.i.i.i.i.i750 = icmp eq i64 %314, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i751 = select i1 %iszero.i.i.i.i.i.i.i749, i1 %cmp2.i.i.i.i.i.i750, i1 false %conv4.i.i53.i.i.i752 = zext i1 %cmp.i.i.i.i.i.i751 to i32 %shl.i.i54.i.i.i753 = shl nuw i32 %conv4.i.i53.i.i.i752, %303 %xor.i.i.i.i.i754 = xor i32 %shl.i.i54.i.i.i753, -1 %315 = atomicrmw and ptr %arrayidx.i.i.i.i.i734, i32 %xor.i.i.i.i.i754 monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %302) br label %cleanup26.i.i.i755 if.end14.i.i.i824: ; preds = %if.then.i.i.i.i741 %316 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i731, i1 true) %iszero.i.i.i56.i.i.i825 = icmp ne i32 %302, 0 %cmp2.i.i.i.i.i826 = icmp eq i64 %316, %sh_prom.i.i.i.i %cmp.i.i.i.i.i827 = select i1 %iszero.i.i.i56.i.i.i825, i1 %cmp2.i.i.i.i.i826, i1 false br i1 %cmp.i.i.i.i.i827, label %if.then16.i.i.i829, label %if.end22.i.i.i828 if.then16.i.i.i829: ; preds = %if.end14.i.i.i824 %317 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i830 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %317, i64 %idxprom.i.i.i.i742, i32 1 store i32 1660944387, ptr %opcode.i.i.i830, align 8, !tbaa !61 %arrayidx21.i.i.i831 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %317, i64 %idxprom.i.i.i.i742 store i64 %conv.i.i.i.i.i731, ptr %arrayidx21.i.i.i831, align 8, !tbaa !64 br label %if.end22.i.i.i828 if.end22.i.i.i828: ; preds = %if.then16.i.i.i829, %if.end14.i.i.i824 tail call void @llvm.nvvm.bar.warp.sync(i32 %302) br label %cleanup26.i.i.i755 cleanup26.i.i.i755: ; preds = %if.end22.i.i.i828, %if.then12.i.i.i748 %retval.sroa.6.1.i.i.i756 = phi i32 [ %retval.sroa.6.0.i.i.i725, %if.then12.i.i.i748 ], [ %spec.store.select.i.i.i730, %if.end22.i.i.i828 ] %retval.sroa.2.1.i.i.i757 = phi i64 [ %retval.sroa.2.0.i.i.i726, %if.then12.i.i.i748 ], [ %conv.i.i.i.i.i731, %if.end22.i.i.i828 ] %retval.sroa.8.1.i.i.i758 = phi i32 [ %retval.sroa.8.0.i.i.i727, %if.then12.i.i.i748 ], [ %310, %if.end22.i.i.i828 ] br i1 %cmp.i48.not.i.i.i747, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i764, label %for.inc.i.i.i759 for.inc.i.i.i759: ; preds = %cleanup26.i.i.i755, %for.cond.i.i.i724 %retval.sroa.6.2.i.i.i760 = phi i32 [ %retval.sroa.6.1.i.i.i756, %cleanup26.i.i.i755 ], [ %retval.sroa.6.0.i.i.i725, %for.cond.i.i.i724 ] %retval.sroa.2.2.i.i.i761 = phi i64 [ %retval.sroa.2.1.i.i.i757, %cleanup26.i.i.i755 ], [ %retval.sroa.2.0.i.i.i726, %for.cond.i.i.i724 ] %retval.sroa.8.2.i.i.i762 = phi i32 [ %retval.sroa.8.1.i.i.i758, %cleanup26.i.i.i755 ], [ %retval.sroa.8.0.i.i.i727, %for.cond.i.i.i724 ] %inc.i.i.i763 = add i32 %spec.store.select.i.i.i730, 1 br label %for.cond.i.i.i724, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i764: ; preds = %cleanup26.i.i.i755 %retval.sroa.6.1.i.i.i756.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i756, %cleanup26.i.i.i755 ] %retval.sroa.2.1.i.i.i757.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i757, %cleanup26.i.i.i755 ] %retval.sroa.8.1.i.i.i758.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i758, %cleanup26.i.i.i755 ] fence acquire %318 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i767 = shl i32 %retval.sroa.6.1.i.i.i756.lcssa, 5 %idxprom.i18.i.i.i.i.i768 = zext i32 %mul.i.i.i.i.i.i767 to i64 %arrayidx.i19.i.i.i.i.i769 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %318, i64 %idxprom.i18.i.i.i.i.i768 %arrayidx.i21.i.i.i.i.i770 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i769, i64 %sh_prom.i.i.i.i store i64 20, ptr %arrayidx.i21.i.i.i.i.i770, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i772 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i770, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(20) %arrayidx6.i.i.i.i.i.i.i772, ptr noundef nonnull align 1 dereferenceable(20) @.str1613, i64 20, i1 false) %tobool.not.i.i.i.i.i.i773 = icmp eq i32 %retval.sroa.8.1.i.i.i758.lcssa, 0 %conv.i.i.i.i.i.i774 = zext i1 %tobool.not.i.i.i.i.i.i773 to i32 fence release %319 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i775 = zext i32 %retval.sroa.6.1.i.i.i756.lcssa to i64 %arrayidx.i23.i.i.i.i.i776 = getelementptr inbounds nuw i32, ptr %319, i64 %idxprom.i22.i.i.i.i.i775 store atomic i32 %conv.i.i.i.i.i.i774, ptr %arrayidx.i23.i.i.i.i.i776 monotonic, align 4 %320 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i777 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %320, i64 %idxprom.i22.i.i.i.i.i775 %321 = load i64, ptr %arrayidx.i.i4.i.i777, align 8, !tbaa !64 %conv.i.i7.i.i.i.i778 = trunc i64 %321 to i32 %conv.i.i.i.i17.i.i.i.i780 = trunc i64 %retval.sroa.2.1.i.i.i757.lcssa to i32 %322 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i780, i1 true) %iszero.i.i.i.i18.i.i.i.i781 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i780, 0 %sub.i.i.i.i19.i.i.i.i782 = select i1 %iszero.i.i.i.i18.i.i.i.i781, i32 -1, i32 %322 br label %while.cond.i.i.i.i783 while.cond.i.i.i.i783: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i795, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i764 %port.sroa.43.0.i.i784 = phi i32 [ %conv.i.i.i.i.i.i774, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i764 ], [ %conv.i.i39.i.i.i.i796, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i795 ] %idx.0.i.i.i.i785 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i764 ], [ %add.i.i.i.i798, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i795 ] %cmp.i.i.i2.i786 = icmp ult i64 %idx.0.i.i.i.i785, 20 %323 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i778, i1 %cmp.i.i.i2.i786) %tobool.not.i.i.i.i787 = icmp eq i32 %323, 0 %324 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i788 = getelementptr inbounds nuw i32, ptr %324, i64 %idxprom.i22.i.i.i.i.i775 %325 = load atomic i32, ptr %arrayidx.i22.i.i.i788 monotonic, align 4 br i1 %tobool.not.i.i.i.i787, label %cond.false.i.i.i807, label %cond.false.i11.i.i.i.i789 cond.false.i11.i.i.i.i789: ; preds = %while.cond.i.i.i.i783 %326 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i780, i32 %325, i32 %sub.i.i.i.i19.i.i.i.i782, i32 31) %327 = icmp eq i32 %326, %port.sroa.43.0.i.i784 br i1 %327, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i794, label %while.body.i.i33.i.i.i.i790 while.body.i.i33.i.i.i.i790: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i791, %cond.false.i11.i.i.i.i789 %328 = phi ptr [ %329, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i791 ], [ %324, %cond.false.i11.i.i.i.i789 ] br i1 %cmp.i3.i.i27.i.i.i.i, label %if.then.i.i.i48.i.i.i.i805, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i791 if.then.i.i.i48.i.i.i.i805: ; preds = %while.body.i.i33.i.i.i.i790 tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i806 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i791 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i791: ; preds = %if.then.i.i.i48.i.i.i.i805, %while.body.i.i33.i.i.i.i790 %329 = phi ptr [ %.pre.i.i.i.i806, %if.then.i.i.i48.i.i.i.i805 ], [ %328, %while.body.i.i33.i.i.i.i790 ] %arrayidx.i.i.i35.i.i.i.i792 = getelementptr inbounds nuw i32, ptr %329, i64 %idxprom.i22.i.i.i.i.i775 %330 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i792 monotonic, align 4 %331 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i780, i32 %330, i32 %sub.i.i.i.i19.i.i.i.i782, i32 31) %cmp.i.not.i.i36.i.i.i.i793 = icmp eq i32 %331, %port.sroa.43.0.i.i784 br i1 %cmp.i.not.i.i36.i.i.i.i793, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i794, label %while.body.i.i33.i.i.i.i790, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i794: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i791, %cond.false.i11.i.i.i.i789 fence acquire br i1 %cmp.i.i.i2.i786, label %if.then.i.i20.i.i.i.i.i799, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i795 if.then.i.i20.i.i.i.i.i799: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i794 %add.ptr.i.i.i.i.i.i.i.i800 = getelementptr inbounds nuw i8, ptr @.str1613, i64 %idx.0.i.i.i.i785 %sub.i.i.i.i.i.i.i801 = sub nuw nsw i64 20, %idx.0.i.i.i.i785 %332 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i803 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %332, i64 %idxprom.i18.i.i.i.i.i768 %arrayidx.i22.i.i.i.i.i804 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i803, i64 %sh_prom.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %arrayidx.i22.i.i.i.i.i804, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr.i.i.i.i.i.i.i.i800, i64 %sub.i.i.i.i.i.i.i801, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i795 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i795: ; preds = %if.then.i.i20.i.i.i.i.i799, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i794 %conv.i.i39.i.i.i.i796 = xor i32 %port.sroa.43.0.i.i784, 1 fence release %333 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i797 = getelementptr inbounds nuw i32, ptr %333, i64 %idxprom.i22.i.i.i.i.i775 store atomic i32 %conv.i.i39.i.i.i.i796, ptr %arrayidx.i24.i.i.i.i.i797 monotonic, align 4 %add.i.i.i.i798 = add i64 %idx.0.i.i.i.i785, 64 br label %while.cond.i.i.i.i783, !llvm.loop !71 cond.false.i.i.i807: ; preds = %while.cond.i.i.i.i783 %port.sroa.43.0.i.i784.lcssa = phi i32 [ %port.sroa.43.0.i.i784, %while.cond.i.i.i.i783 ] %.lcssa5674 = phi ptr [ %324, %while.cond.i.i.i.i783 ] %.lcssa5673 = phi i32 [ %325, %while.cond.i.i.i.i783 ] %334 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i780, i32 %.lcssa5673, i32 %sub.i.i.i.i19.i.i.i.i782, i32 31) %335 = icmp eq i32 %334, %port.sroa.43.0.i.i784.lcssa br i1 %335, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit832, label %while.body.i.i.i.i808 while.body.i.i.i.i808: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i809, %cond.false.i.i.i807 %336 = phi ptr [ %337, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i809 ], [ %.lcssa5674, %cond.false.i.i.i807 ] br i1 %cmp.i3.i.i27.i.i.i.i, label %if.then.i.i.i.i.i822, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i809 if.then.i.i.i.i.i822: ; preds = %while.body.i.i.i.i808 tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i823 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i809 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i809: ; preds = %if.then.i.i.i.i.i822, %while.body.i.i.i.i808 %337 = phi ptr [ %.pre.i.i823, %if.then.i.i.i.i.i822 ], [ %336, %while.body.i.i.i.i808 ] %arrayidx.i.i.i11.i.i810 = getelementptr inbounds nuw i32, ptr %337, i64 %idxprom.i22.i.i.i.i.i775 %338 = load atomic i32, ptr %arrayidx.i.i.i11.i.i810 monotonic, align 4 %339 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i780, i32 %338, i32 %sub.i.i.i.i19.i.i.i.i782, i32 31) %cmp.i.not.i.i.i.i811 = icmp eq i32 %339, %port.sroa.43.0.i.i784.lcssa br i1 %cmp.i.not.i.i.i.i811, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit832, label %while.body.i.i.i.i808, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit832: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i809, %cond.false.i.i.i807 fence acquire tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i780) fence release %340 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i757.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i813 = icmp ne i64 %retval.sroa.2.1.i.i.i757.lcssa, 0 %cmp2.i.i.i.i19.i.i814 = icmp eq i64 %340, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i815 = select i1 %iszero.i.i.i.i.i18.i.i813, i1 %cmp2.i.i.i.i19.i.i814, i1 false %div8.i.i.i21.i.i816 = lshr i32 %retval.sroa.6.1.i.i.i756.lcssa, 5 %341 = and i32 %retval.sroa.6.1.i.i.i756.lcssa, 31 %idxprom.i.i.i22.i.i817 = zext nneg i32 %div8.i.i.i21.i.i816 to i64 %arrayidx.i.i.i23.i.i818 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i817 %conv4.i.i.i24.i.i819 = zext i1 %cmp.i.i.i.i20.i.i815 to i32 %shl.i.i.i25.i.i820 = shl nuw i32 %conv4.i.i.i24.i.i819, %341 %xor.i.i.i26.i.i821 = xor i32 %shl.i.i.i25.i.i820, -1 %342 = atomicrmw and ptr %arrayidx.i.i.i23.i.i818, i32 %xor.i.i.i26.i.i821 monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i780) %343 = icmp ugt i32 %.pre54.i.i.i.i, 699 %TimeInMs = getelementptr inbounds nuw i8, ptr %Options, i64 9 %344 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i3039, i64 21 %arrayidx.i.i.i.i.i.i.i.i3064 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i3039, i64 20 %written.i.i.i.i.i3067 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i3039, i64 24 %345 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i3330, i64 21 %arrayidx.i.i.i.i.i.i.i.i3355 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i3330, i64 20 %written.i.i.i.i.i3358 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i3330, i64 24 %346 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i2758, i64 21 %arrayidx.i.i.i.i.i.i.i.i2777 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i2758, i64 20 %written.i.i.i.i.i2778 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i2758, i64 24 %sub.ptr.rhs.cast.i.i.i.i1444 = ptrtoint ptr %cond3 to i64 br label %for.body for.cond.cleanup: ; preds = %cleanup %FailCount.2.lcssa = phi i32 [ %FailCount.2, %cleanup ] %TestCount.1.lcssa = phi i32 [ %TestCount.1, %cleanup ] %cmp89 = icmp sgt i32 %TestCount.1.lcssa, 0 br i1 %cmp89, label %for.cond.i.i.i3630, label %for.cond.i.i.i4881 for.body: ; preds = %cleanup, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit832 %T.0206 = phi ptr [ @LlvmLibcIntegerToStringTest_INT32_Instance, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit832 ], [ %T.0, %cleanup ] %TestCount.0205 = phi i32 [ %inc.i.lcssa, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit832 ], [ %TestCount.1, %cleanup ] %FailCount.0204 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit832 ], [ %FailCount.2, %cleanup ] %vtable = load ptr, ptr %T.0206, align 8, !tbaa !111 %vfn = getelementptr inbounds nuw i8, ptr %vtable, i64 40 %347 = load ptr, ptr %vfn, align 8 %call18 = call noundef ptr %347(ptr noundef nonnull align 8 dereferenceable(24) %T.0206) #31 %348 = load ptr, ptr %Options, align 8, !tbaa !113 %tobool19.not.not = icmp eq ptr %348, null br i1 %tobool19.not.not, label %for.cond.i.i.i.i842, label %land.rhs land.rhs: ; preds = %for.body %349 = load i8, ptr %call18, align 1, !tbaa !36 %tobool.not3.i.i = icmp eq i8 %349, 0 br i1 %tobool.not3.i.i, label %_ZN22__llvm_libc_22_0_0_git8internal13string_lengthIcEEmPKT_.exit.i, label %for.inc.i.i for.inc.i.i: ; preds = %for.inc.i.i, %land.rhs %length.05.i.i = phi i64 [ %inc.i.i, %for.inc.i.i ], [ 0, %land.rhs ] %src.addr.04.i.i = phi ptr [ %incdec.ptr.i.i, %for.inc.i.i ], [ %call18, %land.rhs ] %incdec.ptr.i.i = getelementptr inbounds nuw i8, ptr %src.addr.04.i.i, i64 1 %inc.i.i = add i64 %length.05.i.i, 1 %350 = load i8, ptr %incdec.ptr.i.i, align 1, !tbaa !36 %tobool.not.i.i = icmp eq i8 %350, 0 br i1 %tobool.not.i.i, label %_ZN22__llvm_libc_22_0_0_git8internal13string_lengthIcEEmPKT_.exit.i, label %for.inc.i.i, !llvm.loop !114 _ZN22__llvm_libc_22_0_0_git8internal13string_lengthIcEEmPKT_.exit.i: ; preds = %for.inc.i.i, %land.rhs %length.0.lcssa.i.i = phi i64 [ 0, %land.rhs ], [ %inc.i.i, %for.inc.i.i ] %cmp.i.not.i.i.i = icmp eq i64 %length.0.lcssa.i.i, 0 br i1 %cmp.i.not.i.i.i, label %if.end.i.i.i.i, label %if.then.i.i.i.i if.then.i.i.i.i: ; preds = %_ZN22__llvm_libc_22_0_0_git8internal13string_lengthIcEEmPKT_.exit.i %inc.i.i.i.i.i = add i64 %length.0.lcssa.i.i, 1 %cmp.not.i.i.not.i.i.i = icmp eq i64 %inc.i.i.i.i.i, 0 br i1 %cmp.not.i.i.not.i.i.i, label %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i, label %if.end.i.i.i.i.i if.end.i.i.i.i.i: ; preds = %if.then.i.i.i.i %cmp2.i.i.i.i.i = icmp ult i64 %inc.i.i.i.i.i, 1676976733973595601 %mul.i.i.i.i.i = mul nuw i64 %inc.i.i.i.i.i, 11 %div18.i.i.i.i.i = lshr i64 %mul.i.i.i.i.i, 3 %new_capacity.addr.0.i.i.i.i.i = select i1 %cmp2.i.i.i.i.i, i64 %div18.i.i.i.i.i, i64 %inc.i.i.i.i.i %sub.i.i = add i64 %new_capacity.addr.0.i.i.i.i.i, 7 %div2.i.i = and i64 %sub.i.i, -8 %351 = load ptr, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34 %add.ptr.i.i = getelementptr inbounds nuw i8, ptr %351, i64 %div2.i.i store ptr %add.ptr.i.i, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34 %sub.ptr.lhs.cast.i.i = ptrtoint ptr %add.ptr.i.i to i64 %sub.ptr.sub.i.i = sub i64 %sub.ptr.lhs.cast.i.i, ptrtoint (ptr @_ZN12_GLOBAL__N_16memoryE to i64) %cmp.i.i = icmp ugt i64 %sub.ptr.sub.i.i, 65335 %cond.i.i = select i1 %cmp.i.i, ptr null, ptr %351 %tobool.i.i.i.i.i = icmp ne ptr %cond.i.i, null call void @llvm.assume(i1 %tobool.i.i.i.i.i) br label %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i _ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i: ; preds = %if.end.i.i.i.i.i, %if.then.i.i.i.i %ref.tmp.sroa.0.2 = phi ptr [ @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE, %if.then.i.i.i.i ], [ %cond.i.i, %if.end.i.i.i.i.i ] call void @llvm.memset.p0.i64(ptr nonnull align 1 %ref.tmp.sroa.0.2, i8 0, i64 %length.0.lcssa.i.i, i1 false) br label %if.end.i.i.i.i if.end.i.i.i.i: ; preds = %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git8internal13string_lengthIcEEmPKT_.exit.i %ref.tmp.sroa.0.3 = phi ptr [ @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE, %_ZN22__llvm_libc_22_0_0_git8internal13string_lengthIcEEmPKT_.exit.i ], [ %ref.tmp.sroa.0.2, %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i ] %cmp.not.i6.i.i.i.i = icmp eq ptr %ref.tmp.sroa.0.3, @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE br i1 %cmp.not.i6.i.i.i.i, label %_ZN22__llvm_libc_22_0_0_git3cpp6stringC1EPKc.exit, label %if.then.i.i.i.i.i if.then.i.i.i.i.i: ; preds = %if.end.i.i.i.i %arrayidx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %ref.tmp.sroa.0.3, i64 %length.0.lcssa.i.i store i8 0, ptr %arrayidx.i.i.i.i.i, align 1, !tbaa !36 br label %_ZN22__llvm_libc_22_0_0_git3cpp6stringC1EPKc.exit _ZN22__llvm_libc_22_0_0_git3cpp6stringC1EPKc.exit: ; preds = %if.then.i.i.i.i.i, %if.end.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %ref.tmp.sroa.0.3, ptr nonnull align 1 %call18, i64 %length.0.lcssa.i.i, i1 false), !alias.scope !115 %352 = load ptr, ptr %Options, align 8, !tbaa !113 %353 = load i8, ptr %352, align 1, !tbaa !36 %tobool.not3.i.i158 = icmp eq i8 %353, 0 br i1 %tobool.not3.i.i158, label %_ZN22__llvm_libc_22_0_0_git8internal13string_lengthIcEEmPKT_.exit.i165, label %for.inc.i.i159 for.inc.i.i159: ; preds = %for.inc.i.i159, %_ZN22__llvm_libc_22_0_0_git3cpp6stringC1EPKc.exit %length.05.i.i160 = phi i64 [ %inc.i.i163, %for.inc.i.i159 ], [ 0, %_ZN22__llvm_libc_22_0_0_git3cpp6stringC1EPKc.exit ] %src.addr.04.i.i161 = phi ptr [ %incdec.ptr.i.i162, %for.inc.i.i159 ], [ %352, %_ZN22__llvm_libc_22_0_0_git3cpp6stringC1EPKc.exit ] %incdec.ptr.i.i162 = getelementptr inbounds nuw i8, ptr %src.addr.04.i.i161, i64 1 %inc.i.i163 = add i64 %length.05.i.i160, 1 %354 = load i8, ptr %incdec.ptr.i.i162, align 1, !tbaa !36 %tobool.not.i.i164 = icmp eq i8 %354, 0 br i1 %tobool.not.i.i164, label %_ZN22__llvm_libc_22_0_0_git8internal13string_lengthIcEEmPKT_.exit.i165, label %for.inc.i.i159, !llvm.loop !114 _ZN22__llvm_libc_22_0_0_git8internal13string_lengthIcEEmPKT_.exit.i165: ; preds = %for.inc.i.i159, %_ZN22__llvm_libc_22_0_0_git3cpp6stringC1EPKc.exit %length.0.lcssa.i.i166 = phi i64 [ 0, %_ZN22__llvm_libc_22_0_0_git3cpp6stringC1EPKc.exit ], [ %inc.i.i163, %for.inc.i.i159 ] %cmp.i.not.i.i.i169 = icmp eq i64 %length.0.lcssa.i.i166, 0 br i1 %cmp.i.not.i.i.i169, label %if.end.i.i.i.i185, label %if.then.i.i.i.i170 if.then.i.i.i.i170: ; preds = %_ZN22__llvm_libc_22_0_0_git8internal13string_lengthIcEEmPKT_.exit.i165 %inc.i.i.i.i.i171 = add i64 %length.0.lcssa.i.i166, 1 %cmp.not.i.i.not.i.i.i172 = icmp eq i64 %inc.i.i.i.i.i171, 0 br i1 %cmp.not.i.i.not.i.i.i172, label %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i181, label %if.end.i.i.i.i.i173 if.end.i.i.i.i.i173: ; preds = %if.then.i.i.i.i170 %cmp2.i.i.i.i.i174 = icmp ult i64 %inc.i.i.i.i.i171, 1676976733973595601 %mul.i.i.i.i.i175 = mul nuw i64 %inc.i.i.i.i.i171, 11 %div18.i.i.i.i.i176 = lshr i64 %mul.i.i.i.i.i175, 3 %new_capacity.addr.0.i.i.i.i.i177 = select i1 %cmp2.i.i.i.i.i174, i64 %div18.i.i.i.i.i176, i64 %inc.i.i.i.i.i171 %sub.i.i833 = add i64 %new_capacity.addr.0.i.i.i.i.i177, 7 %div2.i.i834 = and i64 %sub.i.i833, -8 %355 = load ptr, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34 %add.ptr.i.i835 = getelementptr inbounds nuw i8, ptr %355, i64 %div2.i.i834 store ptr %add.ptr.i.i835, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34 %sub.ptr.lhs.cast.i.i836 = ptrtoint ptr %add.ptr.i.i835 to i64 %sub.ptr.sub.i.i837 = sub i64 %sub.ptr.lhs.cast.i.i836, ptrtoint (ptr @_ZN12_GLOBAL__N_16memoryE to i64) %cmp.i.i838 = icmp ugt i64 %sub.ptr.sub.i.i837, 65335 %cond.i.i839 = select i1 %cmp.i.i838, ptr null, ptr %355 %tobool.i.i.i.i.i179 = icmp ne ptr %cond.i.i839, null call void @llvm.assume(i1 %tobool.i.i.i.i.i179) br label %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i181 _ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i181: ; preds = %if.end.i.i.i.i.i173, %if.then.i.i.i.i170 %ref.tmp21.sroa.0.2 = phi ptr [ @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE, %if.then.i.i.i.i170 ], [ %cond.i.i839, %if.end.i.i.i.i.i173 ] call void @llvm.memset.p0.i64(ptr nonnull align 1 %ref.tmp21.sroa.0.2, i8 0, i64 %length.0.lcssa.i.i166, i1 false) br label %if.end.i.i.i.i185 if.end.i.i.i.i185: ; preds = %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i181, %_ZN22__llvm_libc_22_0_0_git8internal13string_lengthIcEEmPKT_.exit.i165 %ref.tmp21.sroa.0.3 = phi ptr [ @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE, %_ZN22__llvm_libc_22_0_0_git8internal13string_lengthIcEEmPKT_.exit.i165 ], [ %ref.tmp21.sroa.0.2, %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i181 ] %cmp.not.i6.i.i.i.i186 = icmp eq ptr %ref.tmp21.sroa.0.3, @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE br i1 %cmp.not.i6.i.i.i.i186, label %_ZN22__llvm_libc_22_0_0_git3cpp6stringC1EPKc.exit190, label %if.then.i.i.i.i.i187 if.then.i.i.i.i.i187: ; preds = %if.end.i.i.i.i185 %arrayidx.i.i.i.i.i188 = getelementptr inbounds nuw i8, ptr %ref.tmp21.sroa.0.3, i64 %length.0.lcssa.i.i166 store i8 0, ptr %arrayidx.i.i.i.i.i188, align 1, !tbaa !36 br label %_ZN22__llvm_libc_22_0_0_git3cpp6stringC1EPKc.exit190 _ZN22__llvm_libc_22_0_0_git3cpp6stringC1EPKc.exit190: ; preds = %if.then.i.i.i.i.i187, %if.end.i.i.i.i185 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %ref.tmp21.sroa.0.3, ptr nonnull align 1 %352, i64 %length.0.lcssa.i.i166, i1 false), !alias.scope !119 %cmp.i.i.i.i = icmp ne i64 %length.0.lcssa.i.i, %length.0.lcssa.i.i166 %brmerge = or i1 %cmp.i.not.i.i.i, %cmp.i.i.i.i br i1 %brmerge, label %land.end, label %for.body.i.i.i.i.i for.body.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git3cpp6stringC1EPKc.exit190 %i.011.i.i.i.i.i = phi i64 [ %inc.i.i.i.i.i192, %for.body.i.i.i.i.i ], [ 0, %_ZN22__llvm_libc_22_0_0_git3cpp6stringC1EPKc.exit190 ] %arrayidx.i.i.i.i.i191 = getelementptr inbounds nuw i8, ptr %ref.tmp.sroa.0.3, i64 %i.011.i.i.i.i.i %356 = load i8, ptr %arrayidx.i.i.i.i.i191, align 1, !tbaa !36 %arrayidx1.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %ref.tmp21.sroa.0.3, i64 %i.011.i.i.i.i.i %357 = load i8, ptr %arrayidx1.i.i.i.i.i, align 1, !tbaa !36 %tobool.not.i.i.i.i.i = icmp ne i8 %356, %357 %inc.i.i.i.i.i192 = add nuw i64 %i.011.i.i.i.i.i, 1 %exitcond.not.i.i.i.i.i = icmp eq i64 %inc.i.i.i.i.i192, %length.0.lcssa.i.i %or.cond.i.i.i.i.i = select i1 %tobool.not.i.i.i.i.i, i1 true, i1 %exitcond.not.i.i.i.i.i br i1 %or.cond.i.i.i.i.i, label %land.end, label %for.body.i.i.i.i.i, !llvm.loop !47 land.end: ; preds = %for.body.i.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git3cpp6stringC1EPKc.exit190 %358 = phi i1 [ %cmp.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git3cpp6stringC1EPKc.exit190 ], [ %tobool.not.i.i.i.i.i, %for.body.i.i.i.i.i ] br i1 %358, label %if.then35, label %for.cond.i.i.i.i842 if.then35: ; preds = %land.end %dec = add nsw i32 %TestCount.0205, -1 br label %cleanup for.cond.i.i.i.i842: ; preds = %for.cond.i.i.i.i842, %land.end, %for.body %End.0.i.i.i.i843 = phi ptr [ %incdec.ptr.i.i.i.i845, %for.cond.i.i.i.i842 ], [ %cond, %land.end ], [ %cond, %for.body ] %359 = load i8, ptr %End.0.i.i.i.i843, align 1, !tbaa !36 %cmp.i.i.i.i844 = icmp eq i8 %359, 0 %incdec.ptr.i.i.i.i845 = getelementptr inbounds nuw i8, ptr %End.0.i.i.i.i843, i64 1 br i1 %cmp.i.i.i.i844, label %for.cond.i.i.i852.preheader, label %for.cond.i.i.i.i842, !llvm.loop !101 for.cond.i.i.i852.preheader: ; preds = %for.cond.i.i.i.i842 %End.0.i.i.i.i843.lcssa = phi ptr [ %End.0.i.i.i.i843, %for.cond.i.i.i.i842 ] br label %for.cond.i.i.i852 for.cond.i.i.i852: ; preds = %for.inc.i.i.i887, %for.cond.i.i.i852.preheader %retval.sroa.6.0.i.i.i853 = phi i32 [ %retval.sroa.6.2.i.i.i888, %for.inc.i.i.i887 ], [ undef, %for.cond.i.i.i852.preheader ] %retval.sroa.2.0.i.i.i854 = phi i64 [ %retval.sroa.2.2.i.i.i889, %for.inc.i.i.i887 ], [ undef, %for.cond.i.i.i852.preheader ] %retval.sroa.8.0.i.i.i855 = phi i32 [ %retval.sroa.8.2.i.i.i890, %for.inc.i.i.i887 ], [ undef, %for.cond.i.i.i852.preheader ] %index.0.i.i.i856 = phi i32 [ %inc.i.i.i891, %for.inc.i.i.i887 ], [ 0, %for.cond.i.i.i852.preheader ] %360 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i857 = icmp ult i32 %index.0.i.i.i856, %360 %spec.store.select.i.i.i858 = select i1 %cmp.not.i.i.i857, i32 %index.0.i.i.i856, i32 0 %361 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i859 = zext i32 %361 to i64 %div8.i.i.i.i.i860 = lshr i32 %spec.store.select.i.i.i858, 5 %362 = and i32 %spec.store.select.i.i.i858, 31 %idxprom.i.i.i.i.i861 = zext nneg i32 %div8.i.i.i.i.i860 to i64 %arrayidx.i.i.i.i.i862 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i861 %363 = lshr i32 %361, %2 %conv4.i.i.i.i.i863 = and i32 %363, 1 %shl.i.i.i.i.i864 = shl nuw i32 %conv4.i.i.i.i.i863, %362 %364 = atomicrmw or ptr %arrayidx.i.i.i.i.i862, i32 %shl.i.i.i.i.i864 monotonic, align 4 %shl5.i.i.i.i.i865 = shl nuw i32 1, %362 %and.i.i.i.i.i866 = and i32 %shl5.i.i.i.i.i865, %364 %tobool3.i.i.i.i867 = icmp ne i32 %and.i.i.i.i.i866, 0 %365 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %361, i1 %tobool3.i.i.i.i867) %cmp.i.not.i.i.i868 = icmp eq i32 %361, %365 br i1 %cmp.i.not.i.i.i868, label %for.inc.i.i.i887, label %if.then.i.i.i.i869 if.then.i.i.i.i869: ; preds = %for.cond.i.i.i852 fence acquire %366 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i870 = zext i32 %spec.store.select.i.i.i858 to i64 %arrayidx.i.i.i.i871 = getelementptr inbounds nuw i32, ptr %366, i64 %idxprom.i.i.i.i870 %367 = load atomic i32, ptr %arrayidx.i.i.i.i871 monotonic, align 4 %368 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %361, i1 true) %iszero.i.i.i.i.i.i872 = icmp eq i32 %361, 0 %sub.i.i.i.i.i.i873 = select i1 %iszero.i.i.i.i.i.i872, i32 -1, i32 %368 %369 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %361, i32 %367, i32 %sub.i.i.i.i.i.i873, i32 31) %370 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i874 = getelementptr inbounds nuw i32, ptr %370, i64 %idxprom.i.i.i.i870 %371 = load atomic i32, ptr %arrayidx.i45.i.i.i874 monotonic, align 4 %372 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %361, i32 %371, i32 %sub.i.i.i.i.i.i873, i32 31) %cmp.i48.not.i.i.i875 = icmp eq i32 %369, %372 br i1 %cmp.i48.not.i.i.i875, label %if.end14.i.i.i952, label %if.then12.i.i.i876 if.then12.i.i.i876: ; preds = %if.then.i.i.i.i869 fence release %373 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i859, i1 true) %iszero.i.i.i.i.i.i.i877 = icmp ne i32 %361, 0 %cmp2.i.i.i.i.i.i878 = icmp eq i64 %373, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i879 = select i1 %iszero.i.i.i.i.i.i.i877, i1 %cmp2.i.i.i.i.i.i878, i1 false %conv4.i.i53.i.i.i880 = zext i1 %cmp.i.i.i.i.i.i879 to i32 %shl.i.i54.i.i.i881 = shl nuw i32 %conv4.i.i53.i.i.i880, %362 %xor.i.i.i.i.i882 = xor i32 %shl.i.i54.i.i.i881, -1 %374 = atomicrmw and ptr %arrayidx.i.i.i.i.i862, i32 %xor.i.i.i.i.i882 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %361) br label %cleanup26.i.i.i883 if.end14.i.i.i952: ; preds = %if.then.i.i.i.i869 %375 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i859, i1 true) %iszero.i.i.i56.i.i.i953 = icmp ne i32 %361, 0 %cmp2.i.i.i.i.i954 = icmp eq i64 %375, %sh_prom.i.i.i.i %cmp.i.i.i.i.i955 = select i1 %iszero.i.i.i56.i.i.i953, i1 %cmp2.i.i.i.i.i954, i1 false br i1 %cmp.i.i.i.i.i955, label %if.then16.i.i.i957, label %if.end22.i.i.i956 if.then16.i.i.i957: ; preds = %if.end14.i.i.i952 %376 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i958 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %376, i64 %idxprom.i.i.i.i870, i32 1 store i32 1660944387, ptr %opcode.i.i.i958, align 8, !tbaa !61 %arrayidx21.i.i.i959 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %376, i64 %idxprom.i.i.i.i870 store i64 %conv.i.i.i.i.i859, ptr %arrayidx21.i.i.i959, align 8, !tbaa !64 br label %if.end22.i.i.i956 if.end22.i.i.i956: ; preds = %if.then16.i.i.i957, %if.end14.i.i.i952 call void @llvm.nvvm.bar.warp.sync(i32 %361) br label %cleanup26.i.i.i883 cleanup26.i.i.i883: ; preds = %if.end22.i.i.i956, %if.then12.i.i.i876 %retval.sroa.6.1.i.i.i884 = phi i32 [ %retval.sroa.6.0.i.i.i853, %if.then12.i.i.i876 ], [ %spec.store.select.i.i.i858, %if.end22.i.i.i956 ] %retval.sroa.2.1.i.i.i885 = phi i64 [ %retval.sroa.2.0.i.i.i854, %if.then12.i.i.i876 ], [ %conv.i.i.i.i.i859, %if.end22.i.i.i956 ] %retval.sroa.8.1.i.i.i886 = phi i32 [ %retval.sroa.8.0.i.i.i855, %if.then12.i.i.i876 ], [ %369, %if.end22.i.i.i956 ] br i1 %cmp.i48.not.i.i.i875, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i892, label %for.inc.i.i.i887 for.inc.i.i.i887: ; preds = %cleanup26.i.i.i883, %for.cond.i.i.i852 %retval.sroa.6.2.i.i.i888 = phi i32 [ %retval.sroa.6.1.i.i.i884, %cleanup26.i.i.i883 ], [ %retval.sroa.6.0.i.i.i853, %for.cond.i.i.i852 ] %retval.sroa.2.2.i.i.i889 = phi i64 [ %retval.sroa.2.1.i.i.i885, %cleanup26.i.i.i883 ], [ %retval.sroa.2.0.i.i.i854, %for.cond.i.i.i852 ] %retval.sroa.8.2.i.i.i890 = phi i32 [ %retval.sroa.8.1.i.i.i886, %cleanup26.i.i.i883 ], [ %retval.sroa.8.0.i.i.i855, %for.cond.i.i.i852 ] %inc.i.i.i891 = add i32 %spec.store.select.i.i.i858, 1 br label %for.cond.i.i.i852, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i892: ; preds = %cleanup26.i.i.i883 %retval.sroa.6.1.i.i.i884.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i884, %cleanup26.i.i.i883 ] %retval.sroa.2.1.i.i.i885.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i885, %cleanup26.i.i.i883 ] %retval.sroa.8.1.i.i.i886.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i886, %cleanup26.i.i.i883 ] %sub.ptr.lhs.cast.i.i.i.i847 = ptrtoint ptr %End.0.i.i.i.i843.lcssa to i64 %sub.ptr.sub.i.i.i.i849 = sub i64 %sub.ptr.lhs.cast.i.i.i.i847, %sub.ptr.rhs.cast.i.i.i.i fence acquire %377 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i895 = shl i32 %retval.sroa.6.1.i.i.i884.lcssa, 5 %idxprom.i18.i.i.i.i.i896 = zext i32 %mul.i.i.i.i.i.i895 to i64 %arrayidx.i19.i.i.i.i.i897 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %377, i64 %idxprom.i18.i.i.i.i.i896 %arrayidx.i21.i.i.i.i.i898 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i897, i64 %sh_prom.i.i.i.i store i64 %sub.ptr.sub.i.i.i.i849, ptr %arrayidx.i21.i.i.i.i.i898, align 8, !tbaa !67 %spec.select.i.i.i.i.i.i.i899 = call i64 @llvm.umin.i64(i64 %sub.ptr.sub.i.i.i.i849, i64 56) %arrayidx6.i.i.i.i.i.i.i900 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i898, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %arrayidx6.i.i.i.i.i.i.i900, ptr nonnull align 1 %cond, i64 %spec.select.i.i.i.i.i.i.i899, i1 false) %tobool.not.i.i.i.i.i.i901 = icmp eq i32 %retval.sroa.8.1.i.i.i886.lcssa, 0 %conv.i.i.i.i.i.i902 = zext i1 %tobool.not.i.i.i.i.i.i901 to i32 fence release %378 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i903 = zext i32 %retval.sroa.6.1.i.i.i884.lcssa to i64 %arrayidx.i23.i.i.i.i.i904 = getelementptr inbounds nuw i32, ptr %378, i64 %idxprom.i22.i.i.i.i.i903 store atomic i32 %conv.i.i.i.i.i.i902, ptr %arrayidx.i23.i.i.i.i.i904 monotonic, align 4 %379 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i905 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %379, i64 %idxprom.i22.i.i.i.i.i903 %380 = load i64, ptr %arrayidx.i.i4.i.i905, align 8, !tbaa !64 %conv.i.i7.i.i.i.i906 = trunc i64 %380 to i32 %conv.i.i.i.i17.i.i.i.i908 = trunc i64 %retval.sroa.2.1.i.i.i885.lcssa to i32 %381 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i908, i1 true) %iszero.i.i.i.i18.i.i.i.i909 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i908, 0 %sub.i.i.i.i19.i.i.i.i910 = select i1 %iszero.i.i.i.i18.i.i.i.i909, i32 -1, i32 %381 br label %while.cond.i.i.i.i911 while.cond.i.i.i.i911: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i923, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i892 %port.sroa.43.0.i.i912 = phi i32 [ %conv.i.i.i.i.i.i902, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i892 ], [ %conv.i.i39.i.i.i.i924, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i923 ] %idx.0.i.i.i.i913 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i892 ], [ %add.i.i.i.i926, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i923 ] %cmp.i.i.i2.i914 = icmp ult i64 %idx.0.i.i.i.i913, %sub.ptr.sub.i.i.i.i849 %382 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i906, i1 %cmp.i.i.i2.i914) %tobool.not.i.i.i.i915 = icmp eq i32 %382, 0 %383 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i916 = getelementptr inbounds nuw i32, ptr %383, i64 %idxprom.i22.i.i.i.i.i903 %384 = load atomic i32, ptr %arrayidx.i22.i.i.i916 monotonic, align 4 br i1 %tobool.not.i.i.i.i915, label %cond.false.i.i.i935, label %cond.false.i11.i.i.i.i917 cond.false.i11.i.i.i.i917: ; preds = %while.cond.i.i.i.i911 %385 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i908, i32 %384, i32 %sub.i.i.i.i19.i.i.i.i910, i32 31) %386 = icmp eq i32 %385, %port.sroa.43.0.i.i912 br i1 %386, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i922, label %while.body.i.i33.i.i.i.i918 while.body.i.i33.i.i.i.i918: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i919, %cond.false.i11.i.i.i.i917 %387 = phi ptr [ %388, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i919 ], [ %383, %cond.false.i11.i.i.i.i917 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i933, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i919 if.then.i.i.i48.i.i.i.i933: ; preds = %while.body.i.i33.i.i.i.i918 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i934 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i919 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i919: ; preds = %if.then.i.i.i48.i.i.i.i933, %while.body.i.i33.i.i.i.i918 %388 = phi ptr [ %.pre.i.i.i.i934, %if.then.i.i.i48.i.i.i.i933 ], [ %387, %while.body.i.i33.i.i.i.i918 ] %arrayidx.i.i.i35.i.i.i.i920 = getelementptr inbounds nuw i32, ptr %388, i64 %idxprom.i22.i.i.i.i.i903 %389 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i920 monotonic, align 4 %390 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i908, i32 %389, i32 %sub.i.i.i.i19.i.i.i.i910, i32 31) %cmp.i.not.i.i36.i.i.i.i921 = icmp eq i32 %390, %port.sroa.43.0.i.i912 br i1 %cmp.i.not.i.i36.i.i.i.i921, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i922, label %while.body.i.i33.i.i.i.i918, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i922: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i919, %cond.false.i11.i.i.i.i917 fence acquire br i1 %cmp.i.i.i2.i914, label %if.then.i.i20.i.i.i.i.i927, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i923 if.then.i.i20.i.i.i.i.i927: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i922 %add.ptr.i.i.i.i.i.i.i.i928 = getelementptr inbounds nuw i8, ptr %cond, i64 %idx.0.i.i.i.i913 %sub.i.i.i.i.i.i.i929 = sub nuw i64 %sub.ptr.sub.i.i.i.i849, %idx.0.i.i.i.i913 %spec.select.i.i.i47.i.i.i.i930 = call i64 @llvm.umin.i64(i64 %sub.i.i.i.i.i.i.i929, i64 64) %391 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i931 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %391, i64 %idxprom.i18.i.i.i.i.i896 %arrayidx.i22.i.i.i.i.i932 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i931, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr align 1 %arrayidx.i22.i.i.i.i.i932, ptr nonnull align 1 %add.ptr.i.i.i.i.i.i.i.i928, i64 %spec.select.i.i.i47.i.i.i.i930, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i923 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i923: ; preds = %if.then.i.i20.i.i.i.i.i927, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i922 %conv.i.i39.i.i.i.i924 = xor i32 %port.sroa.43.0.i.i912, 1 fence release %392 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i925 = getelementptr inbounds nuw i32, ptr %392, i64 %idxprom.i22.i.i.i.i.i903 store atomic i32 %conv.i.i39.i.i.i.i924, ptr %arrayidx.i24.i.i.i.i.i925 monotonic, align 4 %add.i.i.i.i926 = add i64 %idx.0.i.i.i.i913, 64 br label %while.cond.i.i.i.i911, !llvm.loop !71 cond.false.i.i.i935: ; preds = %while.cond.i.i.i.i911 %port.sroa.43.0.i.i912.lcssa = phi i32 [ %port.sroa.43.0.i.i912, %while.cond.i.i.i.i911 ] %.lcssa5630 = phi ptr [ %383, %while.cond.i.i.i.i911 ] %.lcssa5629 = phi i32 [ %384, %while.cond.i.i.i.i911 ] %393 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i908, i32 %.lcssa5629, i32 %sub.i.i.i.i19.i.i.i.i910, i32 31) %394 = icmp eq i32 %393, %port.sroa.43.0.i.i912.lcssa br i1 %394, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit960, label %while.body.i.i.i.i936 while.body.i.i.i.i936: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i937, %cond.false.i.i.i935 %395 = phi ptr [ %396, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i937 ], [ %.lcssa5630, %cond.false.i.i.i935 ] br i1 %343, label %if.then.i.i.i.i.i950, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i937 if.then.i.i.i.i.i950: ; preds = %while.body.i.i.i.i936 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i951 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i937 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i937: ; preds = %if.then.i.i.i.i.i950, %while.body.i.i.i.i936 %396 = phi ptr [ %.pre.i.i951, %if.then.i.i.i.i.i950 ], [ %395, %while.body.i.i.i.i936 ] %arrayidx.i.i.i11.i.i938 = getelementptr inbounds nuw i32, ptr %396, i64 %idxprom.i22.i.i.i.i.i903 %397 = load atomic i32, ptr %arrayidx.i.i.i11.i.i938 monotonic, align 4 %398 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i908, i32 %397, i32 %sub.i.i.i.i19.i.i.i.i910, i32 31) %cmp.i.not.i.i.i.i939 = icmp eq i32 %398, %port.sroa.43.0.i.i912.lcssa br i1 %cmp.i.not.i.i.i.i939, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit960, label %while.body.i.i.i.i936, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit960: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i937, %cond.false.i.i.i935 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i908) fence release %399 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i885.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i941 = icmp ne i64 %retval.sroa.2.1.i.i.i885.lcssa, 0 %cmp2.i.i.i.i19.i.i942 = icmp eq i64 %399, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i943 = select i1 %iszero.i.i.i.i.i18.i.i941, i1 %cmp2.i.i.i.i19.i.i942, i1 false %div8.i.i.i21.i.i944 = lshr i32 %retval.sroa.6.1.i.i.i884.lcssa, 5 %400 = and i32 %retval.sroa.6.1.i.i.i884.lcssa, 31 %idxprom.i.i.i22.i.i945 = zext nneg i32 %div8.i.i.i21.i.i944 to i64 %arrayidx.i.i.i23.i.i946 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i945 %conv4.i.i.i24.i.i947 = zext i1 %cmp.i.i.i.i20.i.i943 to i32 %shl.i.i.i25.i.i948 = shl nuw i32 %conv4.i.i.i24.i.i947, %400 %xor.i.i.i26.i.i949 = xor i32 %shl.i.i.i25.i.i948, -1 %401 = atomicrmw and ptr %arrayidx.i.i.i23.i.i946, i32 %xor.i.i.i26.i.i949 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i908) br label %for.cond.i.i.i972 for.cond.i.i.i972: ; preds = %for.inc.i.i.i1007, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit960 %retval.sroa.6.0.i.i.i973 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit960 ], [ %retval.sroa.6.2.i.i.i1008, %for.inc.i.i.i1007 ] %retval.sroa.2.0.i.i.i974 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit960 ], [ %retval.sroa.2.2.i.i.i1009, %for.inc.i.i.i1007 ] %retval.sroa.8.0.i.i.i975 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit960 ], [ %retval.sroa.8.2.i.i.i1010, %for.inc.i.i.i1007 ] %index.0.i.i.i976 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit960 ], [ %inc.i.i.i1011, %for.inc.i.i.i1007 ] %402 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i977 = icmp ult i32 %index.0.i.i.i976, %402 %spec.store.select.i.i.i978 = select i1 %cmp.not.i.i.i977, i32 %index.0.i.i.i976, i32 0 %403 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i979 = zext i32 %403 to i64 %div8.i.i.i.i.i980 = lshr i32 %spec.store.select.i.i.i978, 5 %404 = and i32 %spec.store.select.i.i.i978, 31 %idxprom.i.i.i.i.i981 = zext nneg i32 %div8.i.i.i.i.i980 to i64 %arrayidx.i.i.i.i.i982 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i981 %405 = lshr i32 %403, %2 %conv4.i.i.i.i.i983 = and i32 %405, 1 %shl.i.i.i.i.i984 = shl nuw i32 %conv4.i.i.i.i.i983, %404 %406 = atomicrmw or ptr %arrayidx.i.i.i.i.i982, i32 %shl.i.i.i.i.i984 monotonic, align 4 %shl5.i.i.i.i.i985 = shl nuw i32 1, %404 %and.i.i.i.i.i986 = and i32 %shl5.i.i.i.i.i985, %406 %tobool3.i.i.i.i987 = icmp ne i32 %and.i.i.i.i.i986, 0 %407 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %403, i1 %tobool3.i.i.i.i987) %cmp.i.not.i.i.i988 = icmp eq i32 %403, %407 br i1 %cmp.i.not.i.i.i988, label %for.inc.i.i.i1007, label %if.then.i.i.i.i989 if.then.i.i.i.i989: ; preds = %for.cond.i.i.i972 fence acquire %408 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i990 = zext i32 %spec.store.select.i.i.i978 to i64 %arrayidx.i.i.i.i991 = getelementptr inbounds nuw i32, ptr %408, i64 %idxprom.i.i.i.i990 %409 = load atomic i32, ptr %arrayidx.i.i.i.i991 monotonic, align 4 %410 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %403, i1 true) %iszero.i.i.i.i.i.i992 = icmp eq i32 %403, 0 %sub.i.i.i.i.i.i993 = select i1 %iszero.i.i.i.i.i.i992, i32 -1, i32 %410 %411 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %403, i32 %409, i32 %sub.i.i.i.i.i.i993, i32 31) %412 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i994 = getelementptr inbounds nuw i32, ptr %412, i64 %idxprom.i.i.i.i990 %413 = load atomic i32, ptr %arrayidx.i45.i.i.i994 monotonic, align 4 %414 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %403, i32 %413, i32 %sub.i.i.i.i.i.i993, i32 31) %cmp.i48.not.i.i.i995 = icmp eq i32 %411, %414 br i1 %cmp.i48.not.i.i.i995, label %if.end14.i.i.i1072, label %if.then12.i.i.i996 if.then12.i.i.i996: ; preds = %if.then.i.i.i.i989 fence release %415 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i979, i1 true) %iszero.i.i.i.i.i.i.i997 = icmp ne i32 %403, 0 %cmp2.i.i.i.i.i.i998 = icmp eq i64 %415, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i999 = select i1 %iszero.i.i.i.i.i.i.i997, i1 %cmp2.i.i.i.i.i.i998, i1 false %conv4.i.i53.i.i.i1000 = zext i1 %cmp.i.i.i.i.i.i999 to i32 %shl.i.i54.i.i.i1001 = shl nuw i32 %conv4.i.i53.i.i.i1000, %404 %xor.i.i.i.i.i1002 = xor i32 %shl.i.i54.i.i.i1001, -1 %416 = atomicrmw and ptr %arrayidx.i.i.i.i.i982, i32 %xor.i.i.i.i.i1002 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %403) br label %cleanup26.i.i.i1003 if.end14.i.i.i1072: ; preds = %if.then.i.i.i.i989 %417 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i979, i1 true) %iszero.i.i.i56.i.i.i1073 = icmp ne i32 %403, 0 %cmp2.i.i.i.i.i1074 = icmp eq i64 %417, %sh_prom.i.i.i.i %cmp.i.i.i.i.i1075 = select i1 %iszero.i.i.i56.i.i.i1073, i1 %cmp2.i.i.i.i.i1074, i1 false br i1 %cmp.i.i.i.i.i1075, label %if.then16.i.i.i1077, label %if.end22.i.i.i1076 if.then16.i.i.i1077: ; preds = %if.end14.i.i.i1072 %418 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i1078 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %418, i64 %idxprom.i.i.i.i990, i32 1 store i32 1660944387, ptr %opcode.i.i.i1078, align 8, !tbaa !61 %arrayidx21.i.i.i1079 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %418, i64 %idxprom.i.i.i.i990 store i64 %conv.i.i.i.i.i979, ptr %arrayidx21.i.i.i1079, align 8, !tbaa !64 br label %if.end22.i.i.i1076 if.end22.i.i.i1076: ; preds = %if.then16.i.i.i1077, %if.end14.i.i.i1072 call void @llvm.nvvm.bar.warp.sync(i32 %403) br label %cleanup26.i.i.i1003 cleanup26.i.i.i1003: ; preds = %if.end22.i.i.i1076, %if.then12.i.i.i996 %retval.sroa.6.1.i.i.i1004 = phi i32 [ %retval.sroa.6.0.i.i.i973, %if.then12.i.i.i996 ], [ %spec.store.select.i.i.i978, %if.end22.i.i.i1076 ] %retval.sroa.2.1.i.i.i1005 = phi i64 [ %retval.sroa.2.0.i.i.i974, %if.then12.i.i.i996 ], [ %conv.i.i.i.i.i979, %if.end22.i.i.i1076 ] %retval.sroa.8.1.i.i.i1006 = phi i32 [ %retval.sroa.8.0.i.i.i975, %if.then12.i.i.i996 ], [ %411, %if.end22.i.i.i1076 ] br i1 %cmp.i48.not.i.i.i995, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1012, label %for.inc.i.i.i1007 for.inc.i.i.i1007: ; preds = %cleanup26.i.i.i1003, %for.cond.i.i.i972 %retval.sroa.6.2.i.i.i1008 = phi i32 [ %retval.sroa.6.1.i.i.i1004, %cleanup26.i.i.i1003 ], [ %retval.sroa.6.0.i.i.i973, %for.cond.i.i.i972 ] %retval.sroa.2.2.i.i.i1009 = phi i64 [ %retval.sroa.2.1.i.i.i1005, %cleanup26.i.i.i1003 ], [ %retval.sroa.2.0.i.i.i974, %for.cond.i.i.i972 ] %retval.sroa.8.2.i.i.i1010 = phi i32 [ %retval.sroa.8.1.i.i.i1006, %cleanup26.i.i.i1003 ], [ %retval.sroa.8.0.i.i.i975, %for.cond.i.i.i972 ] %inc.i.i.i1011 = add i32 %spec.store.select.i.i.i978, 1 br label %for.cond.i.i.i972, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1012: ; preds = %cleanup26.i.i.i1003 %retval.sroa.6.1.i.i.i1004.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i1004, %cleanup26.i.i.i1003 ] %retval.sroa.2.1.i.i.i1005.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i1005, %cleanup26.i.i.i1003 ] %retval.sroa.8.1.i.i.i1006.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i1006, %cleanup26.i.i.i1003 ] fence acquire %419 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i1015 = shl i32 %retval.sroa.6.1.i.i.i1004.lcssa, 5 %idxprom.i18.i.i.i.i.i1016 = zext i32 %mul.i.i.i.i.i.i1015 to i64 %arrayidx.i19.i.i.i.i.i1017 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %419, i64 %idxprom.i18.i.i.i.i.i1016 %arrayidx.i21.i.i.i.i.i1018 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i1017, i64 %sh_prom.i.i.i.i store i64 13, ptr %arrayidx.i21.i.i.i.i.i1018, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i1020 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i1018, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(13) %arrayidx6.i.i.i.i.i.i.i1020, ptr noundef nonnull align 1 dereferenceable(13) @.str17, i64 13, i1 false) %tobool.not.i.i.i.i.i.i1021 = icmp eq i32 %retval.sroa.8.1.i.i.i1006.lcssa, 0 %conv.i.i.i.i.i.i1022 = zext i1 %tobool.not.i.i.i.i.i.i1021 to i32 fence release %420 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i1023 = zext i32 %retval.sroa.6.1.i.i.i1004.lcssa to i64 %arrayidx.i23.i.i.i.i.i1024 = getelementptr inbounds nuw i32, ptr %420, i64 %idxprom.i22.i.i.i.i.i1023 store atomic i32 %conv.i.i.i.i.i.i1022, ptr %arrayidx.i23.i.i.i.i.i1024 monotonic, align 4 %421 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i1025 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %421, i64 %idxprom.i22.i.i.i.i.i1023 %422 = load i64, ptr %arrayidx.i.i4.i.i1025, align 8, !tbaa !64 %conv.i.i7.i.i.i.i1026 = trunc i64 %422 to i32 %conv.i.i.i.i17.i.i.i.i1028 = trunc i64 %retval.sroa.2.1.i.i.i1005.lcssa to i32 %423 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i1028, i1 true) %iszero.i.i.i.i18.i.i.i.i1029 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i1028, 0 %sub.i.i.i.i19.i.i.i.i1030 = select i1 %iszero.i.i.i.i18.i.i.i.i1029, i32 -1, i32 %423 br label %while.cond.i.i.i.i1031 while.cond.i.i.i.i1031: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1043, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1012 %port.sroa.43.0.i.i1032 = phi i32 [ %conv.i.i.i.i.i.i1022, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1012 ], [ %conv.i.i39.i.i.i.i1044, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1043 ] %idx.0.i.i.i.i1033 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1012 ], [ %add.i.i.i.i1046, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1043 ] %cmp.i.i.i2.i1034 = icmp ult i64 %idx.0.i.i.i.i1033, 13 %424 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i1026, i1 %cmp.i.i.i2.i1034) %tobool.not.i.i.i.i1035 = icmp eq i32 %424, 0 %425 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i1036 = getelementptr inbounds nuw i32, ptr %425, i64 %idxprom.i22.i.i.i.i.i1023 %426 = load atomic i32, ptr %arrayidx.i22.i.i.i1036 monotonic, align 4 br i1 %tobool.not.i.i.i.i1035, label %cond.false.i.i.i1055, label %cond.false.i11.i.i.i.i1037 cond.false.i11.i.i.i.i1037: ; preds = %while.cond.i.i.i.i1031 %427 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1028, i32 %426, i32 %sub.i.i.i.i19.i.i.i.i1030, i32 31) %428 = icmp eq i32 %427, %port.sroa.43.0.i.i1032 br i1 %428, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1042, label %while.body.i.i33.i.i.i.i1038 while.body.i.i33.i.i.i.i1038: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1039, %cond.false.i11.i.i.i.i1037 %429 = phi ptr [ %430, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1039 ], [ %425, %cond.false.i11.i.i.i.i1037 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i1053, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1039 if.then.i.i.i48.i.i.i.i1053: ; preds = %while.body.i.i33.i.i.i.i1038 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i1054 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1039 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1039: ; preds = %if.then.i.i.i48.i.i.i.i1053, %while.body.i.i33.i.i.i.i1038 %430 = phi ptr [ %.pre.i.i.i.i1054, %if.then.i.i.i48.i.i.i.i1053 ], [ %429, %while.body.i.i33.i.i.i.i1038 ] %arrayidx.i.i.i35.i.i.i.i1040 = getelementptr inbounds nuw i32, ptr %430, i64 %idxprom.i22.i.i.i.i.i1023 %431 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i1040 monotonic, align 4 %432 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1028, i32 %431, i32 %sub.i.i.i.i19.i.i.i.i1030, i32 31) %cmp.i.not.i.i36.i.i.i.i1041 = icmp eq i32 %432, %port.sroa.43.0.i.i1032 br i1 %cmp.i.not.i.i36.i.i.i.i1041, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1042, label %while.body.i.i33.i.i.i.i1038, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1042: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1039, %cond.false.i11.i.i.i.i1037 fence acquire br i1 %cmp.i.i.i2.i1034, label %if.then.i.i20.i.i.i.i.i1047, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1043 if.then.i.i20.i.i.i.i.i1047: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1042 %add.ptr.i.i.i.i.i.i.i.i1048 = getelementptr inbounds nuw i8, ptr @.str17, i64 %idx.0.i.i.i.i1033 %sub.i.i.i.i.i.i.i1049 = sub nuw nsw i64 13, %idx.0.i.i.i.i1033 %433 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i1051 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %433, i64 %idxprom.i18.i.i.i.i.i1016 %arrayidx.i22.i.i.i.i.i1052 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i1051, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %arrayidx.i22.i.i.i.i.i1052, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr.i.i.i.i.i.i.i.i1048, i64 %sub.i.i.i.i.i.i.i1049, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1043 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1043: ; preds = %if.then.i.i20.i.i.i.i.i1047, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1042 %conv.i.i39.i.i.i.i1044 = xor i32 %port.sroa.43.0.i.i1032, 1 fence release %434 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i1045 = getelementptr inbounds nuw i32, ptr %434, i64 %idxprom.i22.i.i.i.i.i1023 store atomic i32 %conv.i.i39.i.i.i.i1044, ptr %arrayidx.i24.i.i.i.i.i1045 monotonic, align 4 %add.i.i.i.i1046 = add i64 %idx.0.i.i.i.i1033, 64 br label %while.cond.i.i.i.i1031, !llvm.loop !71 cond.false.i.i.i1055: ; preds = %while.cond.i.i.i.i1031 %port.sroa.43.0.i.i1032.lcssa = phi i32 [ %port.sroa.43.0.i.i1032, %while.cond.i.i.i.i1031 ] %.lcssa5632 = phi ptr [ %425, %while.cond.i.i.i.i1031 ] %.lcssa5631 = phi i32 [ %426, %while.cond.i.i.i.i1031 ] %435 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1028, i32 %.lcssa5631, i32 %sub.i.i.i.i19.i.i.i.i1030, i32 31) %436 = icmp eq i32 %435, %port.sroa.43.0.i.i1032.lcssa br i1 %436, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1080, label %while.body.i.i.i.i1056 while.body.i.i.i.i1056: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1057, %cond.false.i.i.i1055 %437 = phi ptr [ %438, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1057 ], [ %.lcssa5632, %cond.false.i.i.i1055 ] br i1 %343, label %if.then.i.i.i.i.i1070, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1057 if.then.i.i.i.i.i1070: ; preds = %while.body.i.i.i.i1056 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i1071 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1057 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1057: ; preds = %if.then.i.i.i.i.i1070, %while.body.i.i.i.i1056 %438 = phi ptr [ %.pre.i.i1071, %if.then.i.i.i.i.i1070 ], [ %437, %while.body.i.i.i.i1056 ] %arrayidx.i.i.i11.i.i1058 = getelementptr inbounds nuw i32, ptr %438, i64 %idxprom.i22.i.i.i.i.i1023 %439 = load atomic i32, ptr %arrayidx.i.i.i11.i.i1058 monotonic, align 4 %440 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1028, i32 %439, i32 %sub.i.i.i.i19.i.i.i.i1030, i32 31) %cmp.i.not.i.i.i.i1059 = icmp eq i32 %440, %port.sroa.43.0.i.i1032.lcssa br i1 %cmp.i.not.i.i.i.i1059, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1080, label %while.body.i.i.i.i1056, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1080: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1057, %cond.false.i.i.i1055 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1028) fence release %441 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i1005.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i1061 = icmp ne i64 %retval.sroa.2.1.i.i.i1005.lcssa, 0 %cmp2.i.i.i.i19.i.i1062 = icmp eq i64 %441, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i1063 = select i1 %iszero.i.i.i.i.i18.i.i1061, i1 %cmp2.i.i.i.i19.i.i1062, i1 false %div8.i.i.i21.i.i1064 = lshr i32 %retval.sroa.6.1.i.i.i1004.lcssa, 5 %442 = and i32 %retval.sroa.6.1.i.i.i1004.lcssa, 31 %idxprom.i.i.i22.i.i1065 = zext nneg i32 %div8.i.i.i21.i.i1064 to i64 %arrayidx.i.i.i23.i.i1066 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i1065 %conv4.i.i.i24.i.i1067 = zext i1 %cmp.i.i.i.i20.i.i1063 to i32 %shl.i.i.i25.i.i1068 = shl nuw i32 %conv4.i.i.i24.i.i1067, %442 %xor.i.i.i26.i.i1069 = xor i32 %shl.i.i.i25.i.i1068, -1 %443 = atomicrmw and ptr %arrayidx.i.i.i23.i.i1066, i32 %xor.i.i.i26.i.i1069 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1028) br label %for.cond.i.i.i.i1083 for.cond.i.i.i.i1083: ; preds = %for.cond.i.i.i.i1083, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1080 %End.0.i.i.i.i1084 = phi ptr [ %cond6, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1080 ], [ %incdec.ptr.i.i.i.i1086, %for.cond.i.i.i.i1083 ] %444 = load i8, ptr %End.0.i.i.i.i1084, align 1, !tbaa !36 %cmp.i.i.i.i1085 = icmp eq i8 %444, 0 %incdec.ptr.i.i.i.i1086 = getelementptr inbounds nuw i8, ptr %End.0.i.i.i.i1084, i64 1 br i1 %cmp.i.i.i.i1085, label %for.cond.i.i.i1093.preheader, label %for.cond.i.i.i.i1083, !llvm.loop !101 for.cond.i.i.i1093.preheader: ; preds = %for.cond.i.i.i.i1083 %End.0.i.i.i.i1084.lcssa = phi ptr [ %End.0.i.i.i.i1084, %for.cond.i.i.i.i1083 ] br label %for.cond.i.i.i1093 for.cond.i.i.i1093: ; preds = %for.inc.i.i.i1128, %for.cond.i.i.i1093.preheader %retval.sroa.6.0.i.i.i1094 = phi i32 [ %retval.sroa.6.2.i.i.i1129, %for.inc.i.i.i1128 ], [ undef, %for.cond.i.i.i1093.preheader ] %retval.sroa.2.0.i.i.i1095 = phi i64 [ %retval.sroa.2.2.i.i.i1130, %for.inc.i.i.i1128 ], [ undef, %for.cond.i.i.i1093.preheader ] %retval.sroa.8.0.i.i.i1096 = phi i32 [ %retval.sroa.8.2.i.i.i1131, %for.inc.i.i.i1128 ], [ undef, %for.cond.i.i.i1093.preheader ] %index.0.i.i.i1097 = phi i32 [ %inc.i.i.i1132, %for.inc.i.i.i1128 ], [ 0, %for.cond.i.i.i1093.preheader ] %445 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i1098 = icmp ult i32 %index.0.i.i.i1097, %445 %spec.store.select.i.i.i1099 = select i1 %cmp.not.i.i.i1098, i32 %index.0.i.i.i1097, i32 0 %446 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i1100 = zext i32 %446 to i64 %div8.i.i.i.i.i1101 = lshr i32 %spec.store.select.i.i.i1099, 5 %447 = and i32 %spec.store.select.i.i.i1099, 31 %idxprom.i.i.i.i.i1102 = zext nneg i32 %div8.i.i.i.i.i1101 to i64 %arrayidx.i.i.i.i.i1103 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i1102 %448 = lshr i32 %446, %2 %conv4.i.i.i.i.i1104 = and i32 %448, 1 %shl.i.i.i.i.i1105 = shl nuw i32 %conv4.i.i.i.i.i1104, %447 %449 = atomicrmw or ptr %arrayidx.i.i.i.i.i1103, i32 %shl.i.i.i.i.i1105 monotonic, align 4 %shl5.i.i.i.i.i1106 = shl nuw i32 1, %447 %and.i.i.i.i.i1107 = and i32 %shl5.i.i.i.i.i1106, %449 %tobool3.i.i.i.i1108 = icmp ne i32 %and.i.i.i.i.i1107, 0 %450 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %446, i1 %tobool3.i.i.i.i1108) %cmp.i.not.i.i.i1109 = icmp eq i32 %446, %450 br i1 %cmp.i.not.i.i.i1109, label %for.inc.i.i.i1128, label %if.then.i.i.i.i1110 if.then.i.i.i.i1110: ; preds = %for.cond.i.i.i1093 fence acquire %451 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i1111 = zext i32 %spec.store.select.i.i.i1099 to i64 %arrayidx.i.i.i.i1112 = getelementptr inbounds nuw i32, ptr %451, i64 %idxprom.i.i.i.i1111 %452 = load atomic i32, ptr %arrayidx.i.i.i.i1112 monotonic, align 4 %453 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %446, i1 true) %iszero.i.i.i.i.i.i1113 = icmp eq i32 %446, 0 %sub.i.i.i.i.i.i1114 = select i1 %iszero.i.i.i.i.i.i1113, i32 -1, i32 %453 %454 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %446, i32 %452, i32 %sub.i.i.i.i.i.i1114, i32 31) %455 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i1115 = getelementptr inbounds nuw i32, ptr %455, i64 %idxprom.i.i.i.i1111 %456 = load atomic i32, ptr %arrayidx.i45.i.i.i1115 monotonic, align 4 %457 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %446, i32 %456, i32 %sub.i.i.i.i.i.i1114, i32 31) %cmp.i48.not.i.i.i1116 = icmp eq i32 %454, %457 br i1 %cmp.i48.not.i.i.i1116, label %if.end14.i.i.i1193, label %if.then12.i.i.i1117 if.then12.i.i.i1117: ; preds = %if.then.i.i.i.i1110 fence release %458 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1100, i1 true) %iszero.i.i.i.i.i.i.i1118 = icmp ne i32 %446, 0 %cmp2.i.i.i.i.i.i1119 = icmp eq i64 %458, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i1120 = select i1 %iszero.i.i.i.i.i.i.i1118, i1 %cmp2.i.i.i.i.i.i1119, i1 false %conv4.i.i53.i.i.i1121 = zext i1 %cmp.i.i.i.i.i.i1120 to i32 %shl.i.i54.i.i.i1122 = shl nuw i32 %conv4.i.i53.i.i.i1121, %447 %xor.i.i.i.i.i1123 = xor i32 %shl.i.i54.i.i.i1122, -1 %459 = atomicrmw and ptr %arrayidx.i.i.i.i.i1103, i32 %xor.i.i.i.i.i1123 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %446) br label %cleanup26.i.i.i1124 if.end14.i.i.i1193: ; preds = %if.then.i.i.i.i1110 %460 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1100, i1 true) %iszero.i.i.i56.i.i.i1194 = icmp ne i32 %446, 0 %cmp2.i.i.i.i.i1195 = icmp eq i64 %460, %sh_prom.i.i.i.i %cmp.i.i.i.i.i1196 = select i1 %iszero.i.i.i56.i.i.i1194, i1 %cmp2.i.i.i.i.i1195, i1 false br i1 %cmp.i.i.i.i.i1196, label %if.then16.i.i.i1198, label %if.end22.i.i.i1197 if.then16.i.i.i1198: ; preds = %if.end14.i.i.i1193 %461 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i1199 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %461, i64 %idxprom.i.i.i.i1111, i32 1 store i32 1660944387, ptr %opcode.i.i.i1199, align 8, !tbaa !61 %arrayidx21.i.i.i1200 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %461, i64 %idxprom.i.i.i.i1111 store i64 %conv.i.i.i.i.i1100, ptr %arrayidx21.i.i.i1200, align 8, !tbaa !64 br label %if.end22.i.i.i1197 if.end22.i.i.i1197: ; preds = %if.then16.i.i.i1198, %if.end14.i.i.i1193 call void @llvm.nvvm.bar.warp.sync(i32 %446) br label %cleanup26.i.i.i1124 cleanup26.i.i.i1124: ; preds = %if.end22.i.i.i1197, %if.then12.i.i.i1117 %retval.sroa.6.1.i.i.i1125 = phi i32 [ %retval.sroa.6.0.i.i.i1094, %if.then12.i.i.i1117 ], [ %spec.store.select.i.i.i1099, %if.end22.i.i.i1197 ] %retval.sroa.2.1.i.i.i1126 = phi i64 [ %retval.sroa.2.0.i.i.i1095, %if.then12.i.i.i1117 ], [ %conv.i.i.i.i.i1100, %if.end22.i.i.i1197 ] %retval.sroa.8.1.i.i.i1127 = phi i32 [ %retval.sroa.8.0.i.i.i1096, %if.then12.i.i.i1117 ], [ %454, %if.end22.i.i.i1197 ] br i1 %cmp.i48.not.i.i.i1116, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1133, label %for.inc.i.i.i1128 for.inc.i.i.i1128: ; preds = %cleanup26.i.i.i1124, %for.cond.i.i.i1093 %retval.sroa.6.2.i.i.i1129 = phi i32 [ %retval.sroa.6.1.i.i.i1125, %cleanup26.i.i.i1124 ], [ %retval.sroa.6.0.i.i.i1094, %for.cond.i.i.i1093 ] %retval.sroa.2.2.i.i.i1130 = phi i64 [ %retval.sroa.2.1.i.i.i1126, %cleanup26.i.i.i1124 ], [ %retval.sroa.2.0.i.i.i1095, %for.cond.i.i.i1093 ] %retval.sroa.8.2.i.i.i1131 = phi i32 [ %retval.sroa.8.1.i.i.i1127, %cleanup26.i.i.i1124 ], [ %retval.sroa.8.0.i.i.i1096, %for.cond.i.i.i1093 ] %inc.i.i.i1132 = add i32 %spec.store.select.i.i.i1099, 1 br label %for.cond.i.i.i1093, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1133: ; preds = %cleanup26.i.i.i1124 %retval.sroa.6.1.i.i.i1125.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i1125, %cleanup26.i.i.i1124 ] %retval.sroa.2.1.i.i.i1126.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i1126, %cleanup26.i.i.i1124 ] %retval.sroa.8.1.i.i.i1127.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i1127, %cleanup26.i.i.i1124 ] %sub.ptr.lhs.cast.i.i.i.i1088 = ptrtoint ptr %End.0.i.i.i.i1084.lcssa to i64 %sub.ptr.sub.i.i.i.i1090 = sub i64 %sub.ptr.lhs.cast.i.i.i.i1088, %sub.ptr.rhs.cast.i.i.i.i134 fence acquire %462 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i1136 = shl i32 %retval.sroa.6.1.i.i.i1125.lcssa, 5 %idxprom.i18.i.i.i.i.i1137 = zext i32 %mul.i.i.i.i.i.i1136 to i64 %arrayidx.i19.i.i.i.i.i1138 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %462, i64 %idxprom.i18.i.i.i.i.i1137 %arrayidx.i21.i.i.i.i.i1139 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i1138, i64 %sh_prom.i.i.i.i store i64 %sub.ptr.sub.i.i.i.i1090, ptr %arrayidx.i21.i.i.i.i.i1139, align 8, !tbaa !67 %spec.select.i.i.i.i.i.i.i1140 = call i64 @llvm.umin.i64(i64 %sub.ptr.sub.i.i.i.i1090, i64 56) %arrayidx6.i.i.i.i.i.i.i1141 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i1139, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %arrayidx6.i.i.i.i.i.i.i1141, ptr nonnull align 1 %cond6, i64 %spec.select.i.i.i.i.i.i.i1140, i1 false) %tobool.not.i.i.i.i.i.i1142 = icmp eq i32 %retval.sroa.8.1.i.i.i1127.lcssa, 0 %conv.i.i.i.i.i.i1143 = zext i1 %tobool.not.i.i.i.i.i.i1142 to i32 fence release %463 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i1144 = zext i32 %retval.sroa.6.1.i.i.i1125.lcssa to i64 %arrayidx.i23.i.i.i.i.i1145 = getelementptr inbounds nuw i32, ptr %463, i64 %idxprom.i22.i.i.i.i.i1144 store atomic i32 %conv.i.i.i.i.i.i1143, ptr %arrayidx.i23.i.i.i.i.i1145 monotonic, align 4 %464 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i1146 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %464, i64 %idxprom.i22.i.i.i.i.i1144 %465 = load i64, ptr %arrayidx.i.i4.i.i1146, align 8, !tbaa !64 %conv.i.i7.i.i.i.i1147 = trunc i64 %465 to i32 %conv.i.i.i.i17.i.i.i.i1149 = trunc i64 %retval.sroa.2.1.i.i.i1126.lcssa to i32 %466 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i1149, i1 true) %iszero.i.i.i.i18.i.i.i.i1150 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i1149, 0 %sub.i.i.i.i19.i.i.i.i1151 = select i1 %iszero.i.i.i.i18.i.i.i.i1150, i32 -1, i32 %466 br label %while.cond.i.i.i.i1152 while.cond.i.i.i.i1152: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1164, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1133 %port.sroa.43.0.i.i1153 = phi i32 [ %conv.i.i.i.i.i.i1143, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1133 ], [ %conv.i.i39.i.i.i.i1165, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1164 ] %idx.0.i.i.i.i1154 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1133 ], [ %add.i.i.i.i1167, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1164 ] %cmp.i.i.i2.i1155 = icmp ult i64 %idx.0.i.i.i.i1154, %sub.ptr.sub.i.i.i.i1090 %467 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i1147, i1 %cmp.i.i.i2.i1155) %tobool.not.i.i.i.i1156 = icmp eq i32 %467, 0 %468 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i1157 = getelementptr inbounds nuw i32, ptr %468, i64 %idxprom.i22.i.i.i.i.i1144 %469 = load atomic i32, ptr %arrayidx.i22.i.i.i1157 monotonic, align 4 br i1 %tobool.not.i.i.i.i1156, label %cond.false.i.i.i1176, label %cond.false.i11.i.i.i.i1158 cond.false.i11.i.i.i.i1158: ; preds = %while.cond.i.i.i.i1152 %470 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1149, i32 %469, i32 %sub.i.i.i.i19.i.i.i.i1151, i32 31) %471 = icmp eq i32 %470, %port.sroa.43.0.i.i1153 br i1 %471, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1163, label %while.body.i.i33.i.i.i.i1159 while.body.i.i33.i.i.i.i1159: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1160, %cond.false.i11.i.i.i.i1158 %472 = phi ptr [ %473, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1160 ], [ %468, %cond.false.i11.i.i.i.i1158 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i1174, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1160 if.then.i.i.i48.i.i.i.i1174: ; preds = %while.body.i.i33.i.i.i.i1159 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i1175 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1160 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1160: ; preds = %if.then.i.i.i48.i.i.i.i1174, %while.body.i.i33.i.i.i.i1159 %473 = phi ptr [ %.pre.i.i.i.i1175, %if.then.i.i.i48.i.i.i.i1174 ], [ %472, %while.body.i.i33.i.i.i.i1159 ] %arrayidx.i.i.i35.i.i.i.i1161 = getelementptr inbounds nuw i32, ptr %473, i64 %idxprom.i22.i.i.i.i.i1144 %474 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i1161 monotonic, align 4 %475 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1149, i32 %474, i32 %sub.i.i.i.i19.i.i.i.i1151, i32 31) %cmp.i.not.i.i36.i.i.i.i1162 = icmp eq i32 %475, %port.sroa.43.0.i.i1153 br i1 %cmp.i.not.i.i36.i.i.i.i1162, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1163, label %while.body.i.i33.i.i.i.i1159, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1163: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1160, %cond.false.i11.i.i.i.i1158 fence acquire br i1 %cmp.i.i.i2.i1155, label %if.then.i.i20.i.i.i.i.i1168, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1164 if.then.i.i20.i.i.i.i.i1168: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1163 %add.ptr.i.i.i.i.i.i.i.i1169 = getelementptr inbounds nuw i8, ptr %cond6, i64 %idx.0.i.i.i.i1154 %sub.i.i.i.i.i.i.i1170 = sub nuw i64 %sub.ptr.sub.i.i.i.i1090, %idx.0.i.i.i.i1154 %spec.select.i.i.i47.i.i.i.i1171 = call i64 @llvm.umin.i64(i64 %sub.i.i.i.i.i.i.i1170, i64 64) %476 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i1172 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %476, i64 %idxprom.i18.i.i.i.i.i1137 %arrayidx.i22.i.i.i.i.i1173 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i1172, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr align 1 %arrayidx.i22.i.i.i.i.i1173, ptr nonnull align 1 %add.ptr.i.i.i.i.i.i.i.i1169, i64 %spec.select.i.i.i47.i.i.i.i1171, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1164 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1164: ; preds = %if.then.i.i20.i.i.i.i.i1168, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1163 %conv.i.i39.i.i.i.i1165 = xor i32 %port.sroa.43.0.i.i1153, 1 fence release %477 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i1166 = getelementptr inbounds nuw i32, ptr %477, i64 %idxprom.i22.i.i.i.i.i1144 store atomic i32 %conv.i.i39.i.i.i.i1165, ptr %arrayidx.i24.i.i.i.i.i1166 monotonic, align 4 %add.i.i.i.i1167 = add i64 %idx.0.i.i.i.i1154, 64 br label %while.cond.i.i.i.i1152, !llvm.loop !71 cond.false.i.i.i1176: ; preds = %while.cond.i.i.i.i1152 %port.sroa.43.0.i.i1153.lcssa = phi i32 [ %port.sroa.43.0.i.i1153, %while.cond.i.i.i.i1152 ] %.lcssa5634 = phi ptr [ %468, %while.cond.i.i.i.i1152 ] %.lcssa5633 = phi i32 [ %469, %while.cond.i.i.i.i1152 ] %478 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1149, i32 %.lcssa5633, i32 %sub.i.i.i.i19.i.i.i.i1151, i32 31) %479 = icmp eq i32 %478, %port.sroa.43.0.i.i1153.lcssa br i1 %479, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1201, label %while.body.i.i.i.i1177 while.body.i.i.i.i1177: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1178, %cond.false.i.i.i1176 %480 = phi ptr [ %481, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1178 ], [ %.lcssa5634, %cond.false.i.i.i1176 ] br i1 %343, label %if.then.i.i.i.i.i1191, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1178 if.then.i.i.i.i.i1191: ; preds = %while.body.i.i.i.i1177 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i1192 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1178 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1178: ; preds = %if.then.i.i.i.i.i1191, %while.body.i.i.i.i1177 %481 = phi ptr [ %.pre.i.i1192, %if.then.i.i.i.i.i1191 ], [ %480, %while.body.i.i.i.i1177 ] %arrayidx.i.i.i11.i.i1179 = getelementptr inbounds nuw i32, ptr %481, i64 %idxprom.i22.i.i.i.i.i1144 %482 = load atomic i32, ptr %arrayidx.i.i.i11.i.i1179 monotonic, align 4 %483 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1149, i32 %482, i32 %sub.i.i.i.i19.i.i.i.i1151, i32 31) %cmp.i.not.i.i.i.i1180 = icmp eq i32 %483, %port.sroa.43.0.i.i1153.lcssa br i1 %cmp.i.not.i.i.i.i1180, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1201, label %while.body.i.i.i.i1177, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1201: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1178, %cond.false.i.i.i1176 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1149) fence release %484 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i1126.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i1182 = icmp ne i64 %retval.sroa.2.1.i.i.i1126.lcssa, 0 %cmp2.i.i.i.i19.i.i1183 = icmp eq i64 %484, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i1184 = select i1 %iszero.i.i.i.i.i18.i.i1182, i1 %cmp2.i.i.i.i19.i.i1183, i1 false %div8.i.i.i21.i.i1185 = lshr i32 %retval.sroa.6.1.i.i.i1125.lcssa, 5 %485 = and i32 %retval.sroa.6.1.i.i.i1125.lcssa, 31 %idxprom.i.i.i22.i.i1186 = zext nneg i32 %div8.i.i.i21.i.i1185 to i64 %arrayidx.i.i.i23.i.i1187 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i1186 %conv4.i.i.i24.i.i1188 = zext i1 %cmp.i.i.i.i20.i.i1184 to i32 %shl.i.i.i25.i.i1189 = shl nuw i32 %conv4.i.i.i24.i.i1188, %485 %xor.i.i.i26.i.i1190 = xor i32 %shl.i.i.i25.i.i1189, -1 %486 = atomicrmw and ptr %arrayidx.i.i.i23.i.i1187, i32 %xor.i.i.i26.i.i1190 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1149) br label %for.cond.i.i.i.i1204 for.cond.i.i.i.i1204: ; preds = %for.cond.i.i.i.i1204, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1201 %End.0.i.i.i.i1205 = phi ptr [ %call18, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1201 ], [ %incdec.ptr.i.i.i.i1207, %for.cond.i.i.i.i1204 ] %487 = load i8, ptr %End.0.i.i.i.i1205, align 1, !tbaa !36 %cmp.i.i.i.i1206 = icmp eq i8 %487, 0 %incdec.ptr.i.i.i.i1207 = getelementptr inbounds nuw i8, ptr %End.0.i.i.i.i1205, i64 1 br i1 %cmp.i.i.i.i1206, label %for.cond.i.i.i1214.preheader, label %for.cond.i.i.i.i1204, !llvm.loop !101 for.cond.i.i.i1214.preheader: ; preds = %for.cond.i.i.i.i1204 %End.0.i.i.i.i1205.lcssa = phi ptr [ %End.0.i.i.i.i1205, %for.cond.i.i.i.i1204 ] br label %for.cond.i.i.i1214 for.cond.i.i.i1214: ; preds = %for.inc.i.i.i1249, %for.cond.i.i.i1214.preheader %retval.sroa.6.0.i.i.i1215 = phi i32 [ %retval.sroa.6.2.i.i.i1250, %for.inc.i.i.i1249 ], [ undef, %for.cond.i.i.i1214.preheader ] %retval.sroa.2.0.i.i.i1216 = phi i64 [ %retval.sroa.2.2.i.i.i1251, %for.inc.i.i.i1249 ], [ undef, %for.cond.i.i.i1214.preheader ] %retval.sroa.8.0.i.i.i1217 = phi i32 [ %retval.sroa.8.2.i.i.i1252, %for.inc.i.i.i1249 ], [ undef, %for.cond.i.i.i1214.preheader ] %index.0.i.i.i1218 = phi i32 [ %inc.i.i.i1253, %for.inc.i.i.i1249 ], [ 0, %for.cond.i.i.i1214.preheader ] %488 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i1219 = icmp ult i32 %index.0.i.i.i1218, %488 %spec.store.select.i.i.i1220 = select i1 %cmp.not.i.i.i1219, i32 %index.0.i.i.i1218, i32 0 %489 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i1221 = zext i32 %489 to i64 %div8.i.i.i.i.i1222 = lshr i32 %spec.store.select.i.i.i1220, 5 %490 = and i32 %spec.store.select.i.i.i1220, 31 %idxprom.i.i.i.i.i1223 = zext nneg i32 %div8.i.i.i.i.i1222 to i64 %arrayidx.i.i.i.i.i1224 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i1223 %491 = lshr i32 %489, %2 %conv4.i.i.i.i.i1225 = and i32 %491, 1 %shl.i.i.i.i.i1226 = shl nuw i32 %conv4.i.i.i.i.i1225, %490 %492 = atomicrmw or ptr %arrayidx.i.i.i.i.i1224, i32 %shl.i.i.i.i.i1226 monotonic, align 4 %shl5.i.i.i.i.i1227 = shl nuw i32 1, %490 %and.i.i.i.i.i1228 = and i32 %shl5.i.i.i.i.i1227, %492 %tobool3.i.i.i.i1229 = icmp ne i32 %and.i.i.i.i.i1228, 0 %493 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %489, i1 %tobool3.i.i.i.i1229) %cmp.i.not.i.i.i1230 = icmp eq i32 %489, %493 br i1 %cmp.i.not.i.i.i1230, label %for.inc.i.i.i1249, label %if.then.i.i.i.i1231 if.then.i.i.i.i1231: ; preds = %for.cond.i.i.i1214 fence acquire %494 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i1232 = zext i32 %spec.store.select.i.i.i1220 to i64 %arrayidx.i.i.i.i1233 = getelementptr inbounds nuw i32, ptr %494, i64 %idxprom.i.i.i.i1232 %495 = load atomic i32, ptr %arrayidx.i.i.i.i1233 monotonic, align 4 %496 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %489, i1 true) %iszero.i.i.i.i.i.i1234 = icmp eq i32 %489, 0 %sub.i.i.i.i.i.i1235 = select i1 %iszero.i.i.i.i.i.i1234, i32 -1, i32 %496 %497 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %489, i32 %495, i32 %sub.i.i.i.i.i.i1235, i32 31) %498 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i1236 = getelementptr inbounds nuw i32, ptr %498, i64 %idxprom.i.i.i.i1232 %499 = load atomic i32, ptr %arrayidx.i45.i.i.i1236 monotonic, align 4 %500 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %489, i32 %499, i32 %sub.i.i.i.i.i.i1235, i32 31) %cmp.i48.not.i.i.i1237 = icmp eq i32 %497, %500 br i1 %cmp.i48.not.i.i.i1237, label %if.end14.i.i.i1314, label %if.then12.i.i.i1238 if.then12.i.i.i1238: ; preds = %if.then.i.i.i.i1231 fence release %501 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1221, i1 true) %iszero.i.i.i.i.i.i.i1239 = icmp ne i32 %489, 0 %cmp2.i.i.i.i.i.i1240 = icmp eq i64 %501, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i1241 = select i1 %iszero.i.i.i.i.i.i.i1239, i1 %cmp2.i.i.i.i.i.i1240, i1 false %conv4.i.i53.i.i.i1242 = zext i1 %cmp.i.i.i.i.i.i1241 to i32 %shl.i.i54.i.i.i1243 = shl nuw i32 %conv4.i.i53.i.i.i1242, %490 %xor.i.i.i.i.i1244 = xor i32 %shl.i.i54.i.i.i1243, -1 %502 = atomicrmw and ptr %arrayidx.i.i.i.i.i1224, i32 %xor.i.i.i.i.i1244 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %489) br label %cleanup26.i.i.i1245 if.end14.i.i.i1314: ; preds = %if.then.i.i.i.i1231 %503 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1221, i1 true) %iszero.i.i.i56.i.i.i1315 = icmp ne i32 %489, 0 %cmp2.i.i.i.i.i1316 = icmp eq i64 %503, %sh_prom.i.i.i.i %cmp.i.i.i.i.i1317 = select i1 %iszero.i.i.i56.i.i.i1315, i1 %cmp2.i.i.i.i.i1316, i1 false br i1 %cmp.i.i.i.i.i1317, label %if.then16.i.i.i1319, label %if.end22.i.i.i1318 if.then16.i.i.i1319: ; preds = %if.end14.i.i.i1314 %504 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i1320 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %504, i64 %idxprom.i.i.i.i1232, i32 1 store i32 1660944387, ptr %opcode.i.i.i1320, align 8, !tbaa !61 %arrayidx21.i.i.i1321 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %504, i64 %idxprom.i.i.i.i1232 store i64 %conv.i.i.i.i.i1221, ptr %arrayidx21.i.i.i1321, align 8, !tbaa !64 br label %if.end22.i.i.i1318 if.end22.i.i.i1318: ; preds = %if.then16.i.i.i1319, %if.end14.i.i.i1314 call void @llvm.nvvm.bar.warp.sync(i32 %489) br label %cleanup26.i.i.i1245 cleanup26.i.i.i1245: ; preds = %if.end22.i.i.i1318, %if.then12.i.i.i1238 %retval.sroa.6.1.i.i.i1246 = phi i32 [ %retval.sroa.6.0.i.i.i1215, %if.then12.i.i.i1238 ], [ %spec.store.select.i.i.i1220, %if.end22.i.i.i1318 ] %retval.sroa.2.1.i.i.i1247 = phi i64 [ %retval.sroa.2.0.i.i.i1216, %if.then12.i.i.i1238 ], [ %conv.i.i.i.i.i1221, %if.end22.i.i.i1318 ] %retval.sroa.8.1.i.i.i1248 = phi i32 [ %retval.sroa.8.0.i.i.i1217, %if.then12.i.i.i1238 ], [ %497, %if.end22.i.i.i1318 ] br i1 %cmp.i48.not.i.i.i1237, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1254, label %for.inc.i.i.i1249 for.inc.i.i.i1249: ; preds = %cleanup26.i.i.i1245, %for.cond.i.i.i1214 %retval.sroa.6.2.i.i.i1250 = phi i32 [ %retval.sroa.6.1.i.i.i1246, %cleanup26.i.i.i1245 ], [ %retval.sroa.6.0.i.i.i1215, %for.cond.i.i.i1214 ] %retval.sroa.2.2.i.i.i1251 = phi i64 [ %retval.sroa.2.1.i.i.i1247, %cleanup26.i.i.i1245 ], [ %retval.sroa.2.0.i.i.i1216, %for.cond.i.i.i1214 ] %retval.sroa.8.2.i.i.i1252 = phi i32 [ %retval.sroa.8.1.i.i.i1248, %cleanup26.i.i.i1245 ], [ %retval.sroa.8.0.i.i.i1217, %for.cond.i.i.i1214 ] %inc.i.i.i1253 = add i32 %spec.store.select.i.i.i1220, 1 br label %for.cond.i.i.i1214, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1254: ; preds = %cleanup26.i.i.i1245 %retval.sroa.6.1.i.i.i1246.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i1246, %cleanup26.i.i.i1245 ] %retval.sroa.2.1.i.i.i1247.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i1247, %cleanup26.i.i.i1245 ] %retval.sroa.8.1.i.i.i1248.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i1248, %cleanup26.i.i.i1245 ] %sub.ptr.lhs.cast.i.i.i.i1209 = ptrtoint ptr %End.0.i.i.i.i1205.lcssa to i64 %sub.ptr.rhs.cast.i.i.i.i1210 = ptrtoint ptr %call18 to i64 %sub.ptr.sub.i.i.i.i1211 = sub i64 %sub.ptr.lhs.cast.i.i.i.i1209, %sub.ptr.rhs.cast.i.i.i.i1210 fence acquire %505 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i1257 = shl i32 %retval.sroa.6.1.i.i.i1246.lcssa, 5 %idxprom.i18.i.i.i.i.i1258 = zext i32 %mul.i.i.i.i.i.i1257 to i64 %arrayidx.i19.i.i.i.i.i1259 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %505, i64 %idxprom.i18.i.i.i.i.i1258 %arrayidx.i21.i.i.i.i.i1260 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i1259, i64 %sh_prom.i.i.i.i store i64 %sub.ptr.sub.i.i.i.i1211, ptr %arrayidx.i21.i.i.i.i.i1260, align 8, !tbaa !67 %spec.select.i.i.i.i.i.i.i1261 = call i64 @llvm.umin.i64(i64 %sub.ptr.sub.i.i.i.i1211, i64 56) %arrayidx6.i.i.i.i.i.i.i1262 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i1260, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %arrayidx6.i.i.i.i.i.i.i1262, ptr align 1 %call18, i64 %spec.select.i.i.i.i.i.i.i1261, i1 false) %tobool.not.i.i.i.i.i.i1263 = icmp eq i32 %retval.sroa.8.1.i.i.i1248.lcssa, 0 %conv.i.i.i.i.i.i1264 = zext i1 %tobool.not.i.i.i.i.i.i1263 to i32 fence release %506 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i1265 = zext i32 %retval.sroa.6.1.i.i.i1246.lcssa to i64 %arrayidx.i23.i.i.i.i.i1266 = getelementptr inbounds nuw i32, ptr %506, i64 %idxprom.i22.i.i.i.i.i1265 store atomic i32 %conv.i.i.i.i.i.i1264, ptr %arrayidx.i23.i.i.i.i.i1266 monotonic, align 4 %507 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i1267 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %507, i64 %idxprom.i22.i.i.i.i.i1265 %508 = load i64, ptr %arrayidx.i.i4.i.i1267, align 8, !tbaa !64 %conv.i.i7.i.i.i.i1268 = trunc i64 %508 to i32 %conv.i.i.i.i17.i.i.i.i1270 = trunc i64 %retval.sroa.2.1.i.i.i1247.lcssa to i32 %509 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i1270, i1 true) %iszero.i.i.i.i18.i.i.i.i1271 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i1270, 0 %sub.i.i.i.i19.i.i.i.i1272 = select i1 %iszero.i.i.i.i18.i.i.i.i1271, i32 -1, i32 %509 br label %while.cond.i.i.i.i1273 while.cond.i.i.i.i1273: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1285, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1254 %port.sroa.43.0.i.i1274 = phi i32 [ %conv.i.i.i.i.i.i1264, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1254 ], [ %conv.i.i39.i.i.i.i1286, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1285 ] %idx.0.i.i.i.i1275 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1254 ], [ %add.i.i.i.i1288, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1285 ] %cmp.i.i.i2.i1276 = icmp ult i64 %idx.0.i.i.i.i1275, %sub.ptr.sub.i.i.i.i1211 %510 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i1268, i1 %cmp.i.i.i2.i1276) %tobool.not.i.i.i.i1277 = icmp eq i32 %510, 0 %511 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i1278 = getelementptr inbounds nuw i32, ptr %511, i64 %idxprom.i22.i.i.i.i.i1265 %512 = load atomic i32, ptr %arrayidx.i22.i.i.i1278 monotonic, align 4 br i1 %tobool.not.i.i.i.i1277, label %cond.false.i.i.i1297, label %cond.false.i11.i.i.i.i1279 cond.false.i11.i.i.i.i1279: ; preds = %while.cond.i.i.i.i1273 %513 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1270, i32 %512, i32 %sub.i.i.i.i19.i.i.i.i1272, i32 31) %514 = icmp eq i32 %513, %port.sroa.43.0.i.i1274 br i1 %514, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1284, label %while.body.i.i33.i.i.i.i1280 while.body.i.i33.i.i.i.i1280: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1281, %cond.false.i11.i.i.i.i1279 %515 = phi ptr [ %516, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1281 ], [ %511, %cond.false.i11.i.i.i.i1279 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i1295, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1281 if.then.i.i.i48.i.i.i.i1295: ; preds = %while.body.i.i33.i.i.i.i1280 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i1296 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1281 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1281: ; preds = %if.then.i.i.i48.i.i.i.i1295, %while.body.i.i33.i.i.i.i1280 %516 = phi ptr [ %.pre.i.i.i.i1296, %if.then.i.i.i48.i.i.i.i1295 ], [ %515, %while.body.i.i33.i.i.i.i1280 ] %arrayidx.i.i.i35.i.i.i.i1282 = getelementptr inbounds nuw i32, ptr %516, i64 %idxprom.i22.i.i.i.i.i1265 %517 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i1282 monotonic, align 4 %518 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1270, i32 %517, i32 %sub.i.i.i.i19.i.i.i.i1272, i32 31) %cmp.i.not.i.i36.i.i.i.i1283 = icmp eq i32 %518, %port.sroa.43.0.i.i1274 br i1 %cmp.i.not.i.i36.i.i.i.i1283, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1284, label %while.body.i.i33.i.i.i.i1280, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1284: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1281, %cond.false.i11.i.i.i.i1279 fence acquire br i1 %cmp.i.i.i2.i1276, label %if.then.i.i20.i.i.i.i.i1289, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1285 if.then.i.i20.i.i.i.i.i1289: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1284 %add.ptr.i.i.i.i.i.i.i.i1290 = getelementptr inbounds nuw i8, ptr %call18, i64 %idx.0.i.i.i.i1275 %sub.i.i.i.i.i.i.i1291 = sub nuw i64 %sub.ptr.sub.i.i.i.i1211, %idx.0.i.i.i.i1275 %spec.select.i.i.i47.i.i.i.i1292 = call i64 @llvm.umin.i64(i64 %sub.i.i.i.i.i.i.i1291, i64 64) %519 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i1293 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %519, i64 %idxprom.i18.i.i.i.i.i1258 %arrayidx.i22.i.i.i.i.i1294 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i1293, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr align 1 %arrayidx.i22.i.i.i.i.i1294, ptr align 1 %add.ptr.i.i.i.i.i.i.i.i1290, i64 %spec.select.i.i.i47.i.i.i.i1292, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1285 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1285: ; preds = %if.then.i.i20.i.i.i.i.i1289, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1284 %conv.i.i39.i.i.i.i1286 = xor i32 %port.sroa.43.0.i.i1274, 1 fence release %520 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i1287 = getelementptr inbounds nuw i32, ptr %520, i64 %idxprom.i22.i.i.i.i.i1265 store atomic i32 %conv.i.i39.i.i.i.i1286, ptr %arrayidx.i24.i.i.i.i.i1287 monotonic, align 4 %add.i.i.i.i1288 = add i64 %idx.0.i.i.i.i1275, 64 br label %while.cond.i.i.i.i1273, !llvm.loop !71 cond.false.i.i.i1297: ; preds = %while.cond.i.i.i.i1273 %port.sroa.43.0.i.i1274.lcssa = phi i32 [ %port.sroa.43.0.i.i1274, %while.cond.i.i.i.i1273 ] %.lcssa5636 = phi ptr [ %511, %while.cond.i.i.i.i1273 ] %.lcssa5635 = phi i32 [ %512, %while.cond.i.i.i.i1273 ] %521 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1270, i32 %.lcssa5635, i32 %sub.i.i.i.i19.i.i.i.i1272, i32 31) %522 = icmp eq i32 %521, %port.sroa.43.0.i.i1274.lcssa br i1 %522, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1322, label %while.body.i.i.i.i1298 while.body.i.i.i.i1298: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1299, %cond.false.i.i.i1297 %523 = phi ptr [ %524, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1299 ], [ %.lcssa5636, %cond.false.i.i.i1297 ] br i1 %343, label %if.then.i.i.i.i.i1312, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1299 if.then.i.i.i.i.i1312: ; preds = %while.body.i.i.i.i1298 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i1313 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1299 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1299: ; preds = %if.then.i.i.i.i.i1312, %while.body.i.i.i.i1298 %524 = phi ptr [ %.pre.i.i1313, %if.then.i.i.i.i.i1312 ], [ %523, %while.body.i.i.i.i1298 ] %arrayidx.i.i.i11.i.i1300 = getelementptr inbounds nuw i32, ptr %524, i64 %idxprom.i22.i.i.i.i.i1265 %525 = load atomic i32, ptr %arrayidx.i.i.i11.i.i1300 monotonic, align 4 %526 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1270, i32 %525, i32 %sub.i.i.i.i19.i.i.i.i1272, i32 31) %cmp.i.not.i.i.i.i1301 = icmp eq i32 %526, %port.sroa.43.0.i.i1274.lcssa br i1 %cmp.i.not.i.i.i.i1301, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1322, label %while.body.i.i.i.i1298, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1322: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1299, %cond.false.i.i.i1297 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1270) fence release %527 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i1247.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i1303 = icmp ne i64 %retval.sroa.2.1.i.i.i1247.lcssa, 0 %cmp2.i.i.i.i19.i.i1304 = icmp eq i64 %527, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i1305 = select i1 %iszero.i.i.i.i.i18.i.i1303, i1 %cmp2.i.i.i.i19.i.i1304, i1 false %div8.i.i.i21.i.i1306 = lshr i32 %retval.sroa.6.1.i.i.i1246.lcssa, 5 %528 = and i32 %retval.sroa.6.1.i.i.i1246.lcssa, 31 %idxprom.i.i.i22.i.i1307 = zext nneg i32 %div8.i.i.i21.i.i1306 to i64 %arrayidx.i.i.i23.i.i1308 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i1307 %conv4.i.i.i24.i.i1309 = zext i1 %cmp.i.i.i.i20.i.i1305 to i32 %shl.i.i.i25.i.i1310 = shl nuw i32 %conv4.i.i.i24.i.i1309, %528 %xor.i.i.i26.i.i1311 = xor i32 %shl.i.i.i25.i.i1310, -1 %529 = atomicrmw and ptr %arrayidx.i.i.i23.i.i1308, i32 %xor.i.i.i26.i.i1311 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1270) call void @llvm.lifetime.start.p0(ptr nonnull %ch.addr.i) store i8 10, ptr %ch.addr.i, align 1, !tbaa !36 br label %for.cond.i.i.i1327 for.cond.i.i.i1327: ; preds = %for.inc.i.i.i1362, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1322 %retval.sroa.6.0.i.i.i1328 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1322 ], [ %retval.sroa.6.2.i.i.i1363, %for.inc.i.i.i1362 ] %retval.sroa.2.0.i.i.i1329 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1322 ], [ %retval.sroa.2.2.i.i.i1364, %for.inc.i.i.i1362 ] %retval.sroa.8.0.i.i.i1330 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1322 ], [ %retval.sroa.8.2.i.i.i1365, %for.inc.i.i.i1362 ] %index.0.i.i.i1331 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1322 ], [ %inc.i.i.i1366, %for.inc.i.i.i1362 ] %530 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i1332 = icmp ult i32 %index.0.i.i.i1331, %530 %spec.store.select.i.i.i1333 = select i1 %cmp.not.i.i.i1332, i32 %index.0.i.i.i1331, i32 0 %531 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i1334 = zext i32 %531 to i64 %div8.i.i.i.i.i1335 = lshr i32 %spec.store.select.i.i.i1333, 5 %532 = and i32 %spec.store.select.i.i.i1333, 31 %idxprom.i.i.i.i.i1336 = zext nneg i32 %div8.i.i.i.i.i1335 to i64 %arrayidx.i.i.i.i.i1337 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i1336 %533 = lshr i32 %531, %2 %conv4.i.i.i.i.i1338 = and i32 %533, 1 %shl.i.i.i.i.i1339 = shl nuw i32 %conv4.i.i.i.i.i1338, %532 %534 = atomicrmw or ptr %arrayidx.i.i.i.i.i1337, i32 %shl.i.i.i.i.i1339 monotonic, align 4 %shl5.i.i.i.i.i1340 = shl nuw i32 1, %532 %and.i.i.i.i.i1341 = and i32 %shl5.i.i.i.i.i1340, %534 %tobool3.i.i.i.i1342 = icmp ne i32 %and.i.i.i.i.i1341, 0 %535 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %531, i1 %tobool3.i.i.i.i1342) %cmp.i.not.i.i.i1343 = icmp eq i32 %531, %535 br i1 %cmp.i.not.i.i.i1343, label %for.inc.i.i.i1362, label %if.then.i.i.i.i1344 if.then.i.i.i.i1344: ; preds = %for.cond.i.i.i1327 fence acquire %536 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i1345 = zext i32 %spec.store.select.i.i.i1333 to i64 %arrayidx.i.i.i.i1346 = getelementptr inbounds nuw i32, ptr %536, i64 %idxprom.i.i.i.i1345 %537 = load atomic i32, ptr %arrayidx.i.i.i.i1346 monotonic, align 4 %538 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %531, i1 true) %iszero.i.i.i.i.i.i1347 = icmp eq i32 %531, 0 %sub.i.i.i.i.i.i1348 = select i1 %iszero.i.i.i.i.i.i1347, i32 -1, i32 %538 %539 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %531, i32 %537, i32 %sub.i.i.i.i.i.i1348, i32 31) %540 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i1349 = getelementptr inbounds nuw i32, ptr %540, i64 %idxprom.i.i.i.i1345 %541 = load atomic i32, ptr %arrayidx.i45.i.i.i1349 monotonic, align 4 %542 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %531, i32 %541, i32 %sub.i.i.i.i.i.i1348, i32 31) %cmp.i48.not.i.i.i1350 = icmp eq i32 %539, %542 br i1 %cmp.i48.not.i.i.i1350, label %if.end14.i.i.i1427, label %if.then12.i.i.i1351 if.then12.i.i.i1351: ; preds = %if.then.i.i.i.i1344 fence release %543 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1334, i1 true) %iszero.i.i.i.i.i.i.i1352 = icmp ne i32 %531, 0 %cmp2.i.i.i.i.i.i1353 = icmp eq i64 %543, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i1354 = select i1 %iszero.i.i.i.i.i.i.i1352, i1 %cmp2.i.i.i.i.i.i1353, i1 false %conv4.i.i53.i.i.i1355 = zext i1 %cmp.i.i.i.i.i.i1354 to i32 %shl.i.i54.i.i.i1356 = shl nuw i32 %conv4.i.i53.i.i.i1355, %532 %xor.i.i.i.i.i1357 = xor i32 %shl.i.i54.i.i.i1356, -1 %544 = atomicrmw and ptr %arrayidx.i.i.i.i.i1337, i32 %xor.i.i.i.i.i1357 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %531) br label %cleanup26.i.i.i1358 if.end14.i.i.i1427: ; preds = %if.then.i.i.i.i1344 %545 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1334, i1 true) %iszero.i.i.i56.i.i.i1428 = icmp ne i32 %531, 0 %cmp2.i.i.i.i.i1429 = icmp eq i64 %545, %sh_prom.i.i.i.i %cmp.i.i.i.i.i1430 = select i1 %iszero.i.i.i56.i.i.i1428, i1 %cmp2.i.i.i.i.i1429, i1 false br i1 %cmp.i.i.i.i.i1430, label %if.then16.i.i.i1432, label %if.end22.i.i.i1431 if.then16.i.i.i1432: ; preds = %if.end14.i.i.i1427 %546 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i1433 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %546, i64 %idxprom.i.i.i.i1345, i32 1 store i32 1660944387, ptr %opcode.i.i.i1433, align 8, !tbaa !61 %arrayidx21.i.i.i1434 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %546, i64 %idxprom.i.i.i.i1345 store i64 %conv.i.i.i.i.i1334, ptr %arrayidx21.i.i.i1434, align 8, !tbaa !64 br label %if.end22.i.i.i1431 if.end22.i.i.i1431: ; preds = %if.then16.i.i.i1432, %if.end14.i.i.i1427 call void @llvm.nvvm.bar.warp.sync(i32 %531) br label %cleanup26.i.i.i1358 cleanup26.i.i.i1358: ; preds = %if.end22.i.i.i1431, %if.then12.i.i.i1351 %retval.sroa.6.1.i.i.i1359 = phi i32 [ %retval.sroa.6.0.i.i.i1328, %if.then12.i.i.i1351 ], [ %spec.store.select.i.i.i1333, %if.end22.i.i.i1431 ] %retval.sroa.2.1.i.i.i1360 = phi i64 [ %retval.sroa.2.0.i.i.i1329, %if.then12.i.i.i1351 ], [ %conv.i.i.i.i.i1334, %if.end22.i.i.i1431 ] %retval.sroa.8.1.i.i.i1361 = phi i32 [ %retval.sroa.8.0.i.i.i1330, %if.then12.i.i.i1351 ], [ %539, %if.end22.i.i.i1431 ] br i1 %cmp.i48.not.i.i.i1350, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1367, label %for.inc.i.i.i1362 for.inc.i.i.i1362: ; preds = %cleanup26.i.i.i1358, %for.cond.i.i.i1327 %retval.sroa.6.2.i.i.i1363 = phi i32 [ %retval.sroa.6.1.i.i.i1359, %cleanup26.i.i.i1358 ], [ %retval.sroa.6.0.i.i.i1328, %for.cond.i.i.i1327 ] %retval.sroa.2.2.i.i.i1364 = phi i64 [ %retval.sroa.2.1.i.i.i1360, %cleanup26.i.i.i1358 ], [ %retval.sroa.2.0.i.i.i1329, %for.cond.i.i.i1327 ] %retval.sroa.8.2.i.i.i1365 = phi i32 [ %retval.sroa.8.1.i.i.i1361, %cleanup26.i.i.i1358 ], [ %retval.sroa.8.0.i.i.i1330, %for.cond.i.i.i1327 ] %inc.i.i.i1366 = add i32 %spec.store.select.i.i.i1333, 1 br label %for.cond.i.i.i1327, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1367: ; preds = %cleanup26.i.i.i1358 %retval.sroa.6.1.i.i.i1359.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i1359, %cleanup26.i.i.i1358 ] %retval.sroa.2.1.i.i.i1360.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i1360, %cleanup26.i.i.i1358 ] %retval.sroa.8.1.i.i.i1361.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i1361, %cleanup26.i.i.i1358 ] fence acquire %547 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i1370 = shl i32 %retval.sroa.6.1.i.i.i1359.lcssa, 5 %idxprom.i18.i.i.i.i.i1371 = zext i32 %mul.i.i.i.i.i.i1370 to i64 %arrayidx.i19.i.i.i.i.i1372 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %547, i64 %idxprom.i18.i.i.i.i.i1371 %arrayidx.i21.i.i.i.i.i1373 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i1372, i64 %sh_prom.i.i.i.i store i64 1, ptr %arrayidx.i21.i.i.i.i.i1373, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i1375 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i1373, i64 8 %548 = load i8, ptr %ch.addr.i, align 1 store i8 %548, ptr %arrayidx6.i.i.i.i.i.i.i1375, align 8 %tobool.not.i.i.i.i.i.i1376 = icmp eq i32 %retval.sroa.8.1.i.i.i1361.lcssa, 0 %conv.i.i.i.i.i.i1377 = zext i1 %tobool.not.i.i.i.i.i.i1376 to i32 fence release %549 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i1378 = zext i32 %retval.sroa.6.1.i.i.i1359.lcssa to i64 %arrayidx.i23.i.i.i.i.i1379 = getelementptr inbounds nuw i32, ptr %549, i64 %idxprom.i22.i.i.i.i.i1378 store atomic i32 %conv.i.i.i.i.i.i1377, ptr %arrayidx.i23.i.i.i.i.i1379 monotonic, align 4 %550 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i1380 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %550, i64 %idxprom.i22.i.i.i.i.i1378 %551 = load i64, ptr %arrayidx.i.i4.i.i1380, align 8, !tbaa !64 %conv.i.i7.i.i.i.i1381 = trunc i64 %551 to i32 %conv.i.i.i.i17.i.i.i.i1383 = trunc i64 %retval.sroa.2.1.i.i.i1360.lcssa to i32 %552 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i1383, i1 true) %iszero.i.i.i.i18.i.i.i.i1384 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i1383, 0 %sub.i.i.i.i19.i.i.i.i1385 = select i1 %iszero.i.i.i.i18.i.i.i.i1384, i32 -1, i32 %552 br label %while.cond.i.i.i.i1386 while.cond.i.i.i.i1386: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1398, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1367 %port.sroa.43.0.i.i1387 = phi i32 [ %conv.i.i.i.i.i.i1377, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1367 ], [ %conv.i.i39.i.i.i.i1399, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1398 ] %idx.0.i.i.i.i1388 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1367 ], [ %add.i.i.i.i1401, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1398 ] %cmp.i.i.i.i1389 = icmp eq i64 %idx.0.i.i.i.i1388, 0 %553 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i1381, i1 %cmp.i.i.i.i1389) %tobool.not.i.i.i.i1390 = icmp eq i32 %553, 0 %554 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i1391 = getelementptr inbounds nuw i32, ptr %554, i64 %idxprom.i22.i.i.i.i.i1378 %555 = load atomic i32, ptr %arrayidx.i22.i.i.i1391 monotonic, align 4 br i1 %tobool.not.i.i.i.i1390, label %cond.false.i.i.i1410, label %cond.false.i11.i.i.i.i1392 cond.false.i11.i.i.i.i1392: ; preds = %while.cond.i.i.i.i1386 %556 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1383, i32 %555, i32 %sub.i.i.i.i19.i.i.i.i1385, i32 31) %557 = icmp eq i32 %556, %port.sroa.43.0.i.i1387 br i1 %557, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1397, label %while.body.i.i33.i.i.i.i1393 while.body.i.i33.i.i.i.i1393: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1394, %cond.false.i11.i.i.i.i1392 %558 = phi ptr [ %559, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1394 ], [ %554, %cond.false.i11.i.i.i.i1392 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i1408, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1394 if.then.i.i.i48.i.i.i.i1408: ; preds = %while.body.i.i33.i.i.i.i1393 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i1409 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1394 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1394: ; preds = %if.then.i.i.i48.i.i.i.i1408, %while.body.i.i33.i.i.i.i1393 %559 = phi ptr [ %.pre.i.i.i.i1409, %if.then.i.i.i48.i.i.i.i1408 ], [ %558, %while.body.i.i33.i.i.i.i1393 ] %arrayidx.i.i.i35.i.i.i.i1395 = getelementptr inbounds nuw i32, ptr %559, i64 %idxprom.i22.i.i.i.i.i1378 %560 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i1395 monotonic, align 4 %561 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1383, i32 %560, i32 %sub.i.i.i.i19.i.i.i.i1385, i32 31) %cmp.i.not.i.i36.i.i.i.i1396 = icmp eq i32 %561, %port.sroa.43.0.i.i1387 br i1 %cmp.i.not.i.i36.i.i.i.i1396, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1397, label %while.body.i.i33.i.i.i.i1393, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1397: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1394, %cond.false.i11.i.i.i.i1392 fence acquire br i1 %cmp.i.i.i.i1389, label %if.then.i.i20.i.i.i.i.i1402, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1398 if.then.i.i20.i.i.i.i.i1402: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1397 %562 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i1406 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %562, i64 %idxprom.i18.i.i.i.i.i1371 %arrayidx.i22.i.i.i.i.i1407 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i1406, i64 %sh_prom.i.i.i.i %563 = load i8, ptr %ch.addr.i, align 1 store i8 %563, ptr %arrayidx.i22.i.i.i.i.i1407, align 1 br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1398 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1398: ; preds = %if.then.i.i20.i.i.i.i.i1402, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1397 %conv.i.i39.i.i.i.i1399 = xor i32 %port.sroa.43.0.i.i1387, 1 fence release %564 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i1400 = getelementptr inbounds nuw i32, ptr %564, i64 %idxprom.i22.i.i.i.i.i1378 store atomic i32 %conv.i.i39.i.i.i.i1399, ptr %arrayidx.i24.i.i.i.i.i1400 monotonic, align 4 %add.i.i.i.i1401 = add i64 %idx.0.i.i.i.i1388, 64 br label %while.cond.i.i.i.i1386, !llvm.loop !71 cond.false.i.i.i1410: ; preds = %while.cond.i.i.i.i1386 %port.sroa.43.0.i.i1387.lcssa = phi i32 [ %port.sroa.43.0.i.i1387, %while.cond.i.i.i.i1386 ] %.lcssa5638 = phi ptr [ %554, %while.cond.i.i.i.i1386 ] %.lcssa5637 = phi i32 [ %555, %while.cond.i.i.i.i1386 ] %565 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1383, i32 %.lcssa5637, i32 %sub.i.i.i.i19.i.i.i.i1385, i32 31) %566 = icmp eq i32 %565, %port.sroa.43.0.i.i1387.lcssa br i1 %566, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit, label %while.body.i.i.i.i1411 while.body.i.i.i.i1411: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1412, %cond.false.i.i.i1410 %567 = phi ptr [ %568, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1412 ], [ %.lcssa5638, %cond.false.i.i.i1410 ] br i1 %343, label %if.then.i.i.i.i.i1425, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1412 if.then.i.i.i.i.i1425: ; preds = %while.body.i.i.i.i1411 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i1426 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1412 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1412: ; preds = %if.then.i.i.i.i.i1425, %while.body.i.i.i.i1411 %568 = phi ptr [ %.pre.i.i1426, %if.then.i.i.i.i.i1425 ], [ %567, %while.body.i.i.i.i1411 ] %arrayidx.i.i.i11.i.i1413 = getelementptr inbounds nuw i32, ptr %568, i64 %idxprom.i22.i.i.i.i.i1378 %569 = load atomic i32, ptr %arrayidx.i.i.i11.i.i1413 monotonic, align 4 %570 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1383, i32 %569, i32 %sub.i.i.i.i19.i.i.i.i1385, i32 31) %cmp.i.not.i.i.i.i1414 = icmp eq i32 %570, %port.sroa.43.0.i.i1387.lcssa br i1 %cmp.i.not.i.i.i.i1414, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit, label %while.body.i.i.i.i1411, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1412, %cond.false.i.i.i1410 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1383) fence release %571 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i1360.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i1416 = icmp ne i64 %retval.sroa.2.1.i.i.i1360.lcssa, 0 %cmp2.i.i.i.i19.i.i1417 = icmp eq i64 %571, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i1418 = select i1 %iszero.i.i.i.i.i18.i.i1416, i1 %cmp2.i.i.i.i19.i.i1417, i1 false %div8.i.i.i21.i.i1419 = lshr i32 %retval.sroa.6.1.i.i.i1359.lcssa, 5 %572 = and i32 %retval.sroa.6.1.i.i.i1359.lcssa, 31 %idxprom.i.i.i22.i.i1420 = zext nneg i32 %div8.i.i.i21.i.i1419 to i64 %arrayidx.i.i.i23.i.i1421 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i1420 %conv4.i.i.i24.i.i1422 = zext i1 %cmp.i.i.i.i20.i.i1418 to i32 %shl.i.i.i25.i.i1423 = shl nuw i32 %conv4.i.i.i24.i.i1422, %572 %xor.i.i.i26.i.i1424 = xor i32 %shl.i.i.i25.i.i1423, -1 %573 = atomicrmw and ptr %arrayidx.i.i.i23.i.i1421, i32 %xor.i.i.i26.i.i1424 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1383) call void @llvm.lifetime.end.p0(ptr nonnull %ch.addr.i) %574 = call noundef i64 @llvm.readsteadycounter() %div.i = udiv i64 %574, 1000 call void @llvm.lifetime.start.p0(ptr nonnull %Ctx) #32 store i8 0, ptr %Ctx, align 1, !tbaa !48 %vtable43 = load ptr, ptr %T.0206, align 8, !tbaa !111 %vfn44 = getelementptr inbounds nuw i8, ptr %vtable43, i64 16 %575 = load ptr, ptr %vfn44, align 8 call void %575(ptr noundef nonnull align 8 dereferenceable(24) %T.0206) #31 %Ctx.i = getelementptr inbounds nuw i8, ptr %T.0206, i64 16 store ptr %Ctx, ptr %Ctx.i, align 8, !tbaa !43 %vtable45 = load ptr, ptr %T.0206, align 8, !tbaa !111 %vfn46 = getelementptr inbounds nuw i8, ptr %vtable45, i64 32 %576 = load ptr, ptr %vfn46, align 8 call void %576(ptr noundef nonnull align 8 dereferenceable(24) %T.0206) #31 %vtable47 = load ptr, ptr %T.0206, align 8, !tbaa !111 %vfn48 = getelementptr inbounds nuw i8, ptr %vtable47, i64 24 %577 = load ptr, ptr %vfn48, align 8 call void %577(ptr noundef nonnull align 8 dereferenceable(24) %T.0206) #31 %578 = call noundef i64 @llvm.readsteadycounter() %div.i1435 = udiv i64 %578, 1000 %579 = load i8, ptr %Ctx, align 1, !tbaa !48, !range !97, !noundef !98 %loadedv.i = trunc nuw i8 %579 to i1 br i1 %loadedv.i, label %for.cond.i.i.i.i1438, label %for.cond.i.i.i.i2035 for.cond.i.i.i.i1438: ; preds = %for.cond.i.i.i.i1438, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit %End.0.i.i.i.i1439 = phi ptr [ %incdec.ptr.i.i.i.i1441, %for.cond.i.i.i.i1438 ], [ %cond3, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit ] %580 = load i8, ptr %End.0.i.i.i.i1439, align 1, !tbaa !36 %cmp.i.i.i.i1440 = icmp eq i8 %580, 0 %incdec.ptr.i.i.i.i1441 = getelementptr inbounds nuw i8, ptr %End.0.i.i.i.i1439, i64 1 br i1 %cmp.i.i.i.i1440, label %for.cond.i.i.i1448.preheader, label %for.cond.i.i.i.i1438, !llvm.loop !101 for.cond.i.i.i1448.preheader: ; preds = %for.cond.i.i.i.i1438 %End.0.i.i.i.i1439.lcssa = phi ptr [ %End.0.i.i.i.i1439, %for.cond.i.i.i.i1438 ] br label %for.cond.i.i.i1448 for.cond.i.i.i1448: ; preds = %for.inc.i.i.i1483, %for.cond.i.i.i1448.preheader %retval.sroa.6.0.i.i.i1449 = phi i32 [ %retval.sroa.6.2.i.i.i1484, %for.inc.i.i.i1483 ], [ undef, %for.cond.i.i.i1448.preheader ] %retval.sroa.2.0.i.i.i1450 = phi i64 [ %retval.sroa.2.2.i.i.i1485, %for.inc.i.i.i1483 ], [ undef, %for.cond.i.i.i1448.preheader ] %retval.sroa.8.0.i.i.i1451 = phi i32 [ %retval.sroa.8.2.i.i.i1486, %for.inc.i.i.i1483 ], [ undef, %for.cond.i.i.i1448.preheader ] %index.0.i.i.i1452 = phi i32 [ %inc.i.i.i1487, %for.inc.i.i.i1483 ], [ 0, %for.cond.i.i.i1448.preheader ] %581 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i1453 = icmp ult i32 %index.0.i.i.i1452, %581 %spec.store.select.i.i.i1454 = select i1 %cmp.not.i.i.i1453, i32 %index.0.i.i.i1452, i32 0 %582 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i1455 = zext i32 %582 to i64 %div8.i.i.i.i.i1456 = lshr i32 %spec.store.select.i.i.i1454, 5 %583 = and i32 %spec.store.select.i.i.i1454, 31 %idxprom.i.i.i.i.i1457 = zext nneg i32 %div8.i.i.i.i.i1456 to i64 %arrayidx.i.i.i.i.i1458 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i1457 %584 = lshr i32 %582, %2 %conv4.i.i.i.i.i1459 = and i32 %584, 1 %shl.i.i.i.i.i1460 = shl nuw i32 %conv4.i.i.i.i.i1459, %583 %585 = atomicrmw or ptr %arrayidx.i.i.i.i.i1458, i32 %shl.i.i.i.i.i1460 monotonic, align 4 %shl5.i.i.i.i.i1461 = shl nuw i32 1, %583 %and.i.i.i.i.i1462 = and i32 %shl5.i.i.i.i.i1461, %585 %tobool3.i.i.i.i1463 = icmp ne i32 %and.i.i.i.i.i1462, 0 %586 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %582, i1 %tobool3.i.i.i.i1463) %cmp.i.not.i.i.i1464 = icmp eq i32 %582, %586 br i1 %cmp.i.not.i.i.i1464, label %for.inc.i.i.i1483, label %if.then.i.i.i.i1465 if.then.i.i.i.i1465: ; preds = %for.cond.i.i.i1448 fence acquire %587 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i1466 = zext i32 %spec.store.select.i.i.i1454 to i64 %arrayidx.i.i.i.i1467 = getelementptr inbounds nuw i32, ptr %587, i64 %idxprom.i.i.i.i1466 %588 = load atomic i32, ptr %arrayidx.i.i.i.i1467 monotonic, align 4 %589 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %582, i1 true) %iszero.i.i.i.i.i.i1468 = icmp eq i32 %582, 0 %sub.i.i.i.i.i.i1469 = select i1 %iszero.i.i.i.i.i.i1468, i32 -1, i32 %589 %590 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %582, i32 %588, i32 %sub.i.i.i.i.i.i1469, i32 31) %591 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i1470 = getelementptr inbounds nuw i32, ptr %591, i64 %idxprom.i.i.i.i1466 %592 = load atomic i32, ptr %arrayidx.i45.i.i.i1470 monotonic, align 4 %593 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %582, i32 %592, i32 %sub.i.i.i.i.i.i1469, i32 31) %cmp.i48.not.i.i.i1471 = icmp eq i32 %590, %593 br i1 %cmp.i48.not.i.i.i1471, label %if.end14.i.i.i1548, label %if.then12.i.i.i1472 if.then12.i.i.i1472: ; preds = %if.then.i.i.i.i1465 fence release %594 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1455, i1 true) %iszero.i.i.i.i.i.i.i1473 = icmp ne i32 %582, 0 %cmp2.i.i.i.i.i.i1474 = icmp eq i64 %594, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i1475 = select i1 %iszero.i.i.i.i.i.i.i1473, i1 %cmp2.i.i.i.i.i.i1474, i1 false %conv4.i.i53.i.i.i1476 = zext i1 %cmp.i.i.i.i.i.i1475 to i32 %shl.i.i54.i.i.i1477 = shl nuw i32 %conv4.i.i53.i.i.i1476, %583 %xor.i.i.i.i.i1478 = xor i32 %shl.i.i54.i.i.i1477, -1 %595 = atomicrmw and ptr %arrayidx.i.i.i.i.i1458, i32 %xor.i.i.i.i.i1478 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %582) br label %cleanup26.i.i.i1479 if.end14.i.i.i1548: ; preds = %if.then.i.i.i.i1465 %596 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1455, i1 true) %iszero.i.i.i56.i.i.i1549 = icmp ne i32 %582, 0 %cmp2.i.i.i.i.i1550 = icmp eq i64 %596, %sh_prom.i.i.i.i %cmp.i.i.i.i.i1551 = select i1 %iszero.i.i.i56.i.i.i1549, i1 %cmp2.i.i.i.i.i1550, i1 false br i1 %cmp.i.i.i.i.i1551, label %if.then16.i.i.i1553, label %if.end22.i.i.i1552 if.then16.i.i.i1553: ; preds = %if.end14.i.i.i1548 %597 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i1554 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %597, i64 %idxprom.i.i.i.i1466, i32 1 store i32 1660944387, ptr %opcode.i.i.i1554, align 8, !tbaa !61 %arrayidx21.i.i.i1555 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %597, i64 %idxprom.i.i.i.i1466 store i64 %conv.i.i.i.i.i1455, ptr %arrayidx21.i.i.i1555, align 8, !tbaa !64 br label %if.end22.i.i.i1552 if.end22.i.i.i1552: ; preds = %if.then16.i.i.i1553, %if.end14.i.i.i1548 call void @llvm.nvvm.bar.warp.sync(i32 %582) br label %cleanup26.i.i.i1479 cleanup26.i.i.i1479: ; preds = %if.end22.i.i.i1552, %if.then12.i.i.i1472 %retval.sroa.6.1.i.i.i1480 = phi i32 [ %retval.sroa.6.0.i.i.i1449, %if.then12.i.i.i1472 ], [ %spec.store.select.i.i.i1454, %if.end22.i.i.i1552 ] %retval.sroa.2.1.i.i.i1481 = phi i64 [ %retval.sroa.2.0.i.i.i1450, %if.then12.i.i.i1472 ], [ %conv.i.i.i.i.i1455, %if.end22.i.i.i1552 ] %retval.sroa.8.1.i.i.i1482 = phi i32 [ %retval.sroa.8.0.i.i.i1451, %if.then12.i.i.i1472 ], [ %590, %if.end22.i.i.i1552 ] br i1 %cmp.i48.not.i.i.i1471, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1488, label %for.inc.i.i.i1483 for.inc.i.i.i1483: ; preds = %cleanup26.i.i.i1479, %for.cond.i.i.i1448 %retval.sroa.6.2.i.i.i1484 = phi i32 [ %retval.sroa.6.1.i.i.i1480, %cleanup26.i.i.i1479 ], [ %retval.sroa.6.0.i.i.i1449, %for.cond.i.i.i1448 ] %retval.sroa.2.2.i.i.i1485 = phi i64 [ %retval.sroa.2.1.i.i.i1481, %cleanup26.i.i.i1479 ], [ %retval.sroa.2.0.i.i.i1450, %for.cond.i.i.i1448 ] %retval.sroa.8.2.i.i.i1486 = phi i32 [ %retval.sroa.8.1.i.i.i1482, %cleanup26.i.i.i1479 ], [ %retval.sroa.8.0.i.i.i1451, %for.cond.i.i.i1448 ] %inc.i.i.i1487 = add i32 %spec.store.select.i.i.i1454, 1 br label %for.cond.i.i.i1448, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1488: ; preds = %cleanup26.i.i.i1479 %retval.sroa.6.1.i.i.i1480.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i1480, %cleanup26.i.i.i1479 ] %retval.sroa.2.1.i.i.i1481.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i1481, %cleanup26.i.i.i1479 ] %retval.sroa.8.1.i.i.i1482.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i1482, %cleanup26.i.i.i1479 ] %sub.ptr.lhs.cast.i.i.i.i1443 = ptrtoint ptr %End.0.i.i.i.i1439.lcssa to i64 %sub.ptr.sub.i.i.i.i1445 = sub i64 %sub.ptr.lhs.cast.i.i.i.i1443, %sub.ptr.rhs.cast.i.i.i.i1444 fence acquire %598 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i1491 = shl i32 %retval.sroa.6.1.i.i.i1480.lcssa, 5 %idxprom.i18.i.i.i.i.i1492 = zext i32 %mul.i.i.i.i.i.i1491 to i64 %arrayidx.i19.i.i.i.i.i1493 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %598, i64 %idxprom.i18.i.i.i.i.i1492 %arrayidx.i21.i.i.i.i.i1494 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i1493, i64 %sh_prom.i.i.i.i store i64 %sub.ptr.sub.i.i.i.i1445, ptr %arrayidx.i21.i.i.i.i.i1494, align 8, !tbaa !67 %spec.select.i.i.i.i.i.i.i1495 = call i64 @llvm.umin.i64(i64 %sub.ptr.sub.i.i.i.i1445, i64 56) %arrayidx6.i.i.i.i.i.i.i1496 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i1494, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %arrayidx6.i.i.i.i.i.i.i1496, ptr nonnull align 1 %cond3, i64 %spec.select.i.i.i.i.i.i.i1495, i1 false) %tobool.not.i.i.i.i.i.i1497 = icmp eq i32 %retval.sroa.8.1.i.i.i1482.lcssa, 0 %conv.i.i.i.i.i.i1498 = zext i1 %tobool.not.i.i.i.i.i.i1497 to i32 fence release %599 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i1499 = zext i32 %retval.sroa.6.1.i.i.i1480.lcssa to i64 %arrayidx.i23.i.i.i.i.i1500 = getelementptr inbounds nuw i32, ptr %599, i64 %idxprom.i22.i.i.i.i.i1499 store atomic i32 %conv.i.i.i.i.i.i1498, ptr %arrayidx.i23.i.i.i.i.i1500 monotonic, align 4 %600 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i1501 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %600, i64 %idxprom.i22.i.i.i.i.i1499 %601 = load i64, ptr %arrayidx.i.i4.i.i1501, align 8, !tbaa !64 %conv.i.i7.i.i.i.i1502 = trunc i64 %601 to i32 %conv.i.i.i.i17.i.i.i.i1504 = trunc i64 %retval.sroa.2.1.i.i.i1481.lcssa to i32 %602 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i1504, i1 true) %iszero.i.i.i.i18.i.i.i.i1505 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i1504, 0 %sub.i.i.i.i19.i.i.i.i1506 = select i1 %iszero.i.i.i.i18.i.i.i.i1505, i32 -1, i32 %602 br label %while.cond.i.i.i.i1507 while.cond.i.i.i.i1507: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1519, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1488 %port.sroa.43.0.i.i1508 = phi i32 [ %conv.i.i.i.i.i.i1498, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1488 ], [ %conv.i.i39.i.i.i.i1520, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1519 ] %idx.0.i.i.i.i1509 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1488 ], [ %add.i.i.i.i1522, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1519 ] %cmp.i.i.i2.i1510 = icmp ult i64 %idx.0.i.i.i.i1509, %sub.ptr.sub.i.i.i.i1445 %603 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i1502, i1 %cmp.i.i.i2.i1510) %tobool.not.i.i.i.i1511 = icmp eq i32 %603, 0 %604 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i1512 = getelementptr inbounds nuw i32, ptr %604, i64 %idxprom.i22.i.i.i.i.i1499 %605 = load atomic i32, ptr %arrayidx.i22.i.i.i1512 monotonic, align 4 br i1 %tobool.not.i.i.i.i1511, label %cond.false.i.i.i1531, label %cond.false.i11.i.i.i.i1513 cond.false.i11.i.i.i.i1513: ; preds = %while.cond.i.i.i.i1507 %606 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1504, i32 %605, i32 %sub.i.i.i.i19.i.i.i.i1506, i32 31) %607 = icmp eq i32 %606, %port.sroa.43.0.i.i1508 br i1 %607, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1518, label %while.body.i.i33.i.i.i.i1514 while.body.i.i33.i.i.i.i1514: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1515, %cond.false.i11.i.i.i.i1513 %608 = phi ptr [ %609, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1515 ], [ %604, %cond.false.i11.i.i.i.i1513 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i1529, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1515 if.then.i.i.i48.i.i.i.i1529: ; preds = %while.body.i.i33.i.i.i.i1514 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i1530 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1515 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1515: ; preds = %if.then.i.i.i48.i.i.i.i1529, %while.body.i.i33.i.i.i.i1514 %609 = phi ptr [ %.pre.i.i.i.i1530, %if.then.i.i.i48.i.i.i.i1529 ], [ %608, %while.body.i.i33.i.i.i.i1514 ] %arrayidx.i.i.i35.i.i.i.i1516 = getelementptr inbounds nuw i32, ptr %609, i64 %idxprom.i22.i.i.i.i.i1499 %610 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i1516 monotonic, align 4 %611 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1504, i32 %610, i32 %sub.i.i.i.i19.i.i.i.i1506, i32 31) %cmp.i.not.i.i36.i.i.i.i1517 = icmp eq i32 %611, %port.sroa.43.0.i.i1508 br i1 %cmp.i.not.i.i36.i.i.i.i1517, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1518, label %while.body.i.i33.i.i.i.i1514, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1518: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1515, %cond.false.i11.i.i.i.i1513 fence acquire br i1 %cmp.i.i.i2.i1510, label %if.then.i.i20.i.i.i.i.i1523, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1519 if.then.i.i20.i.i.i.i.i1523: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1518 %add.ptr.i.i.i.i.i.i.i.i1524 = getelementptr inbounds nuw i8, ptr %cond3, i64 %idx.0.i.i.i.i1509 %sub.i.i.i.i.i.i.i1525 = sub nuw i64 %sub.ptr.sub.i.i.i.i1445, %idx.0.i.i.i.i1509 %spec.select.i.i.i47.i.i.i.i1526 = call i64 @llvm.umin.i64(i64 %sub.i.i.i.i.i.i.i1525, i64 64) %612 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i1527 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %612, i64 %idxprom.i18.i.i.i.i.i1492 %arrayidx.i22.i.i.i.i.i1528 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i1527, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr align 1 %arrayidx.i22.i.i.i.i.i1528, ptr nonnull align 1 %add.ptr.i.i.i.i.i.i.i.i1524, i64 %spec.select.i.i.i47.i.i.i.i1526, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1519 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1519: ; preds = %if.then.i.i20.i.i.i.i.i1523, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1518 %conv.i.i39.i.i.i.i1520 = xor i32 %port.sroa.43.0.i.i1508, 1 fence release %613 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i1521 = getelementptr inbounds nuw i32, ptr %613, i64 %idxprom.i22.i.i.i.i.i1499 store atomic i32 %conv.i.i39.i.i.i.i1520, ptr %arrayidx.i24.i.i.i.i.i1521 monotonic, align 4 %add.i.i.i.i1522 = add i64 %idx.0.i.i.i.i1509, 64 br label %while.cond.i.i.i.i1507, !llvm.loop !71 cond.false.i.i.i1531: ; preds = %while.cond.i.i.i.i1507 %port.sroa.43.0.i.i1508.lcssa = phi i32 [ %port.sroa.43.0.i.i1508, %while.cond.i.i.i.i1507 ] %.lcssa5664 = phi ptr [ %604, %while.cond.i.i.i.i1507 ] %.lcssa5663 = phi i32 [ %605, %while.cond.i.i.i.i1507 ] %614 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1504, i32 %.lcssa5663, i32 %sub.i.i.i.i19.i.i.i.i1506, i32 31) %615 = icmp eq i32 %614, %port.sroa.43.0.i.i1508.lcssa br i1 %615, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1556, label %while.body.i.i.i.i1532 while.body.i.i.i.i1532: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1533, %cond.false.i.i.i1531 %616 = phi ptr [ %617, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1533 ], [ %.lcssa5664, %cond.false.i.i.i1531 ] br i1 %343, label %if.then.i.i.i.i.i1546, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1533 if.then.i.i.i.i.i1546: ; preds = %while.body.i.i.i.i1532 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i1547 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1533 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1533: ; preds = %if.then.i.i.i.i.i1546, %while.body.i.i.i.i1532 %617 = phi ptr [ %.pre.i.i1547, %if.then.i.i.i.i.i1546 ], [ %616, %while.body.i.i.i.i1532 ] %arrayidx.i.i.i11.i.i1534 = getelementptr inbounds nuw i32, ptr %617, i64 %idxprom.i22.i.i.i.i.i1499 %618 = load atomic i32, ptr %arrayidx.i.i.i11.i.i1534 monotonic, align 4 %619 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1504, i32 %618, i32 %sub.i.i.i.i19.i.i.i.i1506, i32 31) %cmp.i.not.i.i.i.i1535 = icmp eq i32 %619, %port.sroa.43.0.i.i1508.lcssa br i1 %cmp.i.not.i.i.i.i1535, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1556, label %while.body.i.i.i.i1532, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1556: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1533, %cond.false.i.i.i1531 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1504) fence release %620 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i1481.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i1537 = icmp ne i64 %retval.sroa.2.1.i.i.i1481.lcssa, 0 %cmp2.i.i.i.i19.i.i1538 = icmp eq i64 %620, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i1539 = select i1 %iszero.i.i.i.i.i18.i.i1537, i1 %cmp2.i.i.i.i19.i.i1538, i1 false %div8.i.i.i21.i.i1540 = lshr i32 %retval.sroa.6.1.i.i.i1480.lcssa, 5 %621 = and i32 %retval.sroa.6.1.i.i.i1480.lcssa, 31 %idxprom.i.i.i22.i.i1541 = zext nneg i32 %div8.i.i.i21.i.i1540 to i64 %arrayidx.i.i.i23.i.i1542 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i1541 %conv4.i.i.i24.i.i1543 = zext i1 %cmp.i.i.i.i20.i.i1539 to i32 %shl.i.i.i25.i.i1544 = shl nuw i32 %conv4.i.i.i24.i.i1543, %621 %xor.i.i.i26.i.i1545 = xor i32 %shl.i.i.i25.i.i1544, -1 %622 = atomicrmw and ptr %arrayidx.i.i.i23.i.i1542, i32 %xor.i.i.i26.i.i1545 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1504) br label %for.cond.i.i.i1568 for.cond.i.i.i1568: ; preds = %for.inc.i.i.i1603, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1556 %retval.sroa.6.0.i.i.i1569 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1556 ], [ %retval.sroa.6.2.i.i.i1604, %for.inc.i.i.i1603 ] %retval.sroa.2.0.i.i.i1570 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1556 ], [ %retval.sroa.2.2.i.i.i1605, %for.inc.i.i.i1603 ] %retval.sroa.8.0.i.i.i1571 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1556 ], [ %retval.sroa.8.2.i.i.i1606, %for.inc.i.i.i1603 ] %index.0.i.i.i1572 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1556 ], [ %inc.i.i.i1607, %for.inc.i.i.i1603 ] %623 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i1573 = icmp ult i32 %index.0.i.i.i1572, %623 %spec.store.select.i.i.i1574 = select i1 %cmp.not.i.i.i1573, i32 %index.0.i.i.i1572, i32 0 %624 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i1575 = zext i32 %624 to i64 %div8.i.i.i.i.i1576 = lshr i32 %spec.store.select.i.i.i1574, 5 %625 = and i32 %spec.store.select.i.i.i1574, 31 %idxprom.i.i.i.i.i1577 = zext nneg i32 %div8.i.i.i.i.i1576 to i64 %arrayidx.i.i.i.i.i1578 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i1577 %626 = lshr i32 %624, %2 %conv4.i.i.i.i.i1579 = and i32 %626, 1 %shl.i.i.i.i.i1580 = shl nuw i32 %conv4.i.i.i.i.i1579, %625 %627 = atomicrmw or ptr %arrayidx.i.i.i.i.i1578, i32 %shl.i.i.i.i.i1580 monotonic, align 4 %shl5.i.i.i.i.i1581 = shl nuw i32 1, %625 %and.i.i.i.i.i1582 = and i32 %shl5.i.i.i.i.i1581, %627 %tobool3.i.i.i.i1583 = icmp ne i32 %and.i.i.i.i.i1582, 0 %628 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %624, i1 %tobool3.i.i.i.i1583) %cmp.i.not.i.i.i1584 = icmp eq i32 %624, %628 br i1 %cmp.i.not.i.i.i1584, label %for.inc.i.i.i1603, label %if.then.i.i.i.i1585 if.then.i.i.i.i1585: ; preds = %for.cond.i.i.i1568 fence acquire %629 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i1586 = zext i32 %spec.store.select.i.i.i1574 to i64 %arrayidx.i.i.i.i1587 = getelementptr inbounds nuw i32, ptr %629, i64 %idxprom.i.i.i.i1586 %630 = load atomic i32, ptr %arrayidx.i.i.i.i1587 monotonic, align 4 %631 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %624, i1 true) %iszero.i.i.i.i.i.i1588 = icmp eq i32 %624, 0 %sub.i.i.i.i.i.i1589 = select i1 %iszero.i.i.i.i.i.i1588, i32 -1, i32 %631 %632 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %624, i32 %630, i32 %sub.i.i.i.i.i.i1589, i32 31) %633 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i1590 = getelementptr inbounds nuw i32, ptr %633, i64 %idxprom.i.i.i.i1586 %634 = load atomic i32, ptr %arrayidx.i45.i.i.i1590 monotonic, align 4 %635 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %624, i32 %634, i32 %sub.i.i.i.i.i.i1589, i32 31) %cmp.i48.not.i.i.i1591 = icmp eq i32 %632, %635 br i1 %cmp.i48.not.i.i.i1591, label %if.end14.i.i.i1668, label %if.then12.i.i.i1592 if.then12.i.i.i1592: ; preds = %if.then.i.i.i.i1585 fence release %636 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1575, i1 true) %iszero.i.i.i.i.i.i.i1593 = icmp ne i32 %624, 0 %cmp2.i.i.i.i.i.i1594 = icmp eq i64 %636, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i1595 = select i1 %iszero.i.i.i.i.i.i.i1593, i1 %cmp2.i.i.i.i.i.i1594, i1 false %conv4.i.i53.i.i.i1596 = zext i1 %cmp.i.i.i.i.i.i1595 to i32 %shl.i.i54.i.i.i1597 = shl nuw i32 %conv4.i.i53.i.i.i1596, %625 %xor.i.i.i.i.i1598 = xor i32 %shl.i.i54.i.i.i1597, -1 %637 = atomicrmw and ptr %arrayidx.i.i.i.i.i1578, i32 %xor.i.i.i.i.i1598 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %624) br label %cleanup26.i.i.i1599 if.end14.i.i.i1668: ; preds = %if.then.i.i.i.i1585 %638 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1575, i1 true) %iszero.i.i.i56.i.i.i1669 = icmp ne i32 %624, 0 %cmp2.i.i.i.i.i1670 = icmp eq i64 %638, %sh_prom.i.i.i.i %cmp.i.i.i.i.i1671 = select i1 %iszero.i.i.i56.i.i.i1669, i1 %cmp2.i.i.i.i.i1670, i1 false br i1 %cmp.i.i.i.i.i1671, label %if.then16.i.i.i1673, label %if.end22.i.i.i1672 if.then16.i.i.i1673: ; preds = %if.end14.i.i.i1668 %639 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i1674 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %639, i64 %idxprom.i.i.i.i1586, i32 1 store i32 1660944387, ptr %opcode.i.i.i1674, align 8, !tbaa !61 %arrayidx21.i.i.i1675 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %639, i64 %idxprom.i.i.i.i1586 store i64 %conv.i.i.i.i.i1575, ptr %arrayidx21.i.i.i1675, align 8, !tbaa !64 br label %if.end22.i.i.i1672 if.end22.i.i.i1672: ; preds = %if.then16.i.i.i1673, %if.end14.i.i.i1668 call void @llvm.nvvm.bar.warp.sync(i32 %624) br label %cleanup26.i.i.i1599 cleanup26.i.i.i1599: ; preds = %if.end22.i.i.i1672, %if.then12.i.i.i1592 %retval.sroa.6.1.i.i.i1600 = phi i32 [ %retval.sroa.6.0.i.i.i1569, %if.then12.i.i.i1592 ], [ %spec.store.select.i.i.i1574, %if.end22.i.i.i1672 ] %retval.sroa.2.1.i.i.i1601 = phi i64 [ %retval.sroa.2.0.i.i.i1570, %if.then12.i.i.i1592 ], [ %conv.i.i.i.i.i1575, %if.end22.i.i.i1672 ] %retval.sroa.8.1.i.i.i1602 = phi i32 [ %retval.sroa.8.0.i.i.i1571, %if.then12.i.i.i1592 ], [ %632, %if.end22.i.i.i1672 ] br i1 %cmp.i48.not.i.i.i1591, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1608, label %for.inc.i.i.i1603 for.inc.i.i.i1603: ; preds = %cleanup26.i.i.i1599, %for.cond.i.i.i1568 %retval.sroa.6.2.i.i.i1604 = phi i32 [ %retval.sroa.6.1.i.i.i1600, %cleanup26.i.i.i1599 ], [ %retval.sroa.6.0.i.i.i1569, %for.cond.i.i.i1568 ] %retval.sroa.2.2.i.i.i1605 = phi i64 [ %retval.sroa.2.1.i.i.i1601, %cleanup26.i.i.i1599 ], [ %retval.sroa.2.0.i.i.i1570, %for.cond.i.i.i1568 ] %retval.sroa.8.2.i.i.i1606 = phi i32 [ %retval.sroa.8.1.i.i.i1602, %cleanup26.i.i.i1599 ], [ %retval.sroa.8.0.i.i.i1571, %for.cond.i.i.i1568 ] %inc.i.i.i1607 = add i32 %spec.store.select.i.i.i1574, 1 br label %for.cond.i.i.i1568, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1608: ; preds = %cleanup26.i.i.i1599 %retval.sroa.6.1.i.i.i1600.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i1600, %cleanup26.i.i.i1599 ] %retval.sroa.2.1.i.i.i1601.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i1601, %cleanup26.i.i.i1599 ] %retval.sroa.8.1.i.i.i1602.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i1602, %cleanup26.i.i.i1599 ] fence acquire %640 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i1611 = shl i32 %retval.sroa.6.1.i.i.i1600.lcssa, 5 %idxprom.i18.i.i.i.i.i1612 = zext i32 %mul.i.i.i.i.i.i1611 to i64 %arrayidx.i19.i.i.i.i.i1613 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %640, i64 %idxprom.i18.i.i.i.i.i1612 %arrayidx.i21.i.i.i.i.i1614 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i1613, i64 %sh_prom.i.i.i.i store i64 13, ptr %arrayidx.i21.i.i.i.i.i1614, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i1616 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i1614, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(13) %arrayidx6.i.i.i.i.i.i.i1616, ptr noundef nonnull align 1 dereferenceable(13) @.str18, i64 13, i1 false) %tobool.not.i.i.i.i.i.i1617 = icmp eq i32 %retval.sroa.8.1.i.i.i1602.lcssa, 0 %conv.i.i.i.i.i.i1618 = zext i1 %tobool.not.i.i.i.i.i.i1617 to i32 fence release %641 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i1619 = zext i32 %retval.sroa.6.1.i.i.i1600.lcssa to i64 %arrayidx.i23.i.i.i.i.i1620 = getelementptr inbounds nuw i32, ptr %641, i64 %idxprom.i22.i.i.i.i.i1619 store atomic i32 %conv.i.i.i.i.i.i1618, ptr %arrayidx.i23.i.i.i.i.i1620 monotonic, align 4 %642 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i1621 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %642, i64 %idxprom.i22.i.i.i.i.i1619 %643 = load i64, ptr %arrayidx.i.i4.i.i1621, align 8, !tbaa !64 %conv.i.i7.i.i.i.i1622 = trunc i64 %643 to i32 %conv.i.i.i.i17.i.i.i.i1624 = trunc i64 %retval.sroa.2.1.i.i.i1601.lcssa to i32 %644 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i1624, i1 true) %iszero.i.i.i.i18.i.i.i.i1625 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i1624, 0 %sub.i.i.i.i19.i.i.i.i1626 = select i1 %iszero.i.i.i.i18.i.i.i.i1625, i32 -1, i32 %644 br label %while.cond.i.i.i.i1627 while.cond.i.i.i.i1627: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1639, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1608 %port.sroa.43.0.i.i1628 = phi i32 [ %conv.i.i.i.i.i.i1618, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1608 ], [ %conv.i.i39.i.i.i.i1640, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1639 ] %idx.0.i.i.i.i1629 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1608 ], [ %add.i.i.i.i1642, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1639 ] %cmp.i.i.i2.i1630 = icmp ult i64 %idx.0.i.i.i.i1629, 13 %645 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i1622, i1 %cmp.i.i.i2.i1630) %tobool.not.i.i.i.i1631 = icmp eq i32 %645, 0 %646 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i1632 = getelementptr inbounds nuw i32, ptr %646, i64 %idxprom.i22.i.i.i.i.i1619 %647 = load atomic i32, ptr %arrayidx.i22.i.i.i1632 monotonic, align 4 br i1 %tobool.not.i.i.i.i1631, label %cond.false.i.i.i1651, label %cond.false.i11.i.i.i.i1633 cond.false.i11.i.i.i.i1633: ; preds = %while.cond.i.i.i.i1627 %648 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1624, i32 %647, i32 %sub.i.i.i.i19.i.i.i.i1626, i32 31) %649 = icmp eq i32 %648, %port.sroa.43.0.i.i1628 br i1 %649, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1638, label %while.body.i.i33.i.i.i.i1634 while.body.i.i33.i.i.i.i1634: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1635, %cond.false.i11.i.i.i.i1633 %650 = phi ptr [ %651, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1635 ], [ %646, %cond.false.i11.i.i.i.i1633 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i1649, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1635 if.then.i.i.i48.i.i.i.i1649: ; preds = %while.body.i.i33.i.i.i.i1634 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i1650 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1635 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1635: ; preds = %if.then.i.i.i48.i.i.i.i1649, %while.body.i.i33.i.i.i.i1634 %651 = phi ptr [ %.pre.i.i.i.i1650, %if.then.i.i.i48.i.i.i.i1649 ], [ %650, %while.body.i.i33.i.i.i.i1634 ] %arrayidx.i.i.i35.i.i.i.i1636 = getelementptr inbounds nuw i32, ptr %651, i64 %idxprom.i22.i.i.i.i.i1619 %652 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i1636 monotonic, align 4 %653 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1624, i32 %652, i32 %sub.i.i.i.i19.i.i.i.i1626, i32 31) %cmp.i.not.i.i36.i.i.i.i1637 = icmp eq i32 %653, %port.sroa.43.0.i.i1628 br i1 %cmp.i.not.i.i36.i.i.i.i1637, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1638, label %while.body.i.i33.i.i.i.i1634, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1638: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1635, %cond.false.i11.i.i.i.i1633 fence acquire br i1 %cmp.i.i.i2.i1630, label %if.then.i.i20.i.i.i.i.i1643, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1639 if.then.i.i20.i.i.i.i.i1643: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1638 %add.ptr.i.i.i.i.i.i.i.i1644 = getelementptr inbounds nuw i8, ptr @.str18, i64 %idx.0.i.i.i.i1629 %sub.i.i.i.i.i.i.i1645 = sub nuw nsw i64 13, %idx.0.i.i.i.i1629 %654 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i1647 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %654, i64 %idxprom.i18.i.i.i.i.i1612 %arrayidx.i22.i.i.i.i.i1648 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i1647, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %arrayidx.i22.i.i.i.i.i1648, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr.i.i.i.i.i.i.i.i1644, i64 %sub.i.i.i.i.i.i.i1645, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1639 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1639: ; preds = %if.then.i.i20.i.i.i.i.i1643, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1638 %conv.i.i39.i.i.i.i1640 = xor i32 %port.sroa.43.0.i.i1628, 1 fence release %655 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i1641 = getelementptr inbounds nuw i32, ptr %655, i64 %idxprom.i22.i.i.i.i.i1619 store atomic i32 %conv.i.i39.i.i.i.i1640, ptr %arrayidx.i24.i.i.i.i.i1641 monotonic, align 4 %add.i.i.i.i1642 = add i64 %idx.0.i.i.i.i1629, 64 br label %while.cond.i.i.i.i1627, !llvm.loop !71 cond.false.i.i.i1651: ; preds = %while.cond.i.i.i.i1627 %port.sroa.43.0.i.i1628.lcssa = phi i32 [ %port.sroa.43.0.i.i1628, %while.cond.i.i.i.i1627 ] %.lcssa5666 = phi ptr [ %646, %while.cond.i.i.i.i1627 ] %.lcssa5665 = phi i32 [ %647, %while.cond.i.i.i.i1627 ] %656 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1624, i32 %.lcssa5665, i32 %sub.i.i.i.i19.i.i.i.i1626, i32 31) %657 = icmp eq i32 %656, %port.sroa.43.0.i.i1628.lcssa br i1 %657, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1676, label %while.body.i.i.i.i1652 while.body.i.i.i.i1652: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1653, %cond.false.i.i.i1651 %658 = phi ptr [ %659, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1653 ], [ %.lcssa5666, %cond.false.i.i.i1651 ] br i1 %343, label %if.then.i.i.i.i.i1666, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1653 if.then.i.i.i.i.i1666: ; preds = %while.body.i.i.i.i1652 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i1667 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1653 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1653: ; preds = %if.then.i.i.i.i.i1666, %while.body.i.i.i.i1652 %659 = phi ptr [ %.pre.i.i1667, %if.then.i.i.i.i.i1666 ], [ %658, %while.body.i.i.i.i1652 ] %arrayidx.i.i.i11.i.i1654 = getelementptr inbounds nuw i32, ptr %659, i64 %idxprom.i22.i.i.i.i.i1619 %660 = load atomic i32, ptr %arrayidx.i.i.i11.i.i1654 monotonic, align 4 %661 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1624, i32 %660, i32 %sub.i.i.i.i19.i.i.i.i1626, i32 31) %cmp.i.not.i.i.i.i1655 = icmp eq i32 %661, %port.sroa.43.0.i.i1628.lcssa br i1 %cmp.i.not.i.i.i.i1655, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1676, label %while.body.i.i.i.i1652, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1676: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1653, %cond.false.i.i.i1651 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1624) fence release %662 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i1601.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i1657 = icmp ne i64 %retval.sroa.2.1.i.i.i1601.lcssa, 0 %cmp2.i.i.i.i19.i.i1658 = icmp eq i64 %662, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i1659 = select i1 %iszero.i.i.i.i.i18.i.i1657, i1 %cmp2.i.i.i.i19.i.i1658, i1 false %div8.i.i.i21.i.i1660 = lshr i32 %retval.sroa.6.1.i.i.i1600.lcssa, 5 %663 = and i32 %retval.sroa.6.1.i.i.i1600.lcssa, 31 %idxprom.i.i.i22.i.i1661 = zext nneg i32 %div8.i.i.i21.i.i1660 to i64 %arrayidx.i.i.i23.i.i1662 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i1661 %conv4.i.i.i24.i.i1663 = zext i1 %cmp.i.i.i.i20.i.i1659 to i32 %shl.i.i.i25.i.i1664 = shl nuw i32 %conv4.i.i.i24.i.i1663, %663 %xor.i.i.i26.i.i1665 = xor i32 %shl.i.i.i25.i.i1664, -1 %664 = atomicrmw and ptr %arrayidx.i.i.i23.i.i1662, i32 %xor.i.i.i26.i.i1665 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1624) br label %for.cond.i.i.i.i1679 for.cond.i.i.i.i1679: ; preds = %for.cond.i.i.i.i1679, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1676 %End.0.i.i.i.i1680 = phi ptr [ %cond6, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1676 ], [ %incdec.ptr.i.i.i.i1682, %for.cond.i.i.i.i1679 ] %665 = load i8, ptr %End.0.i.i.i.i1680, align 1, !tbaa !36 %cmp.i.i.i.i1681 = icmp eq i8 %665, 0 %incdec.ptr.i.i.i.i1682 = getelementptr inbounds nuw i8, ptr %End.0.i.i.i.i1680, i64 1 br i1 %cmp.i.i.i.i1681, label %for.cond.i.i.i1689.preheader, label %for.cond.i.i.i.i1679, !llvm.loop !101 for.cond.i.i.i1689.preheader: ; preds = %for.cond.i.i.i.i1679 %End.0.i.i.i.i1680.lcssa = phi ptr [ %End.0.i.i.i.i1680, %for.cond.i.i.i.i1679 ] br label %for.cond.i.i.i1689 for.cond.i.i.i1689: ; preds = %for.inc.i.i.i1724, %for.cond.i.i.i1689.preheader %retval.sroa.6.0.i.i.i1690 = phi i32 [ %retval.sroa.6.2.i.i.i1725, %for.inc.i.i.i1724 ], [ undef, %for.cond.i.i.i1689.preheader ] %retval.sroa.2.0.i.i.i1691 = phi i64 [ %retval.sroa.2.2.i.i.i1726, %for.inc.i.i.i1724 ], [ undef, %for.cond.i.i.i1689.preheader ] %retval.sroa.8.0.i.i.i1692 = phi i32 [ %retval.sroa.8.2.i.i.i1727, %for.inc.i.i.i1724 ], [ undef, %for.cond.i.i.i1689.preheader ] %index.0.i.i.i1693 = phi i32 [ %inc.i.i.i1728, %for.inc.i.i.i1724 ], [ 0, %for.cond.i.i.i1689.preheader ] %666 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i1694 = icmp ult i32 %index.0.i.i.i1693, %666 %spec.store.select.i.i.i1695 = select i1 %cmp.not.i.i.i1694, i32 %index.0.i.i.i1693, i32 0 %667 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i1696 = zext i32 %667 to i64 %div8.i.i.i.i.i1697 = lshr i32 %spec.store.select.i.i.i1695, 5 %668 = and i32 %spec.store.select.i.i.i1695, 31 %idxprom.i.i.i.i.i1698 = zext nneg i32 %div8.i.i.i.i.i1697 to i64 %arrayidx.i.i.i.i.i1699 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i1698 %669 = lshr i32 %667, %2 %conv4.i.i.i.i.i1700 = and i32 %669, 1 %shl.i.i.i.i.i1701 = shl nuw i32 %conv4.i.i.i.i.i1700, %668 %670 = atomicrmw or ptr %arrayidx.i.i.i.i.i1699, i32 %shl.i.i.i.i.i1701 monotonic, align 4 %shl5.i.i.i.i.i1702 = shl nuw i32 1, %668 %and.i.i.i.i.i1703 = and i32 %shl5.i.i.i.i.i1702, %670 %tobool3.i.i.i.i1704 = icmp ne i32 %and.i.i.i.i.i1703, 0 %671 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %667, i1 %tobool3.i.i.i.i1704) %cmp.i.not.i.i.i1705 = icmp eq i32 %667, %671 br i1 %cmp.i.not.i.i.i1705, label %for.inc.i.i.i1724, label %if.then.i.i.i.i1706 if.then.i.i.i.i1706: ; preds = %for.cond.i.i.i1689 fence acquire %672 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i1707 = zext i32 %spec.store.select.i.i.i1695 to i64 %arrayidx.i.i.i.i1708 = getelementptr inbounds nuw i32, ptr %672, i64 %idxprom.i.i.i.i1707 %673 = load atomic i32, ptr %arrayidx.i.i.i.i1708 monotonic, align 4 %674 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %667, i1 true) %iszero.i.i.i.i.i.i1709 = icmp eq i32 %667, 0 %sub.i.i.i.i.i.i1710 = select i1 %iszero.i.i.i.i.i.i1709, i32 -1, i32 %674 %675 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %667, i32 %673, i32 %sub.i.i.i.i.i.i1710, i32 31) %676 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i1711 = getelementptr inbounds nuw i32, ptr %676, i64 %idxprom.i.i.i.i1707 %677 = load atomic i32, ptr %arrayidx.i45.i.i.i1711 monotonic, align 4 %678 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %667, i32 %677, i32 %sub.i.i.i.i.i.i1710, i32 31) %cmp.i48.not.i.i.i1712 = icmp eq i32 %675, %678 br i1 %cmp.i48.not.i.i.i1712, label %if.end14.i.i.i1789, label %if.then12.i.i.i1713 if.then12.i.i.i1713: ; preds = %if.then.i.i.i.i1706 fence release %679 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1696, i1 true) %iszero.i.i.i.i.i.i.i1714 = icmp ne i32 %667, 0 %cmp2.i.i.i.i.i.i1715 = icmp eq i64 %679, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i1716 = select i1 %iszero.i.i.i.i.i.i.i1714, i1 %cmp2.i.i.i.i.i.i1715, i1 false %conv4.i.i53.i.i.i1717 = zext i1 %cmp.i.i.i.i.i.i1716 to i32 %shl.i.i54.i.i.i1718 = shl nuw i32 %conv4.i.i53.i.i.i1717, %668 %xor.i.i.i.i.i1719 = xor i32 %shl.i.i54.i.i.i1718, -1 %680 = atomicrmw and ptr %arrayidx.i.i.i.i.i1699, i32 %xor.i.i.i.i.i1719 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %667) br label %cleanup26.i.i.i1720 if.end14.i.i.i1789: ; preds = %if.then.i.i.i.i1706 %681 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1696, i1 true) %iszero.i.i.i56.i.i.i1790 = icmp ne i32 %667, 0 %cmp2.i.i.i.i.i1791 = icmp eq i64 %681, %sh_prom.i.i.i.i %cmp.i.i.i.i.i1792 = select i1 %iszero.i.i.i56.i.i.i1790, i1 %cmp2.i.i.i.i.i1791, i1 false br i1 %cmp.i.i.i.i.i1792, label %if.then16.i.i.i1794, label %if.end22.i.i.i1793 if.then16.i.i.i1794: ; preds = %if.end14.i.i.i1789 %682 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i1795 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %682, i64 %idxprom.i.i.i.i1707, i32 1 store i32 1660944387, ptr %opcode.i.i.i1795, align 8, !tbaa !61 %arrayidx21.i.i.i1796 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %682, i64 %idxprom.i.i.i.i1707 store i64 %conv.i.i.i.i.i1696, ptr %arrayidx21.i.i.i1796, align 8, !tbaa !64 br label %if.end22.i.i.i1793 if.end22.i.i.i1793: ; preds = %if.then16.i.i.i1794, %if.end14.i.i.i1789 call void @llvm.nvvm.bar.warp.sync(i32 %667) br label %cleanup26.i.i.i1720 cleanup26.i.i.i1720: ; preds = %if.end22.i.i.i1793, %if.then12.i.i.i1713 %retval.sroa.6.1.i.i.i1721 = phi i32 [ %retval.sroa.6.0.i.i.i1690, %if.then12.i.i.i1713 ], [ %spec.store.select.i.i.i1695, %if.end22.i.i.i1793 ] %retval.sroa.2.1.i.i.i1722 = phi i64 [ %retval.sroa.2.0.i.i.i1691, %if.then12.i.i.i1713 ], [ %conv.i.i.i.i.i1696, %if.end22.i.i.i1793 ] %retval.sroa.8.1.i.i.i1723 = phi i32 [ %retval.sroa.8.0.i.i.i1692, %if.then12.i.i.i1713 ], [ %675, %if.end22.i.i.i1793 ] br i1 %cmp.i48.not.i.i.i1712, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1729, label %for.inc.i.i.i1724 for.inc.i.i.i1724: ; preds = %cleanup26.i.i.i1720, %for.cond.i.i.i1689 %retval.sroa.6.2.i.i.i1725 = phi i32 [ %retval.sroa.6.1.i.i.i1721, %cleanup26.i.i.i1720 ], [ %retval.sroa.6.0.i.i.i1690, %for.cond.i.i.i1689 ] %retval.sroa.2.2.i.i.i1726 = phi i64 [ %retval.sroa.2.1.i.i.i1722, %cleanup26.i.i.i1720 ], [ %retval.sroa.2.0.i.i.i1691, %for.cond.i.i.i1689 ] %retval.sroa.8.2.i.i.i1727 = phi i32 [ %retval.sroa.8.1.i.i.i1723, %cleanup26.i.i.i1720 ], [ %retval.sroa.8.0.i.i.i1692, %for.cond.i.i.i1689 ] %inc.i.i.i1728 = add i32 %spec.store.select.i.i.i1695, 1 br label %for.cond.i.i.i1689, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1729: ; preds = %cleanup26.i.i.i1720 %retval.sroa.6.1.i.i.i1721.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i1721, %cleanup26.i.i.i1720 ] %retval.sroa.2.1.i.i.i1722.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i1722, %cleanup26.i.i.i1720 ] %retval.sroa.8.1.i.i.i1723.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i1723, %cleanup26.i.i.i1720 ] %sub.ptr.lhs.cast.i.i.i.i1684 = ptrtoint ptr %End.0.i.i.i.i1680.lcssa to i64 %sub.ptr.sub.i.i.i.i1686 = sub i64 %sub.ptr.lhs.cast.i.i.i.i1684, %sub.ptr.rhs.cast.i.i.i.i134 fence acquire %683 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i1732 = shl i32 %retval.sroa.6.1.i.i.i1721.lcssa, 5 %idxprom.i18.i.i.i.i.i1733 = zext i32 %mul.i.i.i.i.i.i1732 to i64 %arrayidx.i19.i.i.i.i.i1734 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %683, i64 %idxprom.i18.i.i.i.i.i1733 %arrayidx.i21.i.i.i.i.i1735 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i1734, i64 %sh_prom.i.i.i.i store i64 %sub.ptr.sub.i.i.i.i1686, ptr %arrayidx.i21.i.i.i.i.i1735, align 8, !tbaa !67 %spec.select.i.i.i.i.i.i.i1736 = call i64 @llvm.umin.i64(i64 %sub.ptr.sub.i.i.i.i1686, i64 56) %arrayidx6.i.i.i.i.i.i.i1737 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i1735, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %arrayidx6.i.i.i.i.i.i.i1737, ptr nonnull align 1 %cond6, i64 %spec.select.i.i.i.i.i.i.i1736, i1 false) %tobool.not.i.i.i.i.i.i1738 = icmp eq i32 %retval.sroa.8.1.i.i.i1723.lcssa, 0 %conv.i.i.i.i.i.i1739 = zext i1 %tobool.not.i.i.i.i.i.i1738 to i32 fence release %684 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i1740 = zext i32 %retval.sroa.6.1.i.i.i1721.lcssa to i64 %arrayidx.i23.i.i.i.i.i1741 = getelementptr inbounds nuw i32, ptr %684, i64 %idxprom.i22.i.i.i.i.i1740 store atomic i32 %conv.i.i.i.i.i.i1739, ptr %arrayidx.i23.i.i.i.i.i1741 monotonic, align 4 %685 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i1742 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %685, i64 %idxprom.i22.i.i.i.i.i1740 %686 = load i64, ptr %arrayidx.i.i4.i.i1742, align 8, !tbaa !64 %conv.i.i7.i.i.i.i1743 = trunc i64 %686 to i32 %conv.i.i.i.i17.i.i.i.i1745 = trunc i64 %retval.sroa.2.1.i.i.i1722.lcssa to i32 %687 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i1745, i1 true) %iszero.i.i.i.i18.i.i.i.i1746 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i1745, 0 %sub.i.i.i.i19.i.i.i.i1747 = select i1 %iszero.i.i.i.i18.i.i.i.i1746, i32 -1, i32 %687 br label %while.cond.i.i.i.i1748 while.cond.i.i.i.i1748: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1760, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1729 %port.sroa.43.0.i.i1749 = phi i32 [ %conv.i.i.i.i.i.i1739, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1729 ], [ %conv.i.i39.i.i.i.i1761, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1760 ] %idx.0.i.i.i.i1750 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1729 ], [ %add.i.i.i.i1763, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1760 ] %cmp.i.i.i2.i1751 = icmp ult i64 %idx.0.i.i.i.i1750, %sub.ptr.sub.i.i.i.i1686 %688 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i1743, i1 %cmp.i.i.i2.i1751) %tobool.not.i.i.i.i1752 = icmp eq i32 %688, 0 %689 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i1753 = getelementptr inbounds nuw i32, ptr %689, i64 %idxprom.i22.i.i.i.i.i1740 %690 = load atomic i32, ptr %arrayidx.i22.i.i.i1753 monotonic, align 4 br i1 %tobool.not.i.i.i.i1752, label %cond.false.i.i.i1772, label %cond.false.i11.i.i.i.i1754 cond.false.i11.i.i.i.i1754: ; preds = %while.cond.i.i.i.i1748 %691 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1745, i32 %690, i32 %sub.i.i.i.i19.i.i.i.i1747, i32 31) %692 = icmp eq i32 %691, %port.sroa.43.0.i.i1749 br i1 %692, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1759, label %while.body.i.i33.i.i.i.i1755 while.body.i.i33.i.i.i.i1755: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1756, %cond.false.i11.i.i.i.i1754 %693 = phi ptr [ %694, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1756 ], [ %689, %cond.false.i11.i.i.i.i1754 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i1770, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1756 if.then.i.i.i48.i.i.i.i1770: ; preds = %while.body.i.i33.i.i.i.i1755 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i1771 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1756 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1756: ; preds = %if.then.i.i.i48.i.i.i.i1770, %while.body.i.i33.i.i.i.i1755 %694 = phi ptr [ %.pre.i.i.i.i1771, %if.then.i.i.i48.i.i.i.i1770 ], [ %693, %while.body.i.i33.i.i.i.i1755 ] %arrayidx.i.i.i35.i.i.i.i1757 = getelementptr inbounds nuw i32, ptr %694, i64 %idxprom.i22.i.i.i.i.i1740 %695 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i1757 monotonic, align 4 %696 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1745, i32 %695, i32 %sub.i.i.i.i19.i.i.i.i1747, i32 31) %cmp.i.not.i.i36.i.i.i.i1758 = icmp eq i32 %696, %port.sroa.43.0.i.i1749 br i1 %cmp.i.not.i.i36.i.i.i.i1758, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1759, label %while.body.i.i33.i.i.i.i1755, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1759: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1756, %cond.false.i11.i.i.i.i1754 fence acquire br i1 %cmp.i.i.i2.i1751, label %if.then.i.i20.i.i.i.i.i1764, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1760 if.then.i.i20.i.i.i.i.i1764: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1759 %add.ptr.i.i.i.i.i.i.i.i1765 = getelementptr inbounds nuw i8, ptr %cond6, i64 %idx.0.i.i.i.i1750 %sub.i.i.i.i.i.i.i1766 = sub nuw i64 %sub.ptr.sub.i.i.i.i1686, %idx.0.i.i.i.i1750 %spec.select.i.i.i47.i.i.i.i1767 = call i64 @llvm.umin.i64(i64 %sub.i.i.i.i.i.i.i1766, i64 64) %697 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i1768 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %697, i64 %idxprom.i18.i.i.i.i.i1733 %arrayidx.i22.i.i.i.i.i1769 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i1768, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr align 1 %arrayidx.i22.i.i.i.i.i1769, ptr nonnull align 1 %add.ptr.i.i.i.i.i.i.i.i1765, i64 %spec.select.i.i.i47.i.i.i.i1767, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1760 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1760: ; preds = %if.then.i.i20.i.i.i.i.i1764, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1759 %conv.i.i39.i.i.i.i1761 = xor i32 %port.sroa.43.0.i.i1749, 1 fence release %698 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i1762 = getelementptr inbounds nuw i32, ptr %698, i64 %idxprom.i22.i.i.i.i.i1740 store atomic i32 %conv.i.i39.i.i.i.i1761, ptr %arrayidx.i24.i.i.i.i.i1762 monotonic, align 4 %add.i.i.i.i1763 = add i64 %idx.0.i.i.i.i1750, 64 br label %while.cond.i.i.i.i1748, !llvm.loop !71 cond.false.i.i.i1772: ; preds = %while.cond.i.i.i.i1748 %port.sroa.43.0.i.i1749.lcssa = phi i32 [ %port.sroa.43.0.i.i1749, %while.cond.i.i.i.i1748 ] %.lcssa5668 = phi ptr [ %689, %while.cond.i.i.i.i1748 ] %.lcssa5667 = phi i32 [ %690, %while.cond.i.i.i.i1748 ] %699 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1745, i32 %.lcssa5667, i32 %sub.i.i.i.i19.i.i.i.i1747, i32 31) %700 = icmp eq i32 %699, %port.sroa.43.0.i.i1749.lcssa br i1 %700, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1797, label %while.body.i.i.i.i1773 while.body.i.i.i.i1773: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1774, %cond.false.i.i.i1772 %701 = phi ptr [ %702, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1774 ], [ %.lcssa5668, %cond.false.i.i.i1772 ] br i1 %343, label %if.then.i.i.i.i.i1787, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1774 if.then.i.i.i.i.i1787: ; preds = %while.body.i.i.i.i1773 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i1788 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1774 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1774: ; preds = %if.then.i.i.i.i.i1787, %while.body.i.i.i.i1773 %702 = phi ptr [ %.pre.i.i1788, %if.then.i.i.i.i.i1787 ], [ %701, %while.body.i.i.i.i1773 ] %arrayidx.i.i.i11.i.i1775 = getelementptr inbounds nuw i32, ptr %702, i64 %idxprom.i22.i.i.i.i.i1740 %703 = load atomic i32, ptr %arrayidx.i.i.i11.i.i1775 monotonic, align 4 %704 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1745, i32 %703, i32 %sub.i.i.i.i19.i.i.i.i1747, i32 31) %cmp.i.not.i.i.i.i1776 = icmp eq i32 %704, %port.sroa.43.0.i.i1749.lcssa br i1 %cmp.i.not.i.i.i.i1776, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1797, label %while.body.i.i.i.i1773, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1797: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1774, %cond.false.i.i.i1772 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1745) fence release %705 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i1722.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i1778 = icmp ne i64 %retval.sroa.2.1.i.i.i1722.lcssa, 0 %cmp2.i.i.i.i19.i.i1779 = icmp eq i64 %705, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i1780 = select i1 %iszero.i.i.i.i.i18.i.i1778, i1 %cmp2.i.i.i.i19.i.i1779, i1 false %div8.i.i.i21.i.i1781 = lshr i32 %retval.sroa.6.1.i.i.i1721.lcssa, 5 %706 = and i32 %retval.sroa.6.1.i.i.i1721.lcssa, 31 %idxprom.i.i.i22.i.i1782 = zext nneg i32 %div8.i.i.i21.i.i1781 to i64 %arrayidx.i.i.i23.i.i1783 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i1782 %conv4.i.i.i24.i.i1784 = zext i1 %cmp.i.i.i.i20.i.i1780 to i32 %shl.i.i.i25.i.i1785 = shl nuw i32 %conv4.i.i.i24.i.i1784, %706 %xor.i.i.i26.i.i1786 = xor i32 %shl.i.i.i25.i.i1785, -1 %707 = atomicrmw and ptr %arrayidx.i.i.i23.i.i1783, i32 %xor.i.i.i26.i.i1786 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1745) br label %for.cond.i.i.i.i1800 for.cond.i.i.i.i1800: ; preds = %for.cond.i.i.i.i1800, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1797 %End.0.i.i.i.i1801 = phi ptr [ %call18, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1797 ], [ %incdec.ptr.i.i.i.i1803, %for.cond.i.i.i.i1800 ] %708 = load i8, ptr %End.0.i.i.i.i1801, align 1, !tbaa !36 %cmp.i.i.i.i1802 = icmp eq i8 %708, 0 %incdec.ptr.i.i.i.i1803 = getelementptr inbounds nuw i8, ptr %End.0.i.i.i.i1801, i64 1 br i1 %cmp.i.i.i.i1802, label %for.cond.i.i.i1810.preheader, label %for.cond.i.i.i.i1800, !llvm.loop !101 for.cond.i.i.i1810.preheader: ; preds = %for.cond.i.i.i.i1800 %End.0.i.i.i.i1801.lcssa = phi ptr [ %End.0.i.i.i.i1801, %for.cond.i.i.i.i1800 ] br label %for.cond.i.i.i1810 for.cond.i.i.i1810: ; preds = %for.inc.i.i.i1845, %for.cond.i.i.i1810.preheader %retval.sroa.6.0.i.i.i1811 = phi i32 [ %retval.sroa.6.2.i.i.i1846, %for.inc.i.i.i1845 ], [ undef, %for.cond.i.i.i1810.preheader ] %retval.sroa.2.0.i.i.i1812 = phi i64 [ %retval.sroa.2.2.i.i.i1847, %for.inc.i.i.i1845 ], [ undef, %for.cond.i.i.i1810.preheader ] %retval.sroa.8.0.i.i.i1813 = phi i32 [ %retval.sroa.8.2.i.i.i1848, %for.inc.i.i.i1845 ], [ undef, %for.cond.i.i.i1810.preheader ] %index.0.i.i.i1814 = phi i32 [ %inc.i.i.i1849, %for.inc.i.i.i1845 ], [ 0, %for.cond.i.i.i1810.preheader ] %709 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i1815 = icmp ult i32 %index.0.i.i.i1814, %709 %spec.store.select.i.i.i1816 = select i1 %cmp.not.i.i.i1815, i32 %index.0.i.i.i1814, i32 0 %710 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i1817 = zext i32 %710 to i64 %div8.i.i.i.i.i1818 = lshr i32 %spec.store.select.i.i.i1816, 5 %711 = and i32 %spec.store.select.i.i.i1816, 31 %idxprom.i.i.i.i.i1819 = zext nneg i32 %div8.i.i.i.i.i1818 to i64 %arrayidx.i.i.i.i.i1820 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i1819 %712 = lshr i32 %710, %2 %conv4.i.i.i.i.i1821 = and i32 %712, 1 %shl.i.i.i.i.i1822 = shl nuw i32 %conv4.i.i.i.i.i1821, %711 %713 = atomicrmw or ptr %arrayidx.i.i.i.i.i1820, i32 %shl.i.i.i.i.i1822 monotonic, align 4 %shl5.i.i.i.i.i1823 = shl nuw i32 1, %711 %and.i.i.i.i.i1824 = and i32 %shl5.i.i.i.i.i1823, %713 %tobool3.i.i.i.i1825 = icmp ne i32 %and.i.i.i.i.i1824, 0 %714 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %710, i1 %tobool3.i.i.i.i1825) %cmp.i.not.i.i.i1826 = icmp eq i32 %710, %714 br i1 %cmp.i.not.i.i.i1826, label %for.inc.i.i.i1845, label %if.then.i.i.i.i1827 if.then.i.i.i.i1827: ; preds = %for.cond.i.i.i1810 fence acquire %715 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i1828 = zext i32 %spec.store.select.i.i.i1816 to i64 %arrayidx.i.i.i.i1829 = getelementptr inbounds nuw i32, ptr %715, i64 %idxprom.i.i.i.i1828 %716 = load atomic i32, ptr %arrayidx.i.i.i.i1829 monotonic, align 4 %717 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %710, i1 true) %iszero.i.i.i.i.i.i1830 = icmp eq i32 %710, 0 %sub.i.i.i.i.i.i1831 = select i1 %iszero.i.i.i.i.i.i1830, i32 -1, i32 %717 %718 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %710, i32 %716, i32 %sub.i.i.i.i.i.i1831, i32 31) %719 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i1832 = getelementptr inbounds nuw i32, ptr %719, i64 %idxprom.i.i.i.i1828 %720 = load atomic i32, ptr %arrayidx.i45.i.i.i1832 monotonic, align 4 %721 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %710, i32 %720, i32 %sub.i.i.i.i.i.i1831, i32 31) %cmp.i48.not.i.i.i1833 = icmp eq i32 %718, %721 br i1 %cmp.i48.not.i.i.i1833, label %if.end14.i.i.i1910, label %if.then12.i.i.i1834 if.then12.i.i.i1834: ; preds = %if.then.i.i.i.i1827 fence release %722 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1817, i1 true) %iszero.i.i.i.i.i.i.i1835 = icmp ne i32 %710, 0 %cmp2.i.i.i.i.i.i1836 = icmp eq i64 %722, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i1837 = select i1 %iszero.i.i.i.i.i.i.i1835, i1 %cmp2.i.i.i.i.i.i1836, i1 false %conv4.i.i53.i.i.i1838 = zext i1 %cmp.i.i.i.i.i.i1837 to i32 %shl.i.i54.i.i.i1839 = shl nuw i32 %conv4.i.i53.i.i.i1838, %711 %xor.i.i.i.i.i1840 = xor i32 %shl.i.i54.i.i.i1839, -1 %723 = atomicrmw and ptr %arrayidx.i.i.i.i.i1820, i32 %xor.i.i.i.i.i1840 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %710) br label %cleanup26.i.i.i1841 if.end14.i.i.i1910: ; preds = %if.then.i.i.i.i1827 %724 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1817, i1 true) %iszero.i.i.i56.i.i.i1911 = icmp ne i32 %710, 0 %cmp2.i.i.i.i.i1912 = icmp eq i64 %724, %sh_prom.i.i.i.i %cmp.i.i.i.i.i1913 = select i1 %iszero.i.i.i56.i.i.i1911, i1 %cmp2.i.i.i.i.i1912, i1 false br i1 %cmp.i.i.i.i.i1913, label %if.then16.i.i.i1915, label %if.end22.i.i.i1914 if.then16.i.i.i1915: ; preds = %if.end14.i.i.i1910 %725 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i1916 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %725, i64 %idxprom.i.i.i.i1828, i32 1 store i32 1660944387, ptr %opcode.i.i.i1916, align 8, !tbaa !61 %arrayidx21.i.i.i1917 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %725, i64 %idxprom.i.i.i.i1828 store i64 %conv.i.i.i.i.i1817, ptr %arrayidx21.i.i.i1917, align 8, !tbaa !64 br label %if.end22.i.i.i1914 if.end22.i.i.i1914: ; preds = %if.then16.i.i.i1915, %if.end14.i.i.i1910 call void @llvm.nvvm.bar.warp.sync(i32 %710) br label %cleanup26.i.i.i1841 cleanup26.i.i.i1841: ; preds = %if.end22.i.i.i1914, %if.then12.i.i.i1834 %retval.sroa.6.1.i.i.i1842 = phi i32 [ %retval.sroa.6.0.i.i.i1811, %if.then12.i.i.i1834 ], [ %spec.store.select.i.i.i1816, %if.end22.i.i.i1914 ] %retval.sroa.2.1.i.i.i1843 = phi i64 [ %retval.sroa.2.0.i.i.i1812, %if.then12.i.i.i1834 ], [ %conv.i.i.i.i.i1817, %if.end22.i.i.i1914 ] %retval.sroa.8.1.i.i.i1844 = phi i32 [ %retval.sroa.8.0.i.i.i1813, %if.then12.i.i.i1834 ], [ %718, %if.end22.i.i.i1914 ] br i1 %cmp.i48.not.i.i.i1833, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1850, label %for.inc.i.i.i1845 for.inc.i.i.i1845: ; preds = %cleanup26.i.i.i1841, %for.cond.i.i.i1810 %retval.sroa.6.2.i.i.i1846 = phi i32 [ %retval.sroa.6.1.i.i.i1842, %cleanup26.i.i.i1841 ], [ %retval.sroa.6.0.i.i.i1811, %for.cond.i.i.i1810 ] %retval.sroa.2.2.i.i.i1847 = phi i64 [ %retval.sroa.2.1.i.i.i1843, %cleanup26.i.i.i1841 ], [ %retval.sroa.2.0.i.i.i1812, %for.cond.i.i.i1810 ] %retval.sroa.8.2.i.i.i1848 = phi i32 [ %retval.sroa.8.1.i.i.i1844, %cleanup26.i.i.i1841 ], [ %retval.sroa.8.0.i.i.i1813, %for.cond.i.i.i1810 ] %inc.i.i.i1849 = add i32 %spec.store.select.i.i.i1816, 1 br label %for.cond.i.i.i1810, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1850: ; preds = %cleanup26.i.i.i1841 %retval.sroa.6.1.i.i.i1842.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i1842, %cleanup26.i.i.i1841 ] %retval.sroa.2.1.i.i.i1843.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i1843, %cleanup26.i.i.i1841 ] %retval.sroa.8.1.i.i.i1844.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i1844, %cleanup26.i.i.i1841 ] %sub.ptr.lhs.cast.i.i.i.i1805 = ptrtoint ptr %End.0.i.i.i.i1801.lcssa to i64 %sub.ptr.sub.i.i.i.i1807 = sub i64 %sub.ptr.lhs.cast.i.i.i.i1805, %sub.ptr.rhs.cast.i.i.i.i1210 fence acquire %726 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i1853 = shl i32 %retval.sroa.6.1.i.i.i1842.lcssa, 5 %idxprom.i18.i.i.i.i.i1854 = zext i32 %mul.i.i.i.i.i.i1853 to i64 %arrayidx.i19.i.i.i.i.i1855 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %726, i64 %idxprom.i18.i.i.i.i.i1854 %arrayidx.i21.i.i.i.i.i1856 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i1855, i64 %sh_prom.i.i.i.i store i64 %sub.ptr.sub.i.i.i.i1807, ptr %arrayidx.i21.i.i.i.i.i1856, align 8, !tbaa !67 %spec.select.i.i.i.i.i.i.i1857 = call i64 @llvm.umin.i64(i64 %sub.ptr.sub.i.i.i.i1807, i64 56) %arrayidx6.i.i.i.i.i.i.i1858 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i1856, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %arrayidx6.i.i.i.i.i.i.i1858, ptr align 1 %call18, i64 %spec.select.i.i.i.i.i.i.i1857, i1 false) %tobool.not.i.i.i.i.i.i1859 = icmp eq i32 %retval.sroa.8.1.i.i.i1844.lcssa, 0 %conv.i.i.i.i.i.i1860 = zext i1 %tobool.not.i.i.i.i.i.i1859 to i32 fence release %727 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i1861 = zext i32 %retval.sroa.6.1.i.i.i1842.lcssa to i64 %arrayidx.i23.i.i.i.i.i1862 = getelementptr inbounds nuw i32, ptr %727, i64 %idxprom.i22.i.i.i.i.i1861 store atomic i32 %conv.i.i.i.i.i.i1860, ptr %arrayidx.i23.i.i.i.i.i1862 monotonic, align 4 %728 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i1863 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %728, i64 %idxprom.i22.i.i.i.i.i1861 %729 = load i64, ptr %arrayidx.i.i4.i.i1863, align 8, !tbaa !64 %conv.i.i7.i.i.i.i1864 = trunc i64 %729 to i32 %conv.i.i.i.i17.i.i.i.i1866 = trunc i64 %retval.sroa.2.1.i.i.i1843.lcssa to i32 %730 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i1866, i1 true) %iszero.i.i.i.i18.i.i.i.i1867 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i1866, 0 %sub.i.i.i.i19.i.i.i.i1868 = select i1 %iszero.i.i.i.i18.i.i.i.i1867, i32 -1, i32 %730 br label %while.cond.i.i.i.i1869 while.cond.i.i.i.i1869: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1881, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1850 %port.sroa.43.0.i.i1870 = phi i32 [ %conv.i.i.i.i.i.i1860, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1850 ], [ %conv.i.i39.i.i.i.i1882, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1881 ] %idx.0.i.i.i.i1871 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1850 ], [ %add.i.i.i.i1884, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1881 ] %cmp.i.i.i2.i1872 = icmp ult i64 %idx.0.i.i.i.i1871, %sub.ptr.sub.i.i.i.i1807 %731 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i1864, i1 %cmp.i.i.i2.i1872) %tobool.not.i.i.i.i1873 = icmp eq i32 %731, 0 %732 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i1874 = getelementptr inbounds nuw i32, ptr %732, i64 %idxprom.i22.i.i.i.i.i1861 %733 = load atomic i32, ptr %arrayidx.i22.i.i.i1874 monotonic, align 4 br i1 %tobool.not.i.i.i.i1873, label %cond.false.i.i.i1893, label %cond.false.i11.i.i.i.i1875 cond.false.i11.i.i.i.i1875: ; preds = %while.cond.i.i.i.i1869 %734 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1866, i32 %733, i32 %sub.i.i.i.i19.i.i.i.i1868, i32 31) %735 = icmp eq i32 %734, %port.sroa.43.0.i.i1870 br i1 %735, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1880, label %while.body.i.i33.i.i.i.i1876 while.body.i.i33.i.i.i.i1876: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1877, %cond.false.i11.i.i.i.i1875 %736 = phi ptr [ %737, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1877 ], [ %732, %cond.false.i11.i.i.i.i1875 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i1891, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1877 if.then.i.i.i48.i.i.i.i1891: ; preds = %while.body.i.i33.i.i.i.i1876 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i1892 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1877 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1877: ; preds = %if.then.i.i.i48.i.i.i.i1891, %while.body.i.i33.i.i.i.i1876 %737 = phi ptr [ %.pre.i.i.i.i1892, %if.then.i.i.i48.i.i.i.i1891 ], [ %736, %while.body.i.i33.i.i.i.i1876 ] %arrayidx.i.i.i35.i.i.i.i1878 = getelementptr inbounds nuw i32, ptr %737, i64 %idxprom.i22.i.i.i.i.i1861 %738 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i1878 monotonic, align 4 %739 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1866, i32 %738, i32 %sub.i.i.i.i19.i.i.i.i1868, i32 31) %cmp.i.not.i.i36.i.i.i.i1879 = icmp eq i32 %739, %port.sroa.43.0.i.i1870 br i1 %cmp.i.not.i.i36.i.i.i.i1879, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1880, label %while.body.i.i33.i.i.i.i1876, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1880: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1877, %cond.false.i11.i.i.i.i1875 fence acquire br i1 %cmp.i.i.i2.i1872, label %if.then.i.i20.i.i.i.i.i1885, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1881 if.then.i.i20.i.i.i.i.i1885: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1880 %add.ptr.i.i.i.i.i.i.i.i1886 = getelementptr inbounds nuw i8, ptr %call18, i64 %idx.0.i.i.i.i1871 %sub.i.i.i.i.i.i.i1887 = sub nuw i64 %sub.ptr.sub.i.i.i.i1807, %idx.0.i.i.i.i1871 %spec.select.i.i.i47.i.i.i.i1888 = call i64 @llvm.umin.i64(i64 %sub.i.i.i.i.i.i.i1887, i64 64) %740 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i1889 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %740, i64 %idxprom.i18.i.i.i.i.i1854 %arrayidx.i22.i.i.i.i.i1890 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i1889, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr align 1 %arrayidx.i22.i.i.i.i.i1890, ptr align 1 %add.ptr.i.i.i.i.i.i.i.i1886, i64 %spec.select.i.i.i47.i.i.i.i1888, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1881 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1881: ; preds = %if.then.i.i20.i.i.i.i.i1885, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1880 %conv.i.i39.i.i.i.i1882 = xor i32 %port.sroa.43.0.i.i1870, 1 fence release %741 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i1883 = getelementptr inbounds nuw i32, ptr %741, i64 %idxprom.i22.i.i.i.i.i1861 store atomic i32 %conv.i.i39.i.i.i.i1882, ptr %arrayidx.i24.i.i.i.i.i1883 monotonic, align 4 %add.i.i.i.i1884 = add i64 %idx.0.i.i.i.i1871, 64 br label %while.cond.i.i.i.i1869, !llvm.loop !71 cond.false.i.i.i1893: ; preds = %while.cond.i.i.i.i1869 %port.sroa.43.0.i.i1870.lcssa = phi i32 [ %port.sroa.43.0.i.i1870, %while.cond.i.i.i.i1869 ] %.lcssa5670 = phi ptr [ %732, %while.cond.i.i.i.i1869 ] %.lcssa5669 = phi i32 [ %733, %while.cond.i.i.i.i1869 ] %742 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1866, i32 %.lcssa5669, i32 %sub.i.i.i.i19.i.i.i.i1868, i32 31) %743 = icmp eq i32 %742, %port.sroa.43.0.i.i1870.lcssa br i1 %743, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1918, label %while.body.i.i.i.i1894 while.body.i.i.i.i1894: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1895, %cond.false.i.i.i1893 %744 = phi ptr [ %745, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1895 ], [ %.lcssa5670, %cond.false.i.i.i1893 ] br i1 %343, label %if.then.i.i.i.i.i1908, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1895 if.then.i.i.i.i.i1908: ; preds = %while.body.i.i.i.i1894 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i1909 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1895 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1895: ; preds = %if.then.i.i.i.i.i1908, %while.body.i.i.i.i1894 %745 = phi ptr [ %.pre.i.i1909, %if.then.i.i.i.i.i1908 ], [ %744, %while.body.i.i.i.i1894 ] %arrayidx.i.i.i11.i.i1896 = getelementptr inbounds nuw i32, ptr %745, i64 %idxprom.i22.i.i.i.i.i1861 %746 = load atomic i32, ptr %arrayidx.i.i.i11.i.i1896 monotonic, align 4 %747 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1866, i32 %746, i32 %sub.i.i.i.i19.i.i.i.i1868, i32 31) %cmp.i.not.i.i.i.i1897 = icmp eq i32 %747, %port.sroa.43.0.i.i1870.lcssa br i1 %cmp.i.not.i.i.i.i1897, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1918, label %while.body.i.i.i.i1894, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1918: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i1895, %cond.false.i.i.i1893 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1866) fence release %748 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i1843.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i1899 = icmp ne i64 %retval.sroa.2.1.i.i.i1843.lcssa, 0 %cmp2.i.i.i.i19.i.i1900 = icmp eq i64 %748, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i1901 = select i1 %iszero.i.i.i.i.i18.i.i1899, i1 %cmp2.i.i.i.i19.i.i1900, i1 false %div8.i.i.i21.i.i1902 = lshr i32 %retval.sroa.6.1.i.i.i1842.lcssa, 5 %749 = and i32 %retval.sroa.6.1.i.i.i1842.lcssa, 31 %idxprom.i.i.i22.i.i1903 = zext nneg i32 %div8.i.i.i21.i.i1902 to i64 %arrayidx.i.i.i23.i.i1904 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i1903 %conv4.i.i.i24.i.i1905 = zext i1 %cmp.i.i.i.i20.i.i1901 to i32 %shl.i.i.i25.i.i1906 = shl nuw i32 %conv4.i.i.i24.i.i1905, %749 %xor.i.i.i26.i.i1907 = xor i32 %shl.i.i.i25.i.i1906, -1 %750 = atomicrmw and ptr %arrayidx.i.i.i23.i.i1904, i32 %xor.i.i.i26.i.i1907 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1866) call void @llvm.lifetime.start.p0(ptr nonnull %ch.addr.i1921) store i8 10, ptr %ch.addr.i1921, align 1, !tbaa !36 br label %for.cond.i.i.i1924 for.cond.i.i.i1924: ; preds = %for.inc.i.i.i1959, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1918 %retval.sroa.6.0.i.i.i1925 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1918 ], [ %retval.sroa.6.2.i.i.i1960, %for.inc.i.i.i1959 ] %retval.sroa.2.0.i.i.i1926 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1918 ], [ %retval.sroa.2.2.i.i.i1961, %for.inc.i.i.i1959 ] %retval.sroa.8.0.i.i.i1927 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1918 ], [ %retval.sroa.8.2.i.i.i1962, %for.inc.i.i.i1959 ] %index.0.i.i.i1928 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit1918 ], [ %inc.i.i.i1963, %for.inc.i.i.i1959 ] %751 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i1929 = icmp ult i32 %index.0.i.i.i1928, %751 %spec.store.select.i.i.i1930 = select i1 %cmp.not.i.i.i1929, i32 %index.0.i.i.i1928, i32 0 %752 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i1931 = zext i32 %752 to i64 %div8.i.i.i.i.i1932 = lshr i32 %spec.store.select.i.i.i1930, 5 %753 = and i32 %spec.store.select.i.i.i1930, 31 %idxprom.i.i.i.i.i1933 = zext nneg i32 %div8.i.i.i.i.i1932 to i64 %arrayidx.i.i.i.i.i1934 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i1933 %754 = lshr i32 %752, %2 %conv4.i.i.i.i.i1935 = and i32 %754, 1 %shl.i.i.i.i.i1936 = shl nuw i32 %conv4.i.i.i.i.i1935, %753 %755 = atomicrmw or ptr %arrayidx.i.i.i.i.i1934, i32 %shl.i.i.i.i.i1936 monotonic, align 4 %shl5.i.i.i.i.i1937 = shl nuw i32 1, %753 %and.i.i.i.i.i1938 = and i32 %shl5.i.i.i.i.i1937, %755 %tobool3.i.i.i.i1939 = icmp ne i32 %and.i.i.i.i.i1938, 0 %756 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %752, i1 %tobool3.i.i.i.i1939) %cmp.i.not.i.i.i1940 = icmp eq i32 %752, %756 br i1 %cmp.i.not.i.i.i1940, label %for.inc.i.i.i1959, label %if.then.i.i.i.i1941 if.then.i.i.i.i1941: ; preds = %for.cond.i.i.i1924 fence acquire %757 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i1942 = zext i32 %spec.store.select.i.i.i1930 to i64 %arrayidx.i.i.i.i1943 = getelementptr inbounds nuw i32, ptr %757, i64 %idxprom.i.i.i.i1942 %758 = load atomic i32, ptr %arrayidx.i.i.i.i1943 monotonic, align 4 %759 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %752, i1 true) %iszero.i.i.i.i.i.i1944 = icmp eq i32 %752, 0 %sub.i.i.i.i.i.i1945 = select i1 %iszero.i.i.i.i.i.i1944, i32 -1, i32 %759 %760 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %752, i32 %758, i32 %sub.i.i.i.i.i.i1945, i32 31) %761 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i1946 = getelementptr inbounds nuw i32, ptr %761, i64 %idxprom.i.i.i.i1942 %762 = load atomic i32, ptr %arrayidx.i45.i.i.i1946 monotonic, align 4 %763 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %752, i32 %762, i32 %sub.i.i.i.i.i.i1945, i32 31) %cmp.i48.not.i.i.i1947 = icmp eq i32 %760, %763 br i1 %cmp.i48.not.i.i.i1947, label %if.end14.i.i.i2024, label %if.then12.i.i.i1948 if.then12.i.i.i1948: ; preds = %if.then.i.i.i.i1941 fence release %764 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1931, i1 true) %iszero.i.i.i.i.i.i.i1949 = icmp ne i32 %752, 0 %cmp2.i.i.i.i.i.i1950 = icmp eq i64 %764, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i1951 = select i1 %iszero.i.i.i.i.i.i.i1949, i1 %cmp2.i.i.i.i.i.i1950, i1 false %conv4.i.i53.i.i.i1952 = zext i1 %cmp.i.i.i.i.i.i1951 to i32 %shl.i.i54.i.i.i1953 = shl nuw i32 %conv4.i.i53.i.i.i1952, %753 %xor.i.i.i.i.i1954 = xor i32 %shl.i.i54.i.i.i1953, -1 %765 = atomicrmw and ptr %arrayidx.i.i.i.i.i1934, i32 %xor.i.i.i.i.i1954 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %752) br label %cleanup26.i.i.i1955 if.end14.i.i.i2024: ; preds = %if.then.i.i.i.i1941 %766 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i1931, i1 true) %iszero.i.i.i56.i.i.i2025 = icmp ne i32 %752, 0 %cmp2.i.i.i.i.i2026 = icmp eq i64 %766, %sh_prom.i.i.i.i %cmp.i.i.i.i.i2027 = select i1 %iszero.i.i.i56.i.i.i2025, i1 %cmp2.i.i.i.i.i2026, i1 false br i1 %cmp.i.i.i.i.i2027, label %if.then16.i.i.i2029, label %if.end22.i.i.i2028 if.then16.i.i.i2029: ; preds = %if.end14.i.i.i2024 %767 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i2030 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %767, i64 %idxprom.i.i.i.i1942, i32 1 store i32 1660944387, ptr %opcode.i.i.i2030, align 8, !tbaa !61 %arrayidx21.i.i.i2031 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %767, i64 %idxprom.i.i.i.i1942 store i64 %conv.i.i.i.i.i1931, ptr %arrayidx21.i.i.i2031, align 8, !tbaa !64 br label %if.end22.i.i.i2028 if.end22.i.i.i2028: ; preds = %if.then16.i.i.i2029, %if.end14.i.i.i2024 call void @llvm.nvvm.bar.warp.sync(i32 %752) br label %cleanup26.i.i.i1955 cleanup26.i.i.i1955: ; preds = %if.end22.i.i.i2028, %if.then12.i.i.i1948 %retval.sroa.6.1.i.i.i1956 = phi i32 [ %retval.sroa.6.0.i.i.i1925, %if.then12.i.i.i1948 ], [ %spec.store.select.i.i.i1930, %if.end22.i.i.i2028 ] %retval.sroa.2.1.i.i.i1957 = phi i64 [ %retval.sroa.2.0.i.i.i1926, %if.then12.i.i.i1948 ], [ %conv.i.i.i.i.i1931, %if.end22.i.i.i2028 ] %retval.sroa.8.1.i.i.i1958 = phi i32 [ %retval.sroa.8.0.i.i.i1927, %if.then12.i.i.i1948 ], [ %760, %if.end22.i.i.i2028 ] br i1 %cmp.i48.not.i.i.i1947, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1964, label %for.inc.i.i.i1959 for.inc.i.i.i1959: ; preds = %cleanup26.i.i.i1955, %for.cond.i.i.i1924 %retval.sroa.6.2.i.i.i1960 = phi i32 [ %retval.sroa.6.1.i.i.i1956, %cleanup26.i.i.i1955 ], [ %retval.sroa.6.0.i.i.i1925, %for.cond.i.i.i1924 ] %retval.sroa.2.2.i.i.i1961 = phi i64 [ %retval.sroa.2.1.i.i.i1957, %cleanup26.i.i.i1955 ], [ %retval.sroa.2.0.i.i.i1926, %for.cond.i.i.i1924 ] %retval.sroa.8.2.i.i.i1962 = phi i32 [ %retval.sroa.8.1.i.i.i1958, %cleanup26.i.i.i1955 ], [ %retval.sroa.8.0.i.i.i1927, %for.cond.i.i.i1924 ] %inc.i.i.i1963 = add i32 %spec.store.select.i.i.i1930, 1 br label %for.cond.i.i.i1924, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1964: ; preds = %cleanup26.i.i.i1955 %retval.sroa.6.1.i.i.i1956.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i1956, %cleanup26.i.i.i1955 ] %retval.sroa.2.1.i.i.i1957.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i1957, %cleanup26.i.i.i1955 ] %retval.sroa.8.1.i.i.i1958.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i1958, %cleanup26.i.i.i1955 ] fence acquire %768 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i1967 = shl i32 %retval.sroa.6.1.i.i.i1956.lcssa, 5 %idxprom.i18.i.i.i.i.i1968 = zext i32 %mul.i.i.i.i.i.i1967 to i64 %arrayidx.i19.i.i.i.i.i1969 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %768, i64 %idxprom.i18.i.i.i.i.i1968 %arrayidx.i21.i.i.i.i.i1970 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i1969, i64 %sh_prom.i.i.i.i store i64 1, ptr %arrayidx.i21.i.i.i.i.i1970, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i1972 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i1970, i64 8 %769 = load i8, ptr %ch.addr.i1921, align 1 store i8 %769, ptr %arrayidx6.i.i.i.i.i.i.i1972, align 8 %tobool.not.i.i.i.i.i.i1973 = icmp eq i32 %retval.sroa.8.1.i.i.i1958.lcssa, 0 %conv.i.i.i.i.i.i1974 = zext i1 %tobool.not.i.i.i.i.i.i1973 to i32 fence release %770 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i1975 = zext i32 %retval.sroa.6.1.i.i.i1956.lcssa to i64 %arrayidx.i23.i.i.i.i.i1976 = getelementptr inbounds nuw i32, ptr %770, i64 %idxprom.i22.i.i.i.i.i1975 store atomic i32 %conv.i.i.i.i.i.i1974, ptr %arrayidx.i23.i.i.i.i.i1976 monotonic, align 4 %771 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i1977 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %771, i64 %idxprom.i22.i.i.i.i.i1975 %772 = load i64, ptr %arrayidx.i.i4.i.i1977, align 8, !tbaa !64 %conv.i.i7.i.i.i.i1978 = trunc i64 %772 to i32 %conv.i.i.i.i17.i.i.i.i1980 = trunc i64 %retval.sroa.2.1.i.i.i1957.lcssa to i32 %773 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i1980, i1 true) %iszero.i.i.i.i18.i.i.i.i1981 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i1980, 0 %sub.i.i.i.i19.i.i.i.i1982 = select i1 %iszero.i.i.i.i18.i.i.i.i1981, i32 -1, i32 %773 br label %while.cond.i.i.i.i1983 while.cond.i.i.i.i1983: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1995, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1964 %port.sroa.43.0.i.i1984 = phi i32 [ %conv.i.i.i.i.i.i1974, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1964 ], [ %conv.i.i39.i.i.i.i1996, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1995 ] %idx.0.i.i.i.i1985 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i1964 ], [ %add.i.i.i.i1998, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1995 ] %cmp.i.i.i.i1986 = icmp eq i64 %idx.0.i.i.i.i1985, 0 %774 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i1978, i1 %cmp.i.i.i.i1986) %tobool.not.i.i.i.i1987 = icmp eq i32 %774, 0 %775 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i1988 = getelementptr inbounds nuw i32, ptr %775, i64 %idxprom.i22.i.i.i.i.i1975 %776 = load atomic i32, ptr %arrayidx.i22.i.i.i1988 monotonic, align 4 br i1 %tobool.not.i.i.i.i1987, label %cond.false.i.i.i2007, label %cond.false.i11.i.i.i.i1989 cond.false.i11.i.i.i.i1989: ; preds = %while.cond.i.i.i.i1983 %777 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1980, i32 %776, i32 %sub.i.i.i.i19.i.i.i.i1982, i32 31) %778 = icmp eq i32 %777, %port.sroa.43.0.i.i1984 br i1 %778, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1994, label %while.body.i.i33.i.i.i.i1990 while.body.i.i33.i.i.i.i1990: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1991, %cond.false.i11.i.i.i.i1989 %779 = phi ptr [ %780, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1991 ], [ %775, %cond.false.i11.i.i.i.i1989 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i2005, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1991 if.then.i.i.i48.i.i.i.i2005: ; preds = %while.body.i.i33.i.i.i.i1990 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i2006 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1991 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1991: ; preds = %if.then.i.i.i48.i.i.i.i2005, %while.body.i.i33.i.i.i.i1990 %780 = phi ptr [ %.pre.i.i.i.i2006, %if.then.i.i.i48.i.i.i.i2005 ], [ %779, %while.body.i.i33.i.i.i.i1990 ] %arrayidx.i.i.i35.i.i.i.i1992 = getelementptr inbounds nuw i32, ptr %780, i64 %idxprom.i22.i.i.i.i.i1975 %781 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i1992 monotonic, align 4 %782 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1980, i32 %781, i32 %sub.i.i.i.i19.i.i.i.i1982, i32 31) %cmp.i.not.i.i36.i.i.i.i1993 = icmp eq i32 %782, %port.sroa.43.0.i.i1984 br i1 %cmp.i.not.i.i36.i.i.i.i1993, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1994, label %while.body.i.i33.i.i.i.i1990, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1994: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i1991, %cond.false.i11.i.i.i.i1989 fence acquire br i1 %cmp.i.i.i.i1986, label %if.then.i.i20.i.i.i.i.i1999, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1995 if.then.i.i20.i.i.i.i.i1999: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1994 %783 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i2003 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %783, i64 %idxprom.i18.i.i.i.i.i1968 %arrayidx.i22.i.i.i.i.i2004 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i2003, i64 %sh_prom.i.i.i.i %784 = load i8, ptr %ch.addr.i1921, align 1 store i8 %784, ptr %arrayidx.i22.i.i.i.i.i2004, align 1 br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1995 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i1995: ; preds = %if.then.i.i20.i.i.i.i.i1999, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i1994 %conv.i.i39.i.i.i.i1996 = xor i32 %port.sroa.43.0.i.i1984, 1 fence release %785 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i1997 = getelementptr inbounds nuw i32, ptr %785, i64 %idxprom.i22.i.i.i.i.i1975 store atomic i32 %conv.i.i39.i.i.i.i1996, ptr %arrayidx.i24.i.i.i.i.i1997 monotonic, align 4 %add.i.i.i.i1998 = add i64 %idx.0.i.i.i.i1985, 64 br label %while.cond.i.i.i.i1983, !llvm.loop !71 cond.false.i.i.i2007: ; preds = %while.cond.i.i.i.i1983 %port.sroa.43.0.i.i1984.lcssa = phi i32 [ %port.sroa.43.0.i.i1984, %while.cond.i.i.i.i1983 ] %.lcssa5672 = phi ptr [ %775, %while.cond.i.i.i.i1983 ] %.lcssa5671 = phi i32 [ %776, %while.cond.i.i.i.i1983 ] %786 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1980, i32 %.lcssa5671, i32 %sub.i.i.i.i19.i.i.i.i1982, i32 31) %787 = icmp eq i32 %786, %port.sroa.43.0.i.i1984.lcssa br i1 %787, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit2032, label %while.body.i.i.i.i2008 while.body.i.i.i.i2008: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2009, %cond.false.i.i.i2007 %788 = phi ptr [ %789, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2009 ], [ %.lcssa5672, %cond.false.i.i.i2007 ] br i1 %343, label %if.then.i.i.i.i.i2022, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2009 if.then.i.i.i.i.i2022: ; preds = %while.body.i.i.i.i2008 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i2023 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2009 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2009: ; preds = %if.then.i.i.i.i.i2022, %while.body.i.i.i.i2008 %789 = phi ptr [ %.pre.i.i2023, %if.then.i.i.i.i.i2022 ], [ %788, %while.body.i.i.i.i2008 ] %arrayidx.i.i.i11.i.i2010 = getelementptr inbounds nuw i32, ptr %789, i64 %idxprom.i22.i.i.i.i.i1975 %790 = load atomic i32, ptr %arrayidx.i.i.i11.i.i2010 monotonic, align 4 %791 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i1980, i32 %790, i32 %sub.i.i.i.i19.i.i.i.i1982, i32 31) %cmp.i.not.i.i.i.i2011 = icmp eq i32 %791, %port.sroa.43.0.i.i1984.lcssa br i1 %cmp.i.not.i.i.i.i2011, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit2032, label %while.body.i.i.i.i2008, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit2032: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2009, %cond.false.i.i.i2007 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1980) fence release %792 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i1957.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i2013 = icmp ne i64 %retval.sroa.2.1.i.i.i1957.lcssa, 0 %cmp2.i.i.i.i19.i.i2014 = icmp eq i64 %792, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i2015 = select i1 %iszero.i.i.i.i.i18.i.i2013, i1 %cmp2.i.i.i.i19.i.i2014, i1 false %div8.i.i.i21.i.i2016 = lshr i32 %retval.sroa.6.1.i.i.i1956.lcssa, 5 %793 = and i32 %retval.sroa.6.1.i.i.i1956.lcssa, 31 %idxprom.i.i.i22.i.i2017 = zext nneg i32 %div8.i.i.i21.i.i2016 to i64 %arrayidx.i.i.i23.i.i2018 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i2017 %conv4.i.i.i24.i.i2019 = zext i1 %cmp.i.i.i.i20.i.i2015 to i32 %shl.i.i.i25.i.i2020 = shl nuw i32 %conv4.i.i.i24.i.i2019, %793 %xor.i.i.i26.i.i2021 = xor i32 %shl.i.i.i25.i.i2020, -1 %794 = atomicrmw and ptr %arrayidx.i.i.i23.i.i2018, i32 %xor.i.i.i26.i.i2021 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i1980) call void @llvm.lifetime.end.p0(ptr nonnull %ch.addr.i1921) %inc = add nsw i32 %FailCount.0204, 1 br label %sw.epilog for.cond.i.i.i.i2035: ; preds = %for.cond.i.i.i.i2035, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit %End.0.i.i.i.i2036 = phi ptr [ %incdec.ptr.i.i.i.i2038, %for.cond.i.i.i.i2035 ], [ %cond, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit ] %795 = load i8, ptr %End.0.i.i.i.i2036, align 1, !tbaa !36 %cmp.i.i.i.i2037 = icmp eq i8 %795, 0 %incdec.ptr.i.i.i.i2038 = getelementptr inbounds nuw i8, ptr %End.0.i.i.i.i2036, i64 1 br i1 %cmp.i.i.i.i2037, label %for.cond.i.i.i2045.preheader, label %for.cond.i.i.i.i2035, !llvm.loop !101 for.cond.i.i.i2045.preheader: ; preds = %for.cond.i.i.i.i2035 %End.0.i.i.i.i2036.lcssa = phi ptr [ %End.0.i.i.i.i2036, %for.cond.i.i.i.i2035 ] br label %for.cond.i.i.i2045 for.cond.i.i.i2045: ; preds = %for.inc.i.i.i2080, %for.cond.i.i.i2045.preheader %retval.sroa.6.0.i.i.i2046 = phi i32 [ %retval.sroa.6.2.i.i.i2081, %for.inc.i.i.i2080 ], [ undef, %for.cond.i.i.i2045.preheader ] %retval.sroa.2.0.i.i.i2047 = phi i64 [ %retval.sroa.2.2.i.i.i2082, %for.inc.i.i.i2080 ], [ undef, %for.cond.i.i.i2045.preheader ] %retval.sroa.8.0.i.i.i2048 = phi i32 [ %retval.sroa.8.2.i.i.i2083, %for.inc.i.i.i2080 ], [ undef, %for.cond.i.i.i2045.preheader ] %index.0.i.i.i2049 = phi i32 [ %inc.i.i.i2084, %for.inc.i.i.i2080 ], [ 0, %for.cond.i.i.i2045.preheader ] %796 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i2050 = icmp ult i32 %index.0.i.i.i2049, %796 %spec.store.select.i.i.i2051 = select i1 %cmp.not.i.i.i2050, i32 %index.0.i.i.i2049, i32 0 %797 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i2052 = zext i32 %797 to i64 %div8.i.i.i.i.i2053 = lshr i32 %spec.store.select.i.i.i2051, 5 %798 = and i32 %spec.store.select.i.i.i2051, 31 %idxprom.i.i.i.i.i2054 = zext nneg i32 %div8.i.i.i.i.i2053 to i64 %arrayidx.i.i.i.i.i2055 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i2054 %799 = lshr i32 %797, %2 %conv4.i.i.i.i.i2056 = and i32 %799, 1 %shl.i.i.i.i.i2057 = shl nuw i32 %conv4.i.i.i.i.i2056, %798 %800 = atomicrmw or ptr %arrayidx.i.i.i.i.i2055, i32 %shl.i.i.i.i.i2057 monotonic, align 4 %shl5.i.i.i.i.i2058 = shl nuw i32 1, %798 %and.i.i.i.i.i2059 = and i32 %shl5.i.i.i.i.i2058, %800 %tobool3.i.i.i.i2060 = icmp ne i32 %and.i.i.i.i.i2059, 0 %801 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %797, i1 %tobool3.i.i.i.i2060) %cmp.i.not.i.i.i2061 = icmp eq i32 %797, %801 br i1 %cmp.i.not.i.i.i2061, label %for.inc.i.i.i2080, label %if.then.i.i.i.i2062 if.then.i.i.i.i2062: ; preds = %for.cond.i.i.i2045 fence acquire %802 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i2063 = zext i32 %spec.store.select.i.i.i2051 to i64 %arrayidx.i.i.i.i2064 = getelementptr inbounds nuw i32, ptr %802, i64 %idxprom.i.i.i.i2063 %803 = load atomic i32, ptr %arrayidx.i.i.i.i2064 monotonic, align 4 %804 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %797, i1 true) %iszero.i.i.i.i.i.i2065 = icmp eq i32 %797, 0 %sub.i.i.i.i.i.i2066 = select i1 %iszero.i.i.i.i.i.i2065, i32 -1, i32 %804 %805 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %797, i32 %803, i32 %sub.i.i.i.i.i.i2066, i32 31) %806 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i2067 = getelementptr inbounds nuw i32, ptr %806, i64 %idxprom.i.i.i.i2063 %807 = load atomic i32, ptr %arrayidx.i45.i.i.i2067 monotonic, align 4 %808 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %797, i32 %807, i32 %sub.i.i.i.i.i.i2066, i32 31) %cmp.i48.not.i.i.i2068 = icmp eq i32 %805, %808 br i1 %cmp.i48.not.i.i.i2068, label %if.end14.i.i.i2145, label %if.then12.i.i.i2069 if.then12.i.i.i2069: ; preds = %if.then.i.i.i.i2062 fence release %809 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2052, i1 true) %iszero.i.i.i.i.i.i.i2070 = icmp ne i32 %797, 0 %cmp2.i.i.i.i.i.i2071 = icmp eq i64 %809, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i2072 = select i1 %iszero.i.i.i.i.i.i.i2070, i1 %cmp2.i.i.i.i.i.i2071, i1 false %conv4.i.i53.i.i.i2073 = zext i1 %cmp.i.i.i.i.i.i2072 to i32 %shl.i.i54.i.i.i2074 = shl nuw i32 %conv4.i.i53.i.i.i2073, %798 %xor.i.i.i.i.i2075 = xor i32 %shl.i.i54.i.i.i2074, -1 %810 = atomicrmw and ptr %arrayidx.i.i.i.i.i2055, i32 %xor.i.i.i.i.i2075 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %797) br label %cleanup26.i.i.i2076 if.end14.i.i.i2145: ; preds = %if.then.i.i.i.i2062 %811 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2052, i1 true) %iszero.i.i.i56.i.i.i2146 = icmp ne i32 %797, 0 %cmp2.i.i.i.i.i2147 = icmp eq i64 %811, %sh_prom.i.i.i.i %cmp.i.i.i.i.i2148 = select i1 %iszero.i.i.i56.i.i.i2146, i1 %cmp2.i.i.i.i.i2147, i1 false br i1 %cmp.i.i.i.i.i2148, label %if.then16.i.i.i2150, label %if.end22.i.i.i2149 if.then16.i.i.i2150: ; preds = %if.end14.i.i.i2145 %812 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i2151 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %812, i64 %idxprom.i.i.i.i2063, i32 1 store i32 1660944387, ptr %opcode.i.i.i2151, align 8, !tbaa !61 %arrayidx21.i.i.i2152 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %812, i64 %idxprom.i.i.i.i2063 store i64 %conv.i.i.i.i.i2052, ptr %arrayidx21.i.i.i2152, align 8, !tbaa !64 br label %if.end22.i.i.i2149 if.end22.i.i.i2149: ; preds = %if.then16.i.i.i2150, %if.end14.i.i.i2145 call void @llvm.nvvm.bar.warp.sync(i32 %797) br label %cleanup26.i.i.i2076 cleanup26.i.i.i2076: ; preds = %if.end22.i.i.i2149, %if.then12.i.i.i2069 %retval.sroa.6.1.i.i.i2077 = phi i32 [ %retval.sroa.6.0.i.i.i2046, %if.then12.i.i.i2069 ], [ %spec.store.select.i.i.i2051, %if.end22.i.i.i2149 ] %retval.sroa.2.1.i.i.i2078 = phi i64 [ %retval.sroa.2.0.i.i.i2047, %if.then12.i.i.i2069 ], [ %conv.i.i.i.i.i2052, %if.end22.i.i.i2149 ] %retval.sroa.8.1.i.i.i2079 = phi i32 [ %retval.sroa.8.0.i.i.i2048, %if.then12.i.i.i2069 ], [ %805, %if.end22.i.i.i2149 ] br i1 %cmp.i48.not.i.i.i2068, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2085, label %for.inc.i.i.i2080 for.inc.i.i.i2080: ; preds = %cleanup26.i.i.i2076, %for.cond.i.i.i2045 %retval.sroa.6.2.i.i.i2081 = phi i32 [ %retval.sroa.6.1.i.i.i2077, %cleanup26.i.i.i2076 ], [ %retval.sroa.6.0.i.i.i2046, %for.cond.i.i.i2045 ] %retval.sroa.2.2.i.i.i2082 = phi i64 [ %retval.sroa.2.1.i.i.i2078, %cleanup26.i.i.i2076 ], [ %retval.sroa.2.0.i.i.i2047, %for.cond.i.i.i2045 ] %retval.sroa.8.2.i.i.i2083 = phi i32 [ %retval.sroa.8.1.i.i.i2079, %cleanup26.i.i.i2076 ], [ %retval.sroa.8.0.i.i.i2048, %for.cond.i.i.i2045 ] %inc.i.i.i2084 = add i32 %spec.store.select.i.i.i2051, 1 br label %for.cond.i.i.i2045, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2085: ; preds = %cleanup26.i.i.i2076 %retval.sroa.6.1.i.i.i2077.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i2077, %cleanup26.i.i.i2076 ] %retval.sroa.2.1.i.i.i2078.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i2078, %cleanup26.i.i.i2076 ] %retval.sroa.8.1.i.i.i2079.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i2079, %cleanup26.i.i.i2076 ] %sub.ptr.lhs.cast.i.i.i.i2040 = ptrtoint ptr %End.0.i.i.i.i2036.lcssa to i64 %sub.ptr.sub.i.i.i.i2042 = sub i64 %sub.ptr.lhs.cast.i.i.i.i2040, %sub.ptr.rhs.cast.i.i.i.i fence acquire %813 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i2088 = shl i32 %retval.sroa.6.1.i.i.i2077.lcssa, 5 %idxprom.i18.i.i.i.i.i2089 = zext i32 %mul.i.i.i.i.i.i2088 to i64 %arrayidx.i19.i.i.i.i.i2090 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %813, i64 %idxprom.i18.i.i.i.i.i2089 %arrayidx.i21.i.i.i.i.i2091 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i2090, i64 %sh_prom.i.i.i.i store i64 %sub.ptr.sub.i.i.i.i2042, ptr %arrayidx.i21.i.i.i.i.i2091, align 8, !tbaa !67 %spec.select.i.i.i.i.i.i.i2092 = call i64 @llvm.umin.i64(i64 %sub.ptr.sub.i.i.i.i2042, i64 56) %arrayidx6.i.i.i.i.i.i.i2093 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i2091, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %arrayidx6.i.i.i.i.i.i.i2093, ptr nonnull align 1 %cond, i64 %spec.select.i.i.i.i.i.i.i2092, i1 false) %tobool.not.i.i.i.i.i.i2094 = icmp eq i32 %retval.sroa.8.1.i.i.i2079.lcssa, 0 %conv.i.i.i.i.i.i2095 = zext i1 %tobool.not.i.i.i.i.i.i2094 to i32 fence release %814 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i2096 = zext i32 %retval.sroa.6.1.i.i.i2077.lcssa to i64 %arrayidx.i23.i.i.i.i.i2097 = getelementptr inbounds nuw i32, ptr %814, i64 %idxprom.i22.i.i.i.i.i2096 store atomic i32 %conv.i.i.i.i.i.i2095, ptr %arrayidx.i23.i.i.i.i.i2097 monotonic, align 4 %815 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i2098 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %815, i64 %idxprom.i22.i.i.i.i.i2096 %816 = load i64, ptr %arrayidx.i.i4.i.i2098, align 8, !tbaa !64 %conv.i.i7.i.i.i.i2099 = trunc i64 %816 to i32 %conv.i.i.i.i17.i.i.i.i2101 = trunc i64 %retval.sroa.2.1.i.i.i2078.lcssa to i32 %817 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i2101, i1 true) %iszero.i.i.i.i18.i.i.i.i2102 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i2101, 0 %sub.i.i.i.i19.i.i.i.i2103 = select i1 %iszero.i.i.i.i18.i.i.i.i2102, i32 -1, i32 %817 br label %while.cond.i.i.i.i2104 while.cond.i.i.i.i2104: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2116, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2085 %port.sroa.43.0.i.i2105 = phi i32 [ %conv.i.i.i.i.i.i2095, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2085 ], [ %conv.i.i39.i.i.i.i2117, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2116 ] %idx.0.i.i.i.i2106 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2085 ], [ %add.i.i.i.i2119, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2116 ] %cmp.i.i.i2.i2107 = icmp ult i64 %idx.0.i.i.i.i2106, %sub.ptr.sub.i.i.i.i2042 %818 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i2099, i1 %cmp.i.i.i2.i2107) %tobool.not.i.i.i.i2108 = icmp eq i32 %818, 0 %819 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i2109 = getelementptr inbounds nuw i32, ptr %819, i64 %idxprom.i22.i.i.i.i.i2096 %820 = load atomic i32, ptr %arrayidx.i22.i.i.i2109 monotonic, align 4 br i1 %tobool.not.i.i.i.i2108, label %cond.false.i.i.i2128, label %cond.false.i11.i.i.i.i2110 cond.false.i11.i.i.i.i2110: ; preds = %while.cond.i.i.i.i2104 %821 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2101, i32 %820, i32 %sub.i.i.i.i19.i.i.i.i2103, i32 31) %822 = icmp eq i32 %821, %port.sroa.43.0.i.i2105 br i1 %822, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2115, label %while.body.i.i33.i.i.i.i2111 while.body.i.i33.i.i.i.i2111: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2112, %cond.false.i11.i.i.i.i2110 %823 = phi ptr [ %824, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2112 ], [ %819, %cond.false.i11.i.i.i.i2110 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i2126, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2112 if.then.i.i.i48.i.i.i.i2126: ; preds = %while.body.i.i33.i.i.i.i2111 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i2127 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2112 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2112: ; preds = %if.then.i.i.i48.i.i.i.i2126, %while.body.i.i33.i.i.i.i2111 %824 = phi ptr [ %.pre.i.i.i.i2127, %if.then.i.i.i48.i.i.i.i2126 ], [ %823, %while.body.i.i33.i.i.i.i2111 ] %arrayidx.i.i.i35.i.i.i.i2113 = getelementptr inbounds nuw i32, ptr %824, i64 %idxprom.i22.i.i.i.i.i2096 %825 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i2113 monotonic, align 4 %826 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2101, i32 %825, i32 %sub.i.i.i.i19.i.i.i.i2103, i32 31) %cmp.i.not.i.i36.i.i.i.i2114 = icmp eq i32 %826, %port.sroa.43.0.i.i2105 br i1 %cmp.i.not.i.i36.i.i.i.i2114, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2115, label %while.body.i.i33.i.i.i.i2111, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2115: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2112, %cond.false.i11.i.i.i.i2110 fence acquire br i1 %cmp.i.i.i2.i2107, label %if.then.i.i20.i.i.i.i.i2120, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2116 if.then.i.i20.i.i.i.i.i2120: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2115 %add.ptr.i.i.i.i.i.i.i.i2121 = getelementptr inbounds nuw i8, ptr %cond, i64 %idx.0.i.i.i.i2106 %sub.i.i.i.i.i.i.i2122 = sub nuw i64 %sub.ptr.sub.i.i.i.i2042, %idx.0.i.i.i.i2106 %spec.select.i.i.i47.i.i.i.i2123 = call i64 @llvm.umin.i64(i64 %sub.i.i.i.i.i.i.i2122, i64 64) %827 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i2124 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %827, i64 %idxprom.i18.i.i.i.i.i2089 %arrayidx.i22.i.i.i.i.i2125 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i2124, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr align 1 %arrayidx.i22.i.i.i.i.i2125, ptr nonnull align 1 %add.ptr.i.i.i.i.i.i.i.i2121, i64 %spec.select.i.i.i47.i.i.i.i2123, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2116 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2116: ; preds = %if.then.i.i20.i.i.i.i.i2120, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2115 %conv.i.i39.i.i.i.i2117 = xor i32 %port.sroa.43.0.i.i2105, 1 fence release %828 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i2118 = getelementptr inbounds nuw i32, ptr %828, i64 %idxprom.i22.i.i.i.i.i2096 store atomic i32 %conv.i.i39.i.i.i.i2117, ptr %arrayidx.i24.i.i.i.i.i2118 monotonic, align 4 %add.i.i.i.i2119 = add i64 %idx.0.i.i.i.i2106, 64 br label %while.cond.i.i.i.i2104, !llvm.loop !71 cond.false.i.i.i2128: ; preds = %while.cond.i.i.i.i2104 %port.sroa.43.0.i.i2105.lcssa = phi i32 [ %port.sroa.43.0.i.i2105, %while.cond.i.i.i.i2104 ] %.lcssa5640 = phi ptr [ %819, %while.cond.i.i.i.i2104 ] %.lcssa5639 = phi i32 [ %820, %while.cond.i.i.i.i2104 ] %829 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2101, i32 %.lcssa5639, i32 %sub.i.i.i.i19.i.i.i.i2103, i32 31) %830 = icmp eq i32 %829, %port.sroa.43.0.i.i2105.lcssa br i1 %830, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2153, label %while.body.i.i.i.i2129 while.body.i.i.i.i2129: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2130, %cond.false.i.i.i2128 %831 = phi ptr [ %832, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2130 ], [ %.lcssa5640, %cond.false.i.i.i2128 ] br i1 %343, label %if.then.i.i.i.i.i2143, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2130 if.then.i.i.i.i.i2143: ; preds = %while.body.i.i.i.i2129 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i2144 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2130 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2130: ; preds = %if.then.i.i.i.i.i2143, %while.body.i.i.i.i2129 %832 = phi ptr [ %.pre.i.i2144, %if.then.i.i.i.i.i2143 ], [ %831, %while.body.i.i.i.i2129 ] %arrayidx.i.i.i11.i.i2131 = getelementptr inbounds nuw i32, ptr %832, i64 %idxprom.i22.i.i.i.i.i2096 %833 = load atomic i32, ptr %arrayidx.i.i.i11.i.i2131 monotonic, align 4 %834 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2101, i32 %833, i32 %sub.i.i.i.i19.i.i.i.i2103, i32 31) %cmp.i.not.i.i.i.i2132 = icmp eq i32 %834, %port.sroa.43.0.i.i2105.lcssa br i1 %cmp.i.not.i.i.i.i2132, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2153, label %while.body.i.i.i.i2129, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2153: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2130, %cond.false.i.i.i2128 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2101) fence release %835 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i2078.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i2134 = icmp ne i64 %retval.sroa.2.1.i.i.i2078.lcssa, 0 %cmp2.i.i.i.i19.i.i2135 = icmp eq i64 %835, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i2136 = select i1 %iszero.i.i.i.i.i18.i.i2134, i1 %cmp2.i.i.i.i19.i.i2135, i1 false %div8.i.i.i21.i.i2137 = lshr i32 %retval.sroa.6.1.i.i.i2077.lcssa, 5 %836 = and i32 %retval.sroa.6.1.i.i.i2077.lcssa, 31 %idxprom.i.i.i22.i.i2138 = zext nneg i32 %div8.i.i.i21.i.i2137 to i64 %arrayidx.i.i.i23.i.i2139 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i2138 %conv4.i.i.i24.i.i2140 = zext i1 %cmp.i.i.i.i20.i.i2136 to i32 %shl.i.i.i25.i.i2141 = shl nuw i32 %conv4.i.i.i24.i.i2140, %836 %xor.i.i.i26.i.i2142 = xor i32 %shl.i.i.i25.i.i2141, -1 %837 = atomicrmw and ptr %arrayidx.i.i.i23.i.i2139, i32 %xor.i.i.i26.i.i2142 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2101) br label %for.cond.i.i.i2165 for.cond.i.i.i2165: ; preds = %for.inc.i.i.i2200, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2153 %retval.sroa.6.0.i.i.i2166 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2153 ], [ %retval.sroa.6.2.i.i.i2201, %for.inc.i.i.i2200 ] %retval.sroa.2.0.i.i.i2167 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2153 ], [ %retval.sroa.2.2.i.i.i2202, %for.inc.i.i.i2200 ] %retval.sroa.8.0.i.i.i2168 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2153 ], [ %retval.sroa.8.2.i.i.i2203, %for.inc.i.i.i2200 ] %index.0.i.i.i2169 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2153 ], [ %inc.i.i.i2204, %for.inc.i.i.i2200 ] %838 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i2170 = icmp ult i32 %index.0.i.i.i2169, %838 %spec.store.select.i.i.i2171 = select i1 %cmp.not.i.i.i2170, i32 %index.0.i.i.i2169, i32 0 %839 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i2172 = zext i32 %839 to i64 %div8.i.i.i.i.i2173 = lshr i32 %spec.store.select.i.i.i2171, 5 %840 = and i32 %spec.store.select.i.i.i2171, 31 %idxprom.i.i.i.i.i2174 = zext nneg i32 %div8.i.i.i.i.i2173 to i64 %arrayidx.i.i.i.i.i2175 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i2174 %841 = lshr i32 %839, %2 %conv4.i.i.i.i.i2176 = and i32 %841, 1 %shl.i.i.i.i.i2177 = shl nuw i32 %conv4.i.i.i.i.i2176, %840 %842 = atomicrmw or ptr %arrayidx.i.i.i.i.i2175, i32 %shl.i.i.i.i.i2177 monotonic, align 4 %shl5.i.i.i.i.i2178 = shl nuw i32 1, %840 %and.i.i.i.i.i2179 = and i32 %shl5.i.i.i.i.i2178, %842 %tobool3.i.i.i.i2180 = icmp ne i32 %and.i.i.i.i.i2179, 0 %843 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %839, i1 %tobool3.i.i.i.i2180) %cmp.i.not.i.i.i2181 = icmp eq i32 %839, %843 br i1 %cmp.i.not.i.i.i2181, label %for.inc.i.i.i2200, label %if.then.i.i.i.i2182 if.then.i.i.i.i2182: ; preds = %for.cond.i.i.i2165 fence acquire %844 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i2183 = zext i32 %spec.store.select.i.i.i2171 to i64 %arrayidx.i.i.i.i2184 = getelementptr inbounds nuw i32, ptr %844, i64 %idxprom.i.i.i.i2183 %845 = load atomic i32, ptr %arrayidx.i.i.i.i2184 monotonic, align 4 %846 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %839, i1 true) %iszero.i.i.i.i.i.i2185 = icmp eq i32 %839, 0 %sub.i.i.i.i.i.i2186 = select i1 %iszero.i.i.i.i.i.i2185, i32 -1, i32 %846 %847 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %839, i32 %845, i32 %sub.i.i.i.i.i.i2186, i32 31) %848 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i2187 = getelementptr inbounds nuw i32, ptr %848, i64 %idxprom.i.i.i.i2183 %849 = load atomic i32, ptr %arrayidx.i45.i.i.i2187 monotonic, align 4 %850 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %839, i32 %849, i32 %sub.i.i.i.i.i.i2186, i32 31) %cmp.i48.not.i.i.i2188 = icmp eq i32 %847, %850 br i1 %cmp.i48.not.i.i.i2188, label %if.end14.i.i.i2265, label %if.then12.i.i.i2189 if.then12.i.i.i2189: ; preds = %if.then.i.i.i.i2182 fence release %851 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2172, i1 true) %iszero.i.i.i.i.i.i.i2190 = icmp ne i32 %839, 0 %cmp2.i.i.i.i.i.i2191 = icmp eq i64 %851, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i2192 = select i1 %iszero.i.i.i.i.i.i.i2190, i1 %cmp2.i.i.i.i.i.i2191, i1 false %conv4.i.i53.i.i.i2193 = zext i1 %cmp.i.i.i.i.i.i2192 to i32 %shl.i.i54.i.i.i2194 = shl nuw i32 %conv4.i.i53.i.i.i2193, %840 %xor.i.i.i.i.i2195 = xor i32 %shl.i.i54.i.i.i2194, -1 %852 = atomicrmw and ptr %arrayidx.i.i.i.i.i2175, i32 %xor.i.i.i.i.i2195 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %839) br label %cleanup26.i.i.i2196 if.end14.i.i.i2265: ; preds = %if.then.i.i.i.i2182 %853 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2172, i1 true) %iszero.i.i.i56.i.i.i2266 = icmp ne i32 %839, 0 %cmp2.i.i.i.i.i2267 = icmp eq i64 %853, %sh_prom.i.i.i.i %cmp.i.i.i.i.i2268 = select i1 %iszero.i.i.i56.i.i.i2266, i1 %cmp2.i.i.i.i.i2267, i1 false br i1 %cmp.i.i.i.i.i2268, label %if.then16.i.i.i2270, label %if.end22.i.i.i2269 if.then16.i.i.i2270: ; preds = %if.end14.i.i.i2265 %854 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i2271 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %854, i64 %idxprom.i.i.i.i2183, i32 1 store i32 1660944387, ptr %opcode.i.i.i2271, align 8, !tbaa !61 %arrayidx21.i.i.i2272 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %854, i64 %idxprom.i.i.i.i2183 store i64 %conv.i.i.i.i.i2172, ptr %arrayidx21.i.i.i2272, align 8, !tbaa !64 br label %if.end22.i.i.i2269 if.end22.i.i.i2269: ; preds = %if.then16.i.i.i2270, %if.end14.i.i.i2265 call void @llvm.nvvm.bar.warp.sync(i32 %839) br label %cleanup26.i.i.i2196 cleanup26.i.i.i2196: ; preds = %if.end22.i.i.i2269, %if.then12.i.i.i2189 %retval.sroa.6.1.i.i.i2197 = phi i32 [ %retval.sroa.6.0.i.i.i2166, %if.then12.i.i.i2189 ], [ %spec.store.select.i.i.i2171, %if.end22.i.i.i2269 ] %retval.sroa.2.1.i.i.i2198 = phi i64 [ %retval.sroa.2.0.i.i.i2167, %if.then12.i.i.i2189 ], [ %conv.i.i.i.i.i2172, %if.end22.i.i.i2269 ] %retval.sroa.8.1.i.i.i2199 = phi i32 [ %retval.sroa.8.0.i.i.i2168, %if.then12.i.i.i2189 ], [ %847, %if.end22.i.i.i2269 ] br i1 %cmp.i48.not.i.i.i2188, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2205, label %for.inc.i.i.i2200 for.inc.i.i.i2200: ; preds = %cleanup26.i.i.i2196, %for.cond.i.i.i2165 %retval.sroa.6.2.i.i.i2201 = phi i32 [ %retval.sroa.6.1.i.i.i2197, %cleanup26.i.i.i2196 ], [ %retval.sroa.6.0.i.i.i2166, %for.cond.i.i.i2165 ] %retval.sroa.2.2.i.i.i2202 = phi i64 [ %retval.sroa.2.1.i.i.i2198, %cleanup26.i.i.i2196 ], [ %retval.sroa.2.0.i.i.i2167, %for.cond.i.i.i2165 ] %retval.sroa.8.2.i.i.i2203 = phi i32 [ %retval.sroa.8.1.i.i.i2199, %cleanup26.i.i.i2196 ], [ %retval.sroa.8.0.i.i.i2168, %for.cond.i.i.i2165 ] %inc.i.i.i2204 = add i32 %spec.store.select.i.i.i2171, 1 br label %for.cond.i.i.i2165, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2205: ; preds = %cleanup26.i.i.i2196 %retval.sroa.6.1.i.i.i2197.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i2197, %cleanup26.i.i.i2196 ] %retval.sroa.2.1.i.i.i2198.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i2198, %cleanup26.i.i.i2196 ] %retval.sroa.8.1.i.i.i2199.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i2199, %cleanup26.i.i.i2196 ] fence acquire %855 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i2208 = shl i32 %retval.sroa.6.1.i.i.i2197.lcssa, 5 %idxprom.i18.i.i.i.i.i2209 = zext i32 %mul.i.i.i.i.i.i2208 to i64 %arrayidx.i19.i.i.i.i.i2210 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %855, i64 %idxprom.i18.i.i.i.i.i2209 %arrayidx.i21.i.i.i.i.i2211 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i2210, i64 %sh_prom.i.i.i.i store i64 13, ptr %arrayidx.i21.i.i.i.i.i2211, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i2213 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i2211, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(13) %arrayidx6.i.i.i.i.i.i.i2213, ptr noundef nonnull align 1 dereferenceable(13) @.str19, i64 13, i1 false) %tobool.not.i.i.i.i.i.i2214 = icmp eq i32 %retval.sroa.8.1.i.i.i2199.lcssa, 0 %conv.i.i.i.i.i.i2215 = zext i1 %tobool.not.i.i.i.i.i.i2214 to i32 fence release %856 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i2216 = zext i32 %retval.sroa.6.1.i.i.i2197.lcssa to i64 %arrayidx.i23.i.i.i.i.i2217 = getelementptr inbounds nuw i32, ptr %856, i64 %idxprom.i22.i.i.i.i.i2216 store atomic i32 %conv.i.i.i.i.i.i2215, ptr %arrayidx.i23.i.i.i.i.i2217 monotonic, align 4 %857 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i2218 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %857, i64 %idxprom.i22.i.i.i.i.i2216 %858 = load i64, ptr %arrayidx.i.i4.i.i2218, align 8, !tbaa !64 %conv.i.i7.i.i.i.i2219 = trunc i64 %858 to i32 %conv.i.i.i.i17.i.i.i.i2221 = trunc i64 %retval.sroa.2.1.i.i.i2198.lcssa to i32 %859 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i2221, i1 true) %iszero.i.i.i.i18.i.i.i.i2222 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i2221, 0 %sub.i.i.i.i19.i.i.i.i2223 = select i1 %iszero.i.i.i.i18.i.i.i.i2222, i32 -1, i32 %859 br label %while.cond.i.i.i.i2224 while.cond.i.i.i.i2224: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2236, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2205 %port.sroa.43.0.i.i2225 = phi i32 [ %conv.i.i.i.i.i.i2215, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2205 ], [ %conv.i.i39.i.i.i.i2237, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2236 ] %idx.0.i.i.i.i2226 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2205 ], [ %add.i.i.i.i2239, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2236 ] %cmp.i.i.i2.i2227 = icmp ult i64 %idx.0.i.i.i.i2226, 13 %860 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i2219, i1 %cmp.i.i.i2.i2227) %tobool.not.i.i.i.i2228 = icmp eq i32 %860, 0 %861 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i2229 = getelementptr inbounds nuw i32, ptr %861, i64 %idxprom.i22.i.i.i.i.i2216 %862 = load atomic i32, ptr %arrayidx.i22.i.i.i2229 monotonic, align 4 br i1 %tobool.not.i.i.i.i2228, label %cond.false.i.i.i2248, label %cond.false.i11.i.i.i.i2230 cond.false.i11.i.i.i.i2230: ; preds = %while.cond.i.i.i.i2224 %863 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2221, i32 %862, i32 %sub.i.i.i.i19.i.i.i.i2223, i32 31) %864 = icmp eq i32 %863, %port.sroa.43.0.i.i2225 br i1 %864, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2235, label %while.body.i.i33.i.i.i.i2231 while.body.i.i33.i.i.i.i2231: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2232, %cond.false.i11.i.i.i.i2230 %865 = phi ptr [ %866, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2232 ], [ %861, %cond.false.i11.i.i.i.i2230 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i2246, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2232 if.then.i.i.i48.i.i.i.i2246: ; preds = %while.body.i.i33.i.i.i.i2231 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i2247 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2232 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2232: ; preds = %if.then.i.i.i48.i.i.i.i2246, %while.body.i.i33.i.i.i.i2231 %866 = phi ptr [ %.pre.i.i.i.i2247, %if.then.i.i.i48.i.i.i.i2246 ], [ %865, %while.body.i.i33.i.i.i.i2231 ] %arrayidx.i.i.i35.i.i.i.i2233 = getelementptr inbounds nuw i32, ptr %866, i64 %idxprom.i22.i.i.i.i.i2216 %867 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i2233 monotonic, align 4 %868 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2221, i32 %867, i32 %sub.i.i.i.i19.i.i.i.i2223, i32 31) %cmp.i.not.i.i36.i.i.i.i2234 = icmp eq i32 %868, %port.sroa.43.0.i.i2225 br i1 %cmp.i.not.i.i36.i.i.i.i2234, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2235, label %while.body.i.i33.i.i.i.i2231, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2235: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2232, %cond.false.i11.i.i.i.i2230 fence acquire br i1 %cmp.i.i.i2.i2227, label %if.then.i.i20.i.i.i.i.i2240, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2236 if.then.i.i20.i.i.i.i.i2240: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2235 %add.ptr.i.i.i.i.i.i.i.i2241 = getelementptr inbounds nuw i8, ptr @.str19, i64 %idx.0.i.i.i.i2226 %sub.i.i.i.i.i.i.i2242 = sub nuw nsw i64 13, %idx.0.i.i.i.i2226 %869 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i2244 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %869, i64 %idxprom.i18.i.i.i.i.i2209 %arrayidx.i22.i.i.i.i.i2245 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i2244, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %arrayidx.i22.i.i.i.i.i2245, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr.i.i.i.i.i.i.i.i2241, i64 %sub.i.i.i.i.i.i.i2242, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2236 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2236: ; preds = %if.then.i.i20.i.i.i.i.i2240, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2235 %conv.i.i39.i.i.i.i2237 = xor i32 %port.sroa.43.0.i.i2225, 1 fence release %870 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i2238 = getelementptr inbounds nuw i32, ptr %870, i64 %idxprom.i22.i.i.i.i.i2216 store atomic i32 %conv.i.i39.i.i.i.i2237, ptr %arrayidx.i24.i.i.i.i.i2238 monotonic, align 4 %add.i.i.i.i2239 = add i64 %idx.0.i.i.i.i2226, 64 br label %while.cond.i.i.i.i2224, !llvm.loop !71 cond.false.i.i.i2248: ; preds = %while.cond.i.i.i.i2224 %port.sroa.43.0.i.i2225.lcssa = phi i32 [ %port.sroa.43.0.i.i2225, %while.cond.i.i.i.i2224 ] %.lcssa5642 = phi ptr [ %861, %while.cond.i.i.i.i2224 ] %.lcssa5641 = phi i32 [ %862, %while.cond.i.i.i.i2224 ] %871 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2221, i32 %.lcssa5641, i32 %sub.i.i.i.i19.i.i.i.i2223, i32 31) %872 = icmp eq i32 %871, %port.sroa.43.0.i.i2225.lcssa br i1 %872, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2273, label %while.body.i.i.i.i2249 while.body.i.i.i.i2249: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2250, %cond.false.i.i.i2248 %873 = phi ptr [ %874, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2250 ], [ %.lcssa5642, %cond.false.i.i.i2248 ] br i1 %343, label %if.then.i.i.i.i.i2263, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2250 if.then.i.i.i.i.i2263: ; preds = %while.body.i.i.i.i2249 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i2264 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2250 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2250: ; preds = %if.then.i.i.i.i.i2263, %while.body.i.i.i.i2249 %874 = phi ptr [ %.pre.i.i2264, %if.then.i.i.i.i.i2263 ], [ %873, %while.body.i.i.i.i2249 ] %arrayidx.i.i.i11.i.i2251 = getelementptr inbounds nuw i32, ptr %874, i64 %idxprom.i22.i.i.i.i.i2216 %875 = load atomic i32, ptr %arrayidx.i.i.i11.i.i2251 monotonic, align 4 %876 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2221, i32 %875, i32 %sub.i.i.i.i19.i.i.i.i2223, i32 31) %cmp.i.not.i.i.i.i2252 = icmp eq i32 %876, %port.sroa.43.0.i.i2225.lcssa br i1 %cmp.i.not.i.i.i.i2252, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2273, label %while.body.i.i.i.i2249, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2273: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2250, %cond.false.i.i.i2248 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2221) fence release %877 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i2198.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i2254 = icmp ne i64 %retval.sroa.2.1.i.i.i2198.lcssa, 0 %cmp2.i.i.i.i19.i.i2255 = icmp eq i64 %877, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i2256 = select i1 %iszero.i.i.i.i.i18.i.i2254, i1 %cmp2.i.i.i.i19.i.i2255, i1 false %div8.i.i.i21.i.i2257 = lshr i32 %retval.sroa.6.1.i.i.i2197.lcssa, 5 %878 = and i32 %retval.sroa.6.1.i.i.i2197.lcssa, 31 %idxprom.i.i.i22.i.i2258 = zext nneg i32 %div8.i.i.i21.i.i2257 to i64 %arrayidx.i.i.i23.i.i2259 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i2258 %conv4.i.i.i24.i.i2260 = zext i1 %cmp.i.i.i.i20.i.i2256 to i32 %shl.i.i.i25.i.i2261 = shl nuw i32 %conv4.i.i.i24.i.i2260, %878 %xor.i.i.i26.i.i2262 = xor i32 %shl.i.i.i25.i.i2261, -1 %879 = atomicrmw and ptr %arrayidx.i.i.i23.i.i2259, i32 %xor.i.i.i26.i.i2262 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2221) br label %for.cond.i.i.i.i2276 for.cond.i.i.i.i2276: ; preds = %for.cond.i.i.i.i2276, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2273 %End.0.i.i.i.i2277 = phi ptr [ %cond6, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2273 ], [ %incdec.ptr.i.i.i.i2279, %for.cond.i.i.i.i2276 ] %880 = load i8, ptr %End.0.i.i.i.i2277, align 1, !tbaa !36 %cmp.i.i.i.i2278 = icmp eq i8 %880, 0 %incdec.ptr.i.i.i.i2279 = getelementptr inbounds nuw i8, ptr %End.0.i.i.i.i2277, i64 1 br i1 %cmp.i.i.i.i2278, label %for.cond.i.i.i2286.preheader, label %for.cond.i.i.i.i2276, !llvm.loop !101 for.cond.i.i.i2286.preheader: ; preds = %for.cond.i.i.i.i2276 %End.0.i.i.i.i2277.lcssa = phi ptr [ %End.0.i.i.i.i2277, %for.cond.i.i.i.i2276 ] br label %for.cond.i.i.i2286 for.cond.i.i.i2286: ; preds = %for.inc.i.i.i2321, %for.cond.i.i.i2286.preheader %retval.sroa.6.0.i.i.i2287 = phi i32 [ %retval.sroa.6.2.i.i.i2322, %for.inc.i.i.i2321 ], [ undef, %for.cond.i.i.i2286.preheader ] %retval.sroa.2.0.i.i.i2288 = phi i64 [ %retval.sroa.2.2.i.i.i2323, %for.inc.i.i.i2321 ], [ undef, %for.cond.i.i.i2286.preheader ] %retval.sroa.8.0.i.i.i2289 = phi i32 [ %retval.sroa.8.2.i.i.i2324, %for.inc.i.i.i2321 ], [ undef, %for.cond.i.i.i2286.preheader ] %index.0.i.i.i2290 = phi i32 [ %inc.i.i.i2325, %for.inc.i.i.i2321 ], [ 0, %for.cond.i.i.i2286.preheader ] %881 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i2291 = icmp ult i32 %index.0.i.i.i2290, %881 %spec.store.select.i.i.i2292 = select i1 %cmp.not.i.i.i2291, i32 %index.0.i.i.i2290, i32 0 %882 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i2293 = zext i32 %882 to i64 %div8.i.i.i.i.i2294 = lshr i32 %spec.store.select.i.i.i2292, 5 %883 = and i32 %spec.store.select.i.i.i2292, 31 %idxprom.i.i.i.i.i2295 = zext nneg i32 %div8.i.i.i.i.i2294 to i64 %arrayidx.i.i.i.i.i2296 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i2295 %884 = lshr i32 %882, %2 %conv4.i.i.i.i.i2297 = and i32 %884, 1 %shl.i.i.i.i.i2298 = shl nuw i32 %conv4.i.i.i.i.i2297, %883 %885 = atomicrmw or ptr %arrayidx.i.i.i.i.i2296, i32 %shl.i.i.i.i.i2298 monotonic, align 4 %shl5.i.i.i.i.i2299 = shl nuw i32 1, %883 %and.i.i.i.i.i2300 = and i32 %shl5.i.i.i.i.i2299, %885 %tobool3.i.i.i.i2301 = icmp ne i32 %and.i.i.i.i.i2300, 0 %886 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %882, i1 %tobool3.i.i.i.i2301) %cmp.i.not.i.i.i2302 = icmp eq i32 %882, %886 br i1 %cmp.i.not.i.i.i2302, label %for.inc.i.i.i2321, label %if.then.i.i.i.i2303 if.then.i.i.i.i2303: ; preds = %for.cond.i.i.i2286 fence acquire %887 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i2304 = zext i32 %spec.store.select.i.i.i2292 to i64 %arrayidx.i.i.i.i2305 = getelementptr inbounds nuw i32, ptr %887, i64 %idxprom.i.i.i.i2304 %888 = load atomic i32, ptr %arrayidx.i.i.i.i2305 monotonic, align 4 %889 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %882, i1 true) %iszero.i.i.i.i.i.i2306 = icmp eq i32 %882, 0 %sub.i.i.i.i.i.i2307 = select i1 %iszero.i.i.i.i.i.i2306, i32 -1, i32 %889 %890 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %882, i32 %888, i32 %sub.i.i.i.i.i.i2307, i32 31) %891 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i2308 = getelementptr inbounds nuw i32, ptr %891, i64 %idxprom.i.i.i.i2304 %892 = load atomic i32, ptr %arrayidx.i45.i.i.i2308 monotonic, align 4 %893 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %882, i32 %892, i32 %sub.i.i.i.i.i.i2307, i32 31) %cmp.i48.not.i.i.i2309 = icmp eq i32 %890, %893 br i1 %cmp.i48.not.i.i.i2309, label %if.end14.i.i.i2386, label %if.then12.i.i.i2310 if.then12.i.i.i2310: ; preds = %if.then.i.i.i.i2303 fence release %894 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2293, i1 true) %iszero.i.i.i.i.i.i.i2311 = icmp ne i32 %882, 0 %cmp2.i.i.i.i.i.i2312 = icmp eq i64 %894, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i2313 = select i1 %iszero.i.i.i.i.i.i.i2311, i1 %cmp2.i.i.i.i.i.i2312, i1 false %conv4.i.i53.i.i.i2314 = zext i1 %cmp.i.i.i.i.i.i2313 to i32 %shl.i.i54.i.i.i2315 = shl nuw i32 %conv4.i.i53.i.i.i2314, %883 %xor.i.i.i.i.i2316 = xor i32 %shl.i.i54.i.i.i2315, -1 %895 = atomicrmw and ptr %arrayidx.i.i.i.i.i2296, i32 %xor.i.i.i.i.i2316 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %882) br label %cleanup26.i.i.i2317 if.end14.i.i.i2386: ; preds = %if.then.i.i.i.i2303 %896 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2293, i1 true) %iszero.i.i.i56.i.i.i2387 = icmp ne i32 %882, 0 %cmp2.i.i.i.i.i2388 = icmp eq i64 %896, %sh_prom.i.i.i.i %cmp.i.i.i.i.i2389 = select i1 %iszero.i.i.i56.i.i.i2387, i1 %cmp2.i.i.i.i.i2388, i1 false br i1 %cmp.i.i.i.i.i2389, label %if.then16.i.i.i2391, label %if.end22.i.i.i2390 if.then16.i.i.i2391: ; preds = %if.end14.i.i.i2386 %897 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i2392 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %897, i64 %idxprom.i.i.i.i2304, i32 1 store i32 1660944387, ptr %opcode.i.i.i2392, align 8, !tbaa !61 %arrayidx21.i.i.i2393 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %897, i64 %idxprom.i.i.i.i2304 store i64 %conv.i.i.i.i.i2293, ptr %arrayidx21.i.i.i2393, align 8, !tbaa !64 br label %if.end22.i.i.i2390 if.end22.i.i.i2390: ; preds = %if.then16.i.i.i2391, %if.end14.i.i.i2386 call void @llvm.nvvm.bar.warp.sync(i32 %882) br label %cleanup26.i.i.i2317 cleanup26.i.i.i2317: ; preds = %if.end22.i.i.i2390, %if.then12.i.i.i2310 %retval.sroa.6.1.i.i.i2318 = phi i32 [ %retval.sroa.6.0.i.i.i2287, %if.then12.i.i.i2310 ], [ %spec.store.select.i.i.i2292, %if.end22.i.i.i2390 ] %retval.sroa.2.1.i.i.i2319 = phi i64 [ %retval.sroa.2.0.i.i.i2288, %if.then12.i.i.i2310 ], [ %conv.i.i.i.i.i2293, %if.end22.i.i.i2390 ] %retval.sroa.8.1.i.i.i2320 = phi i32 [ %retval.sroa.8.0.i.i.i2289, %if.then12.i.i.i2310 ], [ %890, %if.end22.i.i.i2390 ] br i1 %cmp.i48.not.i.i.i2309, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2326, label %for.inc.i.i.i2321 for.inc.i.i.i2321: ; preds = %cleanup26.i.i.i2317, %for.cond.i.i.i2286 %retval.sroa.6.2.i.i.i2322 = phi i32 [ %retval.sroa.6.1.i.i.i2318, %cleanup26.i.i.i2317 ], [ %retval.sroa.6.0.i.i.i2287, %for.cond.i.i.i2286 ] %retval.sroa.2.2.i.i.i2323 = phi i64 [ %retval.sroa.2.1.i.i.i2319, %cleanup26.i.i.i2317 ], [ %retval.sroa.2.0.i.i.i2288, %for.cond.i.i.i2286 ] %retval.sroa.8.2.i.i.i2324 = phi i32 [ %retval.sroa.8.1.i.i.i2320, %cleanup26.i.i.i2317 ], [ %retval.sroa.8.0.i.i.i2289, %for.cond.i.i.i2286 ] %inc.i.i.i2325 = add i32 %spec.store.select.i.i.i2292, 1 br label %for.cond.i.i.i2286, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2326: ; preds = %cleanup26.i.i.i2317 %retval.sroa.6.1.i.i.i2318.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i2318, %cleanup26.i.i.i2317 ] %retval.sroa.2.1.i.i.i2319.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i2319, %cleanup26.i.i.i2317 ] %retval.sroa.8.1.i.i.i2320.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i2320, %cleanup26.i.i.i2317 ] %sub.ptr.lhs.cast.i.i.i.i2281 = ptrtoint ptr %End.0.i.i.i.i2277.lcssa to i64 %sub.ptr.sub.i.i.i.i2283 = sub i64 %sub.ptr.lhs.cast.i.i.i.i2281, %sub.ptr.rhs.cast.i.i.i.i134 fence acquire %898 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i2329 = shl i32 %retval.sroa.6.1.i.i.i2318.lcssa, 5 %idxprom.i18.i.i.i.i.i2330 = zext i32 %mul.i.i.i.i.i.i2329 to i64 %arrayidx.i19.i.i.i.i.i2331 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %898, i64 %idxprom.i18.i.i.i.i.i2330 %arrayidx.i21.i.i.i.i.i2332 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i2331, i64 %sh_prom.i.i.i.i store i64 %sub.ptr.sub.i.i.i.i2283, ptr %arrayidx.i21.i.i.i.i.i2332, align 8, !tbaa !67 %spec.select.i.i.i.i.i.i.i2333 = call i64 @llvm.umin.i64(i64 %sub.ptr.sub.i.i.i.i2283, i64 56) %arrayidx6.i.i.i.i.i.i.i2334 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i2332, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %arrayidx6.i.i.i.i.i.i.i2334, ptr nonnull align 1 %cond6, i64 %spec.select.i.i.i.i.i.i.i2333, i1 false) %tobool.not.i.i.i.i.i.i2335 = icmp eq i32 %retval.sroa.8.1.i.i.i2320.lcssa, 0 %conv.i.i.i.i.i.i2336 = zext i1 %tobool.not.i.i.i.i.i.i2335 to i32 fence release %899 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i2337 = zext i32 %retval.sroa.6.1.i.i.i2318.lcssa to i64 %arrayidx.i23.i.i.i.i.i2338 = getelementptr inbounds nuw i32, ptr %899, i64 %idxprom.i22.i.i.i.i.i2337 store atomic i32 %conv.i.i.i.i.i.i2336, ptr %arrayidx.i23.i.i.i.i.i2338 monotonic, align 4 %900 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i2339 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %900, i64 %idxprom.i22.i.i.i.i.i2337 %901 = load i64, ptr %arrayidx.i.i4.i.i2339, align 8, !tbaa !64 %conv.i.i7.i.i.i.i2340 = trunc i64 %901 to i32 %conv.i.i.i.i17.i.i.i.i2342 = trunc i64 %retval.sroa.2.1.i.i.i2319.lcssa to i32 %902 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i2342, i1 true) %iszero.i.i.i.i18.i.i.i.i2343 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i2342, 0 %sub.i.i.i.i19.i.i.i.i2344 = select i1 %iszero.i.i.i.i18.i.i.i.i2343, i32 -1, i32 %902 br label %while.cond.i.i.i.i2345 while.cond.i.i.i.i2345: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2357, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2326 %port.sroa.43.0.i.i2346 = phi i32 [ %conv.i.i.i.i.i.i2336, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2326 ], [ %conv.i.i39.i.i.i.i2358, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2357 ] %idx.0.i.i.i.i2347 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2326 ], [ %add.i.i.i.i2360, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2357 ] %cmp.i.i.i2.i2348 = icmp ult i64 %idx.0.i.i.i.i2347, %sub.ptr.sub.i.i.i.i2283 %903 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i2340, i1 %cmp.i.i.i2.i2348) %tobool.not.i.i.i.i2349 = icmp eq i32 %903, 0 %904 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i2350 = getelementptr inbounds nuw i32, ptr %904, i64 %idxprom.i22.i.i.i.i.i2337 %905 = load atomic i32, ptr %arrayidx.i22.i.i.i2350 monotonic, align 4 br i1 %tobool.not.i.i.i.i2349, label %cond.false.i.i.i2369, label %cond.false.i11.i.i.i.i2351 cond.false.i11.i.i.i.i2351: ; preds = %while.cond.i.i.i.i2345 %906 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2342, i32 %905, i32 %sub.i.i.i.i19.i.i.i.i2344, i32 31) %907 = icmp eq i32 %906, %port.sroa.43.0.i.i2346 br i1 %907, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2356, label %while.body.i.i33.i.i.i.i2352 while.body.i.i33.i.i.i.i2352: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2353, %cond.false.i11.i.i.i.i2351 %908 = phi ptr [ %909, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2353 ], [ %904, %cond.false.i11.i.i.i.i2351 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i2367, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2353 if.then.i.i.i48.i.i.i.i2367: ; preds = %while.body.i.i33.i.i.i.i2352 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i2368 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2353 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2353: ; preds = %if.then.i.i.i48.i.i.i.i2367, %while.body.i.i33.i.i.i.i2352 %909 = phi ptr [ %.pre.i.i.i.i2368, %if.then.i.i.i48.i.i.i.i2367 ], [ %908, %while.body.i.i33.i.i.i.i2352 ] %arrayidx.i.i.i35.i.i.i.i2354 = getelementptr inbounds nuw i32, ptr %909, i64 %idxprom.i22.i.i.i.i.i2337 %910 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i2354 monotonic, align 4 %911 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2342, i32 %910, i32 %sub.i.i.i.i19.i.i.i.i2344, i32 31) %cmp.i.not.i.i36.i.i.i.i2355 = icmp eq i32 %911, %port.sroa.43.0.i.i2346 br i1 %cmp.i.not.i.i36.i.i.i.i2355, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2356, label %while.body.i.i33.i.i.i.i2352, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2356: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2353, %cond.false.i11.i.i.i.i2351 fence acquire br i1 %cmp.i.i.i2.i2348, label %if.then.i.i20.i.i.i.i.i2361, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2357 if.then.i.i20.i.i.i.i.i2361: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2356 %add.ptr.i.i.i.i.i.i.i.i2362 = getelementptr inbounds nuw i8, ptr %cond6, i64 %idx.0.i.i.i.i2347 %sub.i.i.i.i.i.i.i2363 = sub nuw i64 %sub.ptr.sub.i.i.i.i2283, %idx.0.i.i.i.i2347 %spec.select.i.i.i47.i.i.i.i2364 = call i64 @llvm.umin.i64(i64 %sub.i.i.i.i.i.i.i2363, i64 64) %912 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i2365 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %912, i64 %idxprom.i18.i.i.i.i.i2330 %arrayidx.i22.i.i.i.i.i2366 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i2365, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr align 1 %arrayidx.i22.i.i.i.i.i2366, ptr nonnull align 1 %add.ptr.i.i.i.i.i.i.i.i2362, i64 %spec.select.i.i.i47.i.i.i.i2364, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2357 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2357: ; preds = %if.then.i.i20.i.i.i.i.i2361, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2356 %conv.i.i39.i.i.i.i2358 = xor i32 %port.sroa.43.0.i.i2346, 1 fence release %913 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i2359 = getelementptr inbounds nuw i32, ptr %913, i64 %idxprom.i22.i.i.i.i.i2337 store atomic i32 %conv.i.i39.i.i.i.i2358, ptr %arrayidx.i24.i.i.i.i.i2359 monotonic, align 4 %add.i.i.i.i2360 = add i64 %idx.0.i.i.i.i2347, 64 br label %while.cond.i.i.i.i2345, !llvm.loop !71 cond.false.i.i.i2369: ; preds = %while.cond.i.i.i.i2345 %port.sroa.43.0.i.i2346.lcssa = phi i32 [ %port.sroa.43.0.i.i2346, %while.cond.i.i.i.i2345 ] %.lcssa5644 = phi ptr [ %904, %while.cond.i.i.i.i2345 ] %.lcssa5643 = phi i32 [ %905, %while.cond.i.i.i.i2345 ] %914 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2342, i32 %.lcssa5643, i32 %sub.i.i.i.i19.i.i.i.i2344, i32 31) %915 = icmp eq i32 %914, %port.sroa.43.0.i.i2346.lcssa br i1 %915, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2394, label %while.body.i.i.i.i2370 while.body.i.i.i.i2370: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2371, %cond.false.i.i.i2369 %916 = phi ptr [ %917, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2371 ], [ %.lcssa5644, %cond.false.i.i.i2369 ] br i1 %343, label %if.then.i.i.i.i.i2384, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2371 if.then.i.i.i.i.i2384: ; preds = %while.body.i.i.i.i2370 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i2385 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2371 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2371: ; preds = %if.then.i.i.i.i.i2384, %while.body.i.i.i.i2370 %917 = phi ptr [ %.pre.i.i2385, %if.then.i.i.i.i.i2384 ], [ %916, %while.body.i.i.i.i2370 ] %arrayidx.i.i.i11.i.i2372 = getelementptr inbounds nuw i32, ptr %917, i64 %idxprom.i22.i.i.i.i.i2337 %918 = load atomic i32, ptr %arrayidx.i.i.i11.i.i2372 monotonic, align 4 %919 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2342, i32 %918, i32 %sub.i.i.i.i19.i.i.i.i2344, i32 31) %cmp.i.not.i.i.i.i2373 = icmp eq i32 %919, %port.sroa.43.0.i.i2346.lcssa br i1 %cmp.i.not.i.i.i.i2373, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2394, label %while.body.i.i.i.i2370, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2394: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2371, %cond.false.i.i.i2369 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2342) fence release %920 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i2319.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i2375 = icmp ne i64 %retval.sroa.2.1.i.i.i2319.lcssa, 0 %cmp2.i.i.i.i19.i.i2376 = icmp eq i64 %920, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i2377 = select i1 %iszero.i.i.i.i.i18.i.i2375, i1 %cmp2.i.i.i.i19.i.i2376, i1 false %div8.i.i.i21.i.i2378 = lshr i32 %retval.sroa.6.1.i.i.i2318.lcssa, 5 %921 = and i32 %retval.sroa.6.1.i.i.i2318.lcssa, 31 %idxprom.i.i.i22.i.i2379 = zext nneg i32 %div8.i.i.i21.i.i2378 to i64 %arrayidx.i.i.i23.i.i2380 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i2379 %conv4.i.i.i24.i.i2381 = zext i1 %cmp.i.i.i.i20.i.i2377 to i32 %shl.i.i.i25.i.i2382 = shl nuw i32 %conv4.i.i.i24.i.i2381, %921 %xor.i.i.i26.i.i2383 = xor i32 %shl.i.i.i25.i.i2382, -1 %922 = atomicrmw and ptr %arrayidx.i.i.i23.i.i2380, i32 %xor.i.i.i26.i.i2383 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2342) br label %for.cond.i.i.i.i2397 for.cond.i.i.i.i2397: ; preds = %for.cond.i.i.i.i2397, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2394 %End.0.i.i.i.i2398 = phi ptr [ %call18, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2394 ], [ %incdec.ptr.i.i.i.i2400, %for.cond.i.i.i.i2397 ] %923 = load i8, ptr %End.0.i.i.i.i2398, align 1, !tbaa !36 %cmp.i.i.i.i2399 = icmp eq i8 %923, 0 %incdec.ptr.i.i.i.i2400 = getelementptr inbounds nuw i8, ptr %End.0.i.i.i.i2398, i64 1 br i1 %cmp.i.i.i.i2399, label %for.cond.i.i.i2407.preheader, label %for.cond.i.i.i.i2397, !llvm.loop !101 for.cond.i.i.i2407.preheader: ; preds = %for.cond.i.i.i.i2397 %End.0.i.i.i.i2398.lcssa = phi ptr [ %End.0.i.i.i.i2398, %for.cond.i.i.i.i2397 ] br label %for.cond.i.i.i2407 for.cond.i.i.i2407: ; preds = %for.inc.i.i.i2442, %for.cond.i.i.i2407.preheader %retval.sroa.6.0.i.i.i2408 = phi i32 [ %retval.sroa.6.2.i.i.i2443, %for.inc.i.i.i2442 ], [ undef, %for.cond.i.i.i2407.preheader ] %retval.sroa.2.0.i.i.i2409 = phi i64 [ %retval.sroa.2.2.i.i.i2444, %for.inc.i.i.i2442 ], [ undef, %for.cond.i.i.i2407.preheader ] %retval.sroa.8.0.i.i.i2410 = phi i32 [ %retval.sroa.8.2.i.i.i2445, %for.inc.i.i.i2442 ], [ undef, %for.cond.i.i.i2407.preheader ] %index.0.i.i.i2411 = phi i32 [ %inc.i.i.i2446, %for.inc.i.i.i2442 ], [ 0, %for.cond.i.i.i2407.preheader ] %924 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i2412 = icmp ult i32 %index.0.i.i.i2411, %924 %spec.store.select.i.i.i2413 = select i1 %cmp.not.i.i.i2412, i32 %index.0.i.i.i2411, i32 0 %925 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i2414 = zext i32 %925 to i64 %div8.i.i.i.i.i2415 = lshr i32 %spec.store.select.i.i.i2413, 5 %926 = and i32 %spec.store.select.i.i.i2413, 31 %idxprom.i.i.i.i.i2416 = zext nneg i32 %div8.i.i.i.i.i2415 to i64 %arrayidx.i.i.i.i.i2417 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i2416 %927 = lshr i32 %925, %2 %conv4.i.i.i.i.i2418 = and i32 %927, 1 %shl.i.i.i.i.i2419 = shl nuw i32 %conv4.i.i.i.i.i2418, %926 %928 = atomicrmw or ptr %arrayidx.i.i.i.i.i2417, i32 %shl.i.i.i.i.i2419 monotonic, align 4 %shl5.i.i.i.i.i2420 = shl nuw i32 1, %926 %and.i.i.i.i.i2421 = and i32 %shl5.i.i.i.i.i2420, %928 %tobool3.i.i.i.i2422 = icmp ne i32 %and.i.i.i.i.i2421, 0 %929 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %925, i1 %tobool3.i.i.i.i2422) %cmp.i.not.i.i.i2423 = icmp eq i32 %925, %929 br i1 %cmp.i.not.i.i.i2423, label %for.inc.i.i.i2442, label %if.then.i.i.i.i2424 if.then.i.i.i.i2424: ; preds = %for.cond.i.i.i2407 fence acquire %930 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i2425 = zext i32 %spec.store.select.i.i.i2413 to i64 %arrayidx.i.i.i.i2426 = getelementptr inbounds nuw i32, ptr %930, i64 %idxprom.i.i.i.i2425 %931 = load atomic i32, ptr %arrayidx.i.i.i.i2426 monotonic, align 4 %932 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %925, i1 true) %iszero.i.i.i.i.i.i2427 = icmp eq i32 %925, 0 %sub.i.i.i.i.i.i2428 = select i1 %iszero.i.i.i.i.i.i2427, i32 -1, i32 %932 %933 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %925, i32 %931, i32 %sub.i.i.i.i.i.i2428, i32 31) %934 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i2429 = getelementptr inbounds nuw i32, ptr %934, i64 %idxprom.i.i.i.i2425 %935 = load atomic i32, ptr %arrayidx.i45.i.i.i2429 monotonic, align 4 %936 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %925, i32 %935, i32 %sub.i.i.i.i.i.i2428, i32 31) %cmp.i48.not.i.i.i2430 = icmp eq i32 %933, %936 br i1 %cmp.i48.not.i.i.i2430, label %if.end14.i.i.i2507, label %if.then12.i.i.i2431 if.then12.i.i.i2431: ; preds = %if.then.i.i.i.i2424 fence release %937 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2414, i1 true) %iszero.i.i.i.i.i.i.i2432 = icmp ne i32 %925, 0 %cmp2.i.i.i.i.i.i2433 = icmp eq i64 %937, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i2434 = select i1 %iszero.i.i.i.i.i.i.i2432, i1 %cmp2.i.i.i.i.i.i2433, i1 false %conv4.i.i53.i.i.i2435 = zext i1 %cmp.i.i.i.i.i.i2434 to i32 %shl.i.i54.i.i.i2436 = shl nuw i32 %conv4.i.i53.i.i.i2435, %926 %xor.i.i.i.i.i2437 = xor i32 %shl.i.i54.i.i.i2436, -1 %938 = atomicrmw and ptr %arrayidx.i.i.i.i.i2417, i32 %xor.i.i.i.i.i2437 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %925) br label %cleanup26.i.i.i2438 if.end14.i.i.i2507: ; preds = %if.then.i.i.i.i2424 %939 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2414, i1 true) %iszero.i.i.i56.i.i.i2508 = icmp ne i32 %925, 0 %cmp2.i.i.i.i.i2509 = icmp eq i64 %939, %sh_prom.i.i.i.i %cmp.i.i.i.i.i2510 = select i1 %iszero.i.i.i56.i.i.i2508, i1 %cmp2.i.i.i.i.i2509, i1 false br i1 %cmp.i.i.i.i.i2510, label %if.then16.i.i.i2512, label %if.end22.i.i.i2511 if.then16.i.i.i2512: ; preds = %if.end14.i.i.i2507 %940 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i2513 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %940, i64 %idxprom.i.i.i.i2425, i32 1 store i32 1660944387, ptr %opcode.i.i.i2513, align 8, !tbaa !61 %arrayidx21.i.i.i2514 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %940, i64 %idxprom.i.i.i.i2425 store i64 %conv.i.i.i.i.i2414, ptr %arrayidx21.i.i.i2514, align 8, !tbaa !64 br label %if.end22.i.i.i2511 if.end22.i.i.i2511: ; preds = %if.then16.i.i.i2512, %if.end14.i.i.i2507 call void @llvm.nvvm.bar.warp.sync(i32 %925) br label %cleanup26.i.i.i2438 cleanup26.i.i.i2438: ; preds = %if.end22.i.i.i2511, %if.then12.i.i.i2431 %retval.sroa.6.1.i.i.i2439 = phi i32 [ %retval.sroa.6.0.i.i.i2408, %if.then12.i.i.i2431 ], [ %spec.store.select.i.i.i2413, %if.end22.i.i.i2511 ] %retval.sroa.2.1.i.i.i2440 = phi i64 [ %retval.sroa.2.0.i.i.i2409, %if.then12.i.i.i2431 ], [ %conv.i.i.i.i.i2414, %if.end22.i.i.i2511 ] %retval.sroa.8.1.i.i.i2441 = phi i32 [ %retval.sroa.8.0.i.i.i2410, %if.then12.i.i.i2431 ], [ %933, %if.end22.i.i.i2511 ] br i1 %cmp.i48.not.i.i.i2430, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2447, label %for.inc.i.i.i2442 for.inc.i.i.i2442: ; preds = %cleanup26.i.i.i2438, %for.cond.i.i.i2407 %retval.sroa.6.2.i.i.i2443 = phi i32 [ %retval.sroa.6.1.i.i.i2439, %cleanup26.i.i.i2438 ], [ %retval.sroa.6.0.i.i.i2408, %for.cond.i.i.i2407 ] %retval.sroa.2.2.i.i.i2444 = phi i64 [ %retval.sroa.2.1.i.i.i2440, %cleanup26.i.i.i2438 ], [ %retval.sroa.2.0.i.i.i2409, %for.cond.i.i.i2407 ] %retval.sroa.8.2.i.i.i2445 = phi i32 [ %retval.sroa.8.1.i.i.i2441, %cleanup26.i.i.i2438 ], [ %retval.sroa.8.0.i.i.i2410, %for.cond.i.i.i2407 ] %inc.i.i.i2446 = add i32 %spec.store.select.i.i.i2413, 1 br label %for.cond.i.i.i2407, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2447: ; preds = %cleanup26.i.i.i2438 %retval.sroa.6.1.i.i.i2439.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i2439, %cleanup26.i.i.i2438 ] %retval.sroa.2.1.i.i.i2440.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i2440, %cleanup26.i.i.i2438 ] %retval.sroa.8.1.i.i.i2441.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i2441, %cleanup26.i.i.i2438 ] %sub.ptr.lhs.cast.i.i.i.i2402 = ptrtoint ptr %End.0.i.i.i.i2398.lcssa to i64 %sub.ptr.sub.i.i.i.i2404 = sub i64 %sub.ptr.lhs.cast.i.i.i.i2402, %sub.ptr.rhs.cast.i.i.i.i1210 fence acquire %941 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i2450 = shl i32 %retval.sroa.6.1.i.i.i2439.lcssa, 5 %idxprom.i18.i.i.i.i.i2451 = zext i32 %mul.i.i.i.i.i.i2450 to i64 %arrayidx.i19.i.i.i.i.i2452 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %941, i64 %idxprom.i18.i.i.i.i.i2451 %arrayidx.i21.i.i.i.i.i2453 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i2452, i64 %sh_prom.i.i.i.i store i64 %sub.ptr.sub.i.i.i.i2404, ptr %arrayidx.i21.i.i.i.i.i2453, align 8, !tbaa !67 %spec.select.i.i.i.i.i.i.i2454 = call i64 @llvm.umin.i64(i64 %sub.ptr.sub.i.i.i.i2404, i64 56) %arrayidx6.i.i.i.i.i.i.i2455 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i2453, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %arrayidx6.i.i.i.i.i.i.i2455, ptr align 1 %call18, i64 %spec.select.i.i.i.i.i.i.i2454, i1 false) %tobool.not.i.i.i.i.i.i2456 = icmp eq i32 %retval.sroa.8.1.i.i.i2441.lcssa, 0 %conv.i.i.i.i.i.i2457 = zext i1 %tobool.not.i.i.i.i.i.i2456 to i32 fence release %942 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i2458 = zext i32 %retval.sroa.6.1.i.i.i2439.lcssa to i64 %arrayidx.i23.i.i.i.i.i2459 = getelementptr inbounds nuw i32, ptr %942, i64 %idxprom.i22.i.i.i.i.i2458 store atomic i32 %conv.i.i.i.i.i.i2457, ptr %arrayidx.i23.i.i.i.i.i2459 monotonic, align 4 %943 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i2460 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %943, i64 %idxprom.i22.i.i.i.i.i2458 %944 = load i64, ptr %arrayidx.i.i4.i.i2460, align 8, !tbaa !64 %conv.i.i7.i.i.i.i2461 = trunc i64 %944 to i32 %conv.i.i.i.i17.i.i.i.i2463 = trunc i64 %retval.sroa.2.1.i.i.i2440.lcssa to i32 %945 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i2463, i1 true) %iszero.i.i.i.i18.i.i.i.i2464 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i2463, 0 %sub.i.i.i.i19.i.i.i.i2465 = select i1 %iszero.i.i.i.i18.i.i.i.i2464, i32 -1, i32 %945 br label %while.cond.i.i.i.i2466 while.cond.i.i.i.i2466: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2478, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2447 %port.sroa.43.0.i.i2467 = phi i32 [ %conv.i.i.i.i.i.i2457, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2447 ], [ %conv.i.i39.i.i.i.i2479, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2478 ] %idx.0.i.i.i.i2468 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2447 ], [ %add.i.i.i.i2481, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2478 ] %cmp.i.i.i2.i2469 = icmp ult i64 %idx.0.i.i.i.i2468, %sub.ptr.sub.i.i.i.i2404 %946 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i2461, i1 %cmp.i.i.i2.i2469) %tobool.not.i.i.i.i2470 = icmp eq i32 %946, 0 %947 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i2471 = getelementptr inbounds nuw i32, ptr %947, i64 %idxprom.i22.i.i.i.i.i2458 %948 = load atomic i32, ptr %arrayidx.i22.i.i.i2471 monotonic, align 4 br i1 %tobool.not.i.i.i.i2470, label %cond.false.i.i.i2490, label %cond.false.i11.i.i.i.i2472 cond.false.i11.i.i.i.i2472: ; preds = %while.cond.i.i.i.i2466 %949 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2463, i32 %948, i32 %sub.i.i.i.i19.i.i.i.i2465, i32 31) %950 = icmp eq i32 %949, %port.sroa.43.0.i.i2467 br i1 %950, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2477, label %while.body.i.i33.i.i.i.i2473 while.body.i.i33.i.i.i.i2473: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2474, %cond.false.i11.i.i.i.i2472 %951 = phi ptr [ %952, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2474 ], [ %947, %cond.false.i11.i.i.i.i2472 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i2488, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2474 if.then.i.i.i48.i.i.i.i2488: ; preds = %while.body.i.i33.i.i.i.i2473 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i2489 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2474 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2474: ; preds = %if.then.i.i.i48.i.i.i.i2488, %while.body.i.i33.i.i.i.i2473 %952 = phi ptr [ %.pre.i.i.i.i2489, %if.then.i.i.i48.i.i.i.i2488 ], [ %951, %while.body.i.i33.i.i.i.i2473 ] %arrayidx.i.i.i35.i.i.i.i2475 = getelementptr inbounds nuw i32, ptr %952, i64 %idxprom.i22.i.i.i.i.i2458 %953 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i2475 monotonic, align 4 %954 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2463, i32 %953, i32 %sub.i.i.i.i19.i.i.i.i2465, i32 31) %cmp.i.not.i.i36.i.i.i.i2476 = icmp eq i32 %954, %port.sroa.43.0.i.i2467 br i1 %cmp.i.not.i.i36.i.i.i.i2476, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2477, label %while.body.i.i33.i.i.i.i2473, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2477: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2474, %cond.false.i11.i.i.i.i2472 fence acquire br i1 %cmp.i.i.i2.i2469, label %if.then.i.i20.i.i.i.i.i2482, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2478 if.then.i.i20.i.i.i.i.i2482: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2477 %add.ptr.i.i.i.i.i.i.i.i2483 = getelementptr inbounds nuw i8, ptr %call18, i64 %idx.0.i.i.i.i2468 %sub.i.i.i.i.i.i.i2484 = sub nuw i64 %sub.ptr.sub.i.i.i.i2404, %idx.0.i.i.i.i2468 %spec.select.i.i.i47.i.i.i.i2485 = call i64 @llvm.umin.i64(i64 %sub.i.i.i.i.i.i.i2484, i64 64) %955 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i2486 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %955, i64 %idxprom.i18.i.i.i.i.i2451 %arrayidx.i22.i.i.i.i.i2487 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i2486, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr align 1 %arrayidx.i22.i.i.i.i.i2487, ptr align 1 %add.ptr.i.i.i.i.i.i.i.i2483, i64 %spec.select.i.i.i47.i.i.i.i2485, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2478 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2478: ; preds = %if.then.i.i20.i.i.i.i.i2482, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2477 %conv.i.i39.i.i.i.i2479 = xor i32 %port.sroa.43.0.i.i2467, 1 fence release %956 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i2480 = getelementptr inbounds nuw i32, ptr %956, i64 %idxprom.i22.i.i.i.i.i2458 store atomic i32 %conv.i.i39.i.i.i.i2479, ptr %arrayidx.i24.i.i.i.i.i2480 monotonic, align 4 %add.i.i.i.i2481 = add i64 %idx.0.i.i.i.i2468, 64 br label %while.cond.i.i.i.i2466, !llvm.loop !71 cond.false.i.i.i2490: ; preds = %while.cond.i.i.i.i2466 %port.sroa.43.0.i.i2467.lcssa = phi i32 [ %port.sroa.43.0.i.i2467, %while.cond.i.i.i.i2466 ] %.lcssa5646 = phi ptr [ %947, %while.cond.i.i.i.i2466 ] %.lcssa5645 = phi i32 [ %948, %while.cond.i.i.i.i2466 ] %957 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2463, i32 %.lcssa5645, i32 %sub.i.i.i.i19.i.i.i.i2465, i32 31) %958 = icmp eq i32 %957, %port.sroa.43.0.i.i2467.lcssa br i1 %958, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2515, label %while.body.i.i.i.i2491 while.body.i.i.i.i2491: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2492, %cond.false.i.i.i2490 %959 = phi ptr [ %960, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2492 ], [ %.lcssa5646, %cond.false.i.i.i2490 ] br i1 %343, label %if.then.i.i.i.i.i2505, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2492 if.then.i.i.i.i.i2505: ; preds = %while.body.i.i.i.i2491 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i2506 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2492 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2492: ; preds = %if.then.i.i.i.i.i2505, %while.body.i.i.i.i2491 %960 = phi ptr [ %.pre.i.i2506, %if.then.i.i.i.i.i2505 ], [ %959, %while.body.i.i.i.i2491 ] %arrayidx.i.i.i11.i.i2493 = getelementptr inbounds nuw i32, ptr %960, i64 %idxprom.i22.i.i.i.i.i2458 %961 = load atomic i32, ptr %arrayidx.i.i.i11.i.i2493 monotonic, align 4 %962 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2463, i32 %961, i32 %sub.i.i.i.i19.i.i.i.i2465, i32 31) %cmp.i.not.i.i.i.i2494 = icmp eq i32 %962, %port.sroa.43.0.i.i2467.lcssa br i1 %cmp.i.not.i.i.i.i2494, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2515, label %while.body.i.i.i.i2491, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2515: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2492, %cond.false.i.i.i2490 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2463) fence release %963 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i2440.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i2496 = icmp ne i64 %retval.sroa.2.1.i.i.i2440.lcssa, 0 %cmp2.i.i.i.i19.i.i2497 = icmp eq i64 %963, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i2498 = select i1 %iszero.i.i.i.i.i18.i.i2496, i1 %cmp2.i.i.i.i19.i.i2497, i1 false %div8.i.i.i21.i.i2499 = lshr i32 %retval.sroa.6.1.i.i.i2439.lcssa, 5 %964 = and i32 %retval.sroa.6.1.i.i.i2439.lcssa, 31 %idxprom.i.i.i22.i.i2500 = zext nneg i32 %div8.i.i.i21.i.i2499 to i64 %arrayidx.i.i.i23.i.i2501 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i2500 %conv4.i.i.i24.i.i2502 = zext i1 %cmp.i.i.i.i20.i.i2498 to i32 %shl.i.i.i25.i.i2503 = shl nuw i32 %conv4.i.i.i24.i.i2502, %964 %xor.i.i.i26.i.i2504 = xor i32 %shl.i.i.i25.i.i2503, -1 %965 = atomicrmw and ptr %arrayidx.i.i.i23.i.i2501, i32 %xor.i.i.i26.i.i2504 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2463) br label %for.cond.i.i.i2527 for.cond.i.i.i2527: ; preds = %for.inc.i.i.i2562, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2515 %retval.sroa.6.0.i.i.i2528 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2515 ], [ %retval.sroa.6.2.i.i.i2563, %for.inc.i.i.i2562 ] %retval.sroa.2.0.i.i.i2529 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2515 ], [ %retval.sroa.2.2.i.i.i2564, %for.inc.i.i.i2562 ] %retval.sroa.8.0.i.i.i2530 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2515 ], [ %retval.sroa.8.2.i.i.i2565, %for.inc.i.i.i2562 ] %index.0.i.i.i2531 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2515 ], [ %inc.i.i.i2566, %for.inc.i.i.i2562 ] %966 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i2532 = icmp ult i32 %index.0.i.i.i2531, %966 %spec.store.select.i.i.i2533 = select i1 %cmp.not.i.i.i2532, i32 %index.0.i.i.i2531, i32 0 %967 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i2534 = zext i32 %967 to i64 %div8.i.i.i.i.i2535 = lshr i32 %spec.store.select.i.i.i2533, 5 %968 = and i32 %spec.store.select.i.i.i2533, 31 %idxprom.i.i.i.i.i2536 = zext nneg i32 %div8.i.i.i.i.i2535 to i64 %arrayidx.i.i.i.i.i2537 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i2536 %969 = lshr i32 %967, %2 %conv4.i.i.i.i.i2538 = and i32 %969, 1 %shl.i.i.i.i.i2539 = shl nuw i32 %conv4.i.i.i.i.i2538, %968 %970 = atomicrmw or ptr %arrayidx.i.i.i.i.i2537, i32 %shl.i.i.i.i.i2539 monotonic, align 4 %shl5.i.i.i.i.i2540 = shl nuw i32 1, %968 %and.i.i.i.i.i2541 = and i32 %shl5.i.i.i.i.i2540, %970 %tobool3.i.i.i.i2542 = icmp ne i32 %and.i.i.i.i.i2541, 0 %971 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %967, i1 %tobool3.i.i.i.i2542) %cmp.i.not.i.i.i2543 = icmp eq i32 %967, %971 br i1 %cmp.i.not.i.i.i2543, label %for.inc.i.i.i2562, label %if.then.i.i.i.i2544 if.then.i.i.i.i2544: ; preds = %for.cond.i.i.i2527 fence acquire %972 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i2545 = zext i32 %spec.store.select.i.i.i2533 to i64 %arrayidx.i.i.i.i2546 = getelementptr inbounds nuw i32, ptr %972, i64 %idxprom.i.i.i.i2545 %973 = load atomic i32, ptr %arrayidx.i.i.i.i2546 monotonic, align 4 %974 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %967, i1 true) %iszero.i.i.i.i.i.i2547 = icmp eq i32 %967, 0 %sub.i.i.i.i.i.i2548 = select i1 %iszero.i.i.i.i.i.i2547, i32 -1, i32 %974 %975 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %967, i32 %973, i32 %sub.i.i.i.i.i.i2548, i32 31) %976 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i2549 = getelementptr inbounds nuw i32, ptr %976, i64 %idxprom.i.i.i.i2545 %977 = load atomic i32, ptr %arrayidx.i45.i.i.i2549 monotonic, align 4 %978 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %967, i32 %977, i32 %sub.i.i.i.i.i.i2548, i32 31) %cmp.i48.not.i.i.i2550 = icmp eq i32 %975, %978 br i1 %cmp.i48.not.i.i.i2550, label %if.end14.i.i.i2627, label %if.then12.i.i.i2551 if.then12.i.i.i2551: ; preds = %if.then.i.i.i.i2544 fence release %979 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2534, i1 true) %iszero.i.i.i.i.i.i.i2552 = icmp ne i32 %967, 0 %cmp2.i.i.i.i.i.i2553 = icmp eq i64 %979, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i2554 = select i1 %iszero.i.i.i.i.i.i.i2552, i1 %cmp2.i.i.i.i.i.i2553, i1 false %conv4.i.i53.i.i.i2555 = zext i1 %cmp.i.i.i.i.i.i2554 to i32 %shl.i.i54.i.i.i2556 = shl nuw i32 %conv4.i.i53.i.i.i2555, %968 %xor.i.i.i.i.i2557 = xor i32 %shl.i.i54.i.i.i2556, -1 %980 = atomicrmw and ptr %arrayidx.i.i.i.i.i2537, i32 %xor.i.i.i.i.i2557 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %967) br label %cleanup26.i.i.i2558 if.end14.i.i.i2627: ; preds = %if.then.i.i.i.i2544 %981 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2534, i1 true) %iszero.i.i.i56.i.i.i2628 = icmp ne i32 %967, 0 %cmp2.i.i.i.i.i2629 = icmp eq i64 %981, %sh_prom.i.i.i.i %cmp.i.i.i.i.i2630 = select i1 %iszero.i.i.i56.i.i.i2628, i1 %cmp2.i.i.i.i.i2629, i1 false br i1 %cmp.i.i.i.i.i2630, label %if.then16.i.i.i2632, label %if.end22.i.i.i2631 if.then16.i.i.i2632: ; preds = %if.end14.i.i.i2627 %982 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i2633 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %982, i64 %idxprom.i.i.i.i2545, i32 1 store i32 1660944387, ptr %opcode.i.i.i2633, align 8, !tbaa !61 %arrayidx21.i.i.i2634 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %982, i64 %idxprom.i.i.i.i2545 store i64 %conv.i.i.i.i.i2534, ptr %arrayidx21.i.i.i2634, align 8, !tbaa !64 br label %if.end22.i.i.i2631 if.end22.i.i.i2631: ; preds = %if.then16.i.i.i2632, %if.end14.i.i.i2627 call void @llvm.nvvm.bar.warp.sync(i32 %967) br label %cleanup26.i.i.i2558 cleanup26.i.i.i2558: ; preds = %if.end22.i.i.i2631, %if.then12.i.i.i2551 %retval.sroa.6.1.i.i.i2559 = phi i32 [ %retval.sroa.6.0.i.i.i2528, %if.then12.i.i.i2551 ], [ %spec.store.select.i.i.i2533, %if.end22.i.i.i2631 ] %retval.sroa.2.1.i.i.i2560 = phi i64 [ %retval.sroa.2.0.i.i.i2529, %if.then12.i.i.i2551 ], [ %conv.i.i.i.i.i2534, %if.end22.i.i.i2631 ] %retval.sroa.8.1.i.i.i2561 = phi i32 [ %retval.sroa.8.0.i.i.i2530, %if.then12.i.i.i2551 ], [ %975, %if.end22.i.i.i2631 ] br i1 %cmp.i48.not.i.i.i2550, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2567, label %for.inc.i.i.i2562 for.inc.i.i.i2562: ; preds = %cleanup26.i.i.i2558, %for.cond.i.i.i2527 %retval.sroa.6.2.i.i.i2563 = phi i32 [ %retval.sroa.6.1.i.i.i2559, %cleanup26.i.i.i2558 ], [ %retval.sroa.6.0.i.i.i2528, %for.cond.i.i.i2527 ] %retval.sroa.2.2.i.i.i2564 = phi i64 [ %retval.sroa.2.1.i.i.i2560, %cleanup26.i.i.i2558 ], [ %retval.sroa.2.0.i.i.i2529, %for.cond.i.i.i2527 ] %retval.sroa.8.2.i.i.i2565 = phi i32 [ %retval.sroa.8.1.i.i.i2561, %cleanup26.i.i.i2558 ], [ %retval.sroa.8.0.i.i.i2530, %for.cond.i.i.i2527 ] %inc.i.i.i2566 = add i32 %spec.store.select.i.i.i2533, 1 br label %for.cond.i.i.i2527, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2567: ; preds = %cleanup26.i.i.i2558 %retval.sroa.6.1.i.i.i2559.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i2559, %cleanup26.i.i.i2558 ] %retval.sroa.2.1.i.i.i2560.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i2560, %cleanup26.i.i.i2558 ] %retval.sroa.8.1.i.i.i2561.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i2561, %cleanup26.i.i.i2558 ] fence acquire %983 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i2570 = shl i32 %retval.sroa.6.1.i.i.i2559.lcssa, 5 %idxprom.i18.i.i.i.i.i2571 = zext i32 %mul.i.i.i.i.i.i2570 to i64 %arrayidx.i19.i.i.i.i.i2572 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %983, i64 %idxprom.i18.i.i.i.i.i2571 %arrayidx.i21.i.i.i.i.i2573 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i2572, i64 %sh_prom.i.i.i.i store i64 2, ptr %arrayidx.i21.i.i.i.i.i2573, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i2575 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i2573, i64 8 store i16 10272, ptr %arrayidx6.i.i.i.i.i.i.i2575, align 8 %tobool.not.i.i.i.i.i.i2576 = icmp eq i32 %retval.sroa.8.1.i.i.i2561.lcssa, 0 %conv.i.i.i.i.i.i2577 = zext i1 %tobool.not.i.i.i.i.i.i2576 to i32 fence release %984 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i2578 = zext i32 %retval.sroa.6.1.i.i.i2559.lcssa to i64 %arrayidx.i23.i.i.i.i.i2579 = getelementptr inbounds nuw i32, ptr %984, i64 %idxprom.i22.i.i.i.i.i2578 store atomic i32 %conv.i.i.i.i.i.i2577, ptr %arrayidx.i23.i.i.i.i.i2579 monotonic, align 4 %985 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i2580 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %985, i64 %idxprom.i22.i.i.i.i.i2578 %986 = load i64, ptr %arrayidx.i.i4.i.i2580, align 8, !tbaa !64 %conv.i.i7.i.i.i.i2581 = trunc i64 %986 to i32 %conv.i.i.i.i17.i.i.i.i2583 = trunc i64 %retval.sroa.2.1.i.i.i2560.lcssa to i32 %987 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i2583, i1 true) %iszero.i.i.i.i18.i.i.i.i2584 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i2583, 0 %sub.i.i.i.i19.i.i.i.i2585 = select i1 %iszero.i.i.i.i18.i.i.i.i2584, i32 -1, i32 %987 br label %while.cond.i.i.i.i2586 while.cond.i.i.i.i2586: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2598, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2567 %port.sroa.43.0.i.i2587 = phi i32 [ %conv.i.i.i.i.i.i2577, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2567 ], [ %conv.i.i39.i.i.i.i2599, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2598 ] %idx.0.i.i.i.i2588 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2567 ], [ %add.i.i.i.i2601, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2598 ] %cmp.i.i.i2.i2589 = icmp eq i64 %idx.0.i.i.i.i2588, 0 %988 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i2581, i1 %cmp.i.i.i2.i2589) %tobool.not.i.i.i.i2590 = icmp eq i32 %988, 0 %989 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i2591 = getelementptr inbounds nuw i32, ptr %989, i64 %idxprom.i22.i.i.i.i.i2578 %990 = load atomic i32, ptr %arrayidx.i22.i.i.i2591 monotonic, align 4 br i1 %tobool.not.i.i.i.i2590, label %cond.false.i.i.i2610, label %cond.false.i11.i.i.i.i2592 cond.false.i11.i.i.i.i2592: ; preds = %while.cond.i.i.i.i2586 %991 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2583, i32 %990, i32 %sub.i.i.i.i19.i.i.i.i2585, i32 31) %992 = icmp eq i32 %991, %port.sroa.43.0.i.i2587 br i1 %992, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2597, label %while.body.i.i33.i.i.i.i2593 while.body.i.i33.i.i.i.i2593: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2594, %cond.false.i11.i.i.i.i2592 %993 = phi ptr [ %994, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2594 ], [ %989, %cond.false.i11.i.i.i.i2592 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i2608, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2594 if.then.i.i.i48.i.i.i.i2608: ; preds = %while.body.i.i33.i.i.i.i2593 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i2609 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2594 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2594: ; preds = %if.then.i.i.i48.i.i.i.i2608, %while.body.i.i33.i.i.i.i2593 %994 = phi ptr [ %.pre.i.i.i.i2609, %if.then.i.i.i48.i.i.i.i2608 ], [ %993, %while.body.i.i33.i.i.i.i2593 ] %arrayidx.i.i.i35.i.i.i.i2595 = getelementptr inbounds nuw i32, ptr %994, i64 %idxprom.i22.i.i.i.i.i2578 %995 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i2595 monotonic, align 4 %996 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2583, i32 %995, i32 %sub.i.i.i.i19.i.i.i.i2585, i32 31) %cmp.i.not.i.i36.i.i.i.i2596 = icmp eq i32 %996, %port.sroa.43.0.i.i2587 br i1 %cmp.i.not.i.i36.i.i.i.i2596, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2597, label %while.body.i.i33.i.i.i.i2593, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2597: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2594, %cond.false.i11.i.i.i.i2592 fence acquire br i1 %cmp.i.i.i2.i2589, label %if.then.i.i20.i.i.i.i.i2602, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2598 if.then.i.i20.i.i.i.i.i2602: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2597 %997 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i2606 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %997, i64 %idxprom.i18.i.i.i.i.i2571 %arrayidx.i22.i.i.i.i.i2607 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i2606, i64 %sh_prom.i.i.i.i store i16 10272, ptr %arrayidx.i22.i.i.i.i.i2607, align 1 br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2598 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2598: ; preds = %if.then.i.i20.i.i.i.i.i2602, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2597 %conv.i.i39.i.i.i.i2599 = xor i32 %port.sroa.43.0.i.i2587, 1 fence release %998 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i2600 = getelementptr inbounds nuw i32, ptr %998, i64 %idxprom.i22.i.i.i.i.i2578 store atomic i32 %conv.i.i39.i.i.i.i2599, ptr %arrayidx.i24.i.i.i.i.i2600 monotonic, align 4 %add.i.i.i.i2601 = add i64 %idx.0.i.i.i.i2588, 64 br label %while.cond.i.i.i.i2586, !llvm.loop !71 cond.false.i.i.i2610: ; preds = %while.cond.i.i.i.i2586 %port.sroa.43.0.i.i2587.lcssa = phi i32 [ %port.sroa.43.0.i.i2587, %while.cond.i.i.i.i2586 ] %.lcssa5648 = phi ptr [ %989, %while.cond.i.i.i.i2586 ] %.lcssa5647 = phi i32 [ %990, %while.cond.i.i.i.i2586 ] %999 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2583, i32 %.lcssa5647, i32 %sub.i.i.i.i19.i.i.i.i2585, i32 31) %1000 = icmp eq i32 %999, %port.sroa.43.0.i.i2587.lcssa br i1 %1000, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2635, label %while.body.i.i.i.i2611 while.body.i.i.i.i2611: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2612, %cond.false.i.i.i2610 %1001 = phi ptr [ %1002, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2612 ], [ %.lcssa5648, %cond.false.i.i.i2610 ] br i1 %343, label %if.then.i.i.i.i.i2625, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2612 if.then.i.i.i.i.i2625: ; preds = %while.body.i.i.i.i2611 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i2626 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2612 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2612: ; preds = %if.then.i.i.i.i.i2625, %while.body.i.i.i.i2611 %1002 = phi ptr [ %.pre.i.i2626, %if.then.i.i.i.i.i2625 ], [ %1001, %while.body.i.i.i.i2611 ] %arrayidx.i.i.i11.i.i2613 = getelementptr inbounds nuw i32, ptr %1002, i64 %idxprom.i22.i.i.i.i.i2578 %1003 = load atomic i32, ptr %arrayidx.i.i.i11.i.i2613 monotonic, align 4 %1004 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2583, i32 %1003, i32 %sub.i.i.i.i19.i.i.i.i2585, i32 31) %cmp.i.not.i.i.i.i2614 = icmp eq i32 %1004, %port.sroa.43.0.i.i2587.lcssa br i1 %cmp.i.not.i.i.i.i2614, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2635, label %while.body.i.i.i.i2611, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2635: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2612, %cond.false.i.i.i2610 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2583) fence release %1005 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i2560.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i2616 = icmp ne i64 %retval.sroa.2.1.i.i.i2560.lcssa, 0 %cmp2.i.i.i.i19.i.i2617 = icmp eq i64 %1005, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i2618 = select i1 %iszero.i.i.i.i.i18.i.i2616, i1 %cmp2.i.i.i.i19.i.i2617, i1 false %div8.i.i.i21.i.i2619 = lshr i32 %retval.sroa.6.1.i.i.i2559.lcssa, 5 %1006 = and i32 %retval.sroa.6.1.i.i.i2559.lcssa, 31 %idxprom.i.i.i22.i.i2620 = zext nneg i32 %div8.i.i.i21.i.i2619 to i64 %arrayidx.i.i.i23.i.i2621 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i2620 %conv4.i.i.i24.i.i2622 = zext i1 %cmp.i.i.i.i20.i.i2618 to i32 %shl.i.i.i25.i.i2623 = shl nuw i32 %conv4.i.i.i24.i.i2622, %1006 %xor.i.i.i26.i.i2624 = xor i32 %shl.i.i.i25.i.i2623, -1 %1007 = atomicrmw and ptr %arrayidx.i.i.i23.i.i2621, i32 %xor.i.i.i26.i.i2624 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2583) %cmp62 = icmp samesign ugt i64 %div.i, %div.i1435 br i1 %cmp62, label %for.cond.i.i.i2647, label %if.else for.cond.i.i.i2647: ; preds = %for.inc.i.i.i2682, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2635 %retval.sroa.6.0.i.i.i2648 = phi i32 [ %retval.sroa.6.2.i.i.i2683, %for.inc.i.i.i2682 ], [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2635 ] %retval.sroa.2.0.i.i.i2649 = phi i64 [ %retval.sroa.2.2.i.i.i2684, %for.inc.i.i.i2682 ], [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2635 ] %retval.sroa.8.0.i.i.i2650 = phi i32 [ %retval.sroa.8.2.i.i.i2685, %for.inc.i.i.i2682 ], [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2635 ] %index.0.i.i.i2651 = phi i32 [ %inc.i.i.i2686, %for.inc.i.i.i2682 ], [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2635 ] %1008 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i2652 = icmp ult i32 %index.0.i.i.i2651, %1008 %spec.store.select.i.i.i2653 = select i1 %cmp.not.i.i.i2652, i32 %index.0.i.i.i2651, i32 0 %1009 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i2654 = zext i32 %1009 to i64 %div8.i.i.i.i.i2655 = lshr i32 %spec.store.select.i.i.i2653, 5 %1010 = and i32 %spec.store.select.i.i.i2653, 31 %idxprom.i.i.i.i.i2656 = zext nneg i32 %div8.i.i.i.i.i2655 to i64 %arrayidx.i.i.i.i.i2657 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i2656 %1011 = lshr i32 %1009, %2 %conv4.i.i.i.i.i2658 = and i32 %1011, 1 %shl.i.i.i.i.i2659 = shl nuw i32 %conv4.i.i.i.i.i2658, %1010 %1012 = atomicrmw or ptr %arrayidx.i.i.i.i.i2657, i32 %shl.i.i.i.i.i2659 monotonic, align 4 %shl5.i.i.i.i.i2660 = shl nuw i32 1, %1010 %and.i.i.i.i.i2661 = and i32 %shl5.i.i.i.i.i2660, %1012 %tobool3.i.i.i.i2662 = icmp ne i32 %and.i.i.i.i.i2661, 0 %1013 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %1009, i1 %tobool3.i.i.i.i2662) %cmp.i.not.i.i.i2663 = icmp eq i32 %1009, %1013 br i1 %cmp.i.not.i.i.i2663, label %for.inc.i.i.i2682, label %if.then.i.i.i.i2664 if.then.i.i.i.i2664: ; preds = %for.cond.i.i.i2647 fence acquire %1014 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i2665 = zext i32 %spec.store.select.i.i.i2653 to i64 %arrayidx.i.i.i.i2666 = getelementptr inbounds nuw i32, ptr %1014, i64 %idxprom.i.i.i.i2665 %1015 = load atomic i32, ptr %arrayidx.i.i.i.i2666 monotonic, align 4 %1016 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %1009, i1 true) %iszero.i.i.i.i.i.i2667 = icmp eq i32 %1009, 0 %sub.i.i.i.i.i.i2668 = select i1 %iszero.i.i.i.i.i.i2667, i32 -1, i32 %1016 %1017 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1009, i32 %1015, i32 %sub.i.i.i.i.i.i2668, i32 31) %1018 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i2669 = getelementptr inbounds nuw i32, ptr %1018, i64 %idxprom.i.i.i.i2665 %1019 = load atomic i32, ptr %arrayidx.i45.i.i.i2669 monotonic, align 4 %1020 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1009, i32 %1019, i32 %sub.i.i.i.i.i.i2668, i32 31) %cmp.i48.not.i.i.i2670 = icmp eq i32 %1017, %1020 br i1 %cmp.i48.not.i.i.i2670, label %if.end14.i.i.i2747, label %if.then12.i.i.i2671 if.then12.i.i.i2671: ; preds = %if.then.i.i.i.i2664 fence release %1021 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2654, i1 true) %iszero.i.i.i.i.i.i.i2672 = icmp ne i32 %1009, 0 %cmp2.i.i.i.i.i.i2673 = icmp eq i64 %1021, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i2674 = select i1 %iszero.i.i.i.i.i.i.i2672, i1 %cmp2.i.i.i.i.i.i2673, i1 false %conv4.i.i53.i.i.i2675 = zext i1 %cmp.i.i.i.i.i.i2674 to i32 %shl.i.i54.i.i.i2676 = shl nuw i32 %conv4.i.i53.i.i.i2675, %1010 %xor.i.i.i.i.i2677 = xor i32 %shl.i.i54.i.i.i2676, -1 %1022 = atomicrmw and ptr %arrayidx.i.i.i.i.i2657, i32 %xor.i.i.i.i.i2677 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %1009) br label %cleanup26.i.i.i2678 if.end14.i.i.i2747: ; preds = %if.then.i.i.i.i2664 %1023 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2654, i1 true) %iszero.i.i.i56.i.i.i2748 = icmp ne i32 %1009, 0 %cmp2.i.i.i.i.i2749 = icmp eq i64 %1023, %sh_prom.i.i.i.i %cmp.i.i.i.i.i2750 = select i1 %iszero.i.i.i56.i.i.i2748, i1 %cmp2.i.i.i.i.i2749, i1 false br i1 %cmp.i.i.i.i.i2750, label %if.then16.i.i.i2752, label %if.end22.i.i.i2751 if.then16.i.i.i2752: ; preds = %if.end14.i.i.i2747 %1024 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i2753 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1024, i64 %idxprom.i.i.i.i2665, i32 1 store i32 1660944387, ptr %opcode.i.i.i2753, align 8, !tbaa !61 %arrayidx21.i.i.i2754 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1024, i64 %idxprom.i.i.i.i2665 store i64 %conv.i.i.i.i.i2654, ptr %arrayidx21.i.i.i2754, align 8, !tbaa !64 br label %if.end22.i.i.i2751 if.end22.i.i.i2751: ; preds = %if.then16.i.i.i2752, %if.end14.i.i.i2747 call void @llvm.nvvm.bar.warp.sync(i32 %1009) br label %cleanup26.i.i.i2678 cleanup26.i.i.i2678: ; preds = %if.end22.i.i.i2751, %if.then12.i.i.i2671 %retval.sroa.6.1.i.i.i2679 = phi i32 [ %retval.sroa.6.0.i.i.i2648, %if.then12.i.i.i2671 ], [ %spec.store.select.i.i.i2653, %if.end22.i.i.i2751 ] %retval.sroa.2.1.i.i.i2680 = phi i64 [ %retval.sroa.2.0.i.i.i2649, %if.then12.i.i.i2671 ], [ %conv.i.i.i.i.i2654, %if.end22.i.i.i2751 ] %retval.sroa.8.1.i.i.i2681 = phi i32 [ %retval.sroa.8.0.i.i.i2650, %if.then12.i.i.i2671 ], [ %1017, %if.end22.i.i.i2751 ] br i1 %cmp.i48.not.i.i.i2670, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2687, label %for.inc.i.i.i2682 for.inc.i.i.i2682: ; preds = %cleanup26.i.i.i2678, %for.cond.i.i.i2647 %retval.sroa.6.2.i.i.i2683 = phi i32 [ %retval.sroa.6.1.i.i.i2679, %cleanup26.i.i.i2678 ], [ %retval.sroa.6.0.i.i.i2648, %for.cond.i.i.i2647 ] %retval.sroa.2.2.i.i.i2684 = phi i64 [ %retval.sroa.2.1.i.i.i2680, %cleanup26.i.i.i2678 ], [ %retval.sroa.2.0.i.i.i2649, %for.cond.i.i.i2647 ] %retval.sroa.8.2.i.i.i2685 = phi i32 [ %retval.sroa.8.1.i.i.i2681, %cleanup26.i.i.i2678 ], [ %retval.sroa.8.0.i.i.i2650, %for.cond.i.i.i2647 ] %inc.i.i.i2686 = add i32 %spec.store.select.i.i.i2653, 1 br label %for.cond.i.i.i2647, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2687: ; preds = %cleanup26.i.i.i2678 %retval.sroa.6.1.i.i.i2679.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i2679, %cleanup26.i.i.i2678 ] %retval.sroa.2.1.i.i.i2680.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i2680, %cleanup26.i.i.i2678 ] %retval.sroa.8.1.i.i.i2681.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i2681, %cleanup26.i.i.i2678 ] fence acquire %1025 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i2690 = shl i32 %retval.sroa.6.1.i.i.i2679.lcssa, 5 %idxprom.i18.i.i.i.i.i2691 = zext i32 %mul.i.i.i.i.i.i2690 to i64 %arrayidx.i19.i.i.i.i.i2692 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1025, i64 %idxprom.i18.i.i.i.i.i2691 %arrayidx.i21.i.i.i.i.i2693 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i2692, i64 %sh_prom.i.i.i.i store i64 25, ptr %arrayidx.i21.i.i.i.i.i2693, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i2695 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i2693, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(25) %arrayidx6.i.i.i.i.i.i.i2695, ptr noundef nonnull align 1 dereferenceable(25) @.str21, i64 25, i1 false) %tobool.not.i.i.i.i.i.i2696 = icmp eq i32 %retval.sroa.8.1.i.i.i2681.lcssa, 0 %conv.i.i.i.i.i.i2697 = zext i1 %tobool.not.i.i.i.i.i.i2696 to i32 fence release %1026 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i2698 = zext i32 %retval.sroa.6.1.i.i.i2679.lcssa to i64 %arrayidx.i23.i.i.i.i.i2699 = getelementptr inbounds nuw i32, ptr %1026, i64 %idxprom.i22.i.i.i.i.i2698 store atomic i32 %conv.i.i.i.i.i.i2697, ptr %arrayidx.i23.i.i.i.i.i2699 monotonic, align 4 %1027 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i2700 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1027, i64 %idxprom.i22.i.i.i.i.i2698 %1028 = load i64, ptr %arrayidx.i.i4.i.i2700, align 8, !tbaa !64 %conv.i.i7.i.i.i.i2701 = trunc i64 %1028 to i32 %conv.i.i.i.i17.i.i.i.i2703 = trunc i64 %retval.sroa.2.1.i.i.i2680.lcssa to i32 %1029 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i2703, i1 true) %iszero.i.i.i.i18.i.i.i.i2704 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i2703, 0 %sub.i.i.i.i19.i.i.i.i2705 = select i1 %iszero.i.i.i.i18.i.i.i.i2704, i32 -1, i32 %1029 br label %while.cond.i.i.i.i2706 while.cond.i.i.i.i2706: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2718, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2687 %port.sroa.43.0.i.i2707 = phi i32 [ %conv.i.i.i.i.i.i2697, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2687 ], [ %conv.i.i39.i.i.i.i2719, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2718 ] %idx.0.i.i.i.i2708 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2687 ], [ %add.i.i.i.i2721, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2718 ] %cmp.i.i.i2.i2709 = icmp ult i64 %idx.0.i.i.i.i2708, 25 %1030 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i2701, i1 %cmp.i.i.i2.i2709) %tobool.not.i.i.i.i2710 = icmp eq i32 %1030, 0 %1031 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i2711 = getelementptr inbounds nuw i32, ptr %1031, i64 %idxprom.i22.i.i.i.i.i2698 %1032 = load atomic i32, ptr %arrayidx.i22.i.i.i2711 monotonic, align 4 br i1 %tobool.not.i.i.i.i2710, label %cond.false.i.i.i2730, label %cond.false.i11.i.i.i.i2712 cond.false.i11.i.i.i.i2712: ; preds = %while.cond.i.i.i.i2706 %1033 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2703, i32 %1032, i32 %sub.i.i.i.i19.i.i.i.i2705, i32 31) %1034 = icmp eq i32 %1033, %port.sroa.43.0.i.i2707 br i1 %1034, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2717, label %while.body.i.i33.i.i.i.i2713 while.body.i.i33.i.i.i.i2713: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2714, %cond.false.i11.i.i.i.i2712 %1035 = phi ptr [ %1036, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2714 ], [ %1031, %cond.false.i11.i.i.i.i2712 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i2728, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2714 if.then.i.i.i48.i.i.i.i2728: ; preds = %while.body.i.i33.i.i.i.i2713 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i2729 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2714 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2714: ; preds = %if.then.i.i.i48.i.i.i.i2728, %while.body.i.i33.i.i.i.i2713 %1036 = phi ptr [ %.pre.i.i.i.i2729, %if.then.i.i.i48.i.i.i.i2728 ], [ %1035, %while.body.i.i33.i.i.i.i2713 ] %arrayidx.i.i.i35.i.i.i.i2715 = getelementptr inbounds nuw i32, ptr %1036, i64 %idxprom.i22.i.i.i.i.i2698 %1037 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i2715 monotonic, align 4 %1038 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2703, i32 %1037, i32 %sub.i.i.i.i19.i.i.i.i2705, i32 31) %cmp.i.not.i.i36.i.i.i.i2716 = icmp eq i32 %1038, %port.sroa.43.0.i.i2707 br i1 %cmp.i.not.i.i36.i.i.i.i2716, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2717, label %while.body.i.i33.i.i.i.i2713, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2717: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2714, %cond.false.i11.i.i.i.i2712 fence acquire br i1 %cmp.i.i.i2.i2709, label %if.then.i.i20.i.i.i.i.i2722, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2718 if.then.i.i20.i.i.i.i.i2722: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2717 %add.ptr.i.i.i.i.i.i.i.i2723 = getelementptr inbounds nuw i8, ptr @.str21, i64 %idx.0.i.i.i.i2708 %sub.i.i.i.i.i.i.i2724 = sub nuw nsw i64 25, %idx.0.i.i.i.i2708 %1039 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i2726 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1039, i64 %idxprom.i18.i.i.i.i.i2691 %arrayidx.i22.i.i.i.i.i2727 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i2726, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %arrayidx.i22.i.i.i.i.i2727, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr.i.i.i.i.i.i.i.i2723, i64 %sub.i.i.i.i.i.i.i2724, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2718 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2718: ; preds = %if.then.i.i20.i.i.i.i.i2722, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2717 %conv.i.i39.i.i.i.i2719 = xor i32 %port.sroa.43.0.i.i2707, 1 fence release %1040 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i2720 = getelementptr inbounds nuw i32, ptr %1040, i64 %idxprom.i22.i.i.i.i.i2698 store atomic i32 %conv.i.i39.i.i.i.i2719, ptr %arrayidx.i24.i.i.i.i.i2720 monotonic, align 4 %add.i.i.i.i2721 = add i64 %idx.0.i.i.i.i2708, 64 br label %while.cond.i.i.i.i2706, !llvm.loop !71 cond.false.i.i.i2730: ; preds = %while.cond.i.i.i.i2706 %port.sroa.43.0.i.i2707.lcssa = phi i32 [ %port.sroa.43.0.i.i2707, %while.cond.i.i.i.i2706 ] %.lcssa5662 = phi ptr [ %1031, %while.cond.i.i.i.i2706 ] %.lcssa5661 = phi i32 [ %1032, %while.cond.i.i.i.i2706 ] %1041 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2703, i32 %.lcssa5661, i32 %sub.i.i.i.i19.i.i.i.i2705, i32 31) %1042 = icmp eq i32 %1041, %port.sroa.43.0.i.i2707.lcssa br i1 %1042, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2755, label %while.body.i.i.i.i2731 while.body.i.i.i.i2731: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2732, %cond.false.i.i.i2730 %1043 = phi ptr [ %1044, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2732 ], [ %.lcssa5662, %cond.false.i.i.i2730 ] br i1 %343, label %if.then.i.i.i.i.i2745, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2732 if.then.i.i.i.i.i2745: ; preds = %while.body.i.i.i.i2731 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i2746 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2732 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2732: ; preds = %if.then.i.i.i.i.i2745, %while.body.i.i.i.i2731 %1044 = phi ptr [ %.pre.i.i2746, %if.then.i.i.i.i.i2745 ], [ %1043, %while.body.i.i.i.i2731 ] %arrayidx.i.i.i11.i.i2733 = getelementptr inbounds nuw i32, ptr %1044, i64 %idxprom.i22.i.i.i.i.i2698 %1045 = load atomic i32, ptr %arrayidx.i.i.i11.i.i2733 monotonic, align 4 %1046 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2703, i32 %1045, i32 %sub.i.i.i.i19.i.i.i.i2705, i32 31) %cmp.i.not.i.i.i.i2734 = icmp eq i32 %1046, %port.sroa.43.0.i.i2707.lcssa br i1 %cmp.i.not.i.i.i.i2734, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2755, label %while.body.i.i.i.i2731, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2755: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2732, %cond.false.i.i.i2730 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2703) fence release %1047 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i2680.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i2736 = icmp ne i64 %retval.sroa.2.1.i.i.i2680.lcssa, 0 %cmp2.i.i.i.i19.i.i2737 = icmp eq i64 %1047, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i2738 = select i1 %iszero.i.i.i.i.i18.i.i2736, i1 %cmp2.i.i.i.i19.i.i2737, i1 false %div8.i.i.i21.i.i2739 = lshr i32 %retval.sroa.6.1.i.i.i2679.lcssa, 5 %1048 = and i32 %retval.sroa.6.1.i.i.i2679.lcssa, 31 %idxprom.i.i.i22.i.i2740 = zext nneg i32 %div8.i.i.i21.i.i2739 to i64 %arrayidx.i.i.i23.i.i2741 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i2740 %conv4.i.i.i24.i.i2742 = zext i1 %cmp.i.i.i.i20.i.i2738 to i32 %shl.i.i.i25.i.i2743 = shl nuw i32 %conv4.i.i.i24.i.i2742, %1048 %xor.i.i.i26.i.i2744 = xor i32 %shl.i.i.i25.i.i2743, -1 %1049 = atomicrmw and ptr %arrayidx.i.i.i23.i.i2741, i32 %xor.i.i.i26.i.i2744 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2703) br label %sw.epilog if.else: ; preds = %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2635 %sub = sub nuw nsw i64 %div.i1435, %div.i %mul66 = mul i64 %sub, 1000000 %div67 = udiv i64 %mul66, 1000000 %mul70 = mul i64 %sub, 1000000000 %div71 = udiv i64 %mul70, 1000000 %1050 = load i8, ptr %TimeInMs, align 1, !tbaa !123, !range !97, !noundef !98 %loadedv72 = trunc nuw i8 %1050 to i1 %cmp73 = icmp samesign ugt i64 %sub, 999 %or.cond = select i1 %loadedv72, i1 true, i1 %cmp73 br i1 %or.cond, label %if.then74, label %if.else77 if.then74: ; preds = %if.else call void @llvm.lifetime.start.p0(ptr nonnull %buffer.i.i.i2758) #32, !noalias !124 %cmp7.i.i.i.i.i.i.i2759 = icmp samesign ult i64 %sub, 1000 br i1 %cmp7.i.i.i.i.i.i.i2759, label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEyRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i, label %while.body.i.i.preheader.i.i.i.i.i while.body.i.i.preheader.i.i.i.i.i: ; preds = %if.then74 %div = udiv i64 %sub, 1000 br label %while.body.i.i.i.i.i.i.i2760 while.body.i.i.i.i.i.i.i2760: ; preds = %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i2771, %while.body.i.i.preheader.i.i.i.i.i %writer.sroa.8.0.i.i.i.i.i = phi i64 [ %writer.sroa.8.1.i.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i2771 ], [ 0, %while.body.i.i.preheader.i.i.i.i.i ] %value.addr.09.i.i.i.i.i.i.i2761 = phi i64 [ %div.i.i.i.i.i.i.i.i2762, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i2771 ], [ %div, %while.body.i.i.preheader.i.i.i.i.i ] %div.i.i.i.i.i.i.i.i2762 = udiv i64 %value.addr.09.i.i.i.i.i.i.i2761, 10 %cmp.i.i.i.i.i.i.i.i.i2763 = icmp eq i64 %writer.sroa.8.0.i.i.i.i.i, 21 br i1 %cmp.i.i.i.i.i.i.i.i.i2763, label %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i2771, label %if.then3.i.i.i.i.i.i.i.i2764 if.then3.i.i.i.i.i.i.i.i2764: ; preds = %while.body.i.i.i.i.i.i.i2760 %.neg.i2765 = mul nuw nsw i64 %div.i.i.i.i.i.i.i.i2762, 246 %rem.i.i.i.i.i.i.i.decomposed.i2766 = add nuw nsw i64 %.neg.i2765, %value.addr.09.i.i.i.i.i.i.i2761 %conv.i.i.i.i.i.i.i.i2767 = trunc i64 %rem.i.i.i.i.i.i.i.decomposed.i2766 to i8 %switch.offset.i2768 = or disjoint i8 %conv.i.i.i.i.i.i.i.i2767, 48 %inc.i.i.i.i.i.i.i.i2769 = add i64 %writer.sroa.8.0.i.i.i.i.i, 1 %1051 = xor i64 %writer.sroa.8.0.i.i.i.i.i, -1 %arrayidx.i.i.i.i.i.i.i.i.i2770 = getelementptr i8, ptr %346, i64 %1051 store i8 %switch.offset.i2768, ptr %arrayidx.i.i.i.i.i.i.i.i.i2770, align 1, !tbaa !36, !noalias !124 br label %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i2771 _ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i2771: ; preds = %if.then3.i.i.i.i.i.i.i.i2764, %while.body.i.i.i.i.i.i.i2760 %writer.sroa.8.1.i.i.i.i.i = phi i64 [ %inc.i.i.i.i.i.i.i.i2769, %if.then3.i.i.i.i.i.i.i.i2764 ], [ 21, %while.body.i.i.i.i.i.i.i2760 ] %cmp.i.i.i.i.i.i.i2772 = icmp samesign ult i64 %value.addr.09.i.i.i.i.i.i.i2761, 10 %.not.i.i.i.i.i.i.i2773 = or i1 %cmp.i.i.i.i.i.i.i.i.i2763, %cmp.i.i.i.i.i.i.i2772 br i1 %.not.i.i.i.i.i.i.i2773, label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEyRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i, label %while.body.i.i.i.i.i.i.i2760, !llvm.loop !129 _ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEyRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i: ; preds = %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i2771, %if.then74 %writer.sroa.8.2.i.i.i.i.i = phi i64 [ 0, %if.then74 ], [ %writer.sroa.8.1.i.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i2771 ] %.off0.i.i.i.i.i.i2774 = phi i1 [ false, %if.then74 ], [ %cmp.i.i.i.i.i.i.i.i.i2763, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i2771 ] %cmp.i17.i.i.i.i.i = icmp ne i64 %writer.sroa.8.2.i.i.i.i.i, 0 %or.cond.not.i.i.i.i.i2775 = or i1 %.off0.i.i.i.i.i.i2774, %cmp.i17.i.i.i.i.i br i1 %or.cond.not.i.i.i.i.i2775, label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ey.exit.i.i.i, label %if.then3.i.i.lr.ph.i.i.i.i.i2776 if.then3.i.i.lr.ph.i.i.i.i.i2776: ; preds = %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEyRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i store i8 48, ptr %arrayidx.i.i.i.i.i.i.i.i2777, align 4, !tbaa !36, !noalias !124 br label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ey.exit.i.i.i _ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ey.exit.i.i.i: ; preds = %if.then3.i.i.lr.ph.i.i.i.i.i2776, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEyRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i %writer.sroa.8.4.i.i.i.i.i = phi i64 [ %writer.sroa.8.2.i.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEyRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i ], [ 1, %if.then3.i.i.lr.ph.i.i.i.i.i2776 ] store i64 %writer.sroa.8.4.i.i.i.i.i, ptr %written.i.i.i.i.i2778, align 8, !tbaa !130, !noalias !124 %cmp.i.not.i.i.i.i.i.i2779 = icmp eq i64 %writer.sroa.8.4.i.i.i.i.i, 0 br i1 %cmp.i.not.i.i.i.i.i.i2779, label %if.end.i.i.i.i.i.i.i2798, label %if.then.i.i.i.i.i.i.i2780 if.then.i.i.i.i.i.i.i2780: ; preds = %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ey.exit.i.i.i %inc.i.i.i.i.i2.i.i.i2781 = add i64 %writer.sroa.8.4.i.i.i.i.i, 1 %cmp.not.i.i.not.i.i.i.i.i.i2782 = icmp eq i64 %inc.i.i.i.i.i2.i.i.i2781, 0 br i1 %cmp.not.i.i.not.i.i.i.i.i.i2782, label %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i2796, label %if.end.i.i.i.i.i.i.i.i2783 if.end.i.i.i.i.i.i.i.i2783: ; preds = %if.then.i.i.i.i.i.i.i2780 %cmp2.i.i.i.i.i.i.i.i2784 = icmp ult i64 %inc.i.i.i.i.i2.i.i.i2781, 1676976733973595601 %mul.i.i.i.i.i.i.i.i2785 = mul nuw i64 %inc.i.i.i.i.i2.i.i.i2781, 11 %div18.i.i.i.i.i.i.i.i2786 = lshr i64 %mul.i.i.i.i.i.i.i.i2785, 3 %new_capacity.addr.0.i.i.i.i.i.i.i.i2787 = select i1 %cmp2.i.i.i.i.i.i.i.i2784, i64 %div18.i.i.i.i.i.i.i.i2786, i64 %inc.i.i.i.i.i2.i.i.i2781 %sub.i.i.i2788 = add i64 %new_capacity.addr.0.i.i.i.i.i.i.i.i2787, 7 %div2.i.i.i2789 = and i64 %sub.i.i.i2788, -8 %1052 = load ptr, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34, !noalias !124 %add.ptr.i.i.i2790 = getelementptr inbounds nuw i8, ptr %1052, i64 %div2.i.i.i2789 store ptr %add.ptr.i.i.i2790, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34, !noalias !124 %sub.ptr.lhs.cast.i.i.i2791 = ptrtoint ptr %add.ptr.i.i.i2790 to i64 %sub.ptr.sub.i.i.i2792 = sub i64 %sub.ptr.lhs.cast.i.i.i2791, ptrtoint (ptr @_ZN12_GLOBAL__N_16memoryE to i64) %cmp.i.i.i2793 = icmp ugt i64 %sub.ptr.sub.i.i.i2792, 65335 %cond.i.i.i2794 = select i1 %cmp.i.i.i2793, ptr null, ptr %1052 %tobool.i.i.i.i.i.i.i.i2795 = icmp ne ptr %cond.i.i.i2794, null call void @llvm.assume(i1 %tobool.i.i.i.i.i.i.i.i2795) br label %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i2796 _ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i2796: ; preds = %if.end.i.i.i.i.i.i.i.i2783, %if.then.i.i.i.i.i.i.i2780 %agg.tmp.sroa.0.0.i2797 = phi ptr [ @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE, %if.then.i.i.i.i.i.i.i2780 ], [ %cond.i.i.i2794, %if.end.i.i.i.i.i.i.i.i2783 ] call void @llvm.memset.p0.i64(ptr nonnull align 1 %agg.tmp.sroa.0.0.i2797, i8 0, i64 %writer.sroa.8.4.i.i.i.i.i, i1 false), !noalias !124 br label %if.end.i.i.i.i.i.i.i2798 if.end.i.i.i.i.i.i.i2798: ; preds = %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i2796, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ey.exit.i.i.i %agg.tmp.sroa.0.1.i2799 = phi ptr [ @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ey.exit.i.i.i ], [ %agg.tmp.sroa.0.0.i2797, %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i2796 ] %cmp.not.i6.i.i.i.i.i.i.i2800 = icmp eq ptr %agg.tmp.sroa.0.1.i2799, @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE br i1 %cmp.not.i6.i.i.i.i.i.i.i2800, label %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i, label %if.then.i.i.i.i.i3.i.i.i2801 if.then.i.i.i.i.i3.i.i.i2801: ; preds = %if.end.i.i.i.i.i.i.i2798 %arrayidx.i.i.i.i.i4.i.i.i2802 = getelementptr inbounds nuw i8, ptr %agg.tmp.sroa.0.1.i2799, i64 %writer.sroa.8.4.i.i.i.i.i store i8 0, ptr %arrayidx.i.i.i.i.i4.i.i.i2802, align 1, !tbaa !36, !noalias !124 br label %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i _ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i: ; preds = %if.then.i.i.i.i.i3.i.i.i2801, %if.end.i.i.i.i.i.i.i2798 %idx.neg.i.i.i.i2804 = sub i64 0, %writer.sroa.8.4.i.i.i.i.i %add.ptr5.i.i.i.i2805 = getelementptr inbounds i8, ptr %346, i64 %idx.neg.i.i.i.i2804 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %agg.tmp.sroa.0.1.i2799, ptr nonnull align 1 %add.ptr5.i.i.i.i2805, i64 %writer.sroa.8.4.i.i.i.i.i, i1 false), !alias.scope !133, !noalias !124 call void @llvm.lifetime.end.p0(ptr nonnull %buffer.i.i.i2758) #32, !noalias !124 br label %for.cond.i.i.i2808 for.cond.i.i.i2808: ; preds = %for.inc.i.i.i2843, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i %retval.sroa.6.0.i.i.i2809 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i ], [ %retval.sroa.6.2.i.i.i2844, %for.inc.i.i.i2843 ] %retval.sroa.2.0.i.i.i2810 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i ], [ %retval.sroa.2.2.i.i.i2845, %for.inc.i.i.i2843 ] %retval.sroa.8.0.i.i.i2811 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i ], [ %retval.sroa.8.2.i.i.i2846, %for.inc.i.i.i2843 ] %index.0.i.i.i2812 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i ], [ %inc.i.i.i2847, %for.inc.i.i.i2843 ] %1053 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i2813 = icmp ult i32 %index.0.i.i.i2812, %1053 %spec.store.select.i.i.i2814 = select i1 %cmp.not.i.i.i2813, i32 %index.0.i.i.i2812, i32 0 %1054 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i2815 = zext i32 %1054 to i64 %div8.i.i.i.i.i2816 = lshr i32 %spec.store.select.i.i.i2814, 5 %1055 = and i32 %spec.store.select.i.i.i2814, 31 %idxprom.i.i.i.i.i2817 = zext nneg i32 %div8.i.i.i.i.i2816 to i64 %arrayidx.i.i.i.i.i2818 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i2817 %1056 = lshr i32 %1054, %2 %conv4.i.i.i.i.i2819 = and i32 %1056, 1 %shl.i.i.i.i.i2820 = shl nuw i32 %conv4.i.i.i.i.i2819, %1055 %1057 = atomicrmw or ptr %arrayidx.i.i.i.i.i2818, i32 %shl.i.i.i.i.i2820 monotonic, align 4 %shl5.i.i.i.i.i2821 = shl nuw i32 1, %1055 %and.i.i.i.i.i2822 = and i32 %shl5.i.i.i.i.i2821, %1057 %tobool3.i.i.i.i2823 = icmp ne i32 %and.i.i.i.i.i2822, 0 %1058 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %1054, i1 %tobool3.i.i.i.i2823) %cmp.i.not.i.i.i2824 = icmp eq i32 %1054, %1058 br i1 %cmp.i.not.i.i.i2824, label %for.inc.i.i.i2843, label %if.then.i.i.i.i2825 if.then.i.i.i.i2825: ; preds = %for.cond.i.i.i2808 fence acquire %1059 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i2826 = zext i32 %spec.store.select.i.i.i2814 to i64 %arrayidx.i.i.i.i2827 = getelementptr inbounds nuw i32, ptr %1059, i64 %idxprom.i.i.i.i2826 %1060 = load atomic i32, ptr %arrayidx.i.i.i.i2827 monotonic, align 4 %1061 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %1054, i1 true) %iszero.i.i.i.i.i.i2828 = icmp eq i32 %1054, 0 %sub.i.i.i.i.i.i2829 = select i1 %iszero.i.i.i.i.i.i2828, i32 -1, i32 %1061 %1062 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1054, i32 %1060, i32 %sub.i.i.i.i.i.i2829, i32 31) %1063 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i2830 = getelementptr inbounds nuw i32, ptr %1063, i64 %idxprom.i.i.i.i2826 %1064 = load atomic i32, ptr %arrayidx.i45.i.i.i2830 monotonic, align 4 %1065 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1054, i32 %1064, i32 %sub.i.i.i.i.i.i2829, i32 31) %cmp.i48.not.i.i.i2831 = icmp eq i32 %1062, %1065 br i1 %cmp.i48.not.i.i.i2831, label %if.end14.i.i.i2909, label %if.then12.i.i.i2832 if.then12.i.i.i2832: ; preds = %if.then.i.i.i.i2825 fence release %1066 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2815, i1 true) %iszero.i.i.i.i.i.i.i2833 = icmp ne i32 %1054, 0 %cmp2.i.i.i.i.i.i2834 = icmp eq i64 %1066, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i2835 = select i1 %iszero.i.i.i.i.i.i.i2833, i1 %cmp2.i.i.i.i.i.i2834, i1 false %conv4.i.i53.i.i.i2836 = zext i1 %cmp.i.i.i.i.i.i2835 to i32 %shl.i.i54.i.i.i2837 = shl nuw i32 %conv4.i.i53.i.i.i2836, %1055 %xor.i.i.i.i.i2838 = xor i32 %shl.i.i54.i.i.i2837, -1 %1067 = atomicrmw and ptr %arrayidx.i.i.i.i.i2818, i32 %xor.i.i.i.i.i2838 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %1054) br label %cleanup26.i.i.i2839 if.end14.i.i.i2909: ; preds = %if.then.i.i.i.i2825 %1068 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2815, i1 true) %iszero.i.i.i56.i.i.i2910 = icmp ne i32 %1054, 0 %cmp2.i.i.i.i.i2911 = icmp eq i64 %1068, %sh_prom.i.i.i.i %cmp.i.i.i.i.i2912 = select i1 %iszero.i.i.i56.i.i.i2910, i1 %cmp2.i.i.i.i.i2911, i1 false br i1 %cmp.i.i.i.i.i2912, label %if.then16.i.i.i2914, label %if.end22.i.i.i2913 if.then16.i.i.i2914: ; preds = %if.end14.i.i.i2909 %1069 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i2915 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1069, i64 %idxprom.i.i.i.i2826, i32 1 store i32 1660944387, ptr %opcode.i.i.i2915, align 8, !tbaa !61 %arrayidx21.i.i.i2916 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1069, i64 %idxprom.i.i.i.i2826 store i64 %conv.i.i.i.i.i2815, ptr %arrayidx21.i.i.i2916, align 8, !tbaa !64 br label %if.end22.i.i.i2913 if.end22.i.i.i2913: ; preds = %if.then16.i.i.i2914, %if.end14.i.i.i2909 call void @llvm.nvvm.bar.warp.sync(i32 %1054) br label %cleanup26.i.i.i2839 cleanup26.i.i.i2839: ; preds = %if.end22.i.i.i2913, %if.then12.i.i.i2832 %retval.sroa.6.1.i.i.i2840 = phi i32 [ %retval.sroa.6.0.i.i.i2809, %if.then12.i.i.i2832 ], [ %spec.store.select.i.i.i2814, %if.end22.i.i.i2913 ] %retval.sroa.2.1.i.i.i2841 = phi i64 [ %retval.sroa.2.0.i.i.i2810, %if.then12.i.i.i2832 ], [ %conv.i.i.i.i.i2815, %if.end22.i.i.i2913 ] %retval.sroa.8.1.i.i.i2842 = phi i32 [ %retval.sroa.8.0.i.i.i2811, %if.then12.i.i.i2832 ], [ %1062, %if.end22.i.i.i2913 ] br i1 %cmp.i48.not.i.i.i2831, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2848, label %for.inc.i.i.i2843 for.inc.i.i.i2843: ; preds = %cleanup26.i.i.i2839, %for.cond.i.i.i2808 %retval.sroa.6.2.i.i.i2844 = phi i32 [ %retval.sroa.6.1.i.i.i2840, %cleanup26.i.i.i2839 ], [ %retval.sroa.6.0.i.i.i2809, %for.cond.i.i.i2808 ] %retval.sroa.2.2.i.i.i2845 = phi i64 [ %retval.sroa.2.1.i.i.i2841, %cleanup26.i.i.i2839 ], [ %retval.sroa.2.0.i.i.i2810, %for.cond.i.i.i2808 ] %retval.sroa.8.2.i.i.i2846 = phi i32 [ %retval.sroa.8.1.i.i.i2842, %cleanup26.i.i.i2839 ], [ %retval.sroa.8.0.i.i.i2811, %for.cond.i.i.i2808 ] %inc.i.i.i2847 = add i32 %spec.store.select.i.i.i2814, 1 br label %for.cond.i.i.i2808, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2848: ; preds = %cleanup26.i.i.i2839 %retval.sroa.6.1.i.i.i2840.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i2840, %cleanup26.i.i.i2839 ] %retval.sroa.2.1.i.i.i2841.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i2841, %cleanup26.i.i.i2839 ] %retval.sroa.8.1.i.i.i2842.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i2842, %cleanup26.i.i.i2839 ] fence acquire %1070 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i2851 = shl i32 %retval.sroa.6.1.i.i.i2840.lcssa, 5 %idxprom.i18.i.i.i.i.i2852 = zext i32 %mul.i.i.i.i.i.i2851 to i64 %arrayidx.i19.i.i.i.i.i2853 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1070, i64 %idxprom.i18.i.i.i.i.i2852 %arrayidx.i21.i.i.i.i.i2854 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i2853, i64 %sh_prom.i.i.i.i store i64 %writer.sroa.8.4.i.i.i.i.i, ptr %arrayidx.i21.i.i.i.i.i2854, align 8, !tbaa !67 %spec.select.i.i.i.i.i.i.i2855 = call i64 @llvm.umin.i64(i64 %writer.sroa.8.4.i.i.i.i.i, i64 56) %arrayidx6.i.i.i.i.i.i.i2856 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i2854, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %arrayidx6.i.i.i.i.i.i.i2856, ptr nonnull align 1 %agg.tmp.sroa.0.1.i2799, i64 %spec.select.i.i.i.i.i.i.i2855, i1 false) %tobool.not.i.i.i.i.i.i2857 = icmp eq i32 %retval.sroa.8.1.i.i.i2842.lcssa, 0 %conv.i.i.i.i.i.i2858 = zext i1 %tobool.not.i.i.i.i.i.i2857 to i32 fence release %1071 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i2859 = zext i32 %retval.sroa.6.1.i.i.i2840.lcssa to i64 %arrayidx.i23.i.i.i.i.i2860 = getelementptr inbounds nuw i32, ptr %1071, i64 %idxprom.i22.i.i.i.i.i2859 store atomic i32 %conv.i.i.i.i.i.i2858, ptr %arrayidx.i23.i.i.i.i.i2860 monotonic, align 4 %1072 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i2861 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1072, i64 %idxprom.i22.i.i.i.i.i2859 %1073 = load i64, ptr %arrayidx.i.i4.i.i2861, align 8, !tbaa !64 %conv.i.i7.i.i.i.i2862 = trunc i64 %1073 to i32 %conv.i.i.i.i17.i.i.i.i2864 = trunc i64 %retval.sroa.2.1.i.i.i2841.lcssa to i32 %1074 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i2864, i1 true) %iszero.i.i.i.i18.i.i.i.i2865 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i2864, 0 %sub.i.i.i.i19.i.i.i.i2866 = select i1 %iszero.i.i.i.i18.i.i.i.i2865, i32 -1, i32 %1074 br label %while.cond.i.i.i.i2867 while.cond.i.i.i.i2867: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2879, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2848 %port.sroa.43.0.i.i2868 = phi i32 [ %conv.i.i.i.i.i.i2858, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2848 ], [ %conv.i.i39.i.i.i.i2880, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2879 ] %idx.0.i.i.i.i2869 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2848 ], [ %add.i.i.i.i2882, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2879 ] %cmp.i.i.i.i2870 = icmp ult i64 %idx.0.i.i.i.i2869, %writer.sroa.8.4.i.i.i.i.i %1075 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i2862, i1 %cmp.i.i.i.i2870) %tobool.not.i.i.i.i2871 = icmp eq i32 %1075, 0 %1076 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i2872 = getelementptr inbounds nuw i32, ptr %1076, i64 %idxprom.i22.i.i.i.i.i2859 %1077 = load atomic i32, ptr %arrayidx.i22.i.i.i2872 monotonic, align 4 br i1 %tobool.not.i.i.i.i2871, label %cond.false.i.i.i2891, label %cond.false.i11.i.i.i.i2873 cond.false.i11.i.i.i.i2873: ; preds = %while.cond.i.i.i.i2867 %1078 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2864, i32 %1077, i32 %sub.i.i.i.i19.i.i.i.i2866, i32 31) %1079 = icmp eq i32 %1078, %port.sroa.43.0.i.i2868 br i1 %1079, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2878, label %while.body.i.i33.i.i.i.i2874 while.body.i.i33.i.i.i.i2874: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2875, %cond.false.i11.i.i.i.i2873 %1080 = phi ptr [ %1081, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2875 ], [ %1076, %cond.false.i11.i.i.i.i2873 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i2889, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2875 if.then.i.i.i48.i.i.i.i2889: ; preds = %while.body.i.i33.i.i.i.i2874 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i2890 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2875 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2875: ; preds = %if.then.i.i.i48.i.i.i.i2889, %while.body.i.i33.i.i.i.i2874 %1081 = phi ptr [ %.pre.i.i.i.i2890, %if.then.i.i.i48.i.i.i.i2889 ], [ %1080, %while.body.i.i33.i.i.i.i2874 ] %arrayidx.i.i.i35.i.i.i.i2876 = getelementptr inbounds nuw i32, ptr %1081, i64 %idxprom.i22.i.i.i.i.i2859 %1082 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i2876 monotonic, align 4 %1083 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2864, i32 %1082, i32 %sub.i.i.i.i19.i.i.i.i2866, i32 31) %cmp.i.not.i.i36.i.i.i.i2877 = icmp eq i32 %1083, %port.sroa.43.0.i.i2868 br i1 %cmp.i.not.i.i36.i.i.i.i2877, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2878, label %while.body.i.i33.i.i.i.i2874, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2878: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2875, %cond.false.i11.i.i.i.i2873 fence acquire br i1 %cmp.i.i.i.i2870, label %if.then.i.i20.i.i.i.i.i2883, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2879 if.then.i.i20.i.i.i.i.i2883: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2878 %add.ptr.i.i.i.i.i.i.i.i2884 = getelementptr inbounds nuw i8, ptr %agg.tmp.sroa.0.1.i2799, i64 %idx.0.i.i.i.i2869 %sub.i.i.i.i.i.i.i2885 = sub nuw i64 %writer.sroa.8.4.i.i.i.i.i, %idx.0.i.i.i.i2869 %spec.select.i.i.i47.i.i.i.i2886 = call i64 @llvm.umin.i64(i64 %sub.i.i.i.i.i.i.i2885, i64 64) %1084 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i2887 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1084, i64 %idxprom.i18.i.i.i.i.i2852 %arrayidx.i22.i.i.i.i.i2888 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i2887, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr align 1 %arrayidx.i22.i.i.i.i.i2888, ptr nonnull align 1 %add.ptr.i.i.i.i.i.i.i.i2884, i64 %spec.select.i.i.i47.i.i.i.i2886, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2879 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2879: ; preds = %if.then.i.i20.i.i.i.i.i2883, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2878 %conv.i.i39.i.i.i.i2880 = xor i32 %port.sroa.43.0.i.i2868, 1 fence release %1085 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i2881 = getelementptr inbounds nuw i32, ptr %1085, i64 %idxprom.i22.i.i.i.i.i2859 store atomic i32 %conv.i.i39.i.i.i.i2880, ptr %arrayidx.i24.i.i.i.i.i2881 monotonic, align 4 %add.i.i.i.i2882 = add i64 %idx.0.i.i.i.i2869, 64 br label %while.cond.i.i.i.i2867, !llvm.loop !71 cond.false.i.i.i2891: ; preds = %while.cond.i.i.i.i2867 %port.sroa.43.0.i.i2868.lcssa = phi i32 [ %port.sroa.43.0.i.i2868, %while.cond.i.i.i.i2867 ] %.lcssa5658 = phi ptr [ %1076, %while.cond.i.i.i.i2867 ] %.lcssa5657 = phi i32 [ %1077, %while.cond.i.i.i.i2867 ] %1086 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2864, i32 %.lcssa5657, i32 %sub.i.i.i.i19.i.i.i.i2866, i32 31) %1087 = icmp eq i32 %1086, %port.sroa.43.0.i.i2868.lcssa br i1 %1087, label %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i2896, label %while.body.i.i.i.i2892 while.body.i.i.i.i2892: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2893, %cond.false.i.i.i2891 %1088 = phi ptr [ %1089, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2893 ], [ %.lcssa5658, %cond.false.i.i.i2891 ] br i1 %343, label %if.then.i.i.i.i.i2907, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2893 if.then.i.i.i.i.i2907: ; preds = %while.body.i.i.i.i2892 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i2908 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2893 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2893: ; preds = %if.then.i.i.i.i.i2907, %while.body.i.i.i.i2892 %1089 = phi ptr [ %.pre.i.i2908, %if.then.i.i.i.i.i2907 ], [ %1088, %while.body.i.i.i.i2892 ] %arrayidx.i.i.i11.i.i2894 = getelementptr inbounds nuw i32, ptr %1089, i64 %idxprom.i22.i.i.i.i.i2859 %1090 = load atomic i32, ptr %arrayidx.i.i.i11.i.i2894 monotonic, align 4 %1091 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2864, i32 %1090, i32 %sub.i.i.i.i19.i.i.i.i2866, i32 31) %cmp.i.not.i.i.i.i2895 = icmp eq i32 %1091, %port.sroa.43.0.i.i2868.lcssa br i1 %cmp.i.not.i.i.i.i2895, label %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i2896, label %while.body.i.i.i.i2892, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i2896: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i2893, %cond.false.i.i.i2891 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2864) fence release %1092 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i2841.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i2897 = icmp ne i64 %retval.sroa.2.1.i.i.i2841.lcssa, 0 %cmp2.i.i.i.i19.i.i2898 = icmp eq i64 %1092, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i2899 = select i1 %iszero.i.i.i.i.i18.i.i2897, i1 %cmp2.i.i.i.i19.i.i2898, i1 false %div8.i.i.i21.i.i2900 = lshr i32 %retval.sroa.6.1.i.i.i2840.lcssa, 5 %1093 = and i32 %retval.sroa.6.1.i.i.i2840.lcssa, 31 %idxprom.i.i.i22.i.i2901 = zext nneg i32 %div8.i.i.i21.i.i2900 to i64 %arrayidx.i.i.i23.i.i2902 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i2901 %conv4.i.i.i24.i.i2903 = zext i1 %cmp.i.i.i.i20.i.i2899 to i32 %shl.i.i.i25.i.i2904 = shl nuw i32 %conv4.i.i.i24.i.i2903, %1093 %xor.i.i.i26.i.i2905 = xor i32 %shl.i.i.i25.i.i2904, -1 %1094 = atomicrmw and ptr %arrayidx.i.i.i23.i.i2902, i32 %xor.i.i.i26.i.i2905 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2864) br label %for.cond.i.i.i2928 for.cond.i.i.i2928: ; preds = %for.inc.i.i.i2963, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i2896 %retval.sroa.6.0.i.i.i2929 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i2896 ], [ %retval.sroa.6.2.i.i.i2964, %for.inc.i.i.i2963 ] %retval.sroa.2.0.i.i.i2930 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i2896 ], [ %retval.sroa.2.2.i.i.i2965, %for.inc.i.i.i2963 ] %retval.sroa.8.0.i.i.i2931 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i2896 ], [ %retval.sroa.8.2.i.i.i2966, %for.inc.i.i.i2963 ] %index.0.i.i.i2932 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i2896 ], [ %inc.i.i.i2967, %for.inc.i.i.i2963 ] %1095 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i2933 = icmp ult i32 %index.0.i.i.i2932, %1095 %spec.store.select.i.i.i2934 = select i1 %cmp.not.i.i.i2933, i32 %index.0.i.i.i2932, i32 0 %1096 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i2935 = zext i32 %1096 to i64 %div8.i.i.i.i.i2936 = lshr i32 %spec.store.select.i.i.i2934, 5 %1097 = and i32 %spec.store.select.i.i.i2934, 31 %idxprom.i.i.i.i.i2937 = zext nneg i32 %div8.i.i.i.i.i2936 to i64 %arrayidx.i.i.i.i.i2938 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i2937 %1098 = lshr i32 %1096, %2 %conv4.i.i.i.i.i2939 = and i32 %1098, 1 %shl.i.i.i.i.i2940 = shl nuw i32 %conv4.i.i.i.i.i2939, %1097 %1099 = atomicrmw or ptr %arrayidx.i.i.i.i.i2938, i32 %shl.i.i.i.i.i2940 monotonic, align 4 %shl5.i.i.i.i.i2941 = shl nuw i32 1, %1097 %and.i.i.i.i.i2942 = and i32 %shl5.i.i.i.i.i2941, %1099 %tobool3.i.i.i.i2943 = icmp ne i32 %and.i.i.i.i.i2942, 0 %1100 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %1096, i1 %tobool3.i.i.i.i2943) %cmp.i.not.i.i.i2944 = icmp eq i32 %1096, %1100 br i1 %cmp.i.not.i.i.i2944, label %for.inc.i.i.i2963, label %if.then.i.i.i.i2945 if.then.i.i.i.i2945: ; preds = %for.cond.i.i.i2928 fence acquire %1101 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i2946 = zext i32 %spec.store.select.i.i.i2934 to i64 %arrayidx.i.i.i.i2947 = getelementptr inbounds nuw i32, ptr %1101, i64 %idxprom.i.i.i.i2946 %1102 = load atomic i32, ptr %arrayidx.i.i.i.i2947 monotonic, align 4 %1103 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %1096, i1 true) %iszero.i.i.i.i.i.i2948 = icmp eq i32 %1096, 0 %sub.i.i.i.i.i.i2949 = select i1 %iszero.i.i.i.i.i.i2948, i32 -1, i32 %1103 %1104 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1096, i32 %1102, i32 %sub.i.i.i.i.i.i2949, i32 31) %1105 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i2950 = getelementptr inbounds nuw i32, ptr %1105, i64 %idxprom.i.i.i.i2946 %1106 = load atomic i32, ptr %arrayidx.i45.i.i.i2950 monotonic, align 4 %1107 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1096, i32 %1106, i32 %sub.i.i.i.i.i.i2949, i32 31) %cmp.i48.not.i.i.i2951 = icmp eq i32 %1104, %1107 br i1 %cmp.i48.not.i.i.i2951, label %if.end14.i.i.i3028, label %if.then12.i.i.i2952 if.then12.i.i.i2952: ; preds = %if.then.i.i.i.i2945 fence release %1108 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2935, i1 true) %iszero.i.i.i.i.i.i.i2953 = icmp ne i32 %1096, 0 %cmp2.i.i.i.i.i.i2954 = icmp eq i64 %1108, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i2955 = select i1 %iszero.i.i.i.i.i.i.i2953, i1 %cmp2.i.i.i.i.i.i2954, i1 false %conv4.i.i53.i.i.i2956 = zext i1 %cmp.i.i.i.i.i.i2955 to i32 %shl.i.i54.i.i.i2957 = shl nuw i32 %conv4.i.i53.i.i.i2956, %1097 %xor.i.i.i.i.i2958 = xor i32 %shl.i.i54.i.i.i2957, -1 %1109 = atomicrmw and ptr %arrayidx.i.i.i.i.i2938, i32 %xor.i.i.i.i.i2958 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %1096) br label %cleanup26.i.i.i2959 if.end14.i.i.i3028: ; preds = %if.then.i.i.i.i2945 %1110 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i2935, i1 true) %iszero.i.i.i56.i.i.i3029 = icmp ne i32 %1096, 0 %cmp2.i.i.i.i.i3030 = icmp eq i64 %1110, %sh_prom.i.i.i.i %cmp.i.i.i.i.i3031 = select i1 %iszero.i.i.i56.i.i.i3029, i1 %cmp2.i.i.i.i.i3030, i1 false br i1 %cmp.i.i.i.i.i3031, label %if.then16.i.i.i3033, label %if.end22.i.i.i3032 if.then16.i.i.i3033: ; preds = %if.end14.i.i.i3028 %1111 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i3034 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1111, i64 %idxprom.i.i.i.i2946, i32 1 store i32 1660944387, ptr %opcode.i.i.i3034, align 8, !tbaa !61 %arrayidx21.i.i.i3035 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1111, i64 %idxprom.i.i.i.i2946 store i64 %conv.i.i.i.i.i2935, ptr %arrayidx21.i.i.i3035, align 8, !tbaa !64 br label %if.end22.i.i.i3032 if.end22.i.i.i3032: ; preds = %if.then16.i.i.i3033, %if.end14.i.i.i3028 call void @llvm.nvvm.bar.warp.sync(i32 %1096) br label %cleanup26.i.i.i2959 cleanup26.i.i.i2959: ; preds = %if.end22.i.i.i3032, %if.then12.i.i.i2952 %retval.sroa.6.1.i.i.i2960 = phi i32 [ %retval.sroa.6.0.i.i.i2929, %if.then12.i.i.i2952 ], [ %spec.store.select.i.i.i2934, %if.end22.i.i.i3032 ] %retval.sroa.2.1.i.i.i2961 = phi i64 [ %retval.sroa.2.0.i.i.i2930, %if.then12.i.i.i2952 ], [ %conv.i.i.i.i.i2935, %if.end22.i.i.i3032 ] %retval.sroa.8.1.i.i.i2962 = phi i32 [ %retval.sroa.8.0.i.i.i2931, %if.then12.i.i.i2952 ], [ %1104, %if.end22.i.i.i3032 ] br i1 %cmp.i48.not.i.i.i2951, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2968, label %for.inc.i.i.i2963 for.inc.i.i.i2963: ; preds = %cleanup26.i.i.i2959, %for.cond.i.i.i2928 %retval.sroa.6.2.i.i.i2964 = phi i32 [ %retval.sroa.6.1.i.i.i2960, %cleanup26.i.i.i2959 ], [ %retval.sroa.6.0.i.i.i2929, %for.cond.i.i.i2928 ] %retval.sroa.2.2.i.i.i2965 = phi i64 [ %retval.sroa.2.1.i.i.i2961, %cleanup26.i.i.i2959 ], [ %retval.sroa.2.0.i.i.i2930, %for.cond.i.i.i2928 ] %retval.sroa.8.2.i.i.i2966 = phi i32 [ %retval.sroa.8.1.i.i.i2962, %cleanup26.i.i.i2959 ], [ %retval.sroa.8.0.i.i.i2931, %for.cond.i.i.i2928 ] %inc.i.i.i2967 = add i32 %spec.store.select.i.i.i2934, 1 br label %for.cond.i.i.i2928, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2968: ; preds = %cleanup26.i.i.i2959 %retval.sroa.6.1.i.i.i2960.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i2960, %cleanup26.i.i.i2959 ] %retval.sroa.2.1.i.i.i2961.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i2961, %cleanup26.i.i.i2959 ] %retval.sroa.8.1.i.i.i2962.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i2962, %cleanup26.i.i.i2959 ] fence acquire %1112 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i2971 = shl i32 %retval.sroa.6.1.i.i.i2960.lcssa, 5 %idxprom.i18.i.i.i.i.i2972 = zext i32 %mul.i.i.i.i.i.i2971 to i64 %arrayidx.i19.i.i.i.i.i2973 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1112, i64 %idxprom.i18.i.i.i.i.i2972 %arrayidx.i21.i.i.i.i.i2974 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i2973, i64 %sh_prom.i.i.i.i store i64 5, ptr %arrayidx.i21.i.i.i.i.i2974, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i2976 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i2974, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %arrayidx6.i.i.i.i.i.i.i2976, ptr noundef nonnull align 1 dereferenceable(5) @.str22, i64 5, i1 false) %tobool.not.i.i.i.i.i.i2977 = icmp eq i32 %retval.sroa.8.1.i.i.i2962.lcssa, 0 %conv.i.i.i.i.i.i2978 = zext i1 %tobool.not.i.i.i.i.i.i2977 to i32 fence release %1113 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i2979 = zext i32 %retval.sroa.6.1.i.i.i2960.lcssa to i64 %arrayidx.i23.i.i.i.i.i2980 = getelementptr inbounds nuw i32, ptr %1113, i64 %idxprom.i22.i.i.i.i.i2979 store atomic i32 %conv.i.i.i.i.i.i2978, ptr %arrayidx.i23.i.i.i.i.i2980 monotonic, align 4 %1114 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i2981 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1114, i64 %idxprom.i22.i.i.i.i.i2979 %1115 = load i64, ptr %arrayidx.i.i4.i.i2981, align 8, !tbaa !64 %conv.i.i7.i.i.i.i2982 = trunc i64 %1115 to i32 %conv.i.i.i.i17.i.i.i.i2984 = trunc i64 %retval.sroa.2.1.i.i.i2961.lcssa to i32 %1116 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i2984, i1 true) %iszero.i.i.i.i18.i.i.i.i2985 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i2984, 0 %sub.i.i.i.i19.i.i.i.i2986 = select i1 %iszero.i.i.i.i18.i.i.i.i2985, i32 -1, i32 %1116 br label %while.cond.i.i.i.i2987 while.cond.i.i.i.i2987: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2999, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2968 %port.sroa.43.0.i.i2988 = phi i32 [ %conv.i.i.i.i.i.i2978, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2968 ], [ %conv.i.i39.i.i.i.i3000, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2999 ] %idx.0.i.i.i.i2989 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i2968 ], [ %add.i.i.i.i3002, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2999 ] %cmp.i.i.i2.i2990 = icmp eq i64 %idx.0.i.i.i.i2989, 0 %1117 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i2982, i1 %cmp.i.i.i2.i2990) %tobool.not.i.i.i.i2991 = icmp eq i32 %1117, 0 %1118 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i2992 = getelementptr inbounds nuw i32, ptr %1118, i64 %idxprom.i22.i.i.i.i.i2979 %1119 = load atomic i32, ptr %arrayidx.i22.i.i.i2992 monotonic, align 4 br i1 %tobool.not.i.i.i.i2991, label %cond.false.i.i.i3011, label %cond.false.i11.i.i.i.i2993 cond.false.i11.i.i.i.i2993: ; preds = %while.cond.i.i.i.i2987 %1120 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2984, i32 %1119, i32 %sub.i.i.i.i19.i.i.i.i2986, i32 31) %1121 = icmp eq i32 %1120, %port.sroa.43.0.i.i2988 br i1 %1121, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2998, label %while.body.i.i33.i.i.i.i2994 while.body.i.i33.i.i.i.i2994: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2995, %cond.false.i11.i.i.i.i2993 %1122 = phi ptr [ %1123, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2995 ], [ %1118, %cond.false.i11.i.i.i.i2993 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i3009, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2995 if.then.i.i.i48.i.i.i.i3009: ; preds = %while.body.i.i33.i.i.i.i2994 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i3010 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2995 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2995: ; preds = %if.then.i.i.i48.i.i.i.i3009, %while.body.i.i33.i.i.i.i2994 %1123 = phi ptr [ %.pre.i.i.i.i3010, %if.then.i.i.i48.i.i.i.i3009 ], [ %1122, %while.body.i.i33.i.i.i.i2994 ] %arrayidx.i.i.i35.i.i.i.i2996 = getelementptr inbounds nuw i32, ptr %1123, i64 %idxprom.i22.i.i.i.i.i2979 %1124 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i2996 monotonic, align 4 %1125 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2984, i32 %1124, i32 %sub.i.i.i.i19.i.i.i.i2986, i32 31) %cmp.i.not.i.i36.i.i.i.i2997 = icmp eq i32 %1125, %port.sroa.43.0.i.i2988 br i1 %cmp.i.not.i.i36.i.i.i.i2997, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2998, label %while.body.i.i33.i.i.i.i2994, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2998: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i2995, %cond.false.i11.i.i.i.i2993 fence acquire br i1 %cmp.i.i.i2.i2990, label %if.then.i.i20.i.i.i.i.i3003, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2999 if.then.i.i20.i.i.i.i.i3003: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2998 %1126 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i3007 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1126, i64 %idxprom.i18.i.i.i.i.i2972 %arrayidx.i22.i.i.i.i.i3008 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i3007, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %arrayidx.i22.i.i.i.i.i3008, ptr noundef nonnull align 1 dereferenceable(5) @.str22, i64 5, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2999 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i2999: ; preds = %if.then.i.i20.i.i.i.i.i3003, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i2998 %conv.i.i39.i.i.i.i3000 = xor i32 %port.sroa.43.0.i.i2988, 1 fence release %1127 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i3001 = getelementptr inbounds nuw i32, ptr %1127, i64 %idxprom.i22.i.i.i.i.i2979 store atomic i32 %conv.i.i39.i.i.i.i3000, ptr %arrayidx.i24.i.i.i.i.i3001 monotonic, align 4 %add.i.i.i.i3002 = add i64 %idx.0.i.i.i.i2989, 64 br label %while.cond.i.i.i.i2987, !llvm.loop !71 cond.false.i.i.i3011: ; preds = %while.cond.i.i.i.i2987 %port.sroa.43.0.i.i2988.lcssa = phi i32 [ %port.sroa.43.0.i.i2988, %while.cond.i.i.i.i2987 ] %.lcssa5660 = phi ptr [ %1118, %while.cond.i.i.i.i2987 ] %.lcssa5659 = phi i32 [ %1119, %while.cond.i.i.i.i2987 ] %1128 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2984, i32 %.lcssa5659, i32 %sub.i.i.i.i19.i.i.i.i2986, i32 31) %1129 = icmp eq i32 %1128, %port.sroa.43.0.i.i2988.lcssa br i1 %1129, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit3036, label %while.body.i.i.i.i3012 while.body.i.i.i.i3012: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3013, %cond.false.i.i.i3011 %1130 = phi ptr [ %1131, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3013 ], [ %.lcssa5660, %cond.false.i.i.i3011 ] br i1 %343, label %if.then.i.i.i.i.i3026, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3013 if.then.i.i.i.i.i3026: ; preds = %while.body.i.i.i.i3012 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i3027 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3013 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3013: ; preds = %if.then.i.i.i.i.i3026, %while.body.i.i.i.i3012 %1131 = phi ptr [ %.pre.i.i3027, %if.then.i.i.i.i.i3026 ], [ %1130, %while.body.i.i.i.i3012 ] %arrayidx.i.i.i11.i.i3014 = getelementptr inbounds nuw i32, ptr %1131, i64 %idxprom.i22.i.i.i.i.i2979 %1132 = load atomic i32, ptr %arrayidx.i.i.i11.i.i3014 monotonic, align 4 %1133 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i2984, i32 %1132, i32 %sub.i.i.i.i19.i.i.i.i2986, i32 31) %cmp.i.not.i.i.i.i3015 = icmp eq i32 %1133, %port.sroa.43.0.i.i2988.lcssa br i1 %cmp.i.not.i.i.i.i3015, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit3036, label %while.body.i.i.i.i3012, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit3036: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3013, %cond.false.i.i.i3011 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2984) fence release %1134 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i2961.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i3017 = icmp ne i64 %retval.sroa.2.1.i.i.i2961.lcssa, 0 %cmp2.i.i.i.i19.i.i3018 = icmp eq i64 %1134, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i3019 = select i1 %iszero.i.i.i.i.i18.i.i3017, i1 %cmp2.i.i.i.i19.i.i3018, i1 false %div8.i.i.i21.i.i3020 = lshr i32 %retval.sroa.6.1.i.i.i2960.lcssa, 5 %1135 = and i32 %retval.sroa.6.1.i.i.i2960.lcssa, 31 %idxprom.i.i.i22.i.i3021 = zext nneg i32 %div8.i.i.i21.i.i3020 to i64 %arrayidx.i.i.i23.i.i3022 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i3021 %conv4.i.i.i24.i.i3023 = zext i1 %cmp.i.i.i.i20.i.i3019 to i32 %shl.i.i.i25.i.i3024 = shl nuw i32 %conv4.i.i.i24.i.i3023, %1135 %xor.i.i.i26.i.i3025 = xor i32 %shl.i.i.i25.i.i3024, -1 %1136 = atomicrmw and ptr %arrayidx.i.i.i23.i.i3022, i32 %xor.i.i.i26.i.i3025 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i2984) br label %sw.epilog if.else77: ; preds = %if.else %cmp78.not = icmp ult i64 %mul66, 1000000 br i1 %cmp78.not, label %if.else82, label %if.then79 if.then79: ; preds = %if.else77 call void @llvm.lifetime.start.p0(ptr nonnull %buffer.i.i.i3039) #32, !noalias !137 br label %while.body.i.i.i.i.i.i.i3042 while.body.i.i.i.i.i.i.i3042: ; preds = %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3054, %if.then79 %writer.sroa.8.0.i.i.i.i.i3043 = phi i64 [ %writer.sroa.8.1.i.i.i.i.i3055, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3054 ], [ 0, %if.then79 ] %value.addr.09.i.i.i.i.i.i.i3044 = phi i64 [ %div.i.i.i.i.i.i.i.i3045, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3054 ], [ %div67, %if.then79 ] %div.i.i.i.i.i.i.i.i3045 = udiv i64 %value.addr.09.i.i.i.i.i.i.i3044, 10 %cmp.i.i.i.i.i.i.i.i.i3046 = icmp eq i64 %writer.sroa.8.0.i.i.i.i.i3043, 21 br i1 %cmp.i.i.i.i.i.i.i.i.i3046, label %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3054, label %if.then3.i.i.i.i.i.i.i.i3047 if.then3.i.i.i.i.i.i.i.i3047: ; preds = %while.body.i.i.i.i.i.i.i3042 %.neg.i3048 = mul nuw nsw i64 %div.i.i.i.i.i.i.i.i3045, 246 %rem.i.i.i.i.i.i.i.decomposed.i3049 = add nuw nsw i64 %.neg.i3048, %value.addr.09.i.i.i.i.i.i.i3044 %conv.i.i.i.i.i.i.i.i3050 = trunc i64 %rem.i.i.i.i.i.i.i.decomposed.i3049 to i8 %switch.offset.i3051 = or disjoint i8 %conv.i.i.i.i.i.i.i.i3050, 48 %inc.i.i.i.i.i.i.i.i3052 = add i64 %writer.sroa.8.0.i.i.i.i.i3043, 1 %1137 = xor i64 %writer.sroa.8.0.i.i.i.i.i3043, -1 %arrayidx.i.i.i.i.i.i.i.i.i3053 = getelementptr i8, ptr %344, i64 %1137 store i8 %switch.offset.i3051, ptr %arrayidx.i.i.i.i.i.i.i.i.i3053, align 1, !tbaa !36, !noalias !137 br label %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3054 _ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3054: ; preds = %if.then3.i.i.i.i.i.i.i.i3047, %while.body.i.i.i.i.i.i.i3042 %writer.sroa.8.1.i.i.i.i.i3055 = phi i64 [ %inc.i.i.i.i.i.i.i.i3052, %if.then3.i.i.i.i.i.i.i.i3047 ], [ 21, %while.body.i.i.i.i.i.i.i3042 ] %cmp.i.i.i.i.i.i.i3056 = icmp samesign ult i64 %value.addr.09.i.i.i.i.i.i.i3044, 10 %.not.i.i.i.i.i.i.i3057 = or i1 %cmp.i.i.i.i.i.i.i.i.i3046, %cmp.i.i.i.i.i.i.i3056 br i1 %.not.i.i.i.i.i.i.i3057, label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEyRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i3058, label %while.body.i.i.i.i.i.i.i3042, !llvm.loop !129 _ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEyRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i3058: ; preds = %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3054 %writer.sroa.8.1.i.i.i.i.i3055.lcssa = phi i64 [ %writer.sroa.8.1.i.i.i.i.i3055, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3054 ] %cmp.i.i.i.i.i.i.i.i.i3046.lcssa = phi i1 [ %cmp.i.i.i.i.i.i.i.i.i3046, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3054 ] %cmp.i17.i.i.i.i.i3061 = icmp ne i64 %writer.sroa.8.1.i.i.i.i.i3055.lcssa, 0 %or.cond.not.i.i.i.i.i3062 = or i1 %cmp.i.i.i.i.i.i.i.i.i3046.lcssa, %cmp.i17.i.i.i.i.i3061 br i1 %or.cond.not.i.i.i.i.i3062, label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ey.exit.i.i.i3065, label %if.then3.i.i.lr.ph.i.i.i.i.i3063 if.then3.i.i.lr.ph.i.i.i.i.i3063: ; preds = %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEyRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i3058 store i8 48, ptr %arrayidx.i.i.i.i.i.i.i.i3064, align 4, !tbaa !36, !noalias !137 br label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ey.exit.i.i.i3065 _ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ey.exit.i.i.i3065: ; preds = %if.then3.i.i.lr.ph.i.i.i.i.i3063, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEyRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i3058 %writer.sroa.8.4.i.i.i.i.i3066 = phi i64 [ %writer.sroa.8.1.i.i.i.i.i3055.lcssa, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEyRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i3058 ], [ 1, %if.then3.i.i.lr.ph.i.i.i.i.i3063 ] store i64 %writer.sroa.8.4.i.i.i.i.i3066, ptr %written.i.i.i.i.i3067, align 8, !tbaa !130, !noalias !137 %cmp.i.not.i.i.i.i.i.i3068 = icmp eq i64 %writer.sroa.8.4.i.i.i.i.i3066, 0 br i1 %cmp.i.not.i.i.i.i.i.i3068, label %if.end.i.i.i.i.i.i.i3087, label %if.then.i.i.i.i.i.i.i3069 if.then.i.i.i.i.i.i.i3069: ; preds = %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ey.exit.i.i.i3065 %inc.i.i.i.i.i2.i.i.i3070 = add i64 %writer.sroa.8.4.i.i.i.i.i3066, 1 %cmp.not.i.i.not.i.i.i.i.i.i3071 = icmp eq i64 %inc.i.i.i.i.i2.i.i.i3070, 0 br i1 %cmp.not.i.i.not.i.i.i.i.i.i3071, label %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i3085, label %if.end.i.i.i.i.i.i.i.i3072 if.end.i.i.i.i.i.i.i.i3072: ; preds = %if.then.i.i.i.i.i.i.i3069 %cmp2.i.i.i.i.i.i.i.i3073 = icmp ult i64 %inc.i.i.i.i.i2.i.i.i3070, 1676976733973595601 %mul.i.i.i.i.i.i.i.i3074 = mul nuw i64 %inc.i.i.i.i.i2.i.i.i3070, 11 %div18.i.i.i.i.i.i.i.i3075 = lshr i64 %mul.i.i.i.i.i.i.i.i3074, 3 %new_capacity.addr.0.i.i.i.i.i.i.i.i3076 = select i1 %cmp2.i.i.i.i.i.i.i.i3073, i64 %div18.i.i.i.i.i.i.i.i3075, i64 %inc.i.i.i.i.i2.i.i.i3070 %sub.i.i.i3077 = add i64 %new_capacity.addr.0.i.i.i.i.i.i.i.i3076, 7 %div2.i.i.i3078 = and i64 %sub.i.i.i3077, -8 %1138 = load ptr, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34, !noalias !137 %add.ptr.i.i.i3079 = getelementptr inbounds nuw i8, ptr %1138, i64 %div2.i.i.i3078 store ptr %add.ptr.i.i.i3079, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34, !noalias !137 %sub.ptr.lhs.cast.i.i.i3080 = ptrtoint ptr %add.ptr.i.i.i3079 to i64 %sub.ptr.sub.i.i.i3081 = sub i64 %sub.ptr.lhs.cast.i.i.i3080, ptrtoint (ptr @_ZN12_GLOBAL__N_16memoryE to i64) %cmp.i.i.i3082 = icmp ugt i64 %sub.ptr.sub.i.i.i3081, 65335 %cond.i.i.i3083 = select i1 %cmp.i.i.i3082, ptr null, ptr %1138 %tobool.i.i.i.i.i.i.i.i3084 = icmp ne ptr %cond.i.i.i3083, null call void @llvm.assume(i1 %tobool.i.i.i.i.i.i.i.i3084) br label %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i3085 _ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i3085: ; preds = %if.end.i.i.i.i.i.i.i.i3072, %if.then.i.i.i.i.i.i.i3069 %agg.tmp.sroa.0.0.i3086 = phi ptr [ @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE, %if.then.i.i.i.i.i.i.i3069 ], [ %cond.i.i.i3083, %if.end.i.i.i.i.i.i.i.i3072 ] call void @llvm.memset.p0.i64(ptr nonnull align 1 %agg.tmp.sroa.0.0.i3086, i8 0, i64 %writer.sroa.8.4.i.i.i.i.i3066, i1 false), !noalias !137 br label %if.end.i.i.i.i.i.i.i3087 if.end.i.i.i.i.i.i.i3087: ; preds = %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i3085, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ey.exit.i.i.i3065 %agg.tmp.sroa.0.1.i3088 = phi ptr [ @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ey.exit.i.i.i3065 ], [ %agg.tmp.sroa.0.0.i3086, %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i3085 ] %cmp.not.i6.i.i.i.i.i.i.i3089 = icmp eq ptr %agg.tmp.sroa.0.1.i3088, @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE br i1 %cmp.not.i6.i.i.i.i.i.i.i3089, label %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i3092, label %if.then.i.i.i.i.i3.i.i.i3090 if.then.i.i.i.i.i3.i.i.i3090: ; preds = %if.end.i.i.i.i.i.i.i3087 %arrayidx.i.i.i.i.i4.i.i.i3091 = getelementptr inbounds nuw i8, ptr %agg.tmp.sroa.0.1.i3088, i64 %writer.sroa.8.4.i.i.i.i.i3066 store i8 0, ptr %arrayidx.i.i.i.i.i4.i.i.i3091, align 1, !tbaa !36, !noalias !137 br label %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i3092 _ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i3092: ; preds = %if.then.i.i.i.i.i3.i.i.i3090, %if.end.i.i.i.i.i.i.i3087 %idx.neg.i.i.i.i3094 = sub i64 0, %writer.sroa.8.4.i.i.i.i.i3066 %add.ptr5.i.i.i.i3095 = getelementptr inbounds i8, ptr %344, i64 %idx.neg.i.i.i.i3094 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %agg.tmp.sroa.0.1.i3088, ptr nonnull align 1 %add.ptr5.i.i.i.i3095, i64 %writer.sroa.8.4.i.i.i.i.i3066, i1 false), !alias.scope !142, !noalias !137 call void @llvm.lifetime.end.p0(ptr nonnull %buffer.i.i.i3039) #32, !noalias !137 br label %for.cond.i.i.i3098 for.cond.i.i.i3098: ; preds = %for.inc.i.i.i3133, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i3092 %retval.sroa.6.0.i.i.i3099 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i3092 ], [ %retval.sroa.6.2.i.i.i3134, %for.inc.i.i.i3133 ] %retval.sroa.2.0.i.i.i3100 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i3092 ], [ %retval.sroa.2.2.i.i.i3135, %for.inc.i.i.i3133 ] %retval.sroa.8.0.i.i.i3101 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i3092 ], [ %retval.sroa.8.2.i.i.i3136, %for.inc.i.i.i3133 ] %index.0.i.i.i3102 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i3092 ], [ %inc.i.i.i3137, %for.inc.i.i.i3133 ] %1139 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i3103 = icmp ult i32 %index.0.i.i.i3102, %1139 %spec.store.select.i.i.i3104 = select i1 %cmp.not.i.i.i3103, i32 %index.0.i.i.i3102, i32 0 %1140 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i3105 = zext i32 %1140 to i64 %div8.i.i.i.i.i3106 = lshr i32 %spec.store.select.i.i.i3104, 5 %1141 = and i32 %spec.store.select.i.i.i3104, 31 %idxprom.i.i.i.i.i3107 = zext nneg i32 %div8.i.i.i.i.i3106 to i64 %arrayidx.i.i.i.i.i3108 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i3107 %1142 = lshr i32 %1140, %2 %conv4.i.i.i.i.i3109 = and i32 %1142, 1 %shl.i.i.i.i.i3110 = shl nuw i32 %conv4.i.i.i.i.i3109, %1141 %1143 = atomicrmw or ptr %arrayidx.i.i.i.i.i3108, i32 %shl.i.i.i.i.i3110 monotonic, align 4 %shl5.i.i.i.i.i3111 = shl nuw i32 1, %1141 %and.i.i.i.i.i3112 = and i32 %shl5.i.i.i.i.i3111, %1143 %tobool3.i.i.i.i3113 = icmp ne i32 %and.i.i.i.i.i3112, 0 %1144 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %1140, i1 %tobool3.i.i.i.i3113) %cmp.i.not.i.i.i3114 = icmp eq i32 %1140, %1144 br i1 %cmp.i.not.i.i.i3114, label %for.inc.i.i.i3133, label %if.then.i.i.i.i3115 if.then.i.i.i.i3115: ; preds = %for.cond.i.i.i3098 fence acquire %1145 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i3116 = zext i32 %spec.store.select.i.i.i3104 to i64 %arrayidx.i.i.i.i3117 = getelementptr inbounds nuw i32, ptr %1145, i64 %idxprom.i.i.i.i3116 %1146 = load atomic i32, ptr %arrayidx.i.i.i.i3117 monotonic, align 4 %1147 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %1140, i1 true) %iszero.i.i.i.i.i.i3118 = icmp eq i32 %1140, 0 %sub.i.i.i.i.i.i3119 = select i1 %iszero.i.i.i.i.i.i3118, i32 -1, i32 %1147 %1148 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1140, i32 %1146, i32 %sub.i.i.i.i.i.i3119, i32 31) %1149 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i3120 = getelementptr inbounds nuw i32, ptr %1149, i64 %idxprom.i.i.i.i3116 %1150 = load atomic i32, ptr %arrayidx.i45.i.i.i3120 monotonic, align 4 %1151 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1140, i32 %1150, i32 %sub.i.i.i.i.i.i3119, i32 31) %cmp.i48.not.i.i.i3121 = icmp eq i32 %1148, %1151 br i1 %cmp.i48.not.i.i.i3121, label %if.end14.i.i.i3199, label %if.then12.i.i.i3122 if.then12.i.i.i3122: ; preds = %if.then.i.i.i.i3115 fence release %1152 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i3105, i1 true) %iszero.i.i.i.i.i.i.i3123 = icmp ne i32 %1140, 0 %cmp2.i.i.i.i.i.i3124 = icmp eq i64 %1152, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i3125 = select i1 %iszero.i.i.i.i.i.i.i3123, i1 %cmp2.i.i.i.i.i.i3124, i1 false %conv4.i.i53.i.i.i3126 = zext i1 %cmp.i.i.i.i.i.i3125 to i32 %shl.i.i54.i.i.i3127 = shl nuw i32 %conv4.i.i53.i.i.i3126, %1141 %xor.i.i.i.i.i3128 = xor i32 %shl.i.i54.i.i.i3127, -1 %1153 = atomicrmw and ptr %arrayidx.i.i.i.i.i3108, i32 %xor.i.i.i.i.i3128 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %1140) br label %cleanup26.i.i.i3129 if.end14.i.i.i3199: ; preds = %if.then.i.i.i.i3115 %1154 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i3105, i1 true) %iszero.i.i.i56.i.i.i3200 = icmp ne i32 %1140, 0 %cmp2.i.i.i.i.i3201 = icmp eq i64 %1154, %sh_prom.i.i.i.i %cmp.i.i.i.i.i3202 = select i1 %iszero.i.i.i56.i.i.i3200, i1 %cmp2.i.i.i.i.i3201, i1 false br i1 %cmp.i.i.i.i.i3202, label %if.then16.i.i.i3204, label %if.end22.i.i.i3203 if.then16.i.i.i3204: ; preds = %if.end14.i.i.i3199 %1155 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i3205 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1155, i64 %idxprom.i.i.i.i3116, i32 1 store i32 1660944387, ptr %opcode.i.i.i3205, align 8, !tbaa !61 %arrayidx21.i.i.i3206 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1155, i64 %idxprom.i.i.i.i3116 store i64 %conv.i.i.i.i.i3105, ptr %arrayidx21.i.i.i3206, align 8, !tbaa !64 br label %if.end22.i.i.i3203 if.end22.i.i.i3203: ; preds = %if.then16.i.i.i3204, %if.end14.i.i.i3199 call void @llvm.nvvm.bar.warp.sync(i32 %1140) br label %cleanup26.i.i.i3129 cleanup26.i.i.i3129: ; preds = %if.end22.i.i.i3203, %if.then12.i.i.i3122 %retval.sroa.6.1.i.i.i3130 = phi i32 [ %retval.sroa.6.0.i.i.i3099, %if.then12.i.i.i3122 ], [ %spec.store.select.i.i.i3104, %if.end22.i.i.i3203 ] %retval.sroa.2.1.i.i.i3131 = phi i64 [ %retval.sroa.2.0.i.i.i3100, %if.then12.i.i.i3122 ], [ %conv.i.i.i.i.i3105, %if.end22.i.i.i3203 ] %retval.sroa.8.1.i.i.i3132 = phi i32 [ %retval.sroa.8.0.i.i.i3101, %if.then12.i.i.i3122 ], [ %1148, %if.end22.i.i.i3203 ] br i1 %cmp.i48.not.i.i.i3121, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3138, label %for.inc.i.i.i3133 for.inc.i.i.i3133: ; preds = %cleanup26.i.i.i3129, %for.cond.i.i.i3098 %retval.sroa.6.2.i.i.i3134 = phi i32 [ %retval.sroa.6.1.i.i.i3130, %cleanup26.i.i.i3129 ], [ %retval.sroa.6.0.i.i.i3099, %for.cond.i.i.i3098 ] %retval.sroa.2.2.i.i.i3135 = phi i64 [ %retval.sroa.2.1.i.i.i3131, %cleanup26.i.i.i3129 ], [ %retval.sroa.2.0.i.i.i3100, %for.cond.i.i.i3098 ] %retval.sroa.8.2.i.i.i3136 = phi i32 [ %retval.sroa.8.1.i.i.i3132, %cleanup26.i.i.i3129 ], [ %retval.sroa.8.0.i.i.i3101, %for.cond.i.i.i3098 ] %inc.i.i.i3137 = add i32 %spec.store.select.i.i.i3104, 1 br label %for.cond.i.i.i3098, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3138: ; preds = %cleanup26.i.i.i3129 %retval.sroa.6.1.i.i.i3130.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i3130, %cleanup26.i.i.i3129 ] %retval.sroa.2.1.i.i.i3131.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i3131, %cleanup26.i.i.i3129 ] %retval.sroa.8.1.i.i.i3132.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i3132, %cleanup26.i.i.i3129 ] fence acquire %1156 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i3141 = shl i32 %retval.sroa.6.1.i.i.i3130.lcssa, 5 %idxprom.i18.i.i.i.i.i3142 = zext i32 %mul.i.i.i.i.i.i3141 to i64 %arrayidx.i19.i.i.i.i.i3143 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1156, i64 %idxprom.i18.i.i.i.i.i3142 %arrayidx.i21.i.i.i.i.i3144 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i3143, i64 %sh_prom.i.i.i.i store i64 %writer.sroa.8.4.i.i.i.i.i3066, ptr %arrayidx.i21.i.i.i.i.i3144, align 8, !tbaa !67 %spec.select.i.i.i.i.i.i.i3145 = call i64 @llvm.umin.i64(i64 %writer.sroa.8.4.i.i.i.i.i3066, i64 56) %arrayidx6.i.i.i.i.i.i.i3146 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i3144, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %arrayidx6.i.i.i.i.i.i.i3146, ptr nonnull align 1 %agg.tmp.sroa.0.1.i3088, i64 %spec.select.i.i.i.i.i.i.i3145, i1 false) %tobool.not.i.i.i.i.i.i3147 = icmp eq i32 %retval.sroa.8.1.i.i.i3132.lcssa, 0 %conv.i.i.i.i.i.i3148 = zext i1 %tobool.not.i.i.i.i.i.i3147 to i32 fence release %1157 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i3149 = zext i32 %retval.sroa.6.1.i.i.i3130.lcssa to i64 %arrayidx.i23.i.i.i.i.i3150 = getelementptr inbounds nuw i32, ptr %1157, i64 %idxprom.i22.i.i.i.i.i3149 store atomic i32 %conv.i.i.i.i.i.i3148, ptr %arrayidx.i23.i.i.i.i.i3150 monotonic, align 4 %1158 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i3151 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1158, i64 %idxprom.i22.i.i.i.i.i3149 %1159 = load i64, ptr %arrayidx.i.i4.i.i3151, align 8, !tbaa !64 %conv.i.i7.i.i.i.i3152 = trunc i64 %1159 to i32 %conv.i.i.i.i17.i.i.i.i3154 = trunc i64 %retval.sroa.2.1.i.i.i3131.lcssa to i32 %1160 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i3154, i1 true) %iszero.i.i.i.i18.i.i.i.i3155 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i3154, 0 %sub.i.i.i.i19.i.i.i.i3156 = select i1 %iszero.i.i.i.i18.i.i.i.i3155, i32 -1, i32 %1160 br label %while.cond.i.i.i.i3157 while.cond.i.i.i.i3157: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3169, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3138 %port.sroa.43.0.i.i3158 = phi i32 [ %conv.i.i.i.i.i.i3148, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3138 ], [ %conv.i.i39.i.i.i.i3170, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3169 ] %idx.0.i.i.i.i3159 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3138 ], [ %add.i.i.i.i3172, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3169 ] %cmp.i.i.i.i3160 = icmp ult i64 %idx.0.i.i.i.i3159, %writer.sroa.8.4.i.i.i.i.i3066 %1161 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i3152, i1 %cmp.i.i.i.i3160) %tobool.not.i.i.i.i3161 = icmp eq i32 %1161, 0 %1162 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i3162 = getelementptr inbounds nuw i32, ptr %1162, i64 %idxprom.i22.i.i.i.i.i3149 %1163 = load atomic i32, ptr %arrayidx.i22.i.i.i3162 monotonic, align 4 br i1 %tobool.not.i.i.i.i3161, label %cond.false.i.i.i3181, label %cond.false.i11.i.i.i.i3163 cond.false.i11.i.i.i.i3163: ; preds = %while.cond.i.i.i.i3157 %1164 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3154, i32 %1163, i32 %sub.i.i.i.i19.i.i.i.i3156, i32 31) %1165 = icmp eq i32 %1164, %port.sroa.43.0.i.i3158 br i1 %1165, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3168, label %while.body.i.i33.i.i.i.i3164 while.body.i.i33.i.i.i.i3164: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3165, %cond.false.i11.i.i.i.i3163 %1166 = phi ptr [ %1167, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3165 ], [ %1162, %cond.false.i11.i.i.i.i3163 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i3179, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3165 if.then.i.i.i48.i.i.i.i3179: ; preds = %while.body.i.i33.i.i.i.i3164 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i3180 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3165 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3165: ; preds = %if.then.i.i.i48.i.i.i.i3179, %while.body.i.i33.i.i.i.i3164 %1167 = phi ptr [ %.pre.i.i.i.i3180, %if.then.i.i.i48.i.i.i.i3179 ], [ %1166, %while.body.i.i33.i.i.i.i3164 ] %arrayidx.i.i.i35.i.i.i.i3166 = getelementptr inbounds nuw i32, ptr %1167, i64 %idxprom.i22.i.i.i.i.i3149 %1168 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i3166 monotonic, align 4 %1169 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3154, i32 %1168, i32 %sub.i.i.i.i19.i.i.i.i3156, i32 31) %cmp.i.not.i.i36.i.i.i.i3167 = icmp eq i32 %1169, %port.sroa.43.0.i.i3158 br i1 %cmp.i.not.i.i36.i.i.i.i3167, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3168, label %while.body.i.i33.i.i.i.i3164, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3168: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3165, %cond.false.i11.i.i.i.i3163 fence acquire br i1 %cmp.i.i.i.i3160, label %if.then.i.i20.i.i.i.i.i3173, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3169 if.then.i.i20.i.i.i.i.i3173: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3168 %add.ptr.i.i.i.i.i.i.i.i3174 = getelementptr inbounds nuw i8, ptr %agg.tmp.sroa.0.1.i3088, i64 %idx.0.i.i.i.i3159 %sub.i.i.i.i.i.i.i3175 = sub nuw i64 %writer.sroa.8.4.i.i.i.i.i3066, %idx.0.i.i.i.i3159 %spec.select.i.i.i47.i.i.i.i3176 = call i64 @llvm.umin.i64(i64 %sub.i.i.i.i.i.i.i3175, i64 64) %1170 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i3177 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1170, i64 %idxprom.i18.i.i.i.i.i3142 %arrayidx.i22.i.i.i.i.i3178 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i3177, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr align 1 %arrayidx.i22.i.i.i.i.i3178, ptr nonnull align 1 %add.ptr.i.i.i.i.i.i.i.i3174, i64 %spec.select.i.i.i47.i.i.i.i3176, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3169 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3169: ; preds = %if.then.i.i20.i.i.i.i.i3173, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3168 %conv.i.i39.i.i.i.i3170 = xor i32 %port.sroa.43.0.i.i3158, 1 fence release %1171 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i3171 = getelementptr inbounds nuw i32, ptr %1171, i64 %idxprom.i22.i.i.i.i.i3149 store atomic i32 %conv.i.i39.i.i.i.i3170, ptr %arrayidx.i24.i.i.i.i.i3171 monotonic, align 4 %add.i.i.i.i3172 = add i64 %idx.0.i.i.i.i3159, 64 br label %while.cond.i.i.i.i3157, !llvm.loop !71 cond.false.i.i.i3181: ; preds = %while.cond.i.i.i.i3157 %port.sroa.43.0.i.i3158.lcssa = phi i32 [ %port.sroa.43.0.i.i3158, %while.cond.i.i.i.i3157 ] %.lcssa5650 = phi ptr [ %1162, %while.cond.i.i.i.i3157 ] %.lcssa5649 = phi i32 [ %1163, %while.cond.i.i.i.i3157 ] %1172 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3154, i32 %.lcssa5649, i32 %sub.i.i.i.i19.i.i.i.i3156, i32 31) %1173 = icmp eq i32 %1172, %port.sroa.43.0.i.i3158.lcssa br i1 %1173, label %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3186, label %while.body.i.i.i.i3182 while.body.i.i.i.i3182: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3183, %cond.false.i.i.i3181 %1174 = phi ptr [ %1175, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3183 ], [ %.lcssa5650, %cond.false.i.i.i3181 ] br i1 %343, label %if.then.i.i.i.i.i3197, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3183 if.then.i.i.i.i.i3197: ; preds = %while.body.i.i.i.i3182 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i3198 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3183 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3183: ; preds = %if.then.i.i.i.i.i3197, %while.body.i.i.i.i3182 %1175 = phi ptr [ %.pre.i.i3198, %if.then.i.i.i.i.i3197 ], [ %1174, %while.body.i.i.i.i3182 ] %arrayidx.i.i.i11.i.i3184 = getelementptr inbounds nuw i32, ptr %1175, i64 %idxprom.i22.i.i.i.i.i3149 %1176 = load atomic i32, ptr %arrayidx.i.i.i11.i.i3184 monotonic, align 4 %1177 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3154, i32 %1176, i32 %sub.i.i.i.i19.i.i.i.i3156, i32 31) %cmp.i.not.i.i.i.i3185 = icmp eq i32 %1177, %port.sroa.43.0.i.i3158.lcssa br i1 %cmp.i.not.i.i.i.i3185, label %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3186, label %while.body.i.i.i.i3182, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3186: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3183, %cond.false.i.i.i3181 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i3154) fence release %1178 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i3131.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i3187 = icmp ne i64 %retval.sroa.2.1.i.i.i3131.lcssa, 0 %cmp2.i.i.i.i19.i.i3188 = icmp eq i64 %1178, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i3189 = select i1 %iszero.i.i.i.i.i18.i.i3187, i1 %cmp2.i.i.i.i19.i.i3188, i1 false %div8.i.i.i21.i.i3190 = lshr i32 %retval.sroa.6.1.i.i.i3130.lcssa, 5 %1179 = and i32 %retval.sroa.6.1.i.i.i3130.lcssa, 31 %idxprom.i.i.i22.i.i3191 = zext nneg i32 %div8.i.i.i21.i.i3190 to i64 %arrayidx.i.i.i23.i.i3192 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i3191 %conv4.i.i.i24.i.i3193 = zext i1 %cmp.i.i.i.i20.i.i3189 to i32 %shl.i.i.i25.i.i3194 = shl nuw i32 %conv4.i.i.i24.i.i3193, %1179 %xor.i.i.i26.i.i3195 = xor i32 %shl.i.i.i25.i.i3194, -1 %1180 = atomicrmw and ptr %arrayidx.i.i.i23.i.i3192, i32 %xor.i.i.i26.i.i3195 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i3154) br label %for.cond.i.i.i3219 for.cond.i.i.i3219: ; preds = %for.inc.i.i.i3254, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3186 %retval.sroa.6.0.i.i.i3220 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3186 ], [ %retval.sroa.6.2.i.i.i3255, %for.inc.i.i.i3254 ] %retval.sroa.2.0.i.i.i3221 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3186 ], [ %retval.sroa.2.2.i.i.i3256, %for.inc.i.i.i3254 ] %retval.sroa.8.0.i.i.i3222 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3186 ], [ %retval.sroa.8.2.i.i.i3257, %for.inc.i.i.i3254 ] %index.0.i.i.i3223 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3186 ], [ %inc.i.i.i3258, %for.inc.i.i.i3254 ] %1181 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i3224 = icmp ult i32 %index.0.i.i.i3223, %1181 %spec.store.select.i.i.i3225 = select i1 %cmp.not.i.i.i3224, i32 %index.0.i.i.i3223, i32 0 %1182 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i3226 = zext i32 %1182 to i64 %div8.i.i.i.i.i3227 = lshr i32 %spec.store.select.i.i.i3225, 5 %1183 = and i32 %spec.store.select.i.i.i3225, 31 %idxprom.i.i.i.i.i3228 = zext nneg i32 %div8.i.i.i.i.i3227 to i64 %arrayidx.i.i.i.i.i3229 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i3228 %1184 = lshr i32 %1182, %2 %conv4.i.i.i.i.i3230 = and i32 %1184, 1 %shl.i.i.i.i.i3231 = shl nuw i32 %conv4.i.i.i.i.i3230, %1183 %1185 = atomicrmw or ptr %arrayidx.i.i.i.i.i3229, i32 %shl.i.i.i.i.i3231 monotonic, align 4 %shl5.i.i.i.i.i3232 = shl nuw i32 1, %1183 %and.i.i.i.i.i3233 = and i32 %shl5.i.i.i.i.i3232, %1185 %tobool3.i.i.i.i3234 = icmp ne i32 %and.i.i.i.i.i3233, 0 %1186 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %1182, i1 %tobool3.i.i.i.i3234) %cmp.i.not.i.i.i3235 = icmp eq i32 %1182, %1186 br i1 %cmp.i.not.i.i.i3235, label %for.inc.i.i.i3254, label %if.then.i.i.i.i3236 if.then.i.i.i.i3236: ; preds = %for.cond.i.i.i3219 fence acquire %1187 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i3237 = zext i32 %spec.store.select.i.i.i3225 to i64 %arrayidx.i.i.i.i3238 = getelementptr inbounds nuw i32, ptr %1187, i64 %idxprom.i.i.i.i3237 %1188 = load atomic i32, ptr %arrayidx.i.i.i.i3238 monotonic, align 4 %1189 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %1182, i1 true) %iszero.i.i.i.i.i.i3239 = icmp eq i32 %1182, 0 %sub.i.i.i.i.i.i3240 = select i1 %iszero.i.i.i.i.i.i3239, i32 -1, i32 %1189 %1190 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1182, i32 %1188, i32 %sub.i.i.i.i.i.i3240, i32 31) %1191 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i3241 = getelementptr inbounds nuw i32, ptr %1191, i64 %idxprom.i.i.i.i3237 %1192 = load atomic i32, ptr %arrayidx.i45.i.i.i3241 monotonic, align 4 %1193 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1182, i32 %1192, i32 %sub.i.i.i.i.i.i3240, i32 31) %cmp.i48.not.i.i.i3242 = icmp eq i32 %1190, %1193 br i1 %cmp.i48.not.i.i.i3242, label %if.end14.i.i.i3319, label %if.then12.i.i.i3243 if.then12.i.i.i3243: ; preds = %if.then.i.i.i.i3236 fence release %1194 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i3226, i1 true) %iszero.i.i.i.i.i.i.i3244 = icmp ne i32 %1182, 0 %cmp2.i.i.i.i.i.i3245 = icmp eq i64 %1194, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i3246 = select i1 %iszero.i.i.i.i.i.i.i3244, i1 %cmp2.i.i.i.i.i.i3245, i1 false %conv4.i.i53.i.i.i3247 = zext i1 %cmp.i.i.i.i.i.i3246 to i32 %shl.i.i54.i.i.i3248 = shl nuw i32 %conv4.i.i53.i.i.i3247, %1183 %xor.i.i.i.i.i3249 = xor i32 %shl.i.i54.i.i.i3248, -1 %1195 = atomicrmw and ptr %arrayidx.i.i.i.i.i3229, i32 %xor.i.i.i.i.i3249 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %1182) br label %cleanup26.i.i.i3250 if.end14.i.i.i3319: ; preds = %if.then.i.i.i.i3236 %1196 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i3226, i1 true) %iszero.i.i.i56.i.i.i3320 = icmp ne i32 %1182, 0 %cmp2.i.i.i.i.i3321 = icmp eq i64 %1196, %sh_prom.i.i.i.i %cmp.i.i.i.i.i3322 = select i1 %iszero.i.i.i56.i.i.i3320, i1 %cmp2.i.i.i.i.i3321, i1 false br i1 %cmp.i.i.i.i.i3322, label %if.then16.i.i.i3324, label %if.end22.i.i.i3323 if.then16.i.i.i3324: ; preds = %if.end14.i.i.i3319 %1197 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i3325 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1197, i64 %idxprom.i.i.i.i3237, i32 1 store i32 1660944387, ptr %opcode.i.i.i3325, align 8, !tbaa !61 %arrayidx21.i.i.i3326 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1197, i64 %idxprom.i.i.i.i3237 store i64 %conv.i.i.i.i.i3226, ptr %arrayidx21.i.i.i3326, align 8, !tbaa !64 br label %if.end22.i.i.i3323 if.end22.i.i.i3323: ; preds = %if.then16.i.i.i3324, %if.end14.i.i.i3319 call void @llvm.nvvm.bar.warp.sync(i32 %1182) br label %cleanup26.i.i.i3250 cleanup26.i.i.i3250: ; preds = %if.end22.i.i.i3323, %if.then12.i.i.i3243 %retval.sroa.6.1.i.i.i3251 = phi i32 [ %retval.sroa.6.0.i.i.i3220, %if.then12.i.i.i3243 ], [ %spec.store.select.i.i.i3225, %if.end22.i.i.i3323 ] %retval.sroa.2.1.i.i.i3252 = phi i64 [ %retval.sroa.2.0.i.i.i3221, %if.then12.i.i.i3243 ], [ %conv.i.i.i.i.i3226, %if.end22.i.i.i3323 ] %retval.sroa.8.1.i.i.i3253 = phi i32 [ %retval.sroa.8.0.i.i.i3222, %if.then12.i.i.i3243 ], [ %1190, %if.end22.i.i.i3323 ] br i1 %cmp.i48.not.i.i.i3242, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3259, label %for.inc.i.i.i3254 for.inc.i.i.i3254: ; preds = %cleanup26.i.i.i3250, %for.cond.i.i.i3219 %retval.sroa.6.2.i.i.i3255 = phi i32 [ %retval.sroa.6.1.i.i.i3251, %cleanup26.i.i.i3250 ], [ %retval.sroa.6.0.i.i.i3220, %for.cond.i.i.i3219 ] %retval.sroa.2.2.i.i.i3256 = phi i64 [ %retval.sroa.2.1.i.i.i3252, %cleanup26.i.i.i3250 ], [ %retval.sroa.2.0.i.i.i3221, %for.cond.i.i.i3219 ] %retval.sroa.8.2.i.i.i3257 = phi i32 [ %retval.sroa.8.1.i.i.i3253, %cleanup26.i.i.i3250 ], [ %retval.sroa.8.0.i.i.i3222, %for.cond.i.i.i3219 ] %inc.i.i.i3258 = add i32 %spec.store.select.i.i.i3225, 1 br label %for.cond.i.i.i3219, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3259: ; preds = %cleanup26.i.i.i3250 %retval.sroa.6.1.i.i.i3251.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i3251, %cleanup26.i.i.i3250 ] %retval.sroa.2.1.i.i.i3252.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i3252, %cleanup26.i.i.i3250 ] %retval.sroa.8.1.i.i.i3253.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i3253, %cleanup26.i.i.i3250 ] fence acquire %1198 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i3262 = shl i32 %retval.sroa.6.1.i.i.i3251.lcssa, 5 %idxprom.i18.i.i.i.i.i3263 = zext i32 %mul.i.i.i.i.i.i3262 to i64 %arrayidx.i19.i.i.i.i.i3264 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1198, i64 %idxprom.i18.i.i.i.i.i3263 %arrayidx.i21.i.i.i.i.i3265 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i3264, i64 %sh_prom.i.i.i.i store i64 5, ptr %arrayidx.i21.i.i.i.i.i3265, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i3267 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i3265, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %arrayidx6.i.i.i.i.i.i.i3267, ptr noundef nonnull align 1 dereferenceable(5) @.str23, i64 5, i1 false) %tobool.not.i.i.i.i.i.i3268 = icmp eq i32 %retval.sroa.8.1.i.i.i3253.lcssa, 0 %conv.i.i.i.i.i.i3269 = zext i1 %tobool.not.i.i.i.i.i.i3268 to i32 fence release %1199 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i3270 = zext i32 %retval.sroa.6.1.i.i.i3251.lcssa to i64 %arrayidx.i23.i.i.i.i.i3271 = getelementptr inbounds nuw i32, ptr %1199, i64 %idxprom.i22.i.i.i.i.i3270 store atomic i32 %conv.i.i.i.i.i.i3269, ptr %arrayidx.i23.i.i.i.i.i3271 monotonic, align 4 %1200 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i3272 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1200, i64 %idxprom.i22.i.i.i.i.i3270 %1201 = load i64, ptr %arrayidx.i.i4.i.i3272, align 8, !tbaa !64 %conv.i.i7.i.i.i.i3273 = trunc i64 %1201 to i32 %conv.i.i.i.i17.i.i.i.i3275 = trunc i64 %retval.sroa.2.1.i.i.i3252.lcssa to i32 %1202 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i3275, i1 true) %iszero.i.i.i.i18.i.i.i.i3276 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i3275, 0 %sub.i.i.i.i19.i.i.i.i3277 = select i1 %iszero.i.i.i.i18.i.i.i.i3276, i32 -1, i32 %1202 br label %while.cond.i.i.i.i3278 while.cond.i.i.i.i3278: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3290, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3259 %port.sroa.43.0.i.i3279 = phi i32 [ %conv.i.i.i.i.i.i3269, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3259 ], [ %conv.i.i39.i.i.i.i3291, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3290 ] %idx.0.i.i.i.i3280 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3259 ], [ %add.i.i.i.i3293, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3290 ] %cmp.i.i.i2.i3281 = icmp eq i64 %idx.0.i.i.i.i3280, 0 %1203 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i3273, i1 %cmp.i.i.i2.i3281) %tobool.not.i.i.i.i3282 = icmp eq i32 %1203, 0 %1204 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i3283 = getelementptr inbounds nuw i32, ptr %1204, i64 %idxprom.i22.i.i.i.i.i3270 %1205 = load atomic i32, ptr %arrayidx.i22.i.i.i3283 monotonic, align 4 br i1 %tobool.not.i.i.i.i3282, label %cond.false.i.i.i3302, label %cond.false.i11.i.i.i.i3284 cond.false.i11.i.i.i.i3284: ; preds = %while.cond.i.i.i.i3278 %1206 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3275, i32 %1205, i32 %sub.i.i.i.i19.i.i.i.i3277, i32 31) %1207 = icmp eq i32 %1206, %port.sroa.43.0.i.i3279 br i1 %1207, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3289, label %while.body.i.i33.i.i.i.i3285 while.body.i.i33.i.i.i.i3285: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3286, %cond.false.i11.i.i.i.i3284 %1208 = phi ptr [ %1209, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3286 ], [ %1204, %cond.false.i11.i.i.i.i3284 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i3300, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3286 if.then.i.i.i48.i.i.i.i3300: ; preds = %while.body.i.i33.i.i.i.i3285 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i3301 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3286 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3286: ; preds = %if.then.i.i.i48.i.i.i.i3300, %while.body.i.i33.i.i.i.i3285 %1209 = phi ptr [ %.pre.i.i.i.i3301, %if.then.i.i.i48.i.i.i.i3300 ], [ %1208, %while.body.i.i33.i.i.i.i3285 ] %arrayidx.i.i.i35.i.i.i.i3287 = getelementptr inbounds nuw i32, ptr %1209, i64 %idxprom.i22.i.i.i.i.i3270 %1210 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i3287 monotonic, align 4 %1211 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3275, i32 %1210, i32 %sub.i.i.i.i19.i.i.i.i3277, i32 31) %cmp.i.not.i.i36.i.i.i.i3288 = icmp eq i32 %1211, %port.sroa.43.0.i.i3279 br i1 %cmp.i.not.i.i36.i.i.i.i3288, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3289, label %while.body.i.i33.i.i.i.i3285, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3289: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3286, %cond.false.i11.i.i.i.i3284 fence acquire br i1 %cmp.i.i.i2.i3281, label %if.then.i.i20.i.i.i.i.i3294, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3290 if.then.i.i20.i.i.i.i.i3294: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3289 %1212 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i3298 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1212, i64 %idxprom.i18.i.i.i.i.i3263 %arrayidx.i22.i.i.i.i.i3299 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i3298, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %arrayidx.i22.i.i.i.i.i3299, ptr noundef nonnull align 1 dereferenceable(5) @.str23, i64 5, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3290 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3290: ; preds = %if.then.i.i20.i.i.i.i.i3294, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3289 %conv.i.i39.i.i.i.i3291 = xor i32 %port.sroa.43.0.i.i3279, 1 fence release %1213 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i3292 = getelementptr inbounds nuw i32, ptr %1213, i64 %idxprom.i22.i.i.i.i.i3270 store atomic i32 %conv.i.i39.i.i.i.i3291, ptr %arrayidx.i24.i.i.i.i.i3292 monotonic, align 4 %add.i.i.i.i3293 = add i64 %idx.0.i.i.i.i3280, 64 br label %while.cond.i.i.i.i3278, !llvm.loop !71 cond.false.i.i.i3302: ; preds = %while.cond.i.i.i.i3278 %port.sroa.43.0.i.i3279.lcssa = phi i32 [ %port.sroa.43.0.i.i3279, %while.cond.i.i.i.i3278 ] %.lcssa5652 = phi ptr [ %1204, %while.cond.i.i.i.i3278 ] %.lcssa5651 = phi i32 [ %1205, %while.cond.i.i.i.i3278 ] %1214 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3275, i32 %.lcssa5651, i32 %sub.i.i.i.i19.i.i.i.i3277, i32 31) %1215 = icmp eq i32 %1214, %port.sroa.43.0.i.i3279.lcssa br i1 %1215, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit3327, label %while.body.i.i.i.i3303 while.body.i.i.i.i3303: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3304, %cond.false.i.i.i3302 %1216 = phi ptr [ %1217, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3304 ], [ %.lcssa5652, %cond.false.i.i.i3302 ] br i1 %343, label %if.then.i.i.i.i.i3317, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3304 if.then.i.i.i.i.i3317: ; preds = %while.body.i.i.i.i3303 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i3318 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3304 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3304: ; preds = %if.then.i.i.i.i.i3317, %while.body.i.i.i.i3303 %1217 = phi ptr [ %.pre.i.i3318, %if.then.i.i.i.i.i3317 ], [ %1216, %while.body.i.i.i.i3303 ] %arrayidx.i.i.i11.i.i3305 = getelementptr inbounds nuw i32, ptr %1217, i64 %idxprom.i22.i.i.i.i.i3270 %1218 = load atomic i32, ptr %arrayidx.i.i.i11.i.i3305 monotonic, align 4 %1219 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3275, i32 %1218, i32 %sub.i.i.i.i19.i.i.i.i3277, i32 31) %cmp.i.not.i.i.i.i3306 = icmp eq i32 %1219, %port.sroa.43.0.i.i3279.lcssa br i1 %cmp.i.not.i.i.i.i3306, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit3327, label %while.body.i.i.i.i3303, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit3327: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3304, %cond.false.i.i.i3302 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i3275) fence release %1220 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i3252.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i3308 = icmp ne i64 %retval.sroa.2.1.i.i.i3252.lcssa, 0 %cmp2.i.i.i.i19.i.i3309 = icmp eq i64 %1220, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i3310 = select i1 %iszero.i.i.i.i.i18.i.i3308, i1 %cmp2.i.i.i.i19.i.i3309, i1 false %div8.i.i.i21.i.i3311 = lshr i32 %retval.sroa.6.1.i.i.i3251.lcssa, 5 %1221 = and i32 %retval.sroa.6.1.i.i.i3251.lcssa, 31 %idxprom.i.i.i22.i.i3312 = zext nneg i32 %div8.i.i.i21.i.i3311 to i64 %arrayidx.i.i.i23.i.i3313 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i3312 %conv4.i.i.i24.i.i3314 = zext i1 %cmp.i.i.i.i20.i.i3310 to i32 %shl.i.i.i25.i.i3315 = shl nuw i32 %conv4.i.i.i24.i.i3314, %1221 %xor.i.i.i26.i.i3316 = xor i32 %shl.i.i.i25.i.i3315, -1 %1222 = atomicrmw and ptr %arrayidx.i.i.i23.i.i3313, i32 %xor.i.i.i26.i.i3316 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i3275) br label %sw.epilog if.else82: ; preds = %if.else77 call void @llvm.lifetime.start.p0(ptr nonnull %buffer.i.i.i3330) #32, !noalias !146 %cmp7.i.i.i.i.i.i.i3331 = icmp ult i64 %mul70, 1000000 br i1 %cmp7.i.i.i.i.i.i.i3331, label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEyRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i3349, label %while.body.i.i.i.i.i.i.i3333 while.body.i.i.i.i.i.i.i3333: ; preds = %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3345, %if.else82 %writer.sroa.8.0.i.i.i.i.i3334 = phi i64 [ %writer.sroa.8.1.i.i.i.i.i3346, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3345 ], [ 0, %if.else82 ] %value.addr.09.i.i.i.i.i.i.i3335 = phi i64 [ %div.i.i.i.i.i.i.i.i3336, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3345 ], [ %div71, %if.else82 ] %div.i.i.i.i.i.i.i.i3336 = udiv i64 %value.addr.09.i.i.i.i.i.i.i3335, 10 %cmp.i.i.i.i.i.i.i.i.i3337 = icmp eq i64 %writer.sroa.8.0.i.i.i.i.i3334, 21 br i1 %cmp.i.i.i.i.i.i.i.i.i3337, label %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3345, label %if.then3.i.i.i.i.i.i.i.i3338 if.then3.i.i.i.i.i.i.i.i3338: ; preds = %while.body.i.i.i.i.i.i.i3333 %.neg.i3339 = mul nuw nsw i64 %div.i.i.i.i.i.i.i.i3336, 246 %rem.i.i.i.i.i.i.i.decomposed.i3340 = add nuw nsw i64 %.neg.i3339, %value.addr.09.i.i.i.i.i.i.i3335 %conv.i.i.i.i.i.i.i.i3341 = trunc i64 %rem.i.i.i.i.i.i.i.decomposed.i3340 to i8 %switch.offset.i3342 = or disjoint i8 %conv.i.i.i.i.i.i.i.i3341, 48 %inc.i.i.i.i.i.i.i.i3343 = add i64 %writer.sroa.8.0.i.i.i.i.i3334, 1 %1223 = xor i64 %writer.sroa.8.0.i.i.i.i.i3334, -1 %arrayidx.i.i.i.i.i.i.i.i.i3344 = getelementptr i8, ptr %345, i64 %1223 store i8 %switch.offset.i3342, ptr %arrayidx.i.i.i.i.i.i.i.i.i3344, align 1, !tbaa !36, !noalias !146 br label %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3345 _ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3345: ; preds = %if.then3.i.i.i.i.i.i.i.i3338, %while.body.i.i.i.i.i.i.i3333 %writer.sroa.8.1.i.i.i.i.i3346 = phi i64 [ %inc.i.i.i.i.i.i.i.i3343, %if.then3.i.i.i.i.i.i.i.i3338 ], [ 21, %while.body.i.i.i.i.i.i.i3333 ] %cmp.i.i.i.i.i.i.i3347 = icmp samesign ult i64 %value.addr.09.i.i.i.i.i.i.i3335, 10 %.not.i.i.i.i.i.i.i3348 = or i1 %cmp.i.i.i.i.i.i.i.i.i3337, %cmp.i.i.i.i.i.i.i3347 br i1 %.not.i.i.i.i.i.i.i3348, label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEyRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i3349, label %while.body.i.i.i.i.i.i.i3333, !llvm.loop !129 _ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEyRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i3349: ; preds = %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3345, %if.else82 %writer.sroa.8.2.i.i.i.i.i3350 = phi i64 [ 0, %if.else82 ], [ %writer.sroa.8.1.i.i.i.i.i3346, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3345 ] %.off0.i.i.i.i.i.i3351 = phi i1 [ false, %if.else82 ], [ %cmp.i.i.i.i.i.i.i.i.i3337, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3345 ] %cmp.i17.i.i.i.i.i3352 = icmp ne i64 %writer.sroa.8.2.i.i.i.i.i3350, 0 %or.cond.not.i.i.i.i.i3353 = or i1 %.off0.i.i.i.i.i.i3351, %cmp.i17.i.i.i.i.i3352 br i1 %or.cond.not.i.i.i.i.i3353, label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ey.exit.i.i.i3356, label %if.then3.i.i.lr.ph.i.i.i.i.i3354 if.then3.i.i.lr.ph.i.i.i.i.i3354: ; preds = %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEyRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i3349 store i8 48, ptr %arrayidx.i.i.i.i.i.i.i.i3355, align 4, !tbaa !36, !noalias !146 br label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ey.exit.i.i.i3356 _ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ey.exit.i.i.i3356: ; preds = %if.then3.i.i.lr.ph.i.i.i.i.i3354, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEyRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i3349 %writer.sroa.8.4.i.i.i.i.i3357 = phi i64 [ %writer.sroa.8.2.i.i.i.i.i3350, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEyRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i3349 ], [ 1, %if.then3.i.i.lr.ph.i.i.i.i.i3354 ] store i64 %writer.sroa.8.4.i.i.i.i.i3357, ptr %written.i.i.i.i.i3358, align 8, !tbaa !130, !noalias !146 %cmp.i.not.i.i.i.i.i.i3359 = icmp eq i64 %writer.sroa.8.4.i.i.i.i.i3357, 0 br i1 %cmp.i.not.i.i.i.i.i.i3359, label %if.end.i.i.i.i.i.i.i3378, label %if.then.i.i.i.i.i.i.i3360 if.then.i.i.i.i.i.i.i3360: ; preds = %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ey.exit.i.i.i3356 %inc.i.i.i.i.i2.i.i.i3361 = add i64 %writer.sroa.8.4.i.i.i.i.i3357, 1 %cmp.not.i.i.not.i.i.i.i.i.i3362 = icmp eq i64 %inc.i.i.i.i.i2.i.i.i3361, 0 br i1 %cmp.not.i.i.not.i.i.i.i.i.i3362, label %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i3376, label %if.end.i.i.i.i.i.i.i.i3363 if.end.i.i.i.i.i.i.i.i3363: ; preds = %if.then.i.i.i.i.i.i.i3360 %cmp2.i.i.i.i.i.i.i.i3364 = icmp ult i64 %inc.i.i.i.i.i2.i.i.i3361, 1676976733973595601 %mul.i.i.i.i.i.i.i.i3365 = mul nuw i64 %inc.i.i.i.i.i2.i.i.i3361, 11 %div18.i.i.i.i.i.i.i.i3366 = lshr i64 %mul.i.i.i.i.i.i.i.i3365, 3 %new_capacity.addr.0.i.i.i.i.i.i.i.i3367 = select i1 %cmp2.i.i.i.i.i.i.i.i3364, i64 %div18.i.i.i.i.i.i.i.i3366, i64 %inc.i.i.i.i.i2.i.i.i3361 %sub.i.i.i3368 = add i64 %new_capacity.addr.0.i.i.i.i.i.i.i.i3367, 7 %div2.i.i.i3369 = and i64 %sub.i.i.i3368, -8 %1224 = load ptr, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34, !noalias !146 %add.ptr.i.i.i3370 = getelementptr inbounds nuw i8, ptr %1224, i64 %div2.i.i.i3369 store ptr %add.ptr.i.i.i3370, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34, !noalias !146 %sub.ptr.lhs.cast.i.i.i3371 = ptrtoint ptr %add.ptr.i.i.i3370 to i64 %sub.ptr.sub.i.i.i3372 = sub i64 %sub.ptr.lhs.cast.i.i.i3371, ptrtoint (ptr @_ZN12_GLOBAL__N_16memoryE to i64) %cmp.i.i.i3373 = icmp ugt i64 %sub.ptr.sub.i.i.i3372, 65335 %cond.i.i.i3374 = select i1 %cmp.i.i.i3373, ptr null, ptr %1224 %tobool.i.i.i.i.i.i.i.i3375 = icmp ne ptr %cond.i.i.i3374, null call void @llvm.assume(i1 %tobool.i.i.i.i.i.i.i.i3375) br label %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i3376 _ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i3376: ; preds = %if.end.i.i.i.i.i.i.i.i3363, %if.then.i.i.i.i.i.i.i3360 %agg.tmp.sroa.0.0.i3377 = phi ptr [ @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE, %if.then.i.i.i.i.i.i.i3360 ], [ %cond.i.i.i3374, %if.end.i.i.i.i.i.i.i.i3363 ] call void @llvm.memset.p0.i64(ptr nonnull align 1 %agg.tmp.sroa.0.0.i3377, i8 0, i64 %writer.sroa.8.4.i.i.i.i.i3357, i1 false), !noalias !146 br label %if.end.i.i.i.i.i.i.i3378 if.end.i.i.i.i.i.i.i3378: ; preds = %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i3376, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ey.exit.i.i.i3356 %agg.tmp.sroa.0.1.i3379 = phi ptr [ @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ey.exit.i.i.i3356 ], [ %agg.tmp.sroa.0.0.i3377, %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i3376 ] %cmp.not.i6.i.i.i.i.i.i.i3380 = icmp eq ptr %agg.tmp.sroa.0.1.i3379, @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE br i1 %cmp.not.i6.i.i.i.i.i.i.i3380, label %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i3383, label %if.then.i.i.i.i.i3.i.i.i3381 if.then.i.i.i.i.i3.i.i.i3381: ; preds = %if.end.i.i.i.i.i.i.i3378 %arrayidx.i.i.i.i.i4.i.i.i3382 = getelementptr inbounds nuw i8, ptr %agg.tmp.sroa.0.1.i3379, i64 %writer.sroa.8.4.i.i.i.i.i3357 store i8 0, ptr %arrayidx.i.i.i.i.i4.i.i.i3382, align 1, !tbaa !36, !noalias !146 br label %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i3383 _ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i3383: ; preds = %if.then.i.i.i.i.i3.i.i.i3381, %if.end.i.i.i.i.i.i.i3378 %idx.neg.i.i.i.i3385 = sub i64 0, %writer.sroa.8.4.i.i.i.i.i3357 %add.ptr5.i.i.i.i3386 = getelementptr inbounds i8, ptr %345, i64 %idx.neg.i.i.i.i3385 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %agg.tmp.sroa.0.1.i3379, ptr nonnull align 1 %add.ptr5.i.i.i.i3386, i64 %writer.sroa.8.4.i.i.i.i.i3357, i1 false), !alias.scope !151, !noalias !146 call void @llvm.lifetime.end.p0(ptr nonnull %buffer.i.i.i3330) #32, !noalias !146 br label %for.cond.i.i.i3389 for.cond.i.i.i3389: ; preds = %for.inc.i.i.i3424, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i3383 %retval.sroa.6.0.i.i.i3390 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i3383 ], [ %retval.sroa.6.2.i.i.i3425, %for.inc.i.i.i3424 ] %retval.sroa.2.0.i.i.i3391 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i3383 ], [ %retval.sroa.2.2.i.i.i3426, %for.inc.i.i.i3424 ] %retval.sroa.8.0.i.i.i3392 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i3383 ], [ %retval.sroa.8.2.i.i.i3427, %for.inc.i.i.i3424 ] %index.0.i.i.i3393 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy.exit.i3383 ], [ %inc.i.i.i3428, %for.inc.i.i.i3424 ] %1225 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i3394 = icmp ult i32 %index.0.i.i.i3393, %1225 %spec.store.select.i.i.i3395 = select i1 %cmp.not.i.i.i3394, i32 %index.0.i.i.i3393, i32 0 %1226 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i3396 = zext i32 %1226 to i64 %div8.i.i.i.i.i3397 = lshr i32 %spec.store.select.i.i.i3395, 5 %1227 = and i32 %spec.store.select.i.i.i3395, 31 %idxprom.i.i.i.i.i3398 = zext nneg i32 %div8.i.i.i.i.i3397 to i64 %arrayidx.i.i.i.i.i3399 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i3398 %1228 = lshr i32 %1226, %2 %conv4.i.i.i.i.i3400 = and i32 %1228, 1 %shl.i.i.i.i.i3401 = shl nuw i32 %conv4.i.i.i.i.i3400, %1227 %1229 = atomicrmw or ptr %arrayidx.i.i.i.i.i3399, i32 %shl.i.i.i.i.i3401 monotonic, align 4 %shl5.i.i.i.i.i3402 = shl nuw i32 1, %1227 %and.i.i.i.i.i3403 = and i32 %shl5.i.i.i.i.i3402, %1229 %tobool3.i.i.i.i3404 = icmp ne i32 %and.i.i.i.i.i3403, 0 %1230 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %1226, i1 %tobool3.i.i.i.i3404) %cmp.i.not.i.i.i3405 = icmp eq i32 %1226, %1230 br i1 %cmp.i.not.i.i.i3405, label %for.inc.i.i.i3424, label %if.then.i.i.i.i3406 if.then.i.i.i.i3406: ; preds = %for.cond.i.i.i3389 fence acquire %1231 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i3407 = zext i32 %spec.store.select.i.i.i3395 to i64 %arrayidx.i.i.i.i3408 = getelementptr inbounds nuw i32, ptr %1231, i64 %idxprom.i.i.i.i3407 %1232 = load atomic i32, ptr %arrayidx.i.i.i.i3408 monotonic, align 4 %1233 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %1226, i1 true) %iszero.i.i.i.i.i.i3409 = icmp eq i32 %1226, 0 %sub.i.i.i.i.i.i3410 = select i1 %iszero.i.i.i.i.i.i3409, i32 -1, i32 %1233 %1234 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1226, i32 %1232, i32 %sub.i.i.i.i.i.i3410, i32 31) %1235 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i3411 = getelementptr inbounds nuw i32, ptr %1235, i64 %idxprom.i.i.i.i3407 %1236 = load atomic i32, ptr %arrayidx.i45.i.i.i3411 monotonic, align 4 %1237 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1226, i32 %1236, i32 %sub.i.i.i.i.i.i3410, i32 31) %cmp.i48.not.i.i.i3412 = icmp eq i32 %1234, %1237 br i1 %cmp.i48.not.i.i.i3412, label %if.end14.i.i.i3490, label %if.then12.i.i.i3413 if.then12.i.i.i3413: ; preds = %if.then.i.i.i.i3406 fence release %1238 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i3396, i1 true) %iszero.i.i.i.i.i.i.i3414 = icmp ne i32 %1226, 0 %cmp2.i.i.i.i.i.i3415 = icmp eq i64 %1238, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i3416 = select i1 %iszero.i.i.i.i.i.i.i3414, i1 %cmp2.i.i.i.i.i.i3415, i1 false %conv4.i.i53.i.i.i3417 = zext i1 %cmp.i.i.i.i.i.i3416 to i32 %shl.i.i54.i.i.i3418 = shl nuw i32 %conv4.i.i53.i.i.i3417, %1227 %xor.i.i.i.i.i3419 = xor i32 %shl.i.i54.i.i.i3418, -1 %1239 = atomicrmw and ptr %arrayidx.i.i.i.i.i3399, i32 %xor.i.i.i.i.i3419 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %1226) br label %cleanup26.i.i.i3420 if.end14.i.i.i3490: ; preds = %if.then.i.i.i.i3406 %1240 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i3396, i1 true) %iszero.i.i.i56.i.i.i3491 = icmp ne i32 %1226, 0 %cmp2.i.i.i.i.i3492 = icmp eq i64 %1240, %sh_prom.i.i.i.i %cmp.i.i.i.i.i3493 = select i1 %iszero.i.i.i56.i.i.i3491, i1 %cmp2.i.i.i.i.i3492, i1 false br i1 %cmp.i.i.i.i.i3493, label %if.then16.i.i.i3495, label %if.end22.i.i.i3494 if.then16.i.i.i3495: ; preds = %if.end14.i.i.i3490 %1241 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i3496 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1241, i64 %idxprom.i.i.i.i3407, i32 1 store i32 1660944387, ptr %opcode.i.i.i3496, align 8, !tbaa !61 %arrayidx21.i.i.i3497 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1241, i64 %idxprom.i.i.i.i3407 store i64 %conv.i.i.i.i.i3396, ptr %arrayidx21.i.i.i3497, align 8, !tbaa !64 br label %if.end22.i.i.i3494 if.end22.i.i.i3494: ; preds = %if.then16.i.i.i3495, %if.end14.i.i.i3490 call void @llvm.nvvm.bar.warp.sync(i32 %1226) br label %cleanup26.i.i.i3420 cleanup26.i.i.i3420: ; preds = %if.end22.i.i.i3494, %if.then12.i.i.i3413 %retval.sroa.6.1.i.i.i3421 = phi i32 [ %retval.sroa.6.0.i.i.i3390, %if.then12.i.i.i3413 ], [ %spec.store.select.i.i.i3395, %if.end22.i.i.i3494 ] %retval.sroa.2.1.i.i.i3422 = phi i64 [ %retval.sroa.2.0.i.i.i3391, %if.then12.i.i.i3413 ], [ %conv.i.i.i.i.i3396, %if.end22.i.i.i3494 ] %retval.sroa.8.1.i.i.i3423 = phi i32 [ %retval.sroa.8.0.i.i.i3392, %if.then12.i.i.i3413 ], [ %1234, %if.end22.i.i.i3494 ] br i1 %cmp.i48.not.i.i.i3412, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3429, label %for.inc.i.i.i3424 for.inc.i.i.i3424: ; preds = %cleanup26.i.i.i3420, %for.cond.i.i.i3389 %retval.sroa.6.2.i.i.i3425 = phi i32 [ %retval.sroa.6.1.i.i.i3421, %cleanup26.i.i.i3420 ], [ %retval.sroa.6.0.i.i.i3390, %for.cond.i.i.i3389 ] %retval.sroa.2.2.i.i.i3426 = phi i64 [ %retval.sroa.2.1.i.i.i3422, %cleanup26.i.i.i3420 ], [ %retval.sroa.2.0.i.i.i3391, %for.cond.i.i.i3389 ] %retval.sroa.8.2.i.i.i3427 = phi i32 [ %retval.sroa.8.1.i.i.i3423, %cleanup26.i.i.i3420 ], [ %retval.sroa.8.0.i.i.i3392, %for.cond.i.i.i3389 ] %inc.i.i.i3428 = add i32 %spec.store.select.i.i.i3395, 1 br label %for.cond.i.i.i3389, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3429: ; preds = %cleanup26.i.i.i3420 %retval.sroa.6.1.i.i.i3421.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i3421, %cleanup26.i.i.i3420 ] %retval.sroa.2.1.i.i.i3422.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i3422, %cleanup26.i.i.i3420 ] %retval.sroa.8.1.i.i.i3423.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i3423, %cleanup26.i.i.i3420 ] fence acquire %1242 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i3432 = shl i32 %retval.sroa.6.1.i.i.i3421.lcssa, 5 %idxprom.i18.i.i.i.i.i3433 = zext i32 %mul.i.i.i.i.i.i3432 to i64 %arrayidx.i19.i.i.i.i.i3434 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1242, i64 %idxprom.i18.i.i.i.i.i3433 %arrayidx.i21.i.i.i.i.i3435 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i3434, i64 %sh_prom.i.i.i.i store i64 %writer.sroa.8.4.i.i.i.i.i3357, ptr %arrayidx.i21.i.i.i.i.i3435, align 8, !tbaa !67 %spec.select.i.i.i.i.i.i.i3436 = call i64 @llvm.umin.i64(i64 %writer.sroa.8.4.i.i.i.i.i3357, i64 56) %arrayidx6.i.i.i.i.i.i.i3437 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i3435, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %arrayidx6.i.i.i.i.i.i.i3437, ptr nonnull align 1 %agg.tmp.sroa.0.1.i3379, i64 %spec.select.i.i.i.i.i.i.i3436, i1 false) %tobool.not.i.i.i.i.i.i3438 = icmp eq i32 %retval.sroa.8.1.i.i.i3423.lcssa, 0 %conv.i.i.i.i.i.i3439 = zext i1 %tobool.not.i.i.i.i.i.i3438 to i32 fence release %1243 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i3440 = zext i32 %retval.sroa.6.1.i.i.i3421.lcssa to i64 %arrayidx.i23.i.i.i.i.i3441 = getelementptr inbounds nuw i32, ptr %1243, i64 %idxprom.i22.i.i.i.i.i3440 store atomic i32 %conv.i.i.i.i.i.i3439, ptr %arrayidx.i23.i.i.i.i.i3441 monotonic, align 4 %1244 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i3442 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1244, i64 %idxprom.i22.i.i.i.i.i3440 %1245 = load i64, ptr %arrayidx.i.i4.i.i3442, align 8, !tbaa !64 %conv.i.i7.i.i.i.i3443 = trunc i64 %1245 to i32 %conv.i.i.i.i17.i.i.i.i3445 = trunc i64 %retval.sroa.2.1.i.i.i3422.lcssa to i32 %1246 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i3445, i1 true) %iszero.i.i.i.i18.i.i.i.i3446 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i3445, 0 %sub.i.i.i.i19.i.i.i.i3447 = select i1 %iszero.i.i.i.i18.i.i.i.i3446, i32 -1, i32 %1246 br label %while.cond.i.i.i.i3448 while.cond.i.i.i.i3448: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3460, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3429 %port.sroa.43.0.i.i3449 = phi i32 [ %conv.i.i.i.i.i.i3439, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3429 ], [ %conv.i.i39.i.i.i.i3461, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3460 ] %idx.0.i.i.i.i3450 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3429 ], [ %add.i.i.i.i3463, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3460 ] %cmp.i.i.i.i3451 = icmp ult i64 %idx.0.i.i.i.i3450, %writer.sroa.8.4.i.i.i.i.i3357 %1247 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i3443, i1 %cmp.i.i.i.i3451) %tobool.not.i.i.i.i3452 = icmp eq i32 %1247, 0 %1248 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i3453 = getelementptr inbounds nuw i32, ptr %1248, i64 %idxprom.i22.i.i.i.i.i3440 %1249 = load atomic i32, ptr %arrayidx.i22.i.i.i3453 monotonic, align 4 br i1 %tobool.not.i.i.i.i3452, label %cond.false.i.i.i3472, label %cond.false.i11.i.i.i.i3454 cond.false.i11.i.i.i.i3454: ; preds = %while.cond.i.i.i.i3448 %1250 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3445, i32 %1249, i32 %sub.i.i.i.i19.i.i.i.i3447, i32 31) %1251 = icmp eq i32 %1250, %port.sroa.43.0.i.i3449 br i1 %1251, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3459, label %while.body.i.i33.i.i.i.i3455 while.body.i.i33.i.i.i.i3455: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3456, %cond.false.i11.i.i.i.i3454 %1252 = phi ptr [ %1253, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3456 ], [ %1248, %cond.false.i11.i.i.i.i3454 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i3470, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3456 if.then.i.i.i48.i.i.i.i3470: ; preds = %while.body.i.i33.i.i.i.i3455 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i3471 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3456 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3456: ; preds = %if.then.i.i.i48.i.i.i.i3470, %while.body.i.i33.i.i.i.i3455 %1253 = phi ptr [ %.pre.i.i.i.i3471, %if.then.i.i.i48.i.i.i.i3470 ], [ %1252, %while.body.i.i33.i.i.i.i3455 ] %arrayidx.i.i.i35.i.i.i.i3457 = getelementptr inbounds nuw i32, ptr %1253, i64 %idxprom.i22.i.i.i.i.i3440 %1254 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i3457 monotonic, align 4 %1255 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3445, i32 %1254, i32 %sub.i.i.i.i19.i.i.i.i3447, i32 31) %cmp.i.not.i.i36.i.i.i.i3458 = icmp eq i32 %1255, %port.sroa.43.0.i.i3449 br i1 %cmp.i.not.i.i36.i.i.i.i3458, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3459, label %while.body.i.i33.i.i.i.i3455, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3459: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3456, %cond.false.i11.i.i.i.i3454 fence acquire br i1 %cmp.i.i.i.i3451, label %if.then.i.i20.i.i.i.i.i3464, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3460 if.then.i.i20.i.i.i.i.i3464: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3459 %add.ptr.i.i.i.i.i.i.i.i3465 = getelementptr inbounds nuw i8, ptr %agg.tmp.sroa.0.1.i3379, i64 %idx.0.i.i.i.i3450 %sub.i.i.i.i.i.i.i3466 = sub nuw i64 %writer.sroa.8.4.i.i.i.i.i3357, %idx.0.i.i.i.i3450 %spec.select.i.i.i47.i.i.i.i3467 = call i64 @llvm.umin.i64(i64 %sub.i.i.i.i.i.i.i3466, i64 64) %1256 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i3468 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1256, i64 %idxprom.i18.i.i.i.i.i3433 %arrayidx.i22.i.i.i.i.i3469 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i3468, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr align 1 %arrayidx.i22.i.i.i.i.i3469, ptr nonnull align 1 %add.ptr.i.i.i.i.i.i.i.i3465, i64 %spec.select.i.i.i47.i.i.i.i3467, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3460 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3460: ; preds = %if.then.i.i20.i.i.i.i.i3464, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3459 %conv.i.i39.i.i.i.i3461 = xor i32 %port.sroa.43.0.i.i3449, 1 fence release %1257 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i3462 = getelementptr inbounds nuw i32, ptr %1257, i64 %idxprom.i22.i.i.i.i.i3440 store atomic i32 %conv.i.i39.i.i.i.i3461, ptr %arrayidx.i24.i.i.i.i.i3462 monotonic, align 4 %add.i.i.i.i3463 = add i64 %idx.0.i.i.i.i3450, 64 br label %while.cond.i.i.i.i3448, !llvm.loop !71 cond.false.i.i.i3472: ; preds = %while.cond.i.i.i.i3448 %port.sroa.43.0.i.i3449.lcssa = phi i32 [ %port.sroa.43.0.i.i3449, %while.cond.i.i.i.i3448 ] %.lcssa5654 = phi ptr [ %1248, %while.cond.i.i.i.i3448 ] %.lcssa5653 = phi i32 [ %1249, %while.cond.i.i.i.i3448 ] %1258 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3445, i32 %.lcssa5653, i32 %sub.i.i.i.i19.i.i.i.i3447, i32 31) %1259 = icmp eq i32 %1258, %port.sroa.43.0.i.i3449.lcssa br i1 %1259, label %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3477, label %while.body.i.i.i.i3473 while.body.i.i.i.i3473: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3474, %cond.false.i.i.i3472 %1260 = phi ptr [ %1261, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3474 ], [ %.lcssa5654, %cond.false.i.i.i3472 ] br i1 %343, label %if.then.i.i.i.i.i3488, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3474 if.then.i.i.i.i.i3488: ; preds = %while.body.i.i.i.i3473 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i3489 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3474 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3474: ; preds = %if.then.i.i.i.i.i3488, %while.body.i.i.i.i3473 %1261 = phi ptr [ %.pre.i.i3489, %if.then.i.i.i.i.i3488 ], [ %1260, %while.body.i.i.i.i3473 ] %arrayidx.i.i.i11.i.i3475 = getelementptr inbounds nuw i32, ptr %1261, i64 %idxprom.i22.i.i.i.i.i3440 %1262 = load atomic i32, ptr %arrayidx.i.i.i11.i.i3475 monotonic, align 4 %1263 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3445, i32 %1262, i32 %sub.i.i.i.i19.i.i.i.i3447, i32 31) %cmp.i.not.i.i.i.i3476 = icmp eq i32 %1263, %port.sroa.43.0.i.i3449.lcssa br i1 %cmp.i.not.i.i.i.i3476, label %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3477, label %while.body.i.i.i.i3473, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3477: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3474, %cond.false.i.i.i3472 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i3445) fence release %1264 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i3422.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i3478 = icmp ne i64 %retval.sroa.2.1.i.i.i3422.lcssa, 0 %cmp2.i.i.i.i19.i.i3479 = icmp eq i64 %1264, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i3480 = select i1 %iszero.i.i.i.i.i18.i.i3478, i1 %cmp2.i.i.i.i19.i.i3479, i1 false %div8.i.i.i21.i.i3481 = lshr i32 %retval.sroa.6.1.i.i.i3421.lcssa, 5 %1265 = and i32 %retval.sroa.6.1.i.i.i3421.lcssa, 31 %idxprom.i.i.i22.i.i3482 = zext nneg i32 %div8.i.i.i21.i.i3481 to i64 %arrayidx.i.i.i23.i.i3483 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i3482 %conv4.i.i.i24.i.i3484 = zext i1 %cmp.i.i.i.i20.i.i3480 to i32 %shl.i.i.i25.i.i3485 = shl nuw i32 %conv4.i.i.i24.i.i3484, %1265 %xor.i.i.i26.i.i3486 = xor i32 %shl.i.i.i25.i.i3485, -1 %1266 = atomicrmw and ptr %arrayidx.i.i.i23.i.i3483, i32 %xor.i.i.i26.i.i3486 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i3445) br label %for.cond.i.i.i3510 for.cond.i.i.i3510: ; preds = %for.inc.i.i.i3545, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3477 %retval.sroa.6.0.i.i.i3511 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3477 ], [ %retval.sroa.6.2.i.i.i3546, %for.inc.i.i.i3545 ] %retval.sroa.2.0.i.i.i3512 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3477 ], [ %retval.sroa.2.2.i.i.i3547, %for.inc.i.i.i3545 ] %retval.sroa.8.0.i.i.i3513 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3477 ], [ %retval.sroa.8.2.i.i.i3548, %for.inc.i.i.i3545 ] %index.0.i.i.i3514 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3477 ], [ %inc.i.i.i3549, %for.inc.i.i.i3545 ] %1267 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i3515 = icmp ult i32 %index.0.i.i.i3514, %1267 %spec.store.select.i.i.i3516 = select i1 %cmp.not.i.i.i3515, i32 %index.0.i.i.i3514, i32 0 %1268 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i3517 = zext i32 %1268 to i64 %div8.i.i.i.i.i3518 = lshr i32 %spec.store.select.i.i.i3516, 5 %1269 = and i32 %spec.store.select.i.i.i3516, 31 %idxprom.i.i.i.i.i3519 = zext nneg i32 %div8.i.i.i.i.i3518 to i64 %arrayidx.i.i.i.i.i3520 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i3519 %1270 = lshr i32 %1268, %2 %conv4.i.i.i.i.i3521 = and i32 %1270, 1 %shl.i.i.i.i.i3522 = shl nuw i32 %conv4.i.i.i.i.i3521, %1269 %1271 = atomicrmw or ptr %arrayidx.i.i.i.i.i3520, i32 %shl.i.i.i.i.i3522 monotonic, align 4 %shl5.i.i.i.i.i3523 = shl nuw i32 1, %1269 %and.i.i.i.i.i3524 = and i32 %shl5.i.i.i.i.i3523, %1271 %tobool3.i.i.i.i3525 = icmp ne i32 %and.i.i.i.i.i3524, 0 %1272 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %1268, i1 %tobool3.i.i.i.i3525) %cmp.i.not.i.i.i3526 = icmp eq i32 %1268, %1272 br i1 %cmp.i.not.i.i.i3526, label %for.inc.i.i.i3545, label %if.then.i.i.i.i3527 if.then.i.i.i.i3527: ; preds = %for.cond.i.i.i3510 fence acquire %1273 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i3528 = zext i32 %spec.store.select.i.i.i3516 to i64 %arrayidx.i.i.i.i3529 = getelementptr inbounds nuw i32, ptr %1273, i64 %idxprom.i.i.i.i3528 %1274 = load atomic i32, ptr %arrayidx.i.i.i.i3529 monotonic, align 4 %1275 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %1268, i1 true) %iszero.i.i.i.i.i.i3530 = icmp eq i32 %1268, 0 %sub.i.i.i.i.i.i3531 = select i1 %iszero.i.i.i.i.i.i3530, i32 -1, i32 %1275 %1276 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1268, i32 %1274, i32 %sub.i.i.i.i.i.i3531, i32 31) %1277 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i3532 = getelementptr inbounds nuw i32, ptr %1277, i64 %idxprom.i.i.i.i3528 %1278 = load atomic i32, ptr %arrayidx.i45.i.i.i3532 monotonic, align 4 %1279 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1268, i32 %1278, i32 %sub.i.i.i.i.i.i3531, i32 31) %cmp.i48.not.i.i.i3533 = icmp eq i32 %1276, %1279 br i1 %cmp.i48.not.i.i.i3533, label %if.end14.i.i.i3610, label %if.then12.i.i.i3534 if.then12.i.i.i3534: ; preds = %if.then.i.i.i.i3527 fence release %1280 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i3517, i1 true) %iszero.i.i.i.i.i.i.i3535 = icmp ne i32 %1268, 0 %cmp2.i.i.i.i.i.i3536 = icmp eq i64 %1280, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i3537 = select i1 %iszero.i.i.i.i.i.i.i3535, i1 %cmp2.i.i.i.i.i.i3536, i1 false %conv4.i.i53.i.i.i3538 = zext i1 %cmp.i.i.i.i.i.i3537 to i32 %shl.i.i54.i.i.i3539 = shl nuw i32 %conv4.i.i53.i.i.i3538, %1269 %xor.i.i.i.i.i3540 = xor i32 %shl.i.i54.i.i.i3539, -1 %1281 = atomicrmw and ptr %arrayidx.i.i.i.i.i3520, i32 %xor.i.i.i.i.i3540 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %1268) br label %cleanup26.i.i.i3541 if.end14.i.i.i3610: ; preds = %if.then.i.i.i.i3527 %1282 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i3517, i1 true) %iszero.i.i.i56.i.i.i3611 = icmp ne i32 %1268, 0 %cmp2.i.i.i.i.i3612 = icmp eq i64 %1282, %sh_prom.i.i.i.i %cmp.i.i.i.i.i3613 = select i1 %iszero.i.i.i56.i.i.i3611, i1 %cmp2.i.i.i.i.i3612, i1 false br i1 %cmp.i.i.i.i.i3613, label %if.then16.i.i.i3615, label %if.end22.i.i.i3614 if.then16.i.i.i3615: ; preds = %if.end14.i.i.i3610 %1283 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i3616 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1283, i64 %idxprom.i.i.i.i3528, i32 1 store i32 1660944387, ptr %opcode.i.i.i3616, align 8, !tbaa !61 %arrayidx21.i.i.i3617 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1283, i64 %idxprom.i.i.i.i3528 store i64 %conv.i.i.i.i.i3517, ptr %arrayidx21.i.i.i3617, align 8, !tbaa !64 br label %if.end22.i.i.i3614 if.end22.i.i.i3614: ; preds = %if.then16.i.i.i3615, %if.end14.i.i.i3610 call void @llvm.nvvm.bar.warp.sync(i32 %1268) br label %cleanup26.i.i.i3541 cleanup26.i.i.i3541: ; preds = %if.end22.i.i.i3614, %if.then12.i.i.i3534 %retval.sroa.6.1.i.i.i3542 = phi i32 [ %retval.sroa.6.0.i.i.i3511, %if.then12.i.i.i3534 ], [ %spec.store.select.i.i.i3516, %if.end22.i.i.i3614 ] %retval.sroa.2.1.i.i.i3543 = phi i64 [ %retval.sroa.2.0.i.i.i3512, %if.then12.i.i.i3534 ], [ %conv.i.i.i.i.i3517, %if.end22.i.i.i3614 ] %retval.sroa.8.1.i.i.i3544 = phi i32 [ %retval.sroa.8.0.i.i.i3513, %if.then12.i.i.i3534 ], [ %1276, %if.end22.i.i.i3614 ] br i1 %cmp.i48.not.i.i.i3533, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3550, label %for.inc.i.i.i3545 for.inc.i.i.i3545: ; preds = %cleanup26.i.i.i3541, %for.cond.i.i.i3510 %retval.sroa.6.2.i.i.i3546 = phi i32 [ %retval.sroa.6.1.i.i.i3542, %cleanup26.i.i.i3541 ], [ %retval.sroa.6.0.i.i.i3511, %for.cond.i.i.i3510 ] %retval.sroa.2.2.i.i.i3547 = phi i64 [ %retval.sroa.2.1.i.i.i3543, %cleanup26.i.i.i3541 ], [ %retval.sroa.2.0.i.i.i3512, %for.cond.i.i.i3510 ] %retval.sroa.8.2.i.i.i3548 = phi i32 [ %retval.sroa.8.1.i.i.i3544, %cleanup26.i.i.i3541 ], [ %retval.sroa.8.0.i.i.i3513, %for.cond.i.i.i3510 ] %inc.i.i.i3549 = add i32 %spec.store.select.i.i.i3516, 1 br label %for.cond.i.i.i3510, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3550: ; preds = %cleanup26.i.i.i3541 %retval.sroa.6.1.i.i.i3542.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i3542, %cleanup26.i.i.i3541 ] %retval.sroa.2.1.i.i.i3543.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i3543, %cleanup26.i.i.i3541 ] %retval.sroa.8.1.i.i.i3544.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i3544, %cleanup26.i.i.i3541 ] fence acquire %1284 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i3553 = shl i32 %retval.sroa.6.1.i.i.i3542.lcssa, 5 %idxprom.i18.i.i.i.i.i3554 = zext i32 %mul.i.i.i.i.i.i3553 to i64 %arrayidx.i19.i.i.i.i.i3555 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1284, i64 %idxprom.i18.i.i.i.i.i3554 %arrayidx.i21.i.i.i.i.i3556 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i3555, i64 %sh_prom.i.i.i.i store i64 5, ptr %arrayidx.i21.i.i.i.i.i3556, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i3558 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i3556, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %arrayidx6.i.i.i.i.i.i.i3558, ptr noundef nonnull align 1 dereferenceable(5) @.str24, i64 5, i1 false) %tobool.not.i.i.i.i.i.i3559 = icmp eq i32 %retval.sroa.8.1.i.i.i3544.lcssa, 0 %conv.i.i.i.i.i.i3560 = zext i1 %tobool.not.i.i.i.i.i.i3559 to i32 fence release %1285 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i3561 = zext i32 %retval.sroa.6.1.i.i.i3542.lcssa to i64 %arrayidx.i23.i.i.i.i.i3562 = getelementptr inbounds nuw i32, ptr %1285, i64 %idxprom.i22.i.i.i.i.i3561 store atomic i32 %conv.i.i.i.i.i.i3560, ptr %arrayidx.i23.i.i.i.i.i3562 monotonic, align 4 %1286 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i3563 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1286, i64 %idxprom.i22.i.i.i.i.i3561 %1287 = load i64, ptr %arrayidx.i.i4.i.i3563, align 8, !tbaa !64 %conv.i.i7.i.i.i.i3564 = trunc i64 %1287 to i32 %conv.i.i.i.i17.i.i.i.i3566 = trunc i64 %retval.sroa.2.1.i.i.i3543.lcssa to i32 %1288 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i3566, i1 true) %iszero.i.i.i.i18.i.i.i.i3567 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i3566, 0 %sub.i.i.i.i19.i.i.i.i3568 = select i1 %iszero.i.i.i.i18.i.i.i.i3567, i32 -1, i32 %1288 br label %while.cond.i.i.i.i3569 while.cond.i.i.i.i3569: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3581, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3550 %port.sroa.43.0.i.i3570 = phi i32 [ %conv.i.i.i.i.i.i3560, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3550 ], [ %conv.i.i39.i.i.i.i3582, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3581 ] %idx.0.i.i.i.i3571 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3550 ], [ %add.i.i.i.i3584, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3581 ] %cmp.i.i.i2.i3572 = icmp eq i64 %idx.0.i.i.i.i3571, 0 %1289 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i3564, i1 %cmp.i.i.i2.i3572) %tobool.not.i.i.i.i3573 = icmp eq i32 %1289, 0 %1290 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i3574 = getelementptr inbounds nuw i32, ptr %1290, i64 %idxprom.i22.i.i.i.i.i3561 %1291 = load atomic i32, ptr %arrayidx.i22.i.i.i3574 monotonic, align 4 br i1 %tobool.not.i.i.i.i3573, label %cond.false.i.i.i3593, label %cond.false.i11.i.i.i.i3575 cond.false.i11.i.i.i.i3575: ; preds = %while.cond.i.i.i.i3569 %1292 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3566, i32 %1291, i32 %sub.i.i.i.i19.i.i.i.i3568, i32 31) %1293 = icmp eq i32 %1292, %port.sroa.43.0.i.i3570 br i1 %1293, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3580, label %while.body.i.i33.i.i.i.i3576 while.body.i.i33.i.i.i.i3576: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3577, %cond.false.i11.i.i.i.i3575 %1294 = phi ptr [ %1295, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3577 ], [ %1290, %cond.false.i11.i.i.i.i3575 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i3591, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3577 if.then.i.i.i48.i.i.i.i3591: ; preds = %while.body.i.i33.i.i.i.i3576 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i3592 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3577 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3577: ; preds = %if.then.i.i.i48.i.i.i.i3591, %while.body.i.i33.i.i.i.i3576 %1295 = phi ptr [ %.pre.i.i.i.i3592, %if.then.i.i.i48.i.i.i.i3591 ], [ %1294, %while.body.i.i33.i.i.i.i3576 ] %arrayidx.i.i.i35.i.i.i.i3578 = getelementptr inbounds nuw i32, ptr %1295, i64 %idxprom.i22.i.i.i.i.i3561 %1296 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i3578 monotonic, align 4 %1297 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3566, i32 %1296, i32 %sub.i.i.i.i19.i.i.i.i3568, i32 31) %cmp.i.not.i.i36.i.i.i.i3579 = icmp eq i32 %1297, %port.sroa.43.0.i.i3570 br i1 %cmp.i.not.i.i36.i.i.i.i3579, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3580, label %while.body.i.i33.i.i.i.i3576, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3580: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3577, %cond.false.i11.i.i.i.i3575 fence acquire br i1 %cmp.i.i.i2.i3572, label %if.then.i.i20.i.i.i.i.i3585, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3581 if.then.i.i20.i.i.i.i.i3585: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3580 %1298 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i3589 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1298, i64 %idxprom.i18.i.i.i.i.i3554 %arrayidx.i22.i.i.i.i.i3590 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i3589, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %arrayidx.i22.i.i.i.i.i3590, ptr noundef nonnull align 1 dereferenceable(5) @.str24, i64 5, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3581 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3581: ; preds = %if.then.i.i20.i.i.i.i.i3585, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3580 %conv.i.i39.i.i.i.i3582 = xor i32 %port.sroa.43.0.i.i3570, 1 fence release %1299 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i3583 = getelementptr inbounds nuw i32, ptr %1299, i64 %idxprom.i22.i.i.i.i.i3561 store atomic i32 %conv.i.i39.i.i.i.i3582, ptr %arrayidx.i24.i.i.i.i.i3583 monotonic, align 4 %add.i.i.i.i3584 = add i64 %idx.0.i.i.i.i3571, 64 br label %while.cond.i.i.i.i3569, !llvm.loop !71 cond.false.i.i.i3593: ; preds = %while.cond.i.i.i.i3569 %port.sroa.43.0.i.i3570.lcssa = phi i32 [ %port.sroa.43.0.i.i3570, %while.cond.i.i.i.i3569 ] %.lcssa5656 = phi ptr [ %1290, %while.cond.i.i.i.i3569 ] %.lcssa5655 = phi i32 [ %1291, %while.cond.i.i.i.i3569 ] %1300 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3566, i32 %.lcssa5655, i32 %sub.i.i.i.i19.i.i.i.i3568, i32 31) %1301 = icmp eq i32 %1300, %port.sroa.43.0.i.i3570.lcssa br i1 %1301, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit3618, label %while.body.i.i.i.i3594 while.body.i.i.i.i3594: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3595, %cond.false.i.i.i3593 %1302 = phi ptr [ %1303, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3595 ], [ %.lcssa5656, %cond.false.i.i.i3593 ] br i1 %343, label %if.then.i.i.i.i.i3608, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3595 if.then.i.i.i.i.i3608: ; preds = %while.body.i.i.i.i3594 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i3609 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3595 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3595: ; preds = %if.then.i.i.i.i.i3608, %while.body.i.i.i.i3594 %1303 = phi ptr [ %.pre.i.i3609, %if.then.i.i.i.i.i3608 ], [ %1302, %while.body.i.i.i.i3594 ] %arrayidx.i.i.i11.i.i3596 = getelementptr inbounds nuw i32, ptr %1303, i64 %idxprom.i22.i.i.i.i.i3561 %1304 = load atomic i32, ptr %arrayidx.i.i.i11.i.i3596 monotonic, align 4 %1305 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3566, i32 %1304, i32 %sub.i.i.i.i19.i.i.i.i3568, i32 31) %cmp.i.not.i.i.i.i3597 = icmp eq i32 %1305, %port.sroa.43.0.i.i3570.lcssa br i1 %cmp.i.not.i.i.i.i3597, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit3618, label %while.body.i.i.i.i3594, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit3618: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3595, %cond.false.i.i.i3593 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i3566) fence release %1306 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i3543.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i3599 = icmp ne i64 %retval.sroa.2.1.i.i.i3543.lcssa, 0 %cmp2.i.i.i.i19.i.i3600 = icmp eq i64 %1306, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i3601 = select i1 %iszero.i.i.i.i.i18.i.i3599, i1 %cmp2.i.i.i.i19.i.i3600, i1 false %div8.i.i.i21.i.i3602 = lshr i32 %retval.sroa.6.1.i.i.i3542.lcssa, 5 %1307 = and i32 %retval.sroa.6.1.i.i.i3542.lcssa, 31 %idxprom.i.i.i22.i.i3603 = zext nneg i32 %div8.i.i.i21.i.i3602 to i64 %arrayidx.i.i.i23.i.i3604 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i3603 %conv4.i.i.i24.i.i3605 = zext i1 %cmp.i.i.i.i20.i.i3601 to i32 %shl.i.i.i25.i.i3606 = shl nuw i32 %conv4.i.i.i24.i.i3605, %1307 %xor.i.i.i26.i.i3607 = xor i32 %shl.i.i.i25.i.i3606, -1 %1308 = atomicrmw and ptr %arrayidx.i.i.i23.i.i3604, i32 %xor.i.i.i26.i.i3607 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i3566) br label %sw.epilog sw.epilog: ; preds = %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit3618, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit3327, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit3036, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2755, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit2032 %FailCount.1 = phi i32 [ %inc, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit2032 ], [ %FailCount.0204, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit2755 ], [ %FailCount.0204, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit3327 ], [ %FailCount.0204, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit3618 ], [ %FailCount.0204, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit3036 ] call void @llvm.lifetime.end.p0(ptr nonnull %Ctx) #32 br label %cleanup cleanup: ; preds = %sw.epilog, %if.then35 %FailCount.2 = phi i32 [ %FailCount.0204, %if.then35 ], [ %FailCount.1, %sw.epilog ] %TestCount.1 = phi i32 [ %dec, %if.then35 ], [ %TestCount.0205, %sw.epilog ] %Next = getelementptr inbounds nuw i8, ptr %T.0206, i64 8 %T.0 = load ptr, ptr %Next, align 8, !tbaa !99 %cmp17.not = icmp eq ptr %T.0, null br i1 %cmp17.not, label %for.cond.cleanup, label %for.body, !llvm.loop !155 for.cond.i.i.i3630: ; preds = %for.inc.i.i.i3665, %for.cond.cleanup %retval.sroa.6.0.i.i.i3631 = phi i32 [ %retval.sroa.6.2.i.i.i3666, %for.inc.i.i.i3665 ], [ undef, %for.cond.cleanup ] %retval.sroa.2.0.i.i.i3632 = phi i64 [ %retval.sroa.2.2.i.i.i3667, %for.inc.i.i.i3665 ], [ undef, %for.cond.cleanup ] %retval.sroa.8.0.i.i.i3633 = phi i32 [ %retval.sroa.8.2.i.i.i3668, %for.inc.i.i.i3665 ], [ undef, %for.cond.cleanup ] %index.0.i.i.i3634 = phi i32 [ %inc.i.i.i3669, %for.inc.i.i.i3665 ], [ 0, %for.cond.cleanup ] %1309 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i3635 = icmp ult i32 %index.0.i.i.i3634, %1309 %spec.store.select.i.i.i3636 = select i1 %cmp.not.i.i.i3635, i32 %index.0.i.i.i3634, i32 0 %1310 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i3637 = zext i32 %1310 to i64 %div8.i.i.i.i.i3638 = lshr i32 %spec.store.select.i.i.i3636, 5 %1311 = and i32 %spec.store.select.i.i.i3636, 31 %idxprom.i.i.i.i.i3639 = zext nneg i32 %div8.i.i.i.i.i3638 to i64 %arrayidx.i.i.i.i.i3640 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i3639 %1312 = lshr i32 %1310, %2 %conv4.i.i.i.i.i3641 = and i32 %1312, 1 %shl.i.i.i.i.i3642 = shl nuw i32 %conv4.i.i.i.i.i3641, %1311 %1313 = atomicrmw or ptr %arrayidx.i.i.i.i.i3640, i32 %shl.i.i.i.i.i3642 monotonic, align 4 %shl5.i.i.i.i.i3643 = shl nuw i32 1, %1311 %and.i.i.i.i.i3644 = and i32 %shl5.i.i.i.i.i3643, %1313 %tobool3.i.i.i.i3645 = icmp ne i32 %and.i.i.i.i.i3644, 0 %1314 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %1310, i1 %tobool3.i.i.i.i3645) %cmp.i.not.i.i.i3646 = icmp eq i32 %1310, %1314 br i1 %cmp.i.not.i.i.i3646, label %for.inc.i.i.i3665, label %if.then.i.i.i.i3647 if.then.i.i.i.i3647: ; preds = %for.cond.i.i.i3630 fence acquire %1315 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i3648 = zext i32 %spec.store.select.i.i.i3636 to i64 %arrayidx.i.i.i.i3649 = getelementptr inbounds nuw i32, ptr %1315, i64 %idxprom.i.i.i.i3648 %1316 = load atomic i32, ptr %arrayidx.i.i.i.i3649 monotonic, align 4 %1317 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %1310, i1 true) %iszero.i.i.i.i.i.i3650 = icmp eq i32 %1310, 0 %sub.i.i.i.i.i.i3651 = select i1 %iszero.i.i.i.i.i.i3650, i32 -1, i32 %1317 %1318 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1310, i32 %1316, i32 %sub.i.i.i.i.i.i3651, i32 31) %1319 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i3652 = getelementptr inbounds nuw i32, ptr %1319, i64 %idxprom.i.i.i.i3648 %1320 = load atomic i32, ptr %arrayidx.i45.i.i.i3652 monotonic, align 4 %1321 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1310, i32 %1320, i32 %sub.i.i.i.i.i.i3651, i32 31) %cmp.i48.not.i.i.i3653 = icmp eq i32 %1318, %1321 br i1 %cmp.i48.not.i.i.i3653, label %if.end14.i.i.i3730, label %if.then12.i.i.i3654 if.then12.i.i.i3654: ; preds = %if.then.i.i.i.i3647 fence release %1322 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i3637, i1 true) %iszero.i.i.i.i.i.i.i3655 = icmp ne i32 %1310, 0 %cmp2.i.i.i.i.i.i3656 = icmp eq i64 %1322, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i3657 = select i1 %iszero.i.i.i.i.i.i.i3655, i1 %cmp2.i.i.i.i.i.i3656, i1 false %conv4.i.i53.i.i.i3658 = zext i1 %cmp.i.i.i.i.i.i3657 to i32 %shl.i.i54.i.i.i3659 = shl nuw i32 %conv4.i.i53.i.i.i3658, %1311 %xor.i.i.i.i.i3660 = xor i32 %shl.i.i54.i.i.i3659, -1 %1323 = atomicrmw and ptr %arrayidx.i.i.i.i.i3640, i32 %xor.i.i.i.i.i3660 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %1310) br label %cleanup26.i.i.i3661 if.end14.i.i.i3730: ; preds = %if.then.i.i.i.i3647 %1324 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i3637, i1 true) %iszero.i.i.i56.i.i.i3731 = icmp ne i32 %1310, 0 %cmp2.i.i.i.i.i3732 = icmp eq i64 %1324, %sh_prom.i.i.i.i %cmp.i.i.i.i.i3733 = select i1 %iszero.i.i.i56.i.i.i3731, i1 %cmp2.i.i.i.i.i3732, i1 false br i1 %cmp.i.i.i.i.i3733, label %if.then16.i.i.i3735, label %if.end22.i.i.i3734 if.then16.i.i.i3735: ; preds = %if.end14.i.i.i3730 %1325 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i3736 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1325, i64 %idxprom.i.i.i.i3648, i32 1 store i32 1660944387, ptr %opcode.i.i.i3736, align 8, !tbaa !61 %arrayidx21.i.i.i3737 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1325, i64 %idxprom.i.i.i.i3648 store i64 %conv.i.i.i.i.i3637, ptr %arrayidx21.i.i.i3737, align 8, !tbaa !64 br label %if.end22.i.i.i3734 if.end22.i.i.i3734: ; preds = %if.then16.i.i.i3735, %if.end14.i.i.i3730 call void @llvm.nvvm.bar.warp.sync(i32 %1310) br label %cleanup26.i.i.i3661 cleanup26.i.i.i3661: ; preds = %if.end22.i.i.i3734, %if.then12.i.i.i3654 %retval.sroa.6.1.i.i.i3662 = phi i32 [ %retval.sroa.6.0.i.i.i3631, %if.then12.i.i.i3654 ], [ %spec.store.select.i.i.i3636, %if.end22.i.i.i3734 ] %retval.sroa.2.1.i.i.i3663 = phi i64 [ %retval.sroa.2.0.i.i.i3632, %if.then12.i.i.i3654 ], [ %conv.i.i.i.i.i3637, %if.end22.i.i.i3734 ] %retval.sroa.8.1.i.i.i3664 = phi i32 [ %retval.sroa.8.0.i.i.i3633, %if.then12.i.i.i3654 ], [ %1318, %if.end22.i.i.i3734 ] br i1 %cmp.i48.not.i.i.i3653, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3670, label %for.inc.i.i.i3665 for.inc.i.i.i3665: ; preds = %cleanup26.i.i.i3661, %for.cond.i.i.i3630 %retval.sroa.6.2.i.i.i3666 = phi i32 [ %retval.sroa.6.1.i.i.i3662, %cleanup26.i.i.i3661 ], [ %retval.sroa.6.0.i.i.i3631, %for.cond.i.i.i3630 ] %retval.sroa.2.2.i.i.i3667 = phi i64 [ %retval.sroa.2.1.i.i.i3663, %cleanup26.i.i.i3661 ], [ %retval.sroa.2.0.i.i.i3632, %for.cond.i.i.i3630 ] %retval.sroa.8.2.i.i.i3668 = phi i32 [ %retval.sroa.8.1.i.i.i3664, %cleanup26.i.i.i3661 ], [ %retval.sroa.8.0.i.i.i3633, %for.cond.i.i.i3630 ] %inc.i.i.i3669 = add i32 %spec.store.select.i.i.i3636, 1 br label %for.cond.i.i.i3630, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3670: ; preds = %cleanup26.i.i.i3661 %retval.sroa.6.1.i.i.i3662.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i3662, %cleanup26.i.i.i3661 ] %retval.sroa.2.1.i.i.i3663.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i3663, %cleanup26.i.i.i3661 ] %retval.sroa.8.1.i.i.i3664.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i3664, %cleanup26.i.i.i3661 ] fence acquire %1326 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i3673 = shl i32 %retval.sroa.6.1.i.i.i3662.lcssa, 5 %idxprom.i18.i.i.i.i.i3674 = zext i32 %mul.i.i.i.i.i.i3673 to i64 %arrayidx.i19.i.i.i.i.i3675 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1326, i64 %idxprom.i18.i.i.i.i.i3674 %arrayidx.i21.i.i.i.i.i3676 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i3675, i64 %sh_prom.i.i.i.i store i64 4, ptr %arrayidx.i21.i.i.i.i.i3676, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i3678 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i3676, i64 8 store i32 544104786, ptr %arrayidx6.i.i.i.i.i.i.i3678, align 8 %tobool.not.i.i.i.i.i.i3679 = icmp eq i32 %retval.sroa.8.1.i.i.i3664.lcssa, 0 %conv.i.i.i.i.i.i3680 = zext i1 %tobool.not.i.i.i.i.i.i3679 to i32 fence release %1327 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i3681 = zext i32 %retval.sroa.6.1.i.i.i3662.lcssa to i64 %arrayidx.i23.i.i.i.i.i3682 = getelementptr inbounds nuw i32, ptr %1327, i64 %idxprom.i22.i.i.i.i.i3681 store atomic i32 %conv.i.i.i.i.i.i3680, ptr %arrayidx.i23.i.i.i.i.i3682 monotonic, align 4 %1328 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i3683 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1328, i64 %idxprom.i22.i.i.i.i.i3681 %1329 = load i64, ptr %arrayidx.i.i4.i.i3683, align 8, !tbaa !64 %conv.i.i7.i.i.i.i3684 = trunc i64 %1329 to i32 %conv.i.i.i.i17.i.i.i.i3686 = trunc i64 %retval.sroa.2.1.i.i.i3663.lcssa to i32 %1330 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i3686, i1 true) %iszero.i.i.i.i18.i.i.i.i3687 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i3686, 0 %sub.i.i.i.i19.i.i.i.i3688 = select i1 %iszero.i.i.i.i18.i.i.i.i3687, i32 -1, i32 %1330 br label %while.cond.i.i.i.i3689 while.cond.i.i.i.i3689: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3701, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3670 %port.sroa.43.0.i.i3690 = phi i32 [ %conv.i.i.i.i.i.i3680, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3670 ], [ %conv.i.i39.i.i.i.i3702, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3701 ] %idx.0.i.i.i.i3691 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3670 ], [ %add.i.i.i.i3704, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3701 ] %cmp.i.i.i2.i3692 = icmp eq i64 %idx.0.i.i.i.i3691, 0 %1331 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i3684, i1 %cmp.i.i.i2.i3692) %tobool.not.i.i.i.i3693 = icmp eq i32 %1331, 0 %1332 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i3694 = getelementptr inbounds nuw i32, ptr %1332, i64 %idxprom.i22.i.i.i.i.i3681 %1333 = load atomic i32, ptr %arrayidx.i22.i.i.i3694 monotonic, align 4 br i1 %tobool.not.i.i.i.i3693, label %cond.false.i.i.i3713, label %cond.false.i11.i.i.i.i3695 cond.false.i11.i.i.i.i3695: ; preds = %while.cond.i.i.i.i3689 %1334 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3686, i32 %1333, i32 %sub.i.i.i.i19.i.i.i.i3688, i32 31) %1335 = icmp eq i32 %1334, %port.sroa.43.0.i.i3690 br i1 %1335, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3700, label %while.body.i.i33.i.i.i.i3696 while.body.i.i33.i.i.i.i3696: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3697, %cond.false.i11.i.i.i.i3695 %1336 = phi ptr [ %1337, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3697 ], [ %1332, %cond.false.i11.i.i.i.i3695 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i3711, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3697 if.then.i.i.i48.i.i.i.i3711: ; preds = %while.body.i.i33.i.i.i.i3696 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i3712 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3697 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3697: ; preds = %if.then.i.i.i48.i.i.i.i3711, %while.body.i.i33.i.i.i.i3696 %1337 = phi ptr [ %.pre.i.i.i.i3712, %if.then.i.i.i48.i.i.i.i3711 ], [ %1336, %while.body.i.i33.i.i.i.i3696 ] %arrayidx.i.i.i35.i.i.i.i3698 = getelementptr inbounds nuw i32, ptr %1337, i64 %idxprom.i22.i.i.i.i.i3681 %1338 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i3698 monotonic, align 4 %1339 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3686, i32 %1338, i32 %sub.i.i.i.i19.i.i.i.i3688, i32 31) %cmp.i.not.i.i36.i.i.i.i3699 = icmp eq i32 %1339, %port.sroa.43.0.i.i3690 br i1 %cmp.i.not.i.i36.i.i.i.i3699, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3700, label %while.body.i.i33.i.i.i.i3696, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3700: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3697, %cond.false.i11.i.i.i.i3695 fence acquire br i1 %cmp.i.i.i2.i3692, label %if.then.i.i20.i.i.i.i.i3705, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3701 if.then.i.i20.i.i.i.i.i3705: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3700 %1340 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i3709 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1340, i64 %idxprom.i18.i.i.i.i.i3674 %arrayidx.i22.i.i.i.i.i3710 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i3709, i64 %sh_prom.i.i.i.i store i32 544104786, ptr %arrayidx.i22.i.i.i.i.i3710, align 1 br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3701 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3701: ; preds = %if.then.i.i20.i.i.i.i.i3705, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3700 %conv.i.i39.i.i.i.i3702 = xor i32 %port.sroa.43.0.i.i3690, 1 fence release %1341 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i3703 = getelementptr inbounds nuw i32, ptr %1341, i64 %idxprom.i22.i.i.i.i.i3681 store atomic i32 %conv.i.i39.i.i.i.i3702, ptr %arrayidx.i24.i.i.i.i.i3703 monotonic, align 4 %add.i.i.i.i3704 = add i64 %idx.0.i.i.i.i3691, 64 br label %while.cond.i.i.i.i3689, !llvm.loop !71 cond.false.i.i.i3713: ; preds = %while.cond.i.i.i.i3689 %port.sroa.43.0.i.i3690.lcssa = phi i32 [ %port.sroa.43.0.i.i3690, %while.cond.i.i.i.i3689 ] %.lcssa5620 = phi ptr [ %1332, %while.cond.i.i.i.i3689 ] %.lcssa5619 = phi i32 [ %1333, %while.cond.i.i.i.i3689 ] %1342 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3686, i32 %.lcssa5619, i32 %sub.i.i.i.i19.i.i.i.i3688, i32 31) %1343 = icmp eq i32 %1342, %port.sroa.43.0.i.i3690.lcssa br i1 %1343, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit3738, label %while.body.i.i.i.i3714 while.body.i.i.i.i3714: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3715, %cond.false.i.i.i3713 %1344 = phi ptr [ %1345, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3715 ], [ %.lcssa5620, %cond.false.i.i.i3713 ] br i1 %343, label %if.then.i.i.i.i.i3728, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3715 if.then.i.i.i.i.i3728: ; preds = %while.body.i.i.i.i3714 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i3729 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3715 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3715: ; preds = %if.then.i.i.i.i.i3728, %while.body.i.i.i.i3714 %1345 = phi ptr [ %.pre.i.i3729, %if.then.i.i.i.i.i3728 ], [ %1344, %while.body.i.i.i.i3714 ] %arrayidx.i.i.i11.i.i3716 = getelementptr inbounds nuw i32, ptr %1345, i64 %idxprom.i22.i.i.i.i.i3681 %1346 = load atomic i32, ptr %arrayidx.i.i.i11.i.i3716 monotonic, align 4 %1347 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3686, i32 %1346, i32 %sub.i.i.i.i19.i.i.i.i3688, i32 31) %cmp.i.not.i.i.i.i3717 = icmp eq i32 %1347, %port.sroa.43.0.i.i3690.lcssa br i1 %cmp.i.not.i.i.i.i3717, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit3738, label %while.body.i.i.i.i3714, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit3738: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3715, %cond.false.i.i.i3713 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i3686) fence release %1348 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i3663.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i3719 = icmp ne i64 %retval.sroa.2.1.i.i.i3663.lcssa, 0 %cmp2.i.i.i.i19.i.i3720 = icmp eq i64 %1348, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i3721 = select i1 %iszero.i.i.i.i.i18.i.i3719, i1 %cmp2.i.i.i.i19.i.i3720, i1 false %div8.i.i.i21.i.i3722 = lshr i32 %retval.sroa.6.1.i.i.i3662.lcssa, 5 %1349 = and i32 %retval.sroa.6.1.i.i.i3662.lcssa, 31 %idxprom.i.i.i22.i.i3723 = zext nneg i32 %div8.i.i.i21.i.i3722 to i64 %arrayidx.i.i.i23.i.i3724 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i3723 %conv4.i.i.i24.i.i3725 = zext i1 %cmp.i.i.i.i20.i.i3721 to i32 %shl.i.i.i25.i.i3726 = shl nuw i32 %conv4.i.i.i24.i.i3725, %1349 %xor.i.i.i26.i.i3727 = xor i32 %shl.i.i.i25.i.i3726, -1 %1350 = atomicrmw and ptr %arrayidx.i.i.i23.i.i3724, i32 %xor.i.i.i26.i.i3727 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i3686) call void @llvm.lifetime.start.p0(ptr nonnull %buffer.i.i.i3741) #32, !noalias !156 %1351 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i3741, i64 11 br label %while.body.i.i.i.i.i.i.i3745 while.body.i.i.i.i.i.i.i3745: ; preds = %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3757, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit3738 %writer.sroa.10.0.i.i.i.i.i3746 = phi i64 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit3738 ], [ %writer.sroa.10.1.i.i.i.i.i3758, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3757 ] %value.addr.09.i.i.i.i.i.i.i3747 = phi i32 [ %TestCount.1.lcssa, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit3738 ], [ %div.i.i.i.i.i.i.i.i3748, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3757 ] %div.i.i.i.i.i.i.i.i3748 = udiv i32 %value.addr.09.i.i.i.i.i.i.i3747, 10 %cmp.i.i.i.i.i.i.i.i.i3749 = icmp eq i64 %writer.sroa.10.0.i.i.i.i.i3746, 11 br i1 %cmp.i.i.i.i.i.i.i.i.i3749, label %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3757, label %if.then3.i.i.i.i.i.i.i.i3750 if.then3.i.i.i.i.i.i.i.i3750: ; preds = %while.body.i.i.i.i.i.i.i3745 %.neg.i3751 = mul i32 %div.i.i.i.i.i.i.i.i3748, 246 %rem.i.i.i.i.i.i.i.decomposed.i3752 = add i32 %.neg.i3751, %value.addr.09.i.i.i.i.i.i.i3747 %conv.i.i.i.i.i.i.i.i3753 = trunc i32 %rem.i.i.i.i.i.i.i.decomposed.i3752 to i8 %switch.offset.i3754 = or disjoint i8 %conv.i.i.i.i.i.i.i.i3753, 48 %inc.i.i.i.i.i.i.i.i3755 = add i64 %writer.sroa.10.0.i.i.i.i.i3746, 1 %1352 = xor i64 %writer.sroa.10.0.i.i.i.i.i3746, -1 %arrayidx.i.i.i.i.i.i.i.i.i3756 = getelementptr i8, ptr %1351, i64 %1352 store i8 %switch.offset.i3754, ptr %arrayidx.i.i.i.i.i.i.i.i.i3756, align 1, !tbaa !36, !noalias !156 br label %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3757 _ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3757: ; preds = %if.then3.i.i.i.i.i.i.i.i3750, %while.body.i.i.i.i.i.i.i3745 %writer.sroa.10.1.i.i.i.i.i3758 = phi i64 [ %inc.i.i.i.i.i.i.i.i3755, %if.then3.i.i.i.i.i.i.i.i3750 ], [ 11, %while.body.i.i.i.i.i.i.i3745 ] %cmp.i.i.i.i.i.i.i3759 = icmp ult i32 %value.addr.09.i.i.i.i.i.i.i3747, 10 %.not.i.i.i.i.i.i.i3760 = or i1 %cmp.i.i.i.i.i.i.i.i.i3749, %cmp.i.i.i.i.i.i.i3759 br i1 %.not.i.i.i.i.i.i.i3760, label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i3761, label %while.body.i.i.i.i.i.i.i3745, !llvm.loop !77 _ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i3761: ; preds = %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3757 %writer.sroa.10.1.i.i.i.i.i3758.lcssa = phi i64 [ %writer.sroa.10.1.i.i.i.i.i3758, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3757 ] %cmp.i.i.i.i.i.i.i.i.i3749.lcssa = phi i1 [ %cmp.i.i.i.i.i.i.i.i.i3749, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i3757 ] %cmp.i21.i.i.i.i.i3764 = icmp ne i64 %writer.sroa.10.1.i.i.i.i.i3758.lcssa, 0 %or.cond.not.i.i.i.i.i3765 = or i1 %cmp.i.i.i.i.i.i.i.i.i3749.lcssa, %cmp.i21.i.i.i.i.i3764 br i1 %or.cond.not.i.i.i.i.i3765, label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i3777, label %if.then3.i.i.lr.ph.i.i.i.i.i3766 if.then3.i.i.lr.ph.i.i.i.i.i3766: ; preds = %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i3761 %arrayidx.i.i.i.i.i.i.i.i3767 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i3741, i64 10 store i8 48, ptr %arrayidx.i.i.i.i.i.i.i.i3767, align 2, !tbaa !36, !noalias !156 br label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i3777 _ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i3777: ; preds = %if.then3.i.i.lr.ph.i.i.i.i.i3766, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i3761 %writer.sroa.10.4.i.i.i.i.i3769 = phi i64 [ %writer.sroa.10.1.i.i.i.i.i3758.lcssa, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i3761 ], [ 1, %if.then3.i.i.lr.ph.i.i.i.i.i3766 ] %written.i.i.i.i.i3779 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i3741, i64 16 store i64 %writer.sroa.10.4.i.i.i.i.i3769, ptr %written.i.i.i.i.i3779, align 8, !tbaa !40, !noalias !156 %cmp.i.not.i.i.i.i.i.i3780 = icmp eq i64 %writer.sroa.10.4.i.i.i.i.i3769, 0 br i1 %cmp.i.not.i.i.i.i.i.i3780, label %if.end.i.i.i.i.i.i.i3799, label %if.then.i.i.i.i.i.i.i3781 if.then.i.i.i.i.i.i.i3781: ; preds = %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i3777 %inc.i.i.i.i.i2.i.i.i3782 = add i64 %writer.sroa.10.4.i.i.i.i.i3769, 1 %cmp.not.i.i.not.i.i.i.i.i.i3783 = icmp eq i64 %inc.i.i.i.i.i2.i.i.i3782, 0 br i1 %cmp.not.i.i.not.i.i.i.i.i.i3783, label %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i3797, label %if.end.i.i.i.i.i.i.i.i3784 if.end.i.i.i.i.i.i.i.i3784: ; preds = %if.then.i.i.i.i.i.i.i3781 %cmp2.i.i.i.i.i.i.i.i3785 = icmp ult i64 %inc.i.i.i.i.i2.i.i.i3782, 1676976733973595601 %mul.i.i.i.i.i.i.i.i3786 = mul nuw i64 %inc.i.i.i.i.i2.i.i.i3782, 11 %div18.i.i.i.i.i.i.i.i3787 = lshr i64 %mul.i.i.i.i.i.i.i.i3786, 3 %new_capacity.addr.0.i.i.i.i.i.i.i.i3788 = select i1 %cmp2.i.i.i.i.i.i.i.i3785, i64 %div18.i.i.i.i.i.i.i.i3787, i64 %inc.i.i.i.i.i2.i.i.i3782 %sub.i.i.i3789 = add i64 %new_capacity.addr.0.i.i.i.i.i.i.i.i3788, 7 %div2.i.i.i3790 = and i64 %sub.i.i.i3789, -8 %1353 = load ptr, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34, !noalias !156 %add.ptr.i.i.i3791 = getelementptr inbounds nuw i8, ptr %1353, i64 %div2.i.i.i3790 store ptr %add.ptr.i.i.i3791, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34, !noalias !156 %sub.ptr.lhs.cast.i.i.i3792 = ptrtoint ptr %add.ptr.i.i.i3791 to i64 %sub.ptr.sub.i.i.i3793 = sub i64 %sub.ptr.lhs.cast.i.i.i3792, ptrtoint (ptr @_ZN12_GLOBAL__N_16memoryE to i64) %cmp.i.i.i3794 = icmp ugt i64 %sub.ptr.sub.i.i.i3793, 65335 %cond.i.i.i3795 = select i1 %cmp.i.i.i3794, ptr null, ptr %1353 %tobool.i.i.i.i.i.i.i.i3796 = icmp ne ptr %cond.i.i.i3795, null call void @llvm.assume(i1 %tobool.i.i.i.i.i.i.i.i3796) br label %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i3797 _ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i3797: ; preds = %if.end.i.i.i.i.i.i.i.i3784, %if.then.i.i.i.i.i.i.i3781 %agg.tmp.sroa.0.0.i3798 = phi ptr [ @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE, %if.then.i.i.i.i.i.i.i3781 ], [ %cond.i.i.i3795, %if.end.i.i.i.i.i.i.i.i3784 ] call void @llvm.memset.p0.i64(ptr nonnull align 1 %agg.tmp.sroa.0.0.i3798, i8 0, i64 %writer.sroa.10.4.i.i.i.i.i3769, i1 false), !noalias !156 br label %if.end.i.i.i.i.i.i.i3799 if.end.i.i.i.i.i.i.i3799: ; preds = %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i3797, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i3777 %agg.tmp.sroa.0.1.i3800 = phi ptr [ @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i3777 ], [ %agg.tmp.sroa.0.0.i3798, %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i3797 ] %cmp.not.i6.i.i.i.i.i.i.i3801 = icmp eq ptr %agg.tmp.sroa.0.1.i3800, @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE br i1 %cmp.not.i6.i.i.i.i.i.i.i3801, label %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i3804, label %if.then.i.i.i.i.i3.i.i.i3802 if.then.i.i.i.i.i3.i.i.i3802: ; preds = %if.end.i.i.i.i.i.i.i3799 %arrayidx.i.i.i.i.i4.i.i.i3803 = getelementptr inbounds nuw i8, ptr %agg.tmp.sroa.0.1.i3800, i64 %writer.sroa.10.4.i.i.i.i.i3769 store i8 0, ptr %arrayidx.i.i.i.i.i4.i.i.i3803, align 1, !tbaa !36, !noalias !156 br label %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i3804 _ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i3804: ; preds = %if.then.i.i.i.i.i3.i.i.i3802, %if.end.i.i.i.i.i.i.i3799 %add.ptr.i.i.i.i3805 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i3741, i64 11 %idx.neg.i.i.i.i3806 = sub i64 0, %writer.sroa.10.4.i.i.i.i.i3769 %add.ptr5.i.i.i.i3807 = getelementptr inbounds i8, ptr %add.ptr.i.i.i.i3805, i64 %idx.neg.i.i.i.i3806 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %agg.tmp.sroa.0.1.i3800, ptr nonnull align 1 %add.ptr5.i.i.i.i3807, i64 %writer.sroa.10.4.i.i.i.i.i3769, i1 false), !alias.scope !161, !noalias !156 call void @llvm.lifetime.end.p0(ptr nonnull %buffer.i.i.i3741) #32, !noalias !156 br label %for.cond.i.i.i3810 for.cond.i.i.i3810: ; preds = %for.inc.i.i.i3845, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i3804 %retval.sroa.6.0.i.i.i3811 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i3804 ], [ %retval.sroa.6.2.i.i.i3846, %for.inc.i.i.i3845 ] %retval.sroa.2.0.i.i.i3812 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i3804 ], [ %retval.sroa.2.2.i.i.i3847, %for.inc.i.i.i3845 ] %retval.sroa.8.0.i.i.i3813 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i3804 ], [ %retval.sroa.8.2.i.i.i3848, %for.inc.i.i.i3845 ] %index.0.i.i.i3814 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i3804 ], [ %inc.i.i.i3849, %for.inc.i.i.i3845 ] %1354 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i3815 = icmp ult i32 %index.0.i.i.i3814, %1354 %spec.store.select.i.i.i3816 = select i1 %cmp.not.i.i.i3815, i32 %index.0.i.i.i3814, i32 0 %1355 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i3817 = zext i32 %1355 to i64 %div8.i.i.i.i.i3818 = lshr i32 %spec.store.select.i.i.i3816, 5 %1356 = and i32 %spec.store.select.i.i.i3816, 31 %idxprom.i.i.i.i.i3819 = zext nneg i32 %div8.i.i.i.i.i3818 to i64 %arrayidx.i.i.i.i.i3820 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i3819 %1357 = lshr i32 %1355, %2 %conv4.i.i.i.i.i3821 = and i32 %1357, 1 %shl.i.i.i.i.i3822 = shl nuw i32 %conv4.i.i.i.i.i3821, %1356 %1358 = atomicrmw or ptr %arrayidx.i.i.i.i.i3820, i32 %shl.i.i.i.i.i3822 monotonic, align 4 %shl5.i.i.i.i.i3823 = shl nuw i32 1, %1356 %and.i.i.i.i.i3824 = and i32 %shl5.i.i.i.i.i3823, %1358 %tobool3.i.i.i.i3825 = icmp ne i32 %and.i.i.i.i.i3824, 0 %1359 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %1355, i1 %tobool3.i.i.i.i3825) %cmp.i.not.i.i.i3826 = icmp eq i32 %1355, %1359 br i1 %cmp.i.not.i.i.i3826, label %for.inc.i.i.i3845, label %if.then.i.i.i.i3827 if.then.i.i.i.i3827: ; preds = %for.cond.i.i.i3810 fence acquire %1360 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i3828 = zext i32 %spec.store.select.i.i.i3816 to i64 %arrayidx.i.i.i.i3829 = getelementptr inbounds nuw i32, ptr %1360, i64 %idxprom.i.i.i.i3828 %1361 = load atomic i32, ptr %arrayidx.i.i.i.i3829 monotonic, align 4 %1362 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %1355, i1 true) %iszero.i.i.i.i.i.i3830 = icmp eq i32 %1355, 0 %sub.i.i.i.i.i.i3831 = select i1 %iszero.i.i.i.i.i.i3830, i32 -1, i32 %1362 %1363 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1355, i32 %1361, i32 %sub.i.i.i.i.i.i3831, i32 31) %1364 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i3832 = getelementptr inbounds nuw i32, ptr %1364, i64 %idxprom.i.i.i.i3828 %1365 = load atomic i32, ptr %arrayidx.i45.i.i.i3832 monotonic, align 4 %1366 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1355, i32 %1365, i32 %sub.i.i.i.i.i.i3831, i32 31) %cmp.i48.not.i.i.i3833 = icmp eq i32 %1363, %1366 br i1 %cmp.i48.not.i.i.i3833, label %if.end14.i.i.i3911, label %if.then12.i.i.i3834 if.then12.i.i.i3834: ; preds = %if.then.i.i.i.i3827 fence release %1367 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i3817, i1 true) %iszero.i.i.i.i.i.i.i3835 = icmp ne i32 %1355, 0 %cmp2.i.i.i.i.i.i3836 = icmp eq i64 %1367, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i3837 = select i1 %iszero.i.i.i.i.i.i.i3835, i1 %cmp2.i.i.i.i.i.i3836, i1 false %conv4.i.i53.i.i.i3838 = zext i1 %cmp.i.i.i.i.i.i3837 to i32 %shl.i.i54.i.i.i3839 = shl nuw i32 %conv4.i.i53.i.i.i3838, %1356 %xor.i.i.i.i.i3840 = xor i32 %shl.i.i54.i.i.i3839, -1 %1368 = atomicrmw and ptr %arrayidx.i.i.i.i.i3820, i32 %xor.i.i.i.i.i3840 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %1355) br label %cleanup26.i.i.i3841 if.end14.i.i.i3911: ; preds = %if.then.i.i.i.i3827 %1369 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i3817, i1 true) %iszero.i.i.i56.i.i.i3912 = icmp ne i32 %1355, 0 %cmp2.i.i.i.i.i3913 = icmp eq i64 %1369, %sh_prom.i.i.i.i %cmp.i.i.i.i.i3914 = select i1 %iszero.i.i.i56.i.i.i3912, i1 %cmp2.i.i.i.i.i3913, i1 false br i1 %cmp.i.i.i.i.i3914, label %if.then16.i.i.i3916, label %if.end22.i.i.i3915 if.then16.i.i.i3916: ; preds = %if.end14.i.i.i3911 %1370 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i3917 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1370, i64 %idxprom.i.i.i.i3828, i32 1 store i32 1660944387, ptr %opcode.i.i.i3917, align 8, !tbaa !61 %arrayidx21.i.i.i3918 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1370, i64 %idxprom.i.i.i.i3828 store i64 %conv.i.i.i.i.i3817, ptr %arrayidx21.i.i.i3918, align 8, !tbaa !64 br label %if.end22.i.i.i3915 if.end22.i.i.i3915: ; preds = %if.then16.i.i.i3916, %if.end14.i.i.i3911 call void @llvm.nvvm.bar.warp.sync(i32 %1355) br label %cleanup26.i.i.i3841 cleanup26.i.i.i3841: ; preds = %if.end22.i.i.i3915, %if.then12.i.i.i3834 %retval.sroa.6.1.i.i.i3842 = phi i32 [ %retval.sroa.6.0.i.i.i3811, %if.then12.i.i.i3834 ], [ %spec.store.select.i.i.i3816, %if.end22.i.i.i3915 ] %retval.sroa.2.1.i.i.i3843 = phi i64 [ %retval.sroa.2.0.i.i.i3812, %if.then12.i.i.i3834 ], [ %conv.i.i.i.i.i3817, %if.end22.i.i.i3915 ] %retval.sroa.8.1.i.i.i3844 = phi i32 [ %retval.sroa.8.0.i.i.i3813, %if.then12.i.i.i3834 ], [ %1363, %if.end22.i.i.i3915 ] br i1 %cmp.i48.not.i.i.i3833, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3850, label %for.inc.i.i.i3845 for.inc.i.i.i3845: ; preds = %cleanup26.i.i.i3841, %for.cond.i.i.i3810 %retval.sroa.6.2.i.i.i3846 = phi i32 [ %retval.sroa.6.1.i.i.i3842, %cleanup26.i.i.i3841 ], [ %retval.sroa.6.0.i.i.i3811, %for.cond.i.i.i3810 ] %retval.sroa.2.2.i.i.i3847 = phi i64 [ %retval.sroa.2.1.i.i.i3843, %cleanup26.i.i.i3841 ], [ %retval.sroa.2.0.i.i.i3812, %for.cond.i.i.i3810 ] %retval.sroa.8.2.i.i.i3848 = phi i32 [ %retval.sroa.8.1.i.i.i3844, %cleanup26.i.i.i3841 ], [ %retval.sroa.8.0.i.i.i3813, %for.cond.i.i.i3810 ] %inc.i.i.i3849 = add i32 %spec.store.select.i.i.i3816, 1 br label %for.cond.i.i.i3810, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3850: ; preds = %cleanup26.i.i.i3841 %retval.sroa.6.1.i.i.i3842.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i3842, %cleanup26.i.i.i3841 ] %retval.sroa.2.1.i.i.i3843.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i3843, %cleanup26.i.i.i3841 ] %retval.sroa.8.1.i.i.i3844.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i3844, %cleanup26.i.i.i3841 ] fence acquire %1371 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i3853 = shl i32 %retval.sroa.6.1.i.i.i3842.lcssa, 5 %idxprom.i18.i.i.i.i.i3854 = zext i32 %mul.i.i.i.i.i.i3853 to i64 %arrayidx.i19.i.i.i.i.i3855 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1371, i64 %idxprom.i18.i.i.i.i.i3854 %arrayidx.i21.i.i.i.i.i3856 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i3855, i64 %sh_prom.i.i.i.i store i64 %writer.sroa.10.4.i.i.i.i.i3769, ptr %arrayidx.i21.i.i.i.i.i3856, align 8, !tbaa !67 %spec.select.i.i.i.i.i.i.i3857 = call i64 @llvm.umin.i64(i64 %writer.sroa.10.4.i.i.i.i.i3769, i64 56) %arrayidx6.i.i.i.i.i.i.i3858 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i3856, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %arrayidx6.i.i.i.i.i.i.i3858, ptr nonnull align 1 %agg.tmp.sroa.0.1.i3800, i64 %spec.select.i.i.i.i.i.i.i3857, i1 false) %tobool.not.i.i.i.i.i.i3859 = icmp eq i32 %retval.sroa.8.1.i.i.i3844.lcssa, 0 %conv.i.i.i.i.i.i3860 = zext i1 %tobool.not.i.i.i.i.i.i3859 to i32 fence release %1372 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i3861 = zext i32 %retval.sroa.6.1.i.i.i3842.lcssa to i64 %arrayidx.i23.i.i.i.i.i3862 = getelementptr inbounds nuw i32, ptr %1372, i64 %idxprom.i22.i.i.i.i.i3861 store atomic i32 %conv.i.i.i.i.i.i3860, ptr %arrayidx.i23.i.i.i.i.i3862 monotonic, align 4 %1373 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i3863 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1373, i64 %idxprom.i22.i.i.i.i.i3861 %1374 = load i64, ptr %arrayidx.i.i4.i.i3863, align 8, !tbaa !64 %conv.i.i7.i.i.i.i3864 = trunc i64 %1374 to i32 %conv.i.i.i.i17.i.i.i.i3866 = trunc i64 %retval.sroa.2.1.i.i.i3843.lcssa to i32 %1375 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i3866, i1 true) %iszero.i.i.i.i18.i.i.i.i3867 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i3866, 0 %sub.i.i.i.i19.i.i.i.i3868 = select i1 %iszero.i.i.i.i18.i.i.i.i3867, i32 -1, i32 %1375 br label %while.cond.i.i.i.i3869 while.cond.i.i.i.i3869: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3881, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3850 %port.sroa.43.0.i.i3870 = phi i32 [ %conv.i.i.i.i.i.i3860, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3850 ], [ %conv.i.i39.i.i.i.i3882, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3881 ] %idx.0.i.i.i.i3871 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3850 ], [ %add.i.i.i.i3884, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3881 ] %cmp.i.i.i.i3872 = icmp ult i64 %idx.0.i.i.i.i3871, %writer.sroa.10.4.i.i.i.i.i3769 %1376 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i3864, i1 %cmp.i.i.i.i3872) %tobool.not.i.i.i.i3873 = icmp eq i32 %1376, 0 %1377 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i3874 = getelementptr inbounds nuw i32, ptr %1377, i64 %idxprom.i22.i.i.i.i.i3861 %1378 = load atomic i32, ptr %arrayidx.i22.i.i.i3874 monotonic, align 4 br i1 %tobool.not.i.i.i.i3873, label %cond.false.i.i.i3893, label %cond.false.i11.i.i.i.i3875 cond.false.i11.i.i.i.i3875: ; preds = %while.cond.i.i.i.i3869 %1379 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3866, i32 %1378, i32 %sub.i.i.i.i19.i.i.i.i3868, i32 31) %1380 = icmp eq i32 %1379, %port.sroa.43.0.i.i3870 br i1 %1380, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3880, label %while.body.i.i33.i.i.i.i3876 while.body.i.i33.i.i.i.i3876: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3877, %cond.false.i11.i.i.i.i3875 %1381 = phi ptr [ %1382, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3877 ], [ %1377, %cond.false.i11.i.i.i.i3875 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i3891, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3877 if.then.i.i.i48.i.i.i.i3891: ; preds = %while.body.i.i33.i.i.i.i3876 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i3892 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3877 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3877: ; preds = %if.then.i.i.i48.i.i.i.i3891, %while.body.i.i33.i.i.i.i3876 %1382 = phi ptr [ %.pre.i.i.i.i3892, %if.then.i.i.i48.i.i.i.i3891 ], [ %1381, %while.body.i.i33.i.i.i.i3876 ] %arrayidx.i.i.i35.i.i.i.i3878 = getelementptr inbounds nuw i32, ptr %1382, i64 %idxprom.i22.i.i.i.i.i3861 %1383 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i3878 monotonic, align 4 %1384 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3866, i32 %1383, i32 %sub.i.i.i.i19.i.i.i.i3868, i32 31) %cmp.i.not.i.i36.i.i.i.i3879 = icmp eq i32 %1384, %port.sroa.43.0.i.i3870 br i1 %cmp.i.not.i.i36.i.i.i.i3879, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3880, label %while.body.i.i33.i.i.i.i3876, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3880: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3877, %cond.false.i11.i.i.i.i3875 fence acquire br i1 %cmp.i.i.i.i3872, label %if.then.i.i20.i.i.i.i.i3885, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3881 if.then.i.i20.i.i.i.i.i3885: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3880 %add.ptr.i.i.i.i.i.i.i.i3886 = getelementptr inbounds nuw i8, ptr %agg.tmp.sroa.0.1.i3800, i64 %idx.0.i.i.i.i3871 %sub.i.i.i.i.i.i.i3887 = sub nuw i64 %writer.sroa.10.4.i.i.i.i.i3769, %idx.0.i.i.i.i3871 %spec.select.i.i.i47.i.i.i.i3888 = call i64 @llvm.umin.i64(i64 %sub.i.i.i.i.i.i.i3887, i64 64) %1385 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i3889 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1385, i64 %idxprom.i18.i.i.i.i.i3854 %arrayidx.i22.i.i.i.i.i3890 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i3889, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr align 1 %arrayidx.i22.i.i.i.i.i3890, ptr nonnull align 1 %add.ptr.i.i.i.i.i.i.i.i3886, i64 %spec.select.i.i.i47.i.i.i.i3888, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3881 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i3881: ; preds = %if.then.i.i20.i.i.i.i.i3885, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i3880 %conv.i.i39.i.i.i.i3882 = xor i32 %port.sroa.43.0.i.i3870, 1 fence release %1386 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i3883 = getelementptr inbounds nuw i32, ptr %1386, i64 %idxprom.i22.i.i.i.i.i3861 store atomic i32 %conv.i.i39.i.i.i.i3882, ptr %arrayidx.i24.i.i.i.i.i3883 monotonic, align 4 %add.i.i.i.i3884 = add i64 %idx.0.i.i.i.i3871, 64 br label %while.cond.i.i.i.i3869, !llvm.loop !71 cond.false.i.i.i3893: ; preds = %while.cond.i.i.i.i3869 %port.sroa.43.0.i.i3870.lcssa = phi i32 [ %port.sroa.43.0.i.i3870, %while.cond.i.i.i.i3869 ] %.lcssa5618 = phi ptr [ %1377, %while.cond.i.i.i.i3869 ] %.lcssa5617 = phi i32 [ %1378, %while.cond.i.i.i.i3869 ] %1387 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3866, i32 %.lcssa5617, i32 %sub.i.i.i.i19.i.i.i.i3868, i32 31) %1388 = icmp eq i32 %1387, %port.sroa.43.0.i.i3870.lcssa br i1 %1388, label %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3898, label %while.body.i.i.i.i3894 while.body.i.i.i.i3894: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3895, %cond.false.i.i.i3893 %1389 = phi ptr [ %1390, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3895 ], [ %.lcssa5618, %cond.false.i.i.i3893 ] br i1 %343, label %if.then.i.i.i.i.i3909, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3895 if.then.i.i.i.i.i3909: ; preds = %while.body.i.i.i.i3894 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i3910 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3895 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3895: ; preds = %if.then.i.i.i.i.i3909, %while.body.i.i.i.i3894 %1390 = phi ptr [ %.pre.i.i3910, %if.then.i.i.i.i.i3909 ], [ %1389, %while.body.i.i.i.i3894 ] %arrayidx.i.i.i11.i.i3896 = getelementptr inbounds nuw i32, ptr %1390, i64 %idxprom.i22.i.i.i.i.i3861 %1391 = load atomic i32, ptr %arrayidx.i.i.i11.i.i3896 monotonic, align 4 %1392 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3866, i32 %1391, i32 %sub.i.i.i.i19.i.i.i.i3868, i32 31) %cmp.i.not.i.i.i.i3897 = icmp eq i32 %1392, %port.sroa.43.0.i.i3870.lcssa br i1 %cmp.i.not.i.i.i.i3897, label %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3898, label %while.body.i.i.i.i3894, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3898: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i3895, %cond.false.i.i.i3893 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i3866) fence release %1393 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i3843.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i3899 = icmp ne i64 %retval.sroa.2.1.i.i.i3843.lcssa, 0 %cmp2.i.i.i.i19.i.i3900 = icmp eq i64 %1393, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i3901 = select i1 %iszero.i.i.i.i.i18.i.i3899, i1 %cmp2.i.i.i.i19.i.i3900, i1 false %div8.i.i.i21.i.i3902 = lshr i32 %retval.sroa.6.1.i.i.i3842.lcssa, 5 %1394 = and i32 %retval.sroa.6.1.i.i.i3842.lcssa, 31 %idxprom.i.i.i22.i.i3903 = zext nneg i32 %div8.i.i.i21.i.i3902 to i64 %arrayidx.i.i.i23.i.i3904 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i3903 %conv4.i.i.i24.i.i3905 = zext i1 %cmp.i.i.i.i20.i.i3901 to i32 %shl.i.i.i25.i.i3906 = shl nuw i32 %conv4.i.i.i24.i.i3905, %1394 %xor.i.i.i26.i.i3907 = xor i32 %shl.i.i.i25.i.i3906, -1 %1395 = atomicrmw and ptr %arrayidx.i.i.i23.i.i3904, i32 %xor.i.i.i26.i.i3907 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i3866) br label %for.cond.i.i.i3931 for.cond.i.i.i3931: ; preds = %for.inc.i.i.i3966, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3898 %retval.sroa.6.0.i.i.i3932 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3898 ], [ %retval.sroa.6.2.i.i.i3967, %for.inc.i.i.i3966 ] %retval.sroa.2.0.i.i.i3933 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3898 ], [ %retval.sroa.2.2.i.i.i3968, %for.inc.i.i.i3966 ] %retval.sroa.8.0.i.i.i3934 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3898 ], [ %retval.sroa.8.2.i.i.i3969, %for.inc.i.i.i3966 ] %index.0.i.i.i3935 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i3898 ], [ %inc.i.i.i3970, %for.inc.i.i.i3966 ] %1396 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i3936 = icmp ult i32 %index.0.i.i.i3935, %1396 %spec.store.select.i.i.i3937 = select i1 %cmp.not.i.i.i3936, i32 %index.0.i.i.i3935, i32 0 %1397 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i3938 = zext i32 %1397 to i64 %div8.i.i.i.i.i3939 = lshr i32 %spec.store.select.i.i.i3937, 5 %1398 = and i32 %spec.store.select.i.i.i3937, 31 %idxprom.i.i.i.i.i3940 = zext nneg i32 %div8.i.i.i.i.i3939 to i64 %arrayidx.i.i.i.i.i3941 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i3940 %1399 = lshr i32 %1397, %2 %conv4.i.i.i.i.i3942 = and i32 %1399, 1 %shl.i.i.i.i.i3943 = shl nuw i32 %conv4.i.i.i.i.i3942, %1398 %1400 = atomicrmw or ptr %arrayidx.i.i.i.i.i3941, i32 %shl.i.i.i.i.i3943 monotonic, align 4 %shl5.i.i.i.i.i3944 = shl nuw i32 1, %1398 %and.i.i.i.i.i3945 = and i32 %shl5.i.i.i.i.i3944, %1400 %tobool3.i.i.i.i3946 = icmp ne i32 %and.i.i.i.i.i3945, 0 %1401 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %1397, i1 %tobool3.i.i.i.i3946) %cmp.i.not.i.i.i3947 = icmp eq i32 %1397, %1401 br i1 %cmp.i.not.i.i.i3947, label %for.inc.i.i.i3966, label %if.then.i.i.i.i3948 if.then.i.i.i.i3948: ; preds = %for.cond.i.i.i3931 fence acquire %1402 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i3949 = zext i32 %spec.store.select.i.i.i3937 to i64 %arrayidx.i.i.i.i3950 = getelementptr inbounds nuw i32, ptr %1402, i64 %idxprom.i.i.i.i3949 %1403 = load atomic i32, ptr %arrayidx.i.i.i.i3950 monotonic, align 4 %1404 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %1397, i1 true) %iszero.i.i.i.i.i.i3951 = icmp eq i32 %1397, 0 %sub.i.i.i.i.i.i3952 = select i1 %iszero.i.i.i.i.i.i3951, i32 -1, i32 %1404 %1405 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1397, i32 %1403, i32 %sub.i.i.i.i.i.i3952, i32 31) %1406 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i3953 = getelementptr inbounds nuw i32, ptr %1406, i64 %idxprom.i.i.i.i3949 %1407 = load atomic i32, ptr %arrayidx.i45.i.i.i3953 monotonic, align 4 %1408 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1397, i32 %1407, i32 %sub.i.i.i.i.i.i3952, i32 31) %cmp.i48.not.i.i.i3954 = icmp eq i32 %1405, %1408 br i1 %cmp.i48.not.i.i.i3954, label %if.end14.i.i.i4031, label %if.then12.i.i.i3955 if.then12.i.i.i3955: ; preds = %if.then.i.i.i.i3948 fence release %1409 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i3938, i1 true) %iszero.i.i.i.i.i.i.i3956 = icmp ne i32 %1397, 0 %cmp2.i.i.i.i.i.i3957 = icmp eq i64 %1409, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i3958 = select i1 %iszero.i.i.i.i.i.i.i3956, i1 %cmp2.i.i.i.i.i.i3957, i1 false %conv4.i.i53.i.i.i3959 = zext i1 %cmp.i.i.i.i.i.i3958 to i32 %shl.i.i54.i.i.i3960 = shl nuw i32 %conv4.i.i53.i.i.i3959, %1398 %xor.i.i.i.i.i3961 = xor i32 %shl.i.i54.i.i.i3960, -1 %1410 = atomicrmw and ptr %arrayidx.i.i.i.i.i3941, i32 %xor.i.i.i.i.i3961 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %1397) br label %cleanup26.i.i.i3962 if.end14.i.i.i4031: ; preds = %if.then.i.i.i.i3948 %1411 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i3938, i1 true) %iszero.i.i.i56.i.i.i4032 = icmp ne i32 %1397, 0 %cmp2.i.i.i.i.i4033 = icmp eq i64 %1411, %sh_prom.i.i.i.i %cmp.i.i.i.i.i4034 = select i1 %iszero.i.i.i56.i.i.i4032, i1 %cmp2.i.i.i.i.i4033, i1 false br i1 %cmp.i.i.i.i.i4034, label %if.then16.i.i.i4036, label %if.end22.i.i.i4035 if.then16.i.i.i4036: ; preds = %if.end14.i.i.i4031 %1412 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i4037 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1412, i64 %idxprom.i.i.i.i3949, i32 1 store i32 1660944387, ptr %opcode.i.i.i4037, align 8, !tbaa !61 %arrayidx21.i.i.i4038 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1412, i64 %idxprom.i.i.i.i3949 store i64 %conv.i.i.i.i.i3938, ptr %arrayidx21.i.i.i4038, align 8, !tbaa !64 br label %if.end22.i.i.i4035 if.end22.i.i.i4035: ; preds = %if.then16.i.i.i4036, %if.end14.i.i.i4031 call void @llvm.nvvm.bar.warp.sync(i32 %1397) br label %cleanup26.i.i.i3962 cleanup26.i.i.i3962: ; preds = %if.end22.i.i.i4035, %if.then12.i.i.i3955 %retval.sroa.6.1.i.i.i3963 = phi i32 [ %retval.sroa.6.0.i.i.i3932, %if.then12.i.i.i3955 ], [ %spec.store.select.i.i.i3937, %if.end22.i.i.i4035 ] %retval.sroa.2.1.i.i.i3964 = phi i64 [ %retval.sroa.2.0.i.i.i3933, %if.then12.i.i.i3955 ], [ %conv.i.i.i.i.i3938, %if.end22.i.i.i4035 ] %retval.sroa.8.1.i.i.i3965 = phi i32 [ %retval.sroa.8.0.i.i.i3934, %if.then12.i.i.i3955 ], [ %1405, %if.end22.i.i.i4035 ] br i1 %cmp.i48.not.i.i.i3954, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3971, label %for.inc.i.i.i3966 for.inc.i.i.i3966: ; preds = %cleanup26.i.i.i3962, %for.cond.i.i.i3931 %retval.sroa.6.2.i.i.i3967 = phi i32 [ %retval.sroa.6.1.i.i.i3963, %cleanup26.i.i.i3962 ], [ %retval.sroa.6.0.i.i.i3932, %for.cond.i.i.i3931 ] %retval.sroa.2.2.i.i.i3968 = phi i64 [ %retval.sroa.2.1.i.i.i3964, %cleanup26.i.i.i3962 ], [ %retval.sroa.2.0.i.i.i3933, %for.cond.i.i.i3931 ] %retval.sroa.8.2.i.i.i3969 = phi i32 [ %retval.sroa.8.1.i.i.i3965, %cleanup26.i.i.i3962 ], [ %retval.sroa.8.0.i.i.i3934, %for.cond.i.i.i3931 ] %inc.i.i.i3970 = add i32 %spec.store.select.i.i.i3937, 1 br label %for.cond.i.i.i3931, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3971: ; preds = %cleanup26.i.i.i3962 %retval.sroa.6.1.i.i.i3963.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i3963, %cleanup26.i.i.i3962 ] %retval.sroa.2.1.i.i.i3964.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i3964, %cleanup26.i.i.i3962 ] %retval.sroa.8.1.i.i.i3965.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i3965, %cleanup26.i.i.i3962 ] fence acquire %1413 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i3974 = shl i32 %retval.sroa.6.1.i.i.i3963.lcssa, 5 %idxprom.i18.i.i.i.i.i3975 = zext i32 %mul.i.i.i.i.i.i3974 to i64 %arrayidx.i19.i.i.i.i.i3976 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1413, i64 %idxprom.i18.i.i.i.i.i3975 %arrayidx.i21.i.i.i.i.i3977 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i3976, i64 %sh_prom.i.i.i.i store i64 8, ptr %arrayidx.i21.i.i.i.i.i3977, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i3979 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i3977, i64 8 store i64 2318917802131813408, ptr %arrayidx6.i.i.i.i.i.i.i3979, align 8 %tobool.not.i.i.i.i.i.i3980 = icmp eq i32 %retval.sroa.8.1.i.i.i3965.lcssa, 0 %conv.i.i.i.i.i.i3981 = zext i1 %tobool.not.i.i.i.i.i.i3980 to i32 fence release %1414 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i3982 = zext i32 %retval.sroa.6.1.i.i.i3963.lcssa to i64 %arrayidx.i23.i.i.i.i.i3983 = getelementptr inbounds nuw i32, ptr %1414, i64 %idxprom.i22.i.i.i.i.i3982 store atomic i32 %conv.i.i.i.i.i.i3981, ptr %arrayidx.i23.i.i.i.i.i3983 monotonic, align 4 %1415 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i3984 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1415, i64 %idxprom.i22.i.i.i.i.i3982 %1416 = load i64, ptr %arrayidx.i.i4.i.i3984, align 8, !tbaa !64 %conv.i.i7.i.i.i.i3985 = trunc i64 %1416 to i32 %conv.i.i.i.i17.i.i.i.i3987 = trunc i64 %retval.sroa.2.1.i.i.i3964.lcssa to i32 %1417 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i3987, i1 true) %iszero.i.i.i.i18.i.i.i.i3988 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i3987, 0 %sub.i.i.i.i19.i.i.i.i3989 = select i1 %iszero.i.i.i.i18.i.i.i.i3988, i32 -1, i32 %1417 br label %while.cond.i.i.i.i3990 while.cond.i.i.i.i3990: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4002, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3971 %port.sroa.43.0.i.i3991 = phi i32 [ %conv.i.i.i.i.i.i3981, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3971 ], [ %conv.i.i39.i.i.i.i4003, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4002 ] %idx.0.i.i.i.i3992 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i3971 ], [ %add.i.i.i.i4005, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4002 ] %cmp.i.i.i2.i3993 = icmp eq i64 %idx.0.i.i.i.i3992, 0 %1418 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i3985, i1 %cmp.i.i.i2.i3993) %tobool.not.i.i.i.i3994 = icmp eq i32 %1418, 0 %1419 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i3995 = getelementptr inbounds nuw i32, ptr %1419, i64 %idxprom.i22.i.i.i.i.i3982 %1420 = load atomic i32, ptr %arrayidx.i22.i.i.i3995 monotonic, align 4 br i1 %tobool.not.i.i.i.i3994, label %cond.false.i.i.i4014, label %cond.false.i11.i.i.i.i3996 cond.false.i11.i.i.i.i3996: ; preds = %while.cond.i.i.i.i3990 %1421 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3987, i32 %1420, i32 %sub.i.i.i.i19.i.i.i.i3989, i32 31) %1422 = icmp eq i32 %1421, %port.sroa.43.0.i.i3991 br i1 %1422, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4001, label %while.body.i.i33.i.i.i.i3997 while.body.i.i33.i.i.i.i3997: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3998, %cond.false.i11.i.i.i.i3996 %1423 = phi ptr [ %1424, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3998 ], [ %1419, %cond.false.i11.i.i.i.i3996 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i4012, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3998 if.then.i.i.i48.i.i.i.i4012: ; preds = %while.body.i.i33.i.i.i.i3997 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i4013 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3998 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3998: ; preds = %if.then.i.i.i48.i.i.i.i4012, %while.body.i.i33.i.i.i.i3997 %1424 = phi ptr [ %.pre.i.i.i.i4013, %if.then.i.i.i48.i.i.i.i4012 ], [ %1423, %while.body.i.i33.i.i.i.i3997 ] %arrayidx.i.i.i35.i.i.i.i3999 = getelementptr inbounds nuw i32, ptr %1424, i64 %idxprom.i22.i.i.i.i.i3982 %1425 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i3999 monotonic, align 4 %1426 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3987, i32 %1425, i32 %sub.i.i.i.i19.i.i.i.i3989, i32 31) %cmp.i.not.i.i36.i.i.i.i4000 = icmp eq i32 %1426, %port.sroa.43.0.i.i3991 br i1 %cmp.i.not.i.i36.i.i.i.i4000, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4001, label %while.body.i.i33.i.i.i.i3997, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4001: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i3998, %cond.false.i11.i.i.i.i3996 fence acquire br i1 %cmp.i.i.i2.i3993, label %if.then.i.i20.i.i.i.i.i4006, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4002 if.then.i.i20.i.i.i.i.i4006: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4001 %1427 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i4010 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1427, i64 %idxprom.i18.i.i.i.i.i3975 %arrayidx.i22.i.i.i.i.i4011 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i4010, i64 %sh_prom.i.i.i.i store i64 2318917802131813408, ptr %arrayidx.i22.i.i.i.i.i4011, align 1 br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4002 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4002: ; preds = %if.then.i.i20.i.i.i.i.i4006, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4001 %conv.i.i39.i.i.i.i4003 = xor i32 %port.sroa.43.0.i.i3991, 1 fence release %1428 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i4004 = getelementptr inbounds nuw i32, ptr %1428, i64 %idxprom.i22.i.i.i.i.i3982 store atomic i32 %conv.i.i39.i.i.i.i4003, ptr %arrayidx.i24.i.i.i.i.i4004 monotonic, align 4 %add.i.i.i.i4005 = add i64 %idx.0.i.i.i.i3992, 64 br label %while.cond.i.i.i.i3990, !llvm.loop !71 cond.false.i.i.i4014: ; preds = %while.cond.i.i.i.i3990 %port.sroa.43.0.i.i3991.lcssa = phi i32 [ %port.sroa.43.0.i.i3991, %while.cond.i.i.i.i3990 ] %.lcssa5616 = phi ptr [ %1419, %while.cond.i.i.i.i3990 ] %.lcssa5615 = phi i32 [ %1420, %while.cond.i.i.i.i3990 ] %1429 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3987, i32 %.lcssa5615, i32 %sub.i.i.i.i19.i.i.i.i3989, i32 31) %1430 = icmp eq i32 %1429, %port.sroa.43.0.i.i3991.lcssa br i1 %1430, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4039, label %while.body.i.i.i.i4015 while.body.i.i.i.i4015: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4016, %cond.false.i.i.i4014 %1431 = phi ptr [ %1432, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4016 ], [ %.lcssa5616, %cond.false.i.i.i4014 ] br i1 %343, label %if.then.i.i.i.i.i4029, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4016 if.then.i.i.i.i.i4029: ; preds = %while.body.i.i.i.i4015 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i4030 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4016 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4016: ; preds = %if.then.i.i.i.i.i4029, %while.body.i.i.i.i4015 %1432 = phi ptr [ %.pre.i.i4030, %if.then.i.i.i.i.i4029 ], [ %1431, %while.body.i.i.i.i4015 ] %arrayidx.i.i.i11.i.i4017 = getelementptr inbounds nuw i32, ptr %1432, i64 %idxprom.i22.i.i.i.i.i3982 %1433 = load atomic i32, ptr %arrayidx.i.i.i11.i.i4017 monotonic, align 4 %1434 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i3987, i32 %1433, i32 %sub.i.i.i.i19.i.i.i.i3989, i32 31) %cmp.i.not.i.i.i.i4018 = icmp eq i32 %1434, %port.sroa.43.0.i.i3991.lcssa br i1 %cmp.i.not.i.i.i.i4018, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4039, label %while.body.i.i.i.i4015, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4039: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4016, %cond.false.i.i.i4014 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i3987) fence release %1435 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i3964.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i4020 = icmp ne i64 %retval.sroa.2.1.i.i.i3964.lcssa, 0 %cmp2.i.i.i.i19.i.i4021 = icmp eq i64 %1435, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i4022 = select i1 %iszero.i.i.i.i.i18.i.i4020, i1 %cmp2.i.i.i.i19.i.i4021, i1 false %div8.i.i.i21.i.i4023 = lshr i32 %retval.sroa.6.1.i.i.i3963.lcssa, 5 %1436 = and i32 %retval.sroa.6.1.i.i.i3963.lcssa, 31 %idxprom.i.i.i22.i.i4024 = zext nneg i32 %div8.i.i.i21.i.i4023 to i64 %arrayidx.i.i.i23.i.i4025 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i4024 %conv4.i.i.i24.i.i4026 = zext i1 %cmp.i.i.i.i20.i.i4022 to i32 %shl.i.i.i25.i.i4027 = shl nuw i32 %conv4.i.i.i24.i.i4026, %1436 %xor.i.i.i26.i.i4028 = xor i32 %shl.i.i.i25.i.i4027, -1 %1437 = atomicrmw and ptr %arrayidx.i.i.i23.i.i4025, i32 %xor.i.i.i26.i.i4028 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i3987) br label %for.cond.i.i.i4051 for.cond.i.i.i4051: ; preds = %for.inc.i.i.i4086, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4039 %retval.sroa.6.0.i.i.i4052 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4039 ], [ %retval.sroa.6.2.i.i.i4087, %for.inc.i.i.i4086 ] %retval.sroa.2.0.i.i.i4053 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4039 ], [ %retval.sroa.2.2.i.i.i4088, %for.inc.i.i.i4086 ] %retval.sroa.8.0.i.i.i4054 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4039 ], [ %retval.sroa.8.2.i.i.i4089, %for.inc.i.i.i4086 ] %index.0.i.i.i4055 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4039 ], [ %inc.i.i.i4090, %for.inc.i.i.i4086 ] %1438 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i4056 = icmp ult i32 %index.0.i.i.i4055, %1438 %spec.store.select.i.i.i4057 = select i1 %cmp.not.i.i.i4056, i32 %index.0.i.i.i4055, i32 0 %1439 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i4058 = zext i32 %1439 to i64 %div8.i.i.i.i.i4059 = lshr i32 %spec.store.select.i.i.i4057, 5 %1440 = and i32 %spec.store.select.i.i.i4057, 31 %idxprom.i.i.i.i.i4060 = zext nneg i32 %div8.i.i.i.i.i4059 to i64 %arrayidx.i.i.i.i.i4061 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i4060 %1441 = lshr i32 %1439, %2 %conv4.i.i.i.i.i4062 = and i32 %1441, 1 %shl.i.i.i.i.i4063 = shl nuw i32 %conv4.i.i.i.i.i4062, %1440 %1442 = atomicrmw or ptr %arrayidx.i.i.i.i.i4061, i32 %shl.i.i.i.i.i4063 monotonic, align 4 %shl5.i.i.i.i.i4064 = shl nuw i32 1, %1440 %and.i.i.i.i.i4065 = and i32 %shl5.i.i.i.i.i4064, %1442 %tobool3.i.i.i.i4066 = icmp ne i32 %and.i.i.i.i.i4065, 0 %1443 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %1439, i1 %tobool3.i.i.i.i4066) %cmp.i.not.i.i.i4067 = icmp eq i32 %1439, %1443 br i1 %cmp.i.not.i.i.i4067, label %for.inc.i.i.i4086, label %if.then.i.i.i.i4068 if.then.i.i.i.i4068: ; preds = %for.cond.i.i.i4051 fence acquire %1444 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i4069 = zext i32 %spec.store.select.i.i.i4057 to i64 %arrayidx.i.i.i.i4070 = getelementptr inbounds nuw i32, ptr %1444, i64 %idxprom.i.i.i.i4069 %1445 = load atomic i32, ptr %arrayidx.i.i.i.i4070 monotonic, align 4 %1446 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %1439, i1 true) %iszero.i.i.i.i.i.i4071 = icmp eq i32 %1439, 0 %sub.i.i.i.i.i.i4072 = select i1 %iszero.i.i.i.i.i.i4071, i32 -1, i32 %1446 %1447 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1439, i32 %1445, i32 %sub.i.i.i.i.i.i4072, i32 31) %1448 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i4073 = getelementptr inbounds nuw i32, ptr %1448, i64 %idxprom.i.i.i.i4069 %1449 = load atomic i32, ptr %arrayidx.i45.i.i.i4073 monotonic, align 4 %1450 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1439, i32 %1449, i32 %sub.i.i.i.i.i.i4072, i32 31) %cmp.i48.not.i.i.i4074 = icmp eq i32 %1447, %1450 br i1 %cmp.i48.not.i.i.i4074, label %if.end14.i.i.i4151, label %if.then12.i.i.i4075 if.then12.i.i.i4075: ; preds = %if.then.i.i.i.i4068 fence release %1451 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i4058, i1 true) %iszero.i.i.i.i.i.i.i4076 = icmp ne i32 %1439, 0 %cmp2.i.i.i.i.i.i4077 = icmp eq i64 %1451, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i4078 = select i1 %iszero.i.i.i.i.i.i.i4076, i1 %cmp2.i.i.i.i.i.i4077, i1 false %conv4.i.i53.i.i.i4079 = zext i1 %cmp.i.i.i.i.i.i4078 to i32 %shl.i.i54.i.i.i4080 = shl nuw i32 %conv4.i.i53.i.i.i4079, %1440 %xor.i.i.i.i.i4081 = xor i32 %shl.i.i54.i.i.i4080, -1 %1452 = atomicrmw and ptr %arrayidx.i.i.i.i.i4061, i32 %xor.i.i.i.i.i4081 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %1439) br label %cleanup26.i.i.i4082 if.end14.i.i.i4151: ; preds = %if.then.i.i.i.i4068 %1453 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i4058, i1 true) %iszero.i.i.i56.i.i.i4152 = icmp ne i32 %1439, 0 %cmp2.i.i.i.i.i4153 = icmp eq i64 %1453, %sh_prom.i.i.i.i %cmp.i.i.i.i.i4154 = select i1 %iszero.i.i.i56.i.i.i4152, i1 %cmp2.i.i.i.i.i4153, i1 false br i1 %cmp.i.i.i.i.i4154, label %if.then16.i.i.i4156, label %if.end22.i.i.i4155 if.then16.i.i.i4156: ; preds = %if.end14.i.i.i4151 %1454 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i4157 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1454, i64 %idxprom.i.i.i.i4069, i32 1 store i32 1660944387, ptr %opcode.i.i.i4157, align 8, !tbaa !61 %arrayidx21.i.i.i4158 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1454, i64 %idxprom.i.i.i.i4069 store i64 %conv.i.i.i.i.i4058, ptr %arrayidx21.i.i.i4158, align 8, !tbaa !64 br label %if.end22.i.i.i4155 if.end22.i.i.i4155: ; preds = %if.then16.i.i.i4156, %if.end14.i.i.i4151 call void @llvm.nvvm.bar.warp.sync(i32 %1439) br label %cleanup26.i.i.i4082 cleanup26.i.i.i4082: ; preds = %if.end22.i.i.i4155, %if.then12.i.i.i4075 %retval.sroa.6.1.i.i.i4083 = phi i32 [ %retval.sroa.6.0.i.i.i4052, %if.then12.i.i.i4075 ], [ %spec.store.select.i.i.i4057, %if.end22.i.i.i4155 ] %retval.sroa.2.1.i.i.i4084 = phi i64 [ %retval.sroa.2.0.i.i.i4053, %if.then12.i.i.i4075 ], [ %conv.i.i.i.i.i4058, %if.end22.i.i.i4155 ] %retval.sroa.8.1.i.i.i4085 = phi i32 [ %retval.sroa.8.0.i.i.i4054, %if.then12.i.i.i4075 ], [ %1447, %if.end22.i.i.i4155 ] br i1 %cmp.i48.not.i.i.i4074, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4091, label %for.inc.i.i.i4086 for.inc.i.i.i4086: ; preds = %cleanup26.i.i.i4082, %for.cond.i.i.i4051 %retval.sroa.6.2.i.i.i4087 = phi i32 [ %retval.sroa.6.1.i.i.i4083, %cleanup26.i.i.i4082 ], [ %retval.sroa.6.0.i.i.i4052, %for.cond.i.i.i4051 ] %retval.sroa.2.2.i.i.i4088 = phi i64 [ %retval.sroa.2.1.i.i.i4084, %cleanup26.i.i.i4082 ], [ %retval.sroa.2.0.i.i.i4053, %for.cond.i.i.i4051 ] %retval.sroa.8.2.i.i.i4089 = phi i32 [ %retval.sroa.8.1.i.i.i4085, %cleanup26.i.i.i4082 ], [ %retval.sroa.8.0.i.i.i4054, %for.cond.i.i.i4051 ] %inc.i.i.i4090 = add i32 %spec.store.select.i.i.i4057, 1 br label %for.cond.i.i.i4051, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4091: ; preds = %cleanup26.i.i.i4082 %retval.sroa.6.1.i.i.i4083.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i4083, %cleanup26.i.i.i4082 ] %retval.sroa.2.1.i.i.i4084.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i4084, %cleanup26.i.i.i4082 ] %retval.sroa.8.1.i.i.i4085.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i4085, %cleanup26.i.i.i4082 ] fence acquire %1455 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i4094 = shl i32 %retval.sroa.6.1.i.i.i4083.lcssa, 5 %idxprom.i18.i.i.i.i.i4095 = zext i32 %mul.i.i.i.i.i.i4094 to i64 %arrayidx.i19.i.i.i.i.i4096 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1455, i64 %idxprom.i18.i.i.i.i.i4095 %arrayidx.i21.i.i.i.i.i4097 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i4096, i64 %sh_prom.i.i.i.i store i64 7, ptr %arrayidx.i21.i.i.i.i.i4097, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i4099 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i4097, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %arrayidx6.i.i.i.i.i.i.i4099, ptr noundef nonnull align 1 dereferenceable(7) @.str2714, i64 7, i1 false) %tobool.not.i.i.i.i.i.i4100 = icmp eq i32 %retval.sroa.8.1.i.i.i4085.lcssa, 0 %conv.i.i.i.i.i.i4101 = zext i1 %tobool.not.i.i.i.i.i.i4100 to i32 fence release %1456 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i4102 = zext i32 %retval.sroa.6.1.i.i.i4083.lcssa to i64 %arrayidx.i23.i.i.i.i.i4103 = getelementptr inbounds nuw i32, ptr %1456, i64 %idxprom.i22.i.i.i.i.i4102 store atomic i32 %conv.i.i.i.i.i.i4101, ptr %arrayidx.i23.i.i.i.i.i4103 monotonic, align 4 %1457 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i4104 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1457, i64 %idxprom.i22.i.i.i.i.i4102 %1458 = load i64, ptr %arrayidx.i.i4.i.i4104, align 8, !tbaa !64 %conv.i.i7.i.i.i.i4105 = trunc i64 %1458 to i32 %conv.i.i.i.i17.i.i.i.i4107 = trunc i64 %retval.sroa.2.1.i.i.i4084.lcssa to i32 %1459 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i4107, i1 true) %iszero.i.i.i.i18.i.i.i.i4108 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i4107, 0 %sub.i.i.i.i19.i.i.i.i4109 = select i1 %iszero.i.i.i.i18.i.i.i.i4108, i32 -1, i32 %1459 br label %while.cond.i.i.i.i4110 while.cond.i.i.i.i4110: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4122, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4091 %port.sroa.43.0.i.i4111 = phi i32 [ %conv.i.i.i.i.i.i4101, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4091 ], [ %conv.i.i39.i.i.i.i4123, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4122 ] %idx.0.i.i.i.i4112 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4091 ], [ %add.i.i.i.i4125, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4122 ] %cmp.i.i.i2.i4113 = icmp eq i64 %idx.0.i.i.i.i4112, 0 %1460 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i4105, i1 %cmp.i.i.i2.i4113) %tobool.not.i.i.i.i4114 = icmp eq i32 %1460, 0 %1461 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i4115 = getelementptr inbounds nuw i32, ptr %1461, i64 %idxprom.i22.i.i.i.i.i4102 %1462 = load atomic i32, ptr %arrayidx.i22.i.i.i4115 monotonic, align 4 br i1 %tobool.not.i.i.i.i4114, label %cond.false.i.i.i4134, label %cond.false.i11.i.i.i.i4116 cond.false.i11.i.i.i.i4116: ; preds = %while.cond.i.i.i.i4110 %1463 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4107, i32 %1462, i32 %sub.i.i.i.i19.i.i.i.i4109, i32 31) %1464 = icmp eq i32 %1463, %port.sroa.43.0.i.i4111 br i1 %1464, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4121, label %while.body.i.i33.i.i.i.i4117 while.body.i.i33.i.i.i.i4117: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4118, %cond.false.i11.i.i.i.i4116 %1465 = phi ptr [ %1466, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4118 ], [ %1461, %cond.false.i11.i.i.i.i4116 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i4132, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4118 if.then.i.i.i48.i.i.i.i4132: ; preds = %while.body.i.i33.i.i.i.i4117 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i4133 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4118 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4118: ; preds = %if.then.i.i.i48.i.i.i.i4132, %while.body.i.i33.i.i.i.i4117 %1466 = phi ptr [ %.pre.i.i.i.i4133, %if.then.i.i.i48.i.i.i.i4132 ], [ %1465, %while.body.i.i33.i.i.i.i4117 ] %arrayidx.i.i.i35.i.i.i.i4119 = getelementptr inbounds nuw i32, ptr %1466, i64 %idxprom.i22.i.i.i.i.i4102 %1467 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i4119 monotonic, align 4 %1468 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4107, i32 %1467, i32 %sub.i.i.i.i19.i.i.i.i4109, i32 31) %cmp.i.not.i.i36.i.i.i.i4120 = icmp eq i32 %1468, %port.sroa.43.0.i.i4111 br i1 %cmp.i.not.i.i36.i.i.i.i4120, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4121, label %while.body.i.i33.i.i.i.i4117, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4121: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4118, %cond.false.i11.i.i.i.i4116 fence acquire br i1 %cmp.i.i.i2.i4113, label %if.then.i.i20.i.i.i.i.i4126, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4122 if.then.i.i20.i.i.i.i.i4126: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4121 %1469 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i4130 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1469, i64 %idxprom.i18.i.i.i.i.i4095 %arrayidx.i22.i.i.i.i.i4131 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i4130, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %arrayidx.i22.i.i.i.i.i4131, ptr noundef nonnull align 1 dereferenceable(7) @.str2714, i64 7, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4122 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4122: ; preds = %if.then.i.i20.i.i.i.i.i4126, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4121 %conv.i.i39.i.i.i.i4123 = xor i32 %port.sroa.43.0.i.i4111, 1 fence release %1470 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i4124 = getelementptr inbounds nuw i32, ptr %1470, i64 %idxprom.i22.i.i.i.i.i4102 store atomic i32 %conv.i.i39.i.i.i.i4123, ptr %arrayidx.i24.i.i.i.i.i4124 monotonic, align 4 %add.i.i.i.i4125 = add i64 %idx.0.i.i.i.i4112, 64 br label %while.cond.i.i.i.i4110, !llvm.loop !71 cond.false.i.i.i4134: ; preds = %while.cond.i.i.i.i4110 %port.sroa.43.0.i.i4111.lcssa = phi i32 [ %port.sroa.43.0.i.i4111, %while.cond.i.i.i.i4110 ] %.lcssa5614 = phi ptr [ %1461, %while.cond.i.i.i.i4110 ] %.lcssa5613 = phi i32 [ %1462, %while.cond.i.i.i.i4110 ] %1471 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4107, i32 %.lcssa5613, i32 %sub.i.i.i.i19.i.i.i.i4109, i32 31) %1472 = icmp eq i32 %1471, %port.sroa.43.0.i.i4111.lcssa br i1 %1472, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4159, label %while.body.i.i.i.i4135 while.body.i.i.i.i4135: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4136, %cond.false.i.i.i4134 %1473 = phi ptr [ %1474, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4136 ], [ %.lcssa5614, %cond.false.i.i.i4134 ] br i1 %343, label %if.then.i.i.i.i.i4149, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4136 if.then.i.i.i.i.i4149: ; preds = %while.body.i.i.i.i4135 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i4150 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4136 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4136: ; preds = %if.then.i.i.i.i.i4149, %while.body.i.i.i.i4135 %1474 = phi ptr [ %.pre.i.i4150, %if.then.i.i.i.i.i4149 ], [ %1473, %while.body.i.i.i.i4135 ] %arrayidx.i.i.i11.i.i4137 = getelementptr inbounds nuw i32, ptr %1474, i64 %idxprom.i22.i.i.i.i.i4102 %1475 = load atomic i32, ptr %arrayidx.i.i.i11.i.i4137 monotonic, align 4 %1476 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4107, i32 %1475, i32 %sub.i.i.i.i19.i.i.i.i4109, i32 31) %cmp.i.not.i.i.i.i4138 = icmp eq i32 %1476, %port.sroa.43.0.i.i4111.lcssa br i1 %cmp.i.not.i.i.i.i4138, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4159, label %while.body.i.i.i.i4135, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4159: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4136, %cond.false.i.i.i4134 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i4107) fence release %1477 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i4084.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i4140 = icmp ne i64 %retval.sroa.2.1.i.i.i4084.lcssa, 0 %cmp2.i.i.i.i19.i.i4141 = icmp eq i64 %1477, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i4142 = select i1 %iszero.i.i.i.i.i18.i.i4140, i1 %cmp2.i.i.i.i19.i.i4141, i1 false %div8.i.i.i21.i.i4143 = lshr i32 %retval.sroa.6.1.i.i.i4083.lcssa, 5 %1478 = and i32 %retval.sroa.6.1.i.i.i4083.lcssa, 31 %idxprom.i.i.i22.i.i4144 = zext nneg i32 %div8.i.i.i21.i.i4143 to i64 %arrayidx.i.i.i23.i.i4145 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i4144 %conv4.i.i.i24.i.i4146 = zext i1 %cmp.i.i.i.i20.i.i4142 to i32 %shl.i.i.i25.i.i4147 = shl nuw i32 %conv4.i.i.i24.i.i4146, %1478 %xor.i.i.i26.i.i4148 = xor i32 %shl.i.i.i25.i.i4147, -1 %1479 = atomicrmw and ptr %arrayidx.i.i.i23.i.i4145, i32 %xor.i.i.i26.i.i4148 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i4107) %sub95 = sub nsw i32 %TestCount.1.lcssa, %FailCount.2.lcssa call void @llvm.lifetime.start.p0(ptr nonnull %buffer.i.i.i4162) #32, !noalias !165 %cmp7.i.i.i.i.i.i.i4163 = icmp eq i32 %TestCount.1.lcssa, %FailCount.2.lcssa br i1 %cmp7.i.i.i.i.i.i.i4163, label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i4182, label %while.body.lr.ph.i.i.i.i.i.i.i4164 while.body.lr.ph.i.i.i.i.i.i.i4164: ; preds = %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4159 %retval.0.i.i.i.i.i.i.i4165 = call noundef i32 @llvm.abs.i32(i32 %sub95, i1 false) %1480 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i4162, i64 11 br label %while.body.i.i.i.i.i.i.i4166 while.body.i.i.i.i.i.i.i4166: ; preds = %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i4178, %while.body.lr.ph.i.i.i.i.i.i.i4164 %writer.sroa.10.0.i.i.i.i.i4167 = phi i64 [ 0, %while.body.lr.ph.i.i.i.i.i.i.i4164 ], [ %writer.sroa.10.1.i.i.i.i.i4179, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i4178 ] %value.addr.09.i.i.i.i.i.i.i4168 = phi i32 [ %retval.0.i.i.i.i.i.i.i4165, %while.body.lr.ph.i.i.i.i.i.i.i4164 ], [ %div.i.i.i.i.i.i.i.i4169, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i4178 ] %div.i.i.i.i.i.i.i.i4169 = udiv i32 %value.addr.09.i.i.i.i.i.i.i4168, 10 %cmp.i.i.i.i.i.i.i.i.i4170 = icmp eq i64 %writer.sroa.10.0.i.i.i.i.i4167, 11 br i1 %cmp.i.i.i.i.i.i.i.i.i4170, label %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i4178, label %if.then3.i.i.i.i.i.i.i.i4171 if.then3.i.i.i.i.i.i.i.i4171: ; preds = %while.body.i.i.i.i.i.i.i4166 %.neg.i4172 = mul i32 %div.i.i.i.i.i.i.i.i4169, 246 %rem.i.i.i.i.i.i.i.decomposed.i4173 = add i32 %.neg.i4172, %value.addr.09.i.i.i.i.i.i.i4168 %conv.i.i.i.i.i.i.i.i4174 = trunc i32 %rem.i.i.i.i.i.i.i.decomposed.i4173 to i8 %switch.offset.i4175 = or disjoint i8 %conv.i.i.i.i.i.i.i.i4174, 48 %inc.i.i.i.i.i.i.i.i4176 = add i64 %writer.sroa.10.0.i.i.i.i.i4167, 1 %1481 = xor i64 %writer.sroa.10.0.i.i.i.i.i4167, -1 %arrayidx.i.i.i.i.i.i.i.i.i4177 = getelementptr i8, ptr %1480, i64 %1481 store i8 %switch.offset.i4175, ptr %arrayidx.i.i.i.i.i.i.i.i.i4177, align 1, !tbaa !36, !noalias !165 br label %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i4178 _ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i4178: ; preds = %if.then3.i.i.i.i.i.i.i.i4171, %while.body.i.i.i.i.i.i.i4166 %writer.sroa.10.1.i.i.i.i.i4179 = phi i64 [ %inc.i.i.i.i.i.i.i.i4176, %if.then3.i.i.i.i.i.i.i.i4171 ], [ 11, %while.body.i.i.i.i.i.i.i4166 ] %cmp.i.i.i.i.i.i.i4180 = icmp ult i32 %value.addr.09.i.i.i.i.i.i.i4168, 10 %.not.i.i.i.i.i.i.i4181 = or i1 %cmp.i.i.i.i.i.i.i.i.i4170, %cmp.i.i.i.i.i.i.i4180 br i1 %.not.i.i.i.i.i.i.i4181, label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i4182, label %while.body.i.i.i.i.i.i.i4166, !llvm.loop !77 _ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i4182: ; preds = %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i4178, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4159 %writer.sroa.10.2.i.i.i.i.i4183 = phi i64 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4159 ], [ %writer.sroa.10.1.i.i.i.i.i4179, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i4178 ] %.off0.i.i.i.i.i.i4184 = phi i1 [ false, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4159 ], [ %cmp.i.i.i.i.i.i.i.i.i4170, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i4178 ] %cmp.i21.i.i.i.i.i4185 = icmp ne i64 %writer.sroa.10.2.i.i.i.i.i4183, 0 %or.cond.not.i.i.i.i.i4186 = or i1 %.off0.i.i.i.i.i.i4184, %cmp.i21.i.i.i.i.i4185 br i1 %or.cond.not.i.i.i.i.i4186, label %while.end.i.i.i.i.i.i4189, label %if.then3.i.i.lr.ph.i.i.i.i.i4187 if.then3.i.i.lr.ph.i.i.i.i.i4187: ; preds = %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i4182 %arrayidx.i.i.i.i.i.i.i.i4188 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i4162, i64 10 store i8 48, ptr %arrayidx.i.i.i.i.i.i.i.i4188, align 2, !tbaa !36, !noalias !165 br label %while.end.i.i.i.i.i.i4189 while.end.i.i.i.i.i.i4189: ; preds = %if.then3.i.i.lr.ph.i.i.i.i.i4187, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i4182 %writer.sroa.10.4.i.i.i.i.i4190 = phi i64 [ %writer.sroa.10.2.i.i.i.i.i4183, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i4182 ], [ 1, %if.then3.i.i.lr.ph.i.i.i.i.i4187 ] %cmp4.i.i.i.i.i.i4191 = icmp sgt i32 %sub95, -1 %brmerge.i.i.i.i.i.i4192 = or i1 %cmp4.i.i.i.i.i.i4191, %.off0.i.i.i.i.i.i4184 br i1 %brmerge.i.i.i.i.i.i4192, label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i4198, label %if.then.i14.i.i.i.i.i.i4193 if.then.i14.i.i.i.i.i.i4193: ; preds = %while.end.i.i.i.i.i.i4189 %cmp.i.i17.i.i.i.i.i.i4194 = icmp eq i64 %writer.sroa.10.4.i.i.i.i.i4190, 11 br i1 %cmp.i.i17.i.i.i.i.i.i4194, label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i4198, label %if.then3.i18.i.i.i.i.i.i4195 if.then3.i18.i.i.i.i.i.i4195: ; preds = %if.then.i14.i.i.i.i.i.i4193 %inc.i20.i.i.i.i.i.i4196 = add i64 %writer.sroa.10.4.i.i.i.i.i4190, 1 %1482 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i4162, i64 11 %1483 = xor i64 %writer.sroa.10.4.i.i.i.i.i4190, -1 %arrayidx.i.i19.i.i.i.i.i.i4197 = getelementptr i8, ptr %1482, i64 %1483 store i8 45, ptr %arrayidx.i.i19.i.i.i.i.i.i4197, align 1, !tbaa !36, !noalias !165 br label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i4198 _ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i4198: ; preds = %if.then3.i18.i.i.i.i.i.i4195, %if.then.i14.i.i.i.i.i.i4193, %while.end.i.i.i.i.i.i4189 %writer.sroa.10.5.i.i.i.i.i4199 = phi i64 [ %writer.sroa.10.4.i.i.i.i.i4190, %while.end.i.i.i.i.i.i4189 ], [ %inc.i20.i.i.i.i.i.i4196, %if.then3.i18.i.i.i.i.i.i4195 ], [ 11, %if.then.i14.i.i.i.i.i.i4193 ] %written.i.i.i.i.i4200 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i4162, i64 16 store i64 %writer.sroa.10.5.i.i.i.i.i4199, ptr %written.i.i.i.i.i4200, align 8, !tbaa !40, !noalias !165 %cmp.i.not.i.i.i.i.i.i4201 = icmp eq i64 %writer.sroa.10.5.i.i.i.i.i4199, 0 br i1 %cmp.i.not.i.i.i.i.i.i4201, label %if.end.i.i.i.i.i.i.i4220, label %if.then.i.i.i.i.i.i.i4202 if.then.i.i.i.i.i.i.i4202: ; preds = %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i4198 %inc.i.i.i.i.i2.i.i.i4203 = add i64 %writer.sroa.10.5.i.i.i.i.i4199, 1 %cmp.not.i.i.not.i.i.i.i.i.i4204 = icmp eq i64 %inc.i.i.i.i.i2.i.i.i4203, 0 br i1 %cmp.not.i.i.not.i.i.i.i.i.i4204, label %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i4218, label %if.end.i.i.i.i.i.i.i.i4205 if.end.i.i.i.i.i.i.i.i4205: ; preds = %if.then.i.i.i.i.i.i.i4202 %cmp2.i.i.i.i.i.i.i.i4206 = icmp ult i64 %inc.i.i.i.i.i2.i.i.i4203, 1676976733973595601 %mul.i.i.i.i.i.i.i.i4207 = mul nuw i64 %inc.i.i.i.i.i2.i.i.i4203, 11 %div18.i.i.i.i.i.i.i.i4208 = lshr i64 %mul.i.i.i.i.i.i.i.i4207, 3 %new_capacity.addr.0.i.i.i.i.i.i.i.i4209 = select i1 %cmp2.i.i.i.i.i.i.i.i4206, i64 %div18.i.i.i.i.i.i.i.i4208, i64 %inc.i.i.i.i.i2.i.i.i4203 %sub.i.i.i4210 = add i64 %new_capacity.addr.0.i.i.i.i.i.i.i.i4209, 7 %div2.i.i.i4211 = and i64 %sub.i.i.i4210, -8 %1484 = load ptr, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34, !noalias !165 %add.ptr.i.i.i4212 = getelementptr inbounds nuw i8, ptr %1484, i64 %div2.i.i.i4211 store ptr %add.ptr.i.i.i4212, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34, !noalias !165 %sub.ptr.lhs.cast.i.i.i4213 = ptrtoint ptr %add.ptr.i.i.i4212 to i64 %sub.ptr.sub.i.i.i4214 = sub i64 %sub.ptr.lhs.cast.i.i.i4213, ptrtoint (ptr @_ZN12_GLOBAL__N_16memoryE to i64) %cmp.i.i.i4215 = icmp ugt i64 %sub.ptr.sub.i.i.i4214, 65335 %cond.i.i.i4216 = select i1 %cmp.i.i.i4215, ptr null, ptr %1484 %tobool.i.i.i.i.i.i.i.i4217 = icmp ne ptr %cond.i.i.i4216, null call void @llvm.assume(i1 %tobool.i.i.i.i.i.i.i.i4217) br label %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i4218 _ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i4218: ; preds = %if.end.i.i.i.i.i.i.i.i4205, %if.then.i.i.i.i.i.i.i4202 %agg.tmp.sroa.0.0.i4219 = phi ptr [ @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE, %if.then.i.i.i.i.i.i.i4202 ], [ %cond.i.i.i4216, %if.end.i.i.i.i.i.i.i.i4205 ] call void @llvm.memset.p0.i64(ptr nonnull align 1 %agg.tmp.sroa.0.0.i4219, i8 0, i64 %writer.sroa.10.5.i.i.i.i.i4199, i1 false), !noalias !165 br label %if.end.i.i.i.i.i.i.i4220 if.end.i.i.i.i.i.i.i4220: ; preds = %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i4218, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i4198 %agg.tmp.sroa.0.1.i4221 = phi ptr [ @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i4198 ], [ %agg.tmp.sroa.0.0.i4219, %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i4218 ] %cmp.not.i6.i.i.i.i.i.i.i4222 = icmp eq ptr %agg.tmp.sroa.0.1.i4221, @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE br i1 %cmp.not.i6.i.i.i.i.i.i.i4222, label %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i4225, label %if.then.i.i.i.i.i3.i.i.i4223 if.then.i.i.i.i.i3.i.i.i4223: ; preds = %if.end.i.i.i.i.i.i.i4220 %arrayidx.i.i.i.i.i4.i.i.i4224 = getelementptr inbounds nuw i8, ptr %agg.tmp.sroa.0.1.i4221, i64 %writer.sroa.10.5.i.i.i.i.i4199 store i8 0, ptr %arrayidx.i.i.i.i.i4.i.i.i4224, align 1, !tbaa !36, !noalias !165 br label %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i4225 _ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i4225: ; preds = %if.then.i.i.i.i.i3.i.i.i4223, %if.end.i.i.i.i.i.i.i4220 %add.ptr.i.i.i.i4226 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i4162, i64 11 %idx.neg.i.i.i.i4227 = sub i64 0, %writer.sroa.10.5.i.i.i.i.i4199 %add.ptr5.i.i.i.i4228 = getelementptr inbounds i8, ptr %add.ptr.i.i.i.i4226, i64 %idx.neg.i.i.i.i4227 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %agg.tmp.sroa.0.1.i4221, ptr nonnull align 1 %add.ptr5.i.i.i.i4228, i64 %writer.sroa.10.5.i.i.i.i.i4199, i1 false), !alias.scope !170, !noalias !165 call void @llvm.lifetime.end.p0(ptr nonnull %buffer.i.i.i4162) #32, !noalias !165 br label %for.cond.i.i.i4231 for.cond.i.i.i4231: ; preds = %for.inc.i.i.i4266, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i4225 %retval.sroa.6.0.i.i.i4232 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i4225 ], [ %retval.sroa.6.2.i.i.i4267, %for.inc.i.i.i4266 ] %retval.sroa.2.0.i.i.i4233 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i4225 ], [ %retval.sroa.2.2.i.i.i4268, %for.inc.i.i.i4266 ] %retval.sroa.8.0.i.i.i4234 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i4225 ], [ %retval.sroa.8.2.i.i.i4269, %for.inc.i.i.i4266 ] %index.0.i.i.i4235 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i4225 ], [ %inc.i.i.i4270, %for.inc.i.i.i4266 ] %1485 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i4236 = icmp ult i32 %index.0.i.i.i4235, %1485 %spec.store.select.i.i.i4237 = select i1 %cmp.not.i.i.i4236, i32 %index.0.i.i.i4235, i32 0 %1486 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i4238 = zext i32 %1486 to i64 %div8.i.i.i.i.i4239 = lshr i32 %spec.store.select.i.i.i4237, 5 %1487 = and i32 %spec.store.select.i.i.i4237, 31 %idxprom.i.i.i.i.i4240 = zext nneg i32 %div8.i.i.i.i.i4239 to i64 %arrayidx.i.i.i.i.i4241 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i4240 %1488 = lshr i32 %1486, %2 %conv4.i.i.i.i.i4242 = and i32 %1488, 1 %shl.i.i.i.i.i4243 = shl nuw i32 %conv4.i.i.i.i.i4242, %1487 %1489 = atomicrmw or ptr %arrayidx.i.i.i.i.i4241, i32 %shl.i.i.i.i.i4243 monotonic, align 4 %shl5.i.i.i.i.i4244 = shl nuw i32 1, %1487 %and.i.i.i.i.i4245 = and i32 %shl5.i.i.i.i.i4244, %1489 %tobool3.i.i.i.i4246 = icmp ne i32 %and.i.i.i.i.i4245, 0 %1490 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %1486, i1 %tobool3.i.i.i.i4246) %cmp.i.not.i.i.i4247 = icmp eq i32 %1486, %1490 br i1 %cmp.i.not.i.i.i4247, label %for.inc.i.i.i4266, label %if.then.i.i.i.i4248 if.then.i.i.i.i4248: ; preds = %for.cond.i.i.i4231 fence acquire %1491 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i4249 = zext i32 %spec.store.select.i.i.i4237 to i64 %arrayidx.i.i.i.i4250 = getelementptr inbounds nuw i32, ptr %1491, i64 %idxprom.i.i.i.i4249 %1492 = load atomic i32, ptr %arrayidx.i.i.i.i4250 monotonic, align 4 %1493 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %1486, i1 true) %iszero.i.i.i.i.i.i4251 = icmp eq i32 %1486, 0 %sub.i.i.i.i.i.i4252 = select i1 %iszero.i.i.i.i.i.i4251, i32 -1, i32 %1493 %1494 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1486, i32 %1492, i32 %sub.i.i.i.i.i.i4252, i32 31) %1495 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i4253 = getelementptr inbounds nuw i32, ptr %1495, i64 %idxprom.i.i.i.i4249 %1496 = load atomic i32, ptr %arrayidx.i45.i.i.i4253 monotonic, align 4 %1497 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1486, i32 %1496, i32 %sub.i.i.i.i.i.i4252, i32 31) %cmp.i48.not.i.i.i4254 = icmp eq i32 %1494, %1497 br i1 %cmp.i48.not.i.i.i4254, label %if.end14.i.i.i4332, label %if.then12.i.i.i4255 if.then12.i.i.i4255: ; preds = %if.then.i.i.i.i4248 fence release %1498 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i4238, i1 true) %iszero.i.i.i.i.i.i.i4256 = icmp ne i32 %1486, 0 %cmp2.i.i.i.i.i.i4257 = icmp eq i64 %1498, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i4258 = select i1 %iszero.i.i.i.i.i.i.i4256, i1 %cmp2.i.i.i.i.i.i4257, i1 false %conv4.i.i53.i.i.i4259 = zext i1 %cmp.i.i.i.i.i.i4258 to i32 %shl.i.i54.i.i.i4260 = shl nuw i32 %conv4.i.i53.i.i.i4259, %1487 %xor.i.i.i.i.i4261 = xor i32 %shl.i.i54.i.i.i4260, -1 %1499 = atomicrmw and ptr %arrayidx.i.i.i.i.i4241, i32 %xor.i.i.i.i.i4261 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %1486) br label %cleanup26.i.i.i4262 if.end14.i.i.i4332: ; preds = %if.then.i.i.i.i4248 %1500 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i4238, i1 true) %iszero.i.i.i56.i.i.i4333 = icmp ne i32 %1486, 0 %cmp2.i.i.i.i.i4334 = icmp eq i64 %1500, %sh_prom.i.i.i.i %cmp.i.i.i.i.i4335 = select i1 %iszero.i.i.i56.i.i.i4333, i1 %cmp2.i.i.i.i.i4334, i1 false br i1 %cmp.i.i.i.i.i4335, label %if.then16.i.i.i4337, label %if.end22.i.i.i4336 if.then16.i.i.i4337: ; preds = %if.end14.i.i.i4332 %1501 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i4338 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1501, i64 %idxprom.i.i.i.i4249, i32 1 store i32 1660944387, ptr %opcode.i.i.i4338, align 8, !tbaa !61 %arrayidx21.i.i.i4339 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1501, i64 %idxprom.i.i.i.i4249 store i64 %conv.i.i.i.i.i4238, ptr %arrayidx21.i.i.i4339, align 8, !tbaa !64 br label %if.end22.i.i.i4336 if.end22.i.i.i4336: ; preds = %if.then16.i.i.i4337, %if.end14.i.i.i4332 call void @llvm.nvvm.bar.warp.sync(i32 %1486) br label %cleanup26.i.i.i4262 cleanup26.i.i.i4262: ; preds = %if.end22.i.i.i4336, %if.then12.i.i.i4255 %retval.sroa.6.1.i.i.i4263 = phi i32 [ %retval.sroa.6.0.i.i.i4232, %if.then12.i.i.i4255 ], [ %spec.store.select.i.i.i4237, %if.end22.i.i.i4336 ] %retval.sroa.2.1.i.i.i4264 = phi i64 [ %retval.sroa.2.0.i.i.i4233, %if.then12.i.i.i4255 ], [ %conv.i.i.i.i.i4238, %if.end22.i.i.i4336 ] %retval.sroa.8.1.i.i.i4265 = phi i32 [ %retval.sroa.8.0.i.i.i4234, %if.then12.i.i.i4255 ], [ %1494, %if.end22.i.i.i4336 ] br i1 %cmp.i48.not.i.i.i4254, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4271, label %for.inc.i.i.i4266 for.inc.i.i.i4266: ; preds = %cleanup26.i.i.i4262, %for.cond.i.i.i4231 %retval.sroa.6.2.i.i.i4267 = phi i32 [ %retval.sroa.6.1.i.i.i4263, %cleanup26.i.i.i4262 ], [ %retval.sroa.6.0.i.i.i4232, %for.cond.i.i.i4231 ] %retval.sroa.2.2.i.i.i4268 = phi i64 [ %retval.sroa.2.1.i.i.i4264, %cleanup26.i.i.i4262 ], [ %retval.sroa.2.0.i.i.i4233, %for.cond.i.i.i4231 ] %retval.sroa.8.2.i.i.i4269 = phi i32 [ %retval.sroa.8.1.i.i.i4265, %cleanup26.i.i.i4262 ], [ %retval.sroa.8.0.i.i.i4234, %for.cond.i.i.i4231 ] %inc.i.i.i4270 = add i32 %spec.store.select.i.i.i4237, 1 br label %for.cond.i.i.i4231, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4271: ; preds = %cleanup26.i.i.i4262 %retval.sroa.6.1.i.i.i4263.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i4263, %cleanup26.i.i.i4262 ] %retval.sroa.2.1.i.i.i4264.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i4264, %cleanup26.i.i.i4262 ] %retval.sroa.8.1.i.i.i4265.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i4265, %cleanup26.i.i.i4262 ] fence acquire %1502 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i4274 = shl i32 %retval.sroa.6.1.i.i.i4263.lcssa, 5 %idxprom.i18.i.i.i.i.i4275 = zext i32 %mul.i.i.i.i.i.i4274 to i64 %arrayidx.i19.i.i.i.i.i4276 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1502, i64 %idxprom.i18.i.i.i.i.i4275 %arrayidx.i21.i.i.i.i.i4277 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i4276, i64 %sh_prom.i.i.i.i store i64 %writer.sroa.10.5.i.i.i.i.i4199, ptr %arrayidx.i21.i.i.i.i.i4277, align 8, !tbaa !67 %spec.select.i.i.i.i.i.i.i4278 = call i64 @llvm.umin.i64(i64 %writer.sroa.10.5.i.i.i.i.i4199, i64 56) %arrayidx6.i.i.i.i.i.i.i4279 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i4277, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %arrayidx6.i.i.i.i.i.i.i4279, ptr nonnull align 1 %agg.tmp.sroa.0.1.i4221, i64 %spec.select.i.i.i.i.i.i.i4278, i1 false) %tobool.not.i.i.i.i.i.i4280 = icmp eq i32 %retval.sroa.8.1.i.i.i4265.lcssa, 0 %conv.i.i.i.i.i.i4281 = zext i1 %tobool.not.i.i.i.i.i.i4280 to i32 fence release %1503 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i4282 = zext i32 %retval.sroa.6.1.i.i.i4263.lcssa to i64 %arrayidx.i23.i.i.i.i.i4283 = getelementptr inbounds nuw i32, ptr %1503, i64 %idxprom.i22.i.i.i.i.i4282 store atomic i32 %conv.i.i.i.i.i.i4281, ptr %arrayidx.i23.i.i.i.i.i4283 monotonic, align 4 %1504 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i4284 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1504, i64 %idxprom.i22.i.i.i.i.i4282 %1505 = load i64, ptr %arrayidx.i.i4.i.i4284, align 8, !tbaa !64 %conv.i.i7.i.i.i.i4285 = trunc i64 %1505 to i32 %conv.i.i.i.i17.i.i.i.i4287 = trunc i64 %retval.sroa.2.1.i.i.i4264.lcssa to i32 %1506 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i4287, i1 true) %iszero.i.i.i.i18.i.i.i.i4288 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i4287, 0 %sub.i.i.i.i19.i.i.i.i4289 = select i1 %iszero.i.i.i.i18.i.i.i.i4288, i32 -1, i32 %1506 br label %while.cond.i.i.i.i4290 while.cond.i.i.i.i4290: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4302, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4271 %port.sroa.43.0.i.i4291 = phi i32 [ %conv.i.i.i.i.i.i4281, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4271 ], [ %conv.i.i39.i.i.i.i4303, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4302 ] %idx.0.i.i.i.i4292 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4271 ], [ %add.i.i.i.i4305, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4302 ] %cmp.i.i.i.i4293 = icmp ult i64 %idx.0.i.i.i.i4292, %writer.sroa.10.5.i.i.i.i.i4199 %1507 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i4285, i1 %cmp.i.i.i.i4293) %tobool.not.i.i.i.i4294 = icmp eq i32 %1507, 0 %1508 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i4295 = getelementptr inbounds nuw i32, ptr %1508, i64 %idxprom.i22.i.i.i.i.i4282 %1509 = load atomic i32, ptr %arrayidx.i22.i.i.i4295 monotonic, align 4 br i1 %tobool.not.i.i.i.i4294, label %cond.false.i.i.i4314, label %cond.false.i11.i.i.i.i4296 cond.false.i11.i.i.i.i4296: ; preds = %while.cond.i.i.i.i4290 %1510 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4287, i32 %1509, i32 %sub.i.i.i.i19.i.i.i.i4289, i32 31) %1511 = icmp eq i32 %1510, %port.sroa.43.0.i.i4291 br i1 %1511, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4301, label %while.body.i.i33.i.i.i.i4297 while.body.i.i33.i.i.i.i4297: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4298, %cond.false.i11.i.i.i.i4296 %1512 = phi ptr [ %1513, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4298 ], [ %1508, %cond.false.i11.i.i.i.i4296 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i4312, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4298 if.then.i.i.i48.i.i.i.i4312: ; preds = %while.body.i.i33.i.i.i.i4297 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i4313 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4298 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4298: ; preds = %if.then.i.i.i48.i.i.i.i4312, %while.body.i.i33.i.i.i.i4297 %1513 = phi ptr [ %.pre.i.i.i.i4313, %if.then.i.i.i48.i.i.i.i4312 ], [ %1512, %while.body.i.i33.i.i.i.i4297 ] %arrayidx.i.i.i35.i.i.i.i4299 = getelementptr inbounds nuw i32, ptr %1513, i64 %idxprom.i22.i.i.i.i.i4282 %1514 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i4299 monotonic, align 4 %1515 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4287, i32 %1514, i32 %sub.i.i.i.i19.i.i.i.i4289, i32 31) %cmp.i.not.i.i36.i.i.i.i4300 = icmp eq i32 %1515, %port.sroa.43.0.i.i4291 br i1 %cmp.i.not.i.i36.i.i.i.i4300, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4301, label %while.body.i.i33.i.i.i.i4297, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4301: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4298, %cond.false.i11.i.i.i.i4296 fence acquire br i1 %cmp.i.i.i.i4293, label %if.then.i.i20.i.i.i.i.i4306, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4302 if.then.i.i20.i.i.i.i.i4306: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4301 %add.ptr.i.i.i.i.i.i.i.i4307 = getelementptr inbounds nuw i8, ptr %agg.tmp.sroa.0.1.i4221, i64 %idx.0.i.i.i.i4292 %sub.i.i.i.i.i.i.i4308 = sub nuw i64 %writer.sroa.10.5.i.i.i.i.i4199, %idx.0.i.i.i.i4292 %spec.select.i.i.i47.i.i.i.i4309 = call i64 @llvm.umin.i64(i64 %sub.i.i.i.i.i.i.i4308, i64 64) %1516 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i4310 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1516, i64 %idxprom.i18.i.i.i.i.i4275 %arrayidx.i22.i.i.i.i.i4311 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i4310, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr align 1 %arrayidx.i22.i.i.i.i.i4311, ptr nonnull align 1 %add.ptr.i.i.i.i.i.i.i.i4307, i64 %spec.select.i.i.i47.i.i.i.i4309, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4302 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4302: ; preds = %if.then.i.i20.i.i.i.i.i4306, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4301 %conv.i.i39.i.i.i.i4303 = xor i32 %port.sroa.43.0.i.i4291, 1 fence release %1517 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i4304 = getelementptr inbounds nuw i32, ptr %1517, i64 %idxprom.i22.i.i.i.i.i4282 store atomic i32 %conv.i.i39.i.i.i.i4303, ptr %arrayidx.i24.i.i.i.i.i4304 monotonic, align 4 %add.i.i.i.i4305 = add i64 %idx.0.i.i.i.i4292, 64 br label %while.cond.i.i.i.i4290, !llvm.loop !71 cond.false.i.i.i4314: ; preds = %while.cond.i.i.i.i4290 %port.sroa.43.0.i.i4291.lcssa = phi i32 [ %port.sroa.43.0.i.i4291, %while.cond.i.i.i.i4290 ] %.lcssa5612 = phi ptr [ %1508, %while.cond.i.i.i.i4290 ] %.lcssa5611 = phi i32 [ %1509, %while.cond.i.i.i.i4290 ] %1518 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4287, i32 %.lcssa5611, i32 %sub.i.i.i.i19.i.i.i.i4289, i32 31) %1519 = icmp eq i32 %1518, %port.sroa.43.0.i.i4291.lcssa br i1 %1519, label %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i4319, label %while.body.i.i.i.i4315 while.body.i.i.i.i4315: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4316, %cond.false.i.i.i4314 %1520 = phi ptr [ %1521, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4316 ], [ %.lcssa5612, %cond.false.i.i.i4314 ] br i1 %343, label %if.then.i.i.i.i.i4330, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4316 if.then.i.i.i.i.i4330: ; preds = %while.body.i.i.i.i4315 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i4331 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4316 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4316: ; preds = %if.then.i.i.i.i.i4330, %while.body.i.i.i.i4315 %1521 = phi ptr [ %.pre.i.i4331, %if.then.i.i.i.i.i4330 ], [ %1520, %while.body.i.i.i.i4315 ] %arrayidx.i.i.i11.i.i4317 = getelementptr inbounds nuw i32, ptr %1521, i64 %idxprom.i22.i.i.i.i.i4282 %1522 = load atomic i32, ptr %arrayidx.i.i.i11.i.i4317 monotonic, align 4 %1523 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4287, i32 %1522, i32 %sub.i.i.i.i19.i.i.i.i4289, i32 31) %cmp.i.not.i.i.i.i4318 = icmp eq i32 %1523, %port.sroa.43.0.i.i4291.lcssa br i1 %cmp.i.not.i.i.i.i4318, label %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i4319, label %while.body.i.i.i.i4315, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i4319: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4316, %cond.false.i.i.i4314 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i4287) fence release %1524 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i4264.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i4320 = icmp ne i64 %retval.sroa.2.1.i.i.i4264.lcssa, 0 %cmp2.i.i.i.i19.i.i4321 = icmp eq i64 %1524, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i4322 = select i1 %iszero.i.i.i.i.i18.i.i4320, i1 %cmp2.i.i.i.i19.i.i4321, i1 false %div8.i.i.i21.i.i4323 = lshr i32 %retval.sroa.6.1.i.i.i4263.lcssa, 5 %1525 = and i32 %retval.sroa.6.1.i.i.i4263.lcssa, 31 %idxprom.i.i.i22.i.i4324 = zext nneg i32 %div8.i.i.i21.i.i4323 to i64 %arrayidx.i.i.i23.i.i4325 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i4324 %conv4.i.i.i24.i.i4326 = zext i1 %cmp.i.i.i.i20.i.i4322 to i32 %shl.i.i.i25.i.i4327 = shl nuw i32 %conv4.i.i.i24.i.i4326, %1525 %xor.i.i.i26.i.i4328 = xor i32 %shl.i.i.i25.i.i4327, -1 %1526 = atomicrmw and ptr %arrayidx.i.i.i23.i.i4325, i32 %xor.i.i.i26.i.i4328 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i4287) call void @llvm.lifetime.start.p0(ptr nonnull %ch.addr.i4343) store i8 32, ptr %ch.addr.i4343, align 1, !tbaa !36 br label %for.cond.i.i.i4346 for.cond.i.i.i4346: ; preds = %for.inc.i.i.i4381, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i4319 %retval.sroa.6.0.i.i.i4347 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i4319 ], [ %retval.sroa.6.2.i.i.i4382, %for.inc.i.i.i4381 ] %retval.sroa.2.0.i.i.i4348 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i4319 ], [ %retval.sroa.2.2.i.i.i4383, %for.inc.i.i.i4381 ] %retval.sroa.8.0.i.i.i4349 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i4319 ], [ %retval.sroa.8.2.i.i.i4384, %for.inc.i.i.i4381 ] %index.0.i.i.i4350 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i4319 ], [ %inc.i.i.i4385, %for.inc.i.i.i4381 ] %1527 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i4351 = icmp ult i32 %index.0.i.i.i4350, %1527 %spec.store.select.i.i.i4352 = select i1 %cmp.not.i.i.i4351, i32 %index.0.i.i.i4350, i32 0 %1528 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i4353 = zext i32 %1528 to i64 %div8.i.i.i.i.i4354 = lshr i32 %spec.store.select.i.i.i4352, 5 %1529 = and i32 %spec.store.select.i.i.i4352, 31 %idxprom.i.i.i.i.i4355 = zext nneg i32 %div8.i.i.i.i.i4354 to i64 %arrayidx.i.i.i.i.i4356 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i4355 %1530 = lshr i32 %1528, %2 %conv4.i.i.i.i.i4357 = and i32 %1530, 1 %shl.i.i.i.i.i4358 = shl nuw i32 %conv4.i.i.i.i.i4357, %1529 %1531 = atomicrmw or ptr %arrayidx.i.i.i.i.i4356, i32 %shl.i.i.i.i.i4358 monotonic, align 4 %shl5.i.i.i.i.i4359 = shl nuw i32 1, %1529 %and.i.i.i.i.i4360 = and i32 %shl5.i.i.i.i.i4359, %1531 %tobool3.i.i.i.i4361 = icmp ne i32 %and.i.i.i.i.i4360, 0 %1532 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %1528, i1 %tobool3.i.i.i.i4361) %cmp.i.not.i.i.i4362 = icmp eq i32 %1528, %1532 br i1 %cmp.i.not.i.i.i4362, label %for.inc.i.i.i4381, label %if.then.i.i.i.i4363 if.then.i.i.i.i4363: ; preds = %for.cond.i.i.i4346 fence acquire %1533 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i4364 = zext i32 %spec.store.select.i.i.i4352 to i64 %arrayidx.i.i.i.i4365 = getelementptr inbounds nuw i32, ptr %1533, i64 %idxprom.i.i.i.i4364 %1534 = load atomic i32, ptr %arrayidx.i.i.i.i4365 monotonic, align 4 %1535 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %1528, i1 true) %iszero.i.i.i.i.i.i4366 = icmp eq i32 %1528, 0 %sub.i.i.i.i.i.i4367 = select i1 %iszero.i.i.i.i.i.i4366, i32 -1, i32 %1535 %1536 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1528, i32 %1534, i32 %sub.i.i.i.i.i.i4367, i32 31) %1537 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i4368 = getelementptr inbounds nuw i32, ptr %1537, i64 %idxprom.i.i.i.i4364 %1538 = load atomic i32, ptr %arrayidx.i45.i.i.i4368 monotonic, align 4 %1539 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1528, i32 %1538, i32 %sub.i.i.i.i.i.i4367, i32 31) %cmp.i48.not.i.i.i4369 = icmp eq i32 %1536, %1539 br i1 %cmp.i48.not.i.i.i4369, label %if.end14.i.i.i4446, label %if.then12.i.i.i4370 if.then12.i.i.i4370: ; preds = %if.then.i.i.i.i4363 fence release %1540 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i4353, i1 true) %iszero.i.i.i.i.i.i.i4371 = icmp ne i32 %1528, 0 %cmp2.i.i.i.i.i.i4372 = icmp eq i64 %1540, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i4373 = select i1 %iszero.i.i.i.i.i.i.i4371, i1 %cmp2.i.i.i.i.i.i4372, i1 false %conv4.i.i53.i.i.i4374 = zext i1 %cmp.i.i.i.i.i.i4373 to i32 %shl.i.i54.i.i.i4375 = shl nuw i32 %conv4.i.i53.i.i.i4374, %1529 %xor.i.i.i.i.i4376 = xor i32 %shl.i.i54.i.i.i4375, -1 %1541 = atomicrmw and ptr %arrayidx.i.i.i.i.i4356, i32 %xor.i.i.i.i.i4376 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %1528) br label %cleanup26.i.i.i4377 if.end14.i.i.i4446: ; preds = %if.then.i.i.i.i4363 %1542 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i4353, i1 true) %iszero.i.i.i56.i.i.i4447 = icmp ne i32 %1528, 0 %cmp2.i.i.i.i.i4448 = icmp eq i64 %1542, %sh_prom.i.i.i.i %cmp.i.i.i.i.i4449 = select i1 %iszero.i.i.i56.i.i.i4447, i1 %cmp2.i.i.i.i.i4448, i1 false br i1 %cmp.i.i.i.i.i4449, label %if.then16.i.i.i4451, label %if.end22.i.i.i4450 if.then16.i.i.i4451: ; preds = %if.end14.i.i.i4446 %1543 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i4452 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1543, i64 %idxprom.i.i.i.i4364, i32 1 store i32 1660944387, ptr %opcode.i.i.i4452, align 8, !tbaa !61 %arrayidx21.i.i.i4453 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1543, i64 %idxprom.i.i.i.i4364 store i64 %conv.i.i.i.i.i4353, ptr %arrayidx21.i.i.i4453, align 8, !tbaa !64 br label %if.end22.i.i.i4450 if.end22.i.i.i4450: ; preds = %if.then16.i.i.i4451, %if.end14.i.i.i4446 call void @llvm.nvvm.bar.warp.sync(i32 %1528) br label %cleanup26.i.i.i4377 cleanup26.i.i.i4377: ; preds = %if.end22.i.i.i4450, %if.then12.i.i.i4370 %retval.sroa.6.1.i.i.i4378 = phi i32 [ %retval.sroa.6.0.i.i.i4347, %if.then12.i.i.i4370 ], [ %spec.store.select.i.i.i4352, %if.end22.i.i.i4450 ] %retval.sroa.2.1.i.i.i4379 = phi i64 [ %retval.sroa.2.0.i.i.i4348, %if.then12.i.i.i4370 ], [ %conv.i.i.i.i.i4353, %if.end22.i.i.i4450 ] %retval.sroa.8.1.i.i.i4380 = phi i32 [ %retval.sroa.8.0.i.i.i4349, %if.then12.i.i.i4370 ], [ %1536, %if.end22.i.i.i4450 ] br i1 %cmp.i48.not.i.i.i4369, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4386, label %for.inc.i.i.i4381 for.inc.i.i.i4381: ; preds = %cleanup26.i.i.i4377, %for.cond.i.i.i4346 %retval.sroa.6.2.i.i.i4382 = phi i32 [ %retval.sroa.6.1.i.i.i4378, %cleanup26.i.i.i4377 ], [ %retval.sroa.6.0.i.i.i4347, %for.cond.i.i.i4346 ] %retval.sroa.2.2.i.i.i4383 = phi i64 [ %retval.sroa.2.1.i.i.i4379, %cleanup26.i.i.i4377 ], [ %retval.sroa.2.0.i.i.i4348, %for.cond.i.i.i4346 ] %retval.sroa.8.2.i.i.i4384 = phi i32 [ %retval.sroa.8.1.i.i.i4380, %cleanup26.i.i.i4377 ], [ %retval.sroa.8.0.i.i.i4349, %for.cond.i.i.i4346 ] %inc.i.i.i4385 = add i32 %spec.store.select.i.i.i4352, 1 br label %for.cond.i.i.i4346, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4386: ; preds = %cleanup26.i.i.i4377 %retval.sroa.6.1.i.i.i4378.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i4378, %cleanup26.i.i.i4377 ] %retval.sroa.2.1.i.i.i4379.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i4379, %cleanup26.i.i.i4377 ] %retval.sroa.8.1.i.i.i4380.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i4380, %cleanup26.i.i.i4377 ] fence acquire %1544 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i4389 = shl i32 %retval.sroa.6.1.i.i.i4378.lcssa, 5 %idxprom.i18.i.i.i.i.i4390 = zext i32 %mul.i.i.i.i.i.i4389 to i64 %arrayidx.i19.i.i.i.i.i4391 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1544, i64 %idxprom.i18.i.i.i.i.i4390 %arrayidx.i21.i.i.i.i.i4392 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i4391, i64 %sh_prom.i.i.i.i store i64 1, ptr %arrayidx.i21.i.i.i.i.i4392, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i4394 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i4392, i64 8 %1545 = load i8, ptr %ch.addr.i4343, align 1 store i8 %1545, ptr %arrayidx6.i.i.i.i.i.i.i4394, align 8 %tobool.not.i.i.i.i.i.i4395 = icmp eq i32 %retval.sroa.8.1.i.i.i4380.lcssa, 0 %conv.i.i.i.i.i.i4396 = zext i1 %tobool.not.i.i.i.i.i.i4395 to i32 fence release %1546 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i4397 = zext i32 %retval.sroa.6.1.i.i.i4378.lcssa to i64 %arrayidx.i23.i.i.i.i.i4398 = getelementptr inbounds nuw i32, ptr %1546, i64 %idxprom.i22.i.i.i.i.i4397 store atomic i32 %conv.i.i.i.i.i.i4396, ptr %arrayidx.i23.i.i.i.i.i4398 monotonic, align 4 %1547 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i4399 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1547, i64 %idxprom.i22.i.i.i.i.i4397 %1548 = load i64, ptr %arrayidx.i.i4.i.i4399, align 8, !tbaa !64 %conv.i.i7.i.i.i.i4400 = trunc i64 %1548 to i32 %conv.i.i.i.i17.i.i.i.i4402 = trunc i64 %retval.sroa.2.1.i.i.i4379.lcssa to i32 %1549 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i4402, i1 true) %iszero.i.i.i.i18.i.i.i.i4403 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i4402, 0 %sub.i.i.i.i19.i.i.i.i4404 = select i1 %iszero.i.i.i.i18.i.i.i.i4403, i32 -1, i32 %1549 br label %while.cond.i.i.i.i4405 while.cond.i.i.i.i4405: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4417, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4386 %port.sroa.43.0.i.i4406 = phi i32 [ %conv.i.i.i.i.i.i4396, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4386 ], [ %conv.i.i39.i.i.i.i4418, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4417 ] %idx.0.i.i.i.i4407 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4386 ], [ %add.i.i.i.i4420, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4417 ] %cmp.i.i.i.i4408 = icmp eq i64 %idx.0.i.i.i.i4407, 0 %1550 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i4400, i1 %cmp.i.i.i.i4408) %tobool.not.i.i.i.i4409 = icmp eq i32 %1550, 0 %1551 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i4410 = getelementptr inbounds nuw i32, ptr %1551, i64 %idxprom.i22.i.i.i.i.i4397 %1552 = load atomic i32, ptr %arrayidx.i22.i.i.i4410 monotonic, align 4 br i1 %tobool.not.i.i.i.i4409, label %cond.false.i.i.i4429, label %cond.false.i11.i.i.i.i4411 cond.false.i11.i.i.i.i4411: ; preds = %while.cond.i.i.i.i4405 %1553 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4402, i32 %1552, i32 %sub.i.i.i.i19.i.i.i.i4404, i32 31) %1554 = icmp eq i32 %1553, %port.sroa.43.0.i.i4406 br i1 %1554, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4416, label %while.body.i.i33.i.i.i.i4412 while.body.i.i33.i.i.i.i4412: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4413, %cond.false.i11.i.i.i.i4411 %1555 = phi ptr [ %1556, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4413 ], [ %1551, %cond.false.i11.i.i.i.i4411 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i4427, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4413 if.then.i.i.i48.i.i.i.i4427: ; preds = %while.body.i.i33.i.i.i.i4412 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i4428 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4413 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4413: ; preds = %if.then.i.i.i48.i.i.i.i4427, %while.body.i.i33.i.i.i.i4412 %1556 = phi ptr [ %.pre.i.i.i.i4428, %if.then.i.i.i48.i.i.i.i4427 ], [ %1555, %while.body.i.i33.i.i.i.i4412 ] %arrayidx.i.i.i35.i.i.i.i4414 = getelementptr inbounds nuw i32, ptr %1556, i64 %idxprom.i22.i.i.i.i.i4397 %1557 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i4414 monotonic, align 4 %1558 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4402, i32 %1557, i32 %sub.i.i.i.i19.i.i.i.i4404, i32 31) %cmp.i.not.i.i36.i.i.i.i4415 = icmp eq i32 %1558, %port.sroa.43.0.i.i4406 br i1 %cmp.i.not.i.i36.i.i.i.i4415, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4416, label %while.body.i.i33.i.i.i.i4412, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4416: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4413, %cond.false.i11.i.i.i.i4411 fence acquire br i1 %cmp.i.i.i.i4408, label %if.then.i.i20.i.i.i.i.i4421, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4417 if.then.i.i20.i.i.i.i.i4421: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4416 %1559 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i4425 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1559, i64 %idxprom.i18.i.i.i.i.i4390 %arrayidx.i22.i.i.i.i.i4426 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i4425, i64 %sh_prom.i.i.i.i %1560 = load i8, ptr %ch.addr.i4343, align 1 store i8 %1560, ptr %arrayidx.i22.i.i.i.i.i4426, align 1 br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4417 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4417: ; preds = %if.then.i.i20.i.i.i.i.i4421, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4416 %conv.i.i39.i.i.i.i4418 = xor i32 %port.sroa.43.0.i.i4406, 1 fence release %1561 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i4419 = getelementptr inbounds nuw i32, ptr %1561, i64 %idxprom.i22.i.i.i.i.i4397 store atomic i32 %conv.i.i39.i.i.i.i4418, ptr %arrayidx.i24.i.i.i.i.i4419 monotonic, align 4 %add.i.i.i.i4420 = add i64 %idx.0.i.i.i.i4407, 64 br label %while.cond.i.i.i.i4405, !llvm.loop !71 cond.false.i.i.i4429: ; preds = %while.cond.i.i.i.i4405 %port.sroa.43.0.i.i4406.lcssa = phi i32 [ %port.sroa.43.0.i.i4406, %while.cond.i.i.i.i4405 ] %.lcssa5610 = phi ptr [ %1551, %while.cond.i.i.i.i4405 ] %.lcssa5609 = phi i32 [ %1552, %while.cond.i.i.i.i4405 ] %1562 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4402, i32 %.lcssa5609, i32 %sub.i.i.i.i19.i.i.i.i4404, i32 31) %1563 = icmp eq i32 %1562, %port.sroa.43.0.i.i4406.lcssa br i1 %1563, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit4454, label %while.body.i.i.i.i4430 while.body.i.i.i.i4430: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4431, %cond.false.i.i.i4429 %1564 = phi ptr [ %1565, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4431 ], [ %.lcssa5610, %cond.false.i.i.i4429 ] br i1 %343, label %if.then.i.i.i.i.i4444, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4431 if.then.i.i.i.i.i4444: ; preds = %while.body.i.i.i.i4430 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i4445 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4431 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4431: ; preds = %if.then.i.i.i.i.i4444, %while.body.i.i.i.i4430 %1565 = phi ptr [ %.pre.i.i4445, %if.then.i.i.i.i.i4444 ], [ %1564, %while.body.i.i.i.i4430 ] %arrayidx.i.i.i11.i.i4432 = getelementptr inbounds nuw i32, ptr %1565, i64 %idxprom.i22.i.i.i.i.i4397 %1566 = load atomic i32, ptr %arrayidx.i.i.i11.i.i4432 monotonic, align 4 %1567 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4402, i32 %1566, i32 %sub.i.i.i.i19.i.i.i.i4404, i32 31) %cmp.i.not.i.i.i.i4433 = icmp eq i32 %1567, %port.sroa.43.0.i.i4406.lcssa br i1 %cmp.i.not.i.i.i.i4433, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit4454, label %while.body.i.i.i.i4430, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit4454: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4431, %cond.false.i.i.i4429 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i4402) fence release %1568 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i4379.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i4435 = icmp ne i64 %retval.sroa.2.1.i.i.i4379.lcssa, 0 %cmp2.i.i.i.i19.i.i4436 = icmp eq i64 %1568, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i4437 = select i1 %iszero.i.i.i.i.i18.i.i4435, i1 %cmp2.i.i.i.i19.i.i4436, i1 false %div8.i.i.i21.i.i4438 = lshr i32 %retval.sroa.6.1.i.i.i4378.lcssa, 5 %1569 = and i32 %retval.sroa.6.1.i.i.i4378.lcssa, 31 %idxprom.i.i.i22.i.i4439 = zext nneg i32 %div8.i.i.i21.i.i4438 to i64 %arrayidx.i.i.i23.i.i4440 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i4439 %conv4.i.i.i24.i.i4441 = zext i1 %cmp.i.i.i.i20.i.i4437 to i32 %shl.i.i.i25.i.i4442 = shl nuw i32 %conv4.i.i.i24.i.i4441, %1569 %xor.i.i.i26.i.i4443 = xor i32 %shl.i.i.i25.i.i4442, -1 %1570 = atomicrmw and ptr %arrayidx.i.i.i23.i.i4440, i32 %xor.i.i.i26.i.i4443 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i4402) call void @llvm.lifetime.end.p0(ptr nonnull %ch.addr.i4343) br label %for.cond.i.i.i4466 for.cond.i.i.i4466: ; preds = %for.inc.i.i.i4501, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit4454 %retval.sroa.6.0.i.i.i4467 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit4454 ], [ %retval.sroa.6.2.i.i.i4502, %for.inc.i.i.i4501 ] %retval.sroa.2.0.i.i.i4468 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit4454 ], [ %retval.sroa.2.2.i.i.i4503, %for.inc.i.i.i4501 ] %retval.sroa.8.0.i.i.i4469 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit4454 ], [ %retval.sroa.8.2.i.i.i4504, %for.inc.i.i.i4501 ] %index.0.i.i.i4470 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit4454 ], [ %inc.i.i.i4505, %for.inc.i.i.i4501 ] %1571 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i4471 = icmp ult i32 %index.0.i.i.i4470, %1571 %spec.store.select.i.i.i4472 = select i1 %cmp.not.i.i.i4471, i32 %index.0.i.i.i4470, i32 0 %1572 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i4473 = zext i32 %1572 to i64 %div8.i.i.i.i.i4474 = lshr i32 %spec.store.select.i.i.i4472, 5 %1573 = and i32 %spec.store.select.i.i.i4472, 31 %idxprom.i.i.i.i.i4475 = zext nneg i32 %div8.i.i.i.i.i4474 to i64 %arrayidx.i.i.i.i.i4476 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i4475 %1574 = lshr i32 %1572, %2 %conv4.i.i.i.i.i4477 = and i32 %1574, 1 %shl.i.i.i.i.i4478 = shl nuw i32 %conv4.i.i.i.i.i4477, %1573 %1575 = atomicrmw or ptr %arrayidx.i.i.i.i.i4476, i32 %shl.i.i.i.i.i4478 monotonic, align 4 %shl5.i.i.i.i.i4479 = shl nuw i32 1, %1573 %and.i.i.i.i.i4480 = and i32 %shl5.i.i.i.i.i4479, %1575 %tobool3.i.i.i.i4481 = icmp ne i32 %and.i.i.i.i.i4480, 0 %1576 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %1572, i1 %tobool3.i.i.i.i4481) %cmp.i.not.i.i.i4482 = icmp eq i32 %1572, %1576 br i1 %cmp.i.not.i.i.i4482, label %for.inc.i.i.i4501, label %if.then.i.i.i.i4483 if.then.i.i.i.i4483: ; preds = %for.cond.i.i.i4466 fence acquire %1577 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i4484 = zext i32 %spec.store.select.i.i.i4472 to i64 %arrayidx.i.i.i.i4485 = getelementptr inbounds nuw i32, ptr %1577, i64 %idxprom.i.i.i.i4484 %1578 = load atomic i32, ptr %arrayidx.i.i.i.i4485 monotonic, align 4 %1579 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %1572, i1 true) %iszero.i.i.i.i.i.i4486 = icmp eq i32 %1572, 0 %sub.i.i.i.i.i.i4487 = select i1 %iszero.i.i.i.i.i.i4486, i32 -1, i32 %1579 %1580 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1572, i32 %1578, i32 %sub.i.i.i.i.i.i4487, i32 31) %1581 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i4488 = getelementptr inbounds nuw i32, ptr %1581, i64 %idxprom.i.i.i.i4484 %1582 = load atomic i32, ptr %arrayidx.i45.i.i.i4488 monotonic, align 4 %1583 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1572, i32 %1582, i32 %sub.i.i.i.i.i.i4487, i32 31) %cmp.i48.not.i.i.i4489 = icmp eq i32 %1580, %1583 br i1 %cmp.i48.not.i.i.i4489, label %if.end14.i.i.i4566, label %if.then12.i.i.i4490 if.then12.i.i.i4490: ; preds = %if.then.i.i.i.i4483 fence release %1584 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i4473, i1 true) %iszero.i.i.i.i.i.i.i4491 = icmp ne i32 %1572, 0 %cmp2.i.i.i.i.i.i4492 = icmp eq i64 %1584, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i4493 = select i1 %iszero.i.i.i.i.i.i.i4491, i1 %cmp2.i.i.i.i.i.i4492, i1 false %conv4.i.i53.i.i.i4494 = zext i1 %cmp.i.i.i.i.i.i4493 to i32 %shl.i.i54.i.i.i4495 = shl nuw i32 %conv4.i.i53.i.i.i4494, %1573 %xor.i.i.i.i.i4496 = xor i32 %shl.i.i54.i.i.i4495, -1 %1585 = atomicrmw and ptr %arrayidx.i.i.i.i.i4476, i32 %xor.i.i.i.i.i4496 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %1572) br label %cleanup26.i.i.i4497 if.end14.i.i.i4566: ; preds = %if.then.i.i.i.i4483 %1586 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i4473, i1 true) %iszero.i.i.i56.i.i.i4567 = icmp ne i32 %1572, 0 %cmp2.i.i.i.i.i4568 = icmp eq i64 %1586, %sh_prom.i.i.i.i %cmp.i.i.i.i.i4569 = select i1 %iszero.i.i.i56.i.i.i4567, i1 %cmp2.i.i.i.i.i4568, i1 false br i1 %cmp.i.i.i.i.i4569, label %if.then16.i.i.i4571, label %if.end22.i.i.i4570 if.then16.i.i.i4571: ; preds = %if.end14.i.i.i4566 %1587 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i4572 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1587, i64 %idxprom.i.i.i.i4484, i32 1 store i32 1660944387, ptr %opcode.i.i.i4572, align 8, !tbaa !61 %arrayidx21.i.i.i4573 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1587, i64 %idxprom.i.i.i.i4484 store i64 %conv.i.i.i.i.i4473, ptr %arrayidx21.i.i.i4573, align 8, !tbaa !64 br label %if.end22.i.i.i4570 if.end22.i.i.i4570: ; preds = %if.then16.i.i.i4571, %if.end14.i.i.i4566 call void @llvm.nvvm.bar.warp.sync(i32 %1572) br label %cleanup26.i.i.i4497 cleanup26.i.i.i4497: ; preds = %if.end22.i.i.i4570, %if.then12.i.i.i4490 %retval.sroa.6.1.i.i.i4498 = phi i32 [ %retval.sroa.6.0.i.i.i4467, %if.then12.i.i.i4490 ], [ %spec.store.select.i.i.i4472, %if.end22.i.i.i4570 ] %retval.sroa.2.1.i.i.i4499 = phi i64 [ %retval.sroa.2.0.i.i.i4468, %if.then12.i.i.i4490 ], [ %conv.i.i.i.i.i4473, %if.end22.i.i.i4570 ] %retval.sroa.8.1.i.i.i4500 = phi i32 [ %retval.sroa.8.0.i.i.i4469, %if.then12.i.i.i4490 ], [ %1580, %if.end22.i.i.i4570 ] br i1 %cmp.i48.not.i.i.i4489, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4506, label %for.inc.i.i.i4501 for.inc.i.i.i4501: ; preds = %cleanup26.i.i.i4497, %for.cond.i.i.i4466 %retval.sroa.6.2.i.i.i4502 = phi i32 [ %retval.sroa.6.1.i.i.i4498, %cleanup26.i.i.i4497 ], [ %retval.sroa.6.0.i.i.i4467, %for.cond.i.i.i4466 ] %retval.sroa.2.2.i.i.i4503 = phi i64 [ %retval.sroa.2.1.i.i.i4499, %cleanup26.i.i.i4497 ], [ %retval.sroa.2.0.i.i.i4468, %for.cond.i.i.i4466 ] %retval.sroa.8.2.i.i.i4504 = phi i32 [ %retval.sroa.8.1.i.i.i4500, %cleanup26.i.i.i4497 ], [ %retval.sroa.8.0.i.i.i4469, %for.cond.i.i.i4466 ] %inc.i.i.i4505 = add i32 %spec.store.select.i.i.i4472, 1 br label %for.cond.i.i.i4466, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4506: ; preds = %cleanup26.i.i.i4497 %retval.sroa.6.1.i.i.i4498.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i4498, %cleanup26.i.i.i4497 ] %retval.sroa.2.1.i.i.i4499.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i4499, %cleanup26.i.i.i4497 ] %retval.sroa.8.1.i.i.i4500.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i4500, %cleanup26.i.i.i4497 ] fence acquire %1588 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i4509 = shl i32 %retval.sroa.6.1.i.i.i4498.lcssa, 5 %idxprom.i18.i.i.i.i.i4510 = zext i32 %mul.i.i.i.i.i.i4509 to i64 %arrayidx.i19.i.i.i.i.i4511 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1588, i64 %idxprom.i18.i.i.i.i.i4510 %arrayidx.i21.i.i.i.i.i4512 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i4511, i64 %sh_prom.i.i.i.i store i64 7, ptr %arrayidx.i21.i.i.i.i.i4512, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i4514 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i4512, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %arrayidx6.i.i.i.i.i.i.i4514, ptr noundef nonnull align 1 dereferenceable(7) @.str28, i64 7, i1 false) %tobool.not.i.i.i.i.i.i4515 = icmp eq i32 %retval.sroa.8.1.i.i.i4500.lcssa, 0 %conv.i.i.i.i.i.i4516 = zext i1 %tobool.not.i.i.i.i.i.i4515 to i32 fence release %1589 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i4517 = zext i32 %retval.sroa.6.1.i.i.i4498.lcssa to i64 %arrayidx.i23.i.i.i.i.i4518 = getelementptr inbounds nuw i32, ptr %1589, i64 %idxprom.i22.i.i.i.i.i4517 store atomic i32 %conv.i.i.i.i.i.i4516, ptr %arrayidx.i23.i.i.i.i.i4518 monotonic, align 4 %1590 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i4519 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1590, i64 %idxprom.i22.i.i.i.i.i4517 %1591 = load i64, ptr %arrayidx.i.i4.i.i4519, align 8, !tbaa !64 %conv.i.i7.i.i.i.i4520 = trunc i64 %1591 to i32 %conv.i.i.i.i17.i.i.i.i4522 = trunc i64 %retval.sroa.2.1.i.i.i4499.lcssa to i32 %1592 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i4522, i1 true) %iszero.i.i.i.i18.i.i.i.i4523 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i4522, 0 %sub.i.i.i.i19.i.i.i.i4524 = select i1 %iszero.i.i.i.i18.i.i.i.i4523, i32 -1, i32 %1592 br label %while.cond.i.i.i.i4525 while.cond.i.i.i.i4525: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4537, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4506 %port.sroa.43.0.i.i4526 = phi i32 [ %conv.i.i.i.i.i.i4516, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4506 ], [ %conv.i.i39.i.i.i.i4538, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4537 ] %idx.0.i.i.i.i4527 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4506 ], [ %add.i.i.i.i4540, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4537 ] %cmp.i.i.i2.i4528 = icmp eq i64 %idx.0.i.i.i.i4527, 0 %1593 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i4520, i1 %cmp.i.i.i2.i4528) %tobool.not.i.i.i.i4529 = icmp eq i32 %1593, 0 %1594 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i4530 = getelementptr inbounds nuw i32, ptr %1594, i64 %idxprom.i22.i.i.i.i.i4517 %1595 = load atomic i32, ptr %arrayidx.i22.i.i.i4530 monotonic, align 4 br i1 %tobool.not.i.i.i.i4529, label %cond.false.i.i.i4549, label %cond.false.i11.i.i.i.i4531 cond.false.i11.i.i.i.i4531: ; preds = %while.cond.i.i.i.i4525 %1596 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4522, i32 %1595, i32 %sub.i.i.i.i19.i.i.i.i4524, i32 31) %1597 = icmp eq i32 %1596, %port.sroa.43.0.i.i4526 br i1 %1597, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4536, label %while.body.i.i33.i.i.i.i4532 while.body.i.i33.i.i.i.i4532: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4533, %cond.false.i11.i.i.i.i4531 %1598 = phi ptr [ %1599, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4533 ], [ %1594, %cond.false.i11.i.i.i.i4531 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i4547, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4533 if.then.i.i.i48.i.i.i.i4547: ; preds = %while.body.i.i33.i.i.i.i4532 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i4548 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4533 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4533: ; preds = %if.then.i.i.i48.i.i.i.i4547, %while.body.i.i33.i.i.i.i4532 %1599 = phi ptr [ %.pre.i.i.i.i4548, %if.then.i.i.i48.i.i.i.i4547 ], [ %1598, %while.body.i.i33.i.i.i.i4532 ] %arrayidx.i.i.i35.i.i.i.i4534 = getelementptr inbounds nuw i32, ptr %1599, i64 %idxprom.i22.i.i.i.i.i4517 %1600 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i4534 monotonic, align 4 %1601 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4522, i32 %1600, i32 %sub.i.i.i.i19.i.i.i.i4524, i32 31) %cmp.i.not.i.i36.i.i.i.i4535 = icmp eq i32 %1601, %port.sroa.43.0.i.i4526 br i1 %cmp.i.not.i.i36.i.i.i.i4535, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4536, label %while.body.i.i33.i.i.i.i4532, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4536: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4533, %cond.false.i11.i.i.i.i4531 fence acquire br i1 %cmp.i.i.i2.i4528, label %if.then.i.i20.i.i.i.i.i4541, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4537 if.then.i.i20.i.i.i.i.i4541: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4536 %1602 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i4545 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1602, i64 %idxprom.i18.i.i.i.i.i4510 %arrayidx.i22.i.i.i.i.i4546 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i4545, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %arrayidx.i22.i.i.i.i.i4546, ptr noundef nonnull align 1 dereferenceable(7) @.str28, i64 7, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4537 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4537: ; preds = %if.then.i.i20.i.i.i.i.i4541, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4536 %conv.i.i39.i.i.i.i4538 = xor i32 %port.sroa.43.0.i.i4526, 1 fence release %1603 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i4539 = getelementptr inbounds nuw i32, ptr %1603, i64 %idxprom.i22.i.i.i.i.i4517 store atomic i32 %conv.i.i39.i.i.i.i4538, ptr %arrayidx.i24.i.i.i.i.i4539 monotonic, align 4 %add.i.i.i.i4540 = add i64 %idx.0.i.i.i.i4527, 64 br label %while.cond.i.i.i.i4525, !llvm.loop !71 cond.false.i.i.i4549: ; preds = %while.cond.i.i.i.i4525 %port.sroa.43.0.i.i4526.lcssa = phi i32 [ %port.sroa.43.0.i.i4526, %while.cond.i.i.i.i4525 ] %.lcssa5608 = phi ptr [ %1594, %while.cond.i.i.i.i4525 ] %.lcssa5607 = phi i32 [ %1595, %while.cond.i.i.i.i4525 ] %1604 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4522, i32 %.lcssa5607, i32 %sub.i.i.i.i19.i.i.i.i4524, i32 31) %1605 = icmp eq i32 %1604, %port.sroa.43.0.i.i4526.lcssa br i1 %1605, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4574, label %while.body.i.i.i.i4550 while.body.i.i.i.i4550: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4551, %cond.false.i.i.i4549 %1606 = phi ptr [ %1607, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4551 ], [ %.lcssa5608, %cond.false.i.i.i4549 ] br i1 %343, label %if.then.i.i.i.i.i4564, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4551 if.then.i.i.i.i.i4564: ; preds = %while.body.i.i.i.i4550 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i4565 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4551 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4551: ; preds = %if.then.i.i.i.i.i4564, %while.body.i.i.i.i4550 %1607 = phi ptr [ %.pre.i.i4565, %if.then.i.i.i.i.i4564 ], [ %1606, %while.body.i.i.i.i4550 ] %arrayidx.i.i.i11.i.i4552 = getelementptr inbounds nuw i32, ptr %1607, i64 %idxprom.i22.i.i.i.i.i4517 %1608 = load atomic i32, ptr %arrayidx.i.i.i11.i.i4552 monotonic, align 4 %1609 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4522, i32 %1608, i32 %sub.i.i.i.i19.i.i.i.i4524, i32 31) %cmp.i.not.i.i.i.i4553 = icmp eq i32 %1609, %port.sroa.43.0.i.i4526.lcssa br i1 %cmp.i.not.i.i.i.i4553, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4574, label %while.body.i.i.i.i4550, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4574: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4551, %cond.false.i.i.i4549 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i4522) fence release %1610 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i4499.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i4555 = icmp ne i64 %retval.sroa.2.1.i.i.i4499.lcssa, 0 %cmp2.i.i.i.i19.i.i4556 = icmp eq i64 %1610, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i4557 = select i1 %iszero.i.i.i.i.i18.i.i4555, i1 %cmp2.i.i.i.i19.i.i4556, i1 false %div8.i.i.i21.i.i4558 = lshr i32 %retval.sroa.6.1.i.i.i4498.lcssa, 5 %1611 = and i32 %retval.sroa.6.1.i.i.i4498.lcssa, 31 %idxprom.i.i.i22.i.i4559 = zext nneg i32 %div8.i.i.i21.i.i4558 to i64 %arrayidx.i.i.i23.i.i4560 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i4559 %conv4.i.i.i24.i.i4561 = zext i1 %cmp.i.i.i.i20.i.i4557 to i32 %shl.i.i.i25.i.i4562 = shl nuw i32 %conv4.i.i.i24.i.i4561, %1611 %xor.i.i.i26.i.i4563 = xor i32 %shl.i.i.i25.i.i4562, -1 %1612 = atomicrmw and ptr %arrayidx.i.i.i23.i.i4560, i32 %xor.i.i.i26.i.i4563 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i4522) call void @llvm.lifetime.start.p0(ptr nonnull %buffer.i.i.i4577) #32, !noalias !174 %cmp7.i.i.i.i.i.i.i4578 = icmp eq i32 %FailCount.2.lcssa, 0 br i1 %cmp7.i.i.i.i.i.i.i4578, label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i4597, label %while.body.lr.ph.i.i.i.i.i.i.i4579 while.body.lr.ph.i.i.i.i.i.i.i4579: ; preds = %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4574 %retval.0.i.i.i.i.i.i.i4580 = call noundef i32 @llvm.abs.i32(i32 %FailCount.2.lcssa, i1 false) %1613 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i4577, i64 11 br label %while.body.i.i.i.i.i.i.i4581 while.body.i.i.i.i.i.i.i4581: ; preds = %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i4593, %while.body.lr.ph.i.i.i.i.i.i.i4579 %writer.sroa.10.0.i.i.i.i.i4582 = phi i64 [ 0, %while.body.lr.ph.i.i.i.i.i.i.i4579 ], [ %writer.sroa.10.1.i.i.i.i.i4594, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i4593 ] %value.addr.09.i.i.i.i.i.i.i4583 = phi i32 [ %retval.0.i.i.i.i.i.i.i4580, %while.body.lr.ph.i.i.i.i.i.i.i4579 ], [ %div.i.i.i.i.i.i.i.i4584, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i4593 ] %div.i.i.i.i.i.i.i.i4584 = udiv i32 %value.addr.09.i.i.i.i.i.i.i4583, 10 %cmp.i.i.i.i.i.i.i.i.i4585 = icmp eq i64 %writer.sroa.10.0.i.i.i.i.i4582, 11 br i1 %cmp.i.i.i.i.i.i.i.i.i4585, label %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i4593, label %if.then3.i.i.i.i.i.i.i.i4586 if.then3.i.i.i.i.i.i.i.i4586: ; preds = %while.body.i.i.i.i.i.i.i4581 %.neg.i4587 = mul i32 %div.i.i.i.i.i.i.i.i4584, 246 %rem.i.i.i.i.i.i.i.decomposed.i4588 = add i32 %.neg.i4587, %value.addr.09.i.i.i.i.i.i.i4583 %conv.i.i.i.i.i.i.i.i4589 = trunc i32 %rem.i.i.i.i.i.i.i.decomposed.i4588 to i8 %switch.offset.i4590 = or disjoint i8 %conv.i.i.i.i.i.i.i.i4589, 48 %inc.i.i.i.i.i.i.i.i4591 = add i64 %writer.sroa.10.0.i.i.i.i.i4582, 1 %1614 = xor i64 %writer.sroa.10.0.i.i.i.i.i4582, -1 %arrayidx.i.i.i.i.i.i.i.i.i4592 = getelementptr i8, ptr %1613, i64 %1614 store i8 %switch.offset.i4590, ptr %arrayidx.i.i.i.i.i.i.i.i.i4592, align 1, !tbaa !36, !noalias !174 br label %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i4593 _ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i4593: ; preds = %if.then3.i.i.i.i.i.i.i.i4586, %while.body.i.i.i.i.i.i.i4581 %writer.sroa.10.1.i.i.i.i.i4594 = phi i64 [ %inc.i.i.i.i.i.i.i.i4591, %if.then3.i.i.i.i.i.i.i.i4586 ], [ 11, %while.body.i.i.i.i.i.i.i4581 ] %cmp.i.i.i.i.i.i.i4595 = icmp ult i32 %value.addr.09.i.i.i.i.i.i.i4583, 10 %.not.i.i.i.i.i.i.i4596 = or i1 %cmp.i.i.i.i.i.i.i.i.i4585, %cmp.i.i.i.i.i.i.i4595 br i1 %.not.i.i.i.i.i.i.i4596, label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i4597, label %while.body.i.i.i.i.i.i.i4581, !llvm.loop !77 _ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i4597: ; preds = %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i4593, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4574 %writer.sroa.10.2.i.i.i.i.i4598 = phi i64 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4574 ], [ %writer.sroa.10.1.i.i.i.i.i4594, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i4593 ] %.off0.i.i.i.i.i.i4599 = phi i1 [ false, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4574 ], [ %cmp.i.i.i.i.i.i.i.i.i4585, %_ZN22__llvm_libc_22_0_0_git7details22StringBufferWriterImplILb0EE4pushEc.exit.i.i.i.i.i.i.i4593 ] %cmp.i21.i.i.i.i.i4600 = icmp ne i64 %writer.sroa.10.2.i.i.i.i.i4598, 0 %or.cond.not.i.i.i.i.i4601 = or i1 %.off0.i.i.i.i.i.i4599, %cmp.i21.i.i.i.i.i4600 br i1 %or.cond.not.i.i.i.i.i4601, label %while.end.i.i.i.i.i.i4604, label %if.then3.i.i.lr.ph.i.i.i.i.i4602 if.then3.i.i.lr.ph.i.i.i.i.i4602: ; preds = %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i4597 %arrayidx.i.i.i.i.i.i.i.i4603 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i4577, i64 10 store i8 48, ptr %arrayidx.i.i.i.i.i.i.i.i4603, align 2, !tbaa !36, !noalias !174 br label %while.end.i.i.i.i.i.i4604 while.end.i.i.i.i.i.i4604: ; preds = %if.then3.i.i.lr.ph.i.i.i.i.i4602, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i4597 %writer.sroa.10.4.i.i.i.i.i4605 = phi i64 [ %writer.sroa.10.2.i.i.i.i.i4598, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEE13IntegerWriter25write_unsigned_number_decEjRNS1_22StringBufferWriterImplILb0EEE.exit.i.i.i.i.i.i4597 ], [ 1, %if.then3.i.i.lr.ph.i.i.i.i.i4602 ] %cmp4.i.i.i.i.i.i4606 = icmp sgt i32 %FailCount.2.lcssa, -1 %brmerge.i.i.i.i.i.i4607 = or i1 %cmp4.i.i.i.i.i.i4606, %.off0.i.i.i.i.i.i4599 br i1 %brmerge.i.i.i.i.i.i4607, label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i4613, label %if.then.i14.i.i.i.i.i.i4608 if.then.i14.i.i.i.i.i.i4608: ; preds = %while.end.i.i.i.i.i.i4604 %cmp.i.i17.i.i.i.i.i.i4609 = icmp eq i64 %writer.sroa.10.4.i.i.i.i.i4605, 11 br i1 %cmp.i.i17.i.i.i.i.i.i4609, label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i4613, label %if.then3.i18.i.i.i.i.i.i4610 if.then3.i18.i.i.i.i.i.i4610: ; preds = %if.then.i14.i.i.i.i.i.i4608 %inc.i20.i.i.i.i.i.i4611 = add i64 %writer.sroa.10.4.i.i.i.i.i4605, 1 %1615 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i4577, i64 11 %1616 = xor i64 %writer.sroa.10.4.i.i.i.i.i4605, -1 %arrayidx.i.i19.i.i.i.i.i.i4612 = getelementptr i8, ptr %1615, i64 %1616 store i8 45, ptr %arrayidx.i.i19.i.i.i.i.i.i4612, align 1, !tbaa !36, !noalias !174 br label %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i4613 _ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i4613: ; preds = %if.then3.i18.i.i.i.i.i.i4610, %if.then.i14.i.i.i.i.i.i4608, %while.end.i.i.i.i.i.i4604 %writer.sroa.10.5.i.i.i.i.i4614 = phi i64 [ %writer.sroa.10.4.i.i.i.i.i4605, %while.end.i.i.i.i.i.i4604 ], [ %inc.i20.i.i.i.i.i.i4611, %if.then3.i18.i.i.i.i.i.i4610 ], [ 11, %if.then.i14.i.i.i.i.i.i4608 ] %written.i.i.i.i.i4615 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i4577, i64 16 store i64 %writer.sroa.10.5.i.i.i.i.i4614, ptr %written.i.i.i.i.i4615, align 8, !tbaa !40, !noalias !174 %cmp.i.not.i.i.i.i.i.i4616 = icmp eq i64 %writer.sroa.10.5.i.i.i.i.i4614, 0 br i1 %cmp.i.not.i.i.i.i.i.i4616, label %if.end.i.i.i.i.i.i.i4635, label %if.then.i.i.i.i.i.i.i4617 if.then.i.i.i.i.i.i.i4617: ; preds = %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i4613 %inc.i.i.i.i.i2.i.i.i4618 = add i64 %writer.sroa.10.5.i.i.i.i.i4614, 1 %cmp.not.i.i.not.i.i.i.i.i.i4619 = icmp eq i64 %inc.i.i.i.i.i2.i.i.i4618, 0 br i1 %cmp.not.i.i.not.i.i.i.i.i.i4619, label %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i4633, label %if.end.i.i.i.i.i.i.i.i4620 if.end.i.i.i.i.i.i.i.i4620: ; preds = %if.then.i.i.i.i.i.i.i4617 %cmp2.i.i.i.i.i.i.i.i4621 = icmp ult i64 %inc.i.i.i.i.i2.i.i.i4618, 1676976733973595601 %mul.i.i.i.i.i.i.i.i4622 = mul nuw i64 %inc.i.i.i.i.i2.i.i.i4618, 11 %div18.i.i.i.i.i.i.i.i4623 = lshr i64 %mul.i.i.i.i.i.i.i.i4622, 3 %new_capacity.addr.0.i.i.i.i.i.i.i.i4624 = select i1 %cmp2.i.i.i.i.i.i.i.i4621, i64 %div18.i.i.i.i.i.i.i.i4623, i64 %inc.i.i.i.i.i2.i.i.i4618 %sub.i.i.i4625 = add i64 %new_capacity.addr.0.i.i.i.i.i.i.i.i4624, 7 %div2.i.i.i4626 = and i64 %sub.i.i.i4625, -8 %1617 = load ptr, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34, !noalias !174 %add.ptr.i.i.i4627 = getelementptr inbounds nuw i8, ptr %1617, i64 %div2.i.i.i4626 store ptr %add.ptr.i.i.i4627, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34, !noalias !174 %sub.ptr.lhs.cast.i.i.i4628 = ptrtoint ptr %add.ptr.i.i.i4627 to i64 %sub.ptr.sub.i.i.i4629 = sub i64 %sub.ptr.lhs.cast.i.i.i4628, ptrtoint (ptr @_ZN12_GLOBAL__N_16memoryE to i64) %cmp.i.i.i4630 = icmp ugt i64 %sub.ptr.sub.i.i.i4629, 65335 %cond.i.i.i4631 = select i1 %cmp.i.i.i4630, ptr null, ptr %1617 %tobool.i.i.i.i.i.i.i.i4632 = icmp ne ptr %cond.i.i.i4631, null call void @llvm.assume(i1 %tobool.i.i.i.i.i.i.i.i4632) br label %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i4633 _ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i4633: ; preds = %if.end.i.i.i.i.i.i.i.i4620, %if.then.i.i.i.i.i.i.i4617 %agg.tmp.sroa.0.0.i4634 = phi ptr [ @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE, %if.then.i.i.i.i.i.i.i4617 ], [ %cond.i.i.i4631, %if.end.i.i.i.i.i.i.i.i4620 ] call void @llvm.memset.p0.i64(ptr nonnull align 1 %agg.tmp.sroa.0.0.i4634, i8 0, i64 %writer.sroa.10.5.i.i.i.i.i4614, i1 false), !noalias !174 br label %if.end.i.i.i.i.i.i.i4635 if.end.i.i.i.i.i.i.i4635: ; preds = %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i4633, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i4613 %agg.tmp.sroa.0.1.i4636 = phi ptr [ @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE, %_ZN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEC1Ei.exit.i.i.i4613 ], [ %agg.tmp.sroa.0.0.i4634, %_ZN22__llvm_libc_22_0_0_git3cpp6string7reserveEm.exit.i.i.i.i.i.i.i4633 ] %cmp.not.i6.i.i.i.i.i.i.i4637 = icmp eq ptr %agg.tmp.sroa.0.1.i4636, @_ZN22__llvm_libc_22_0_0_git3cpp6string14NULL_CHARACTERE br i1 %cmp.not.i6.i.i.i.i.i.i.i4637, label %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i4640, label %if.then.i.i.i.i.i3.i.i.i4638 if.then.i.i.i.i.i3.i.i.i4638: ; preds = %if.end.i.i.i.i.i.i.i4635 %arrayidx.i.i.i.i.i4.i.i.i4639 = getelementptr inbounds nuw i8, ptr %agg.tmp.sroa.0.1.i4636, i64 %writer.sroa.10.5.i.i.i.i.i4614 store i8 0, ptr %arrayidx.i.i.i.i.i4.i.i.i4639, align 1, !tbaa !36, !noalias !174 br label %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i4640 _ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i4640: ; preds = %if.then.i.i.i.i.i3.i.i.i4638, %if.end.i.i.i.i.i.i.i4635 %add.ptr.i.i.i.i4641 = getelementptr inbounds nuw i8, ptr %buffer.i.i.i4577, i64 11 %idx.neg.i.i.i.i4642 = sub i64 0, %writer.sroa.10.5.i.i.i.i.i4614 %add.ptr5.i.i.i.i4643 = getelementptr inbounds i8, ptr %add.ptr.i.i.i.i4641, i64 %idx.neg.i.i.i.i4642 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %agg.tmp.sroa.0.1.i4636, ptr nonnull align 1 %add.ptr5.i.i.i.i4643, i64 %writer.sroa.10.5.i.i.i.i.i4614, i1 false), !alias.scope !179, !noalias !174 call void @llvm.lifetime.end.p0(ptr nonnull %buffer.i.i.i4577) #32, !noalias !174 br label %for.cond.i.i.i4646 for.cond.i.i.i4646: ; preds = %for.inc.i.i.i4681, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i4640 %retval.sroa.6.0.i.i.i4647 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i4640 ], [ %retval.sroa.6.2.i.i.i4682, %for.inc.i.i.i4681 ] %retval.sroa.2.0.i.i.i4648 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i4640 ], [ %retval.sroa.2.2.i.i.i4683, %for.inc.i.i.i4681 ] %retval.sroa.8.0.i.i.i4649 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i4640 ], [ %retval.sroa.8.2.i.i.i4684, %for.inc.i.i.i4681 ] %index.0.i.i.i4650 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi.exit.i4640 ], [ %inc.i.i.i4685, %for.inc.i.i.i4681 ] %1618 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i4651 = icmp ult i32 %index.0.i.i.i4650, %1618 %spec.store.select.i.i.i4652 = select i1 %cmp.not.i.i.i4651, i32 %index.0.i.i.i4650, i32 0 %1619 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i4653 = zext i32 %1619 to i64 %div8.i.i.i.i.i4654 = lshr i32 %spec.store.select.i.i.i4652, 5 %1620 = and i32 %spec.store.select.i.i.i4652, 31 %idxprom.i.i.i.i.i4655 = zext nneg i32 %div8.i.i.i.i.i4654 to i64 %arrayidx.i.i.i.i.i4656 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i4655 %1621 = lshr i32 %1619, %2 %conv4.i.i.i.i.i4657 = and i32 %1621, 1 %shl.i.i.i.i.i4658 = shl nuw i32 %conv4.i.i.i.i.i4657, %1620 %1622 = atomicrmw or ptr %arrayidx.i.i.i.i.i4656, i32 %shl.i.i.i.i.i4658 monotonic, align 4 %shl5.i.i.i.i.i4659 = shl nuw i32 1, %1620 %and.i.i.i.i.i4660 = and i32 %shl5.i.i.i.i.i4659, %1622 %tobool3.i.i.i.i4661 = icmp ne i32 %and.i.i.i.i.i4660, 0 %1623 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %1619, i1 %tobool3.i.i.i.i4661) %cmp.i.not.i.i.i4662 = icmp eq i32 %1619, %1623 br i1 %cmp.i.not.i.i.i4662, label %for.inc.i.i.i4681, label %if.then.i.i.i.i4663 if.then.i.i.i.i4663: ; preds = %for.cond.i.i.i4646 fence acquire %1624 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i4664 = zext i32 %spec.store.select.i.i.i4652 to i64 %arrayidx.i.i.i.i4665 = getelementptr inbounds nuw i32, ptr %1624, i64 %idxprom.i.i.i.i4664 %1625 = load atomic i32, ptr %arrayidx.i.i.i.i4665 monotonic, align 4 %1626 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %1619, i1 true) %iszero.i.i.i.i.i.i4666 = icmp eq i32 %1619, 0 %sub.i.i.i.i.i.i4667 = select i1 %iszero.i.i.i.i.i.i4666, i32 -1, i32 %1626 %1627 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1619, i32 %1625, i32 %sub.i.i.i.i.i.i4667, i32 31) %1628 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i4668 = getelementptr inbounds nuw i32, ptr %1628, i64 %idxprom.i.i.i.i4664 %1629 = load atomic i32, ptr %arrayidx.i45.i.i.i4668 monotonic, align 4 %1630 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1619, i32 %1629, i32 %sub.i.i.i.i.i.i4667, i32 31) %cmp.i48.not.i.i.i4669 = icmp eq i32 %1627, %1630 br i1 %cmp.i48.not.i.i.i4669, label %if.end14.i.i.i4747, label %if.then12.i.i.i4670 if.then12.i.i.i4670: ; preds = %if.then.i.i.i.i4663 fence release %1631 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i4653, i1 true) %iszero.i.i.i.i.i.i.i4671 = icmp ne i32 %1619, 0 %cmp2.i.i.i.i.i.i4672 = icmp eq i64 %1631, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i4673 = select i1 %iszero.i.i.i.i.i.i.i4671, i1 %cmp2.i.i.i.i.i.i4672, i1 false %conv4.i.i53.i.i.i4674 = zext i1 %cmp.i.i.i.i.i.i4673 to i32 %shl.i.i54.i.i.i4675 = shl nuw i32 %conv4.i.i53.i.i.i4674, %1620 %xor.i.i.i.i.i4676 = xor i32 %shl.i.i54.i.i.i4675, -1 %1632 = atomicrmw and ptr %arrayidx.i.i.i.i.i4656, i32 %xor.i.i.i.i.i4676 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %1619) br label %cleanup26.i.i.i4677 if.end14.i.i.i4747: ; preds = %if.then.i.i.i.i4663 %1633 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i4653, i1 true) %iszero.i.i.i56.i.i.i4748 = icmp ne i32 %1619, 0 %cmp2.i.i.i.i.i4749 = icmp eq i64 %1633, %sh_prom.i.i.i.i %cmp.i.i.i.i.i4750 = select i1 %iszero.i.i.i56.i.i.i4748, i1 %cmp2.i.i.i.i.i4749, i1 false br i1 %cmp.i.i.i.i.i4750, label %if.then16.i.i.i4752, label %if.end22.i.i.i4751 if.then16.i.i.i4752: ; preds = %if.end14.i.i.i4747 %1634 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i4753 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1634, i64 %idxprom.i.i.i.i4664, i32 1 store i32 1660944387, ptr %opcode.i.i.i4753, align 8, !tbaa !61 %arrayidx21.i.i.i4754 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1634, i64 %idxprom.i.i.i.i4664 store i64 %conv.i.i.i.i.i4653, ptr %arrayidx21.i.i.i4754, align 8, !tbaa !64 br label %if.end22.i.i.i4751 if.end22.i.i.i4751: ; preds = %if.then16.i.i.i4752, %if.end14.i.i.i4747 call void @llvm.nvvm.bar.warp.sync(i32 %1619) br label %cleanup26.i.i.i4677 cleanup26.i.i.i4677: ; preds = %if.end22.i.i.i4751, %if.then12.i.i.i4670 %retval.sroa.6.1.i.i.i4678 = phi i32 [ %retval.sroa.6.0.i.i.i4647, %if.then12.i.i.i4670 ], [ %spec.store.select.i.i.i4652, %if.end22.i.i.i4751 ] %retval.sroa.2.1.i.i.i4679 = phi i64 [ %retval.sroa.2.0.i.i.i4648, %if.then12.i.i.i4670 ], [ %conv.i.i.i.i.i4653, %if.end22.i.i.i4751 ] %retval.sroa.8.1.i.i.i4680 = phi i32 [ %retval.sroa.8.0.i.i.i4649, %if.then12.i.i.i4670 ], [ %1627, %if.end22.i.i.i4751 ] br i1 %cmp.i48.not.i.i.i4669, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4686, label %for.inc.i.i.i4681 for.inc.i.i.i4681: ; preds = %cleanup26.i.i.i4677, %for.cond.i.i.i4646 %retval.sroa.6.2.i.i.i4682 = phi i32 [ %retval.sroa.6.1.i.i.i4678, %cleanup26.i.i.i4677 ], [ %retval.sroa.6.0.i.i.i4647, %for.cond.i.i.i4646 ] %retval.sroa.2.2.i.i.i4683 = phi i64 [ %retval.sroa.2.1.i.i.i4679, %cleanup26.i.i.i4677 ], [ %retval.sroa.2.0.i.i.i4648, %for.cond.i.i.i4646 ] %retval.sroa.8.2.i.i.i4684 = phi i32 [ %retval.sroa.8.1.i.i.i4680, %cleanup26.i.i.i4677 ], [ %retval.sroa.8.0.i.i.i4649, %for.cond.i.i.i4646 ] %inc.i.i.i4685 = add i32 %spec.store.select.i.i.i4652, 1 br label %for.cond.i.i.i4646, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4686: ; preds = %cleanup26.i.i.i4677 %retval.sroa.6.1.i.i.i4678.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i4678, %cleanup26.i.i.i4677 ] %retval.sroa.2.1.i.i.i4679.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i4679, %cleanup26.i.i.i4677 ] %retval.sroa.8.1.i.i.i4680.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i4680, %cleanup26.i.i.i4677 ] fence acquire %1635 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i4689 = shl i32 %retval.sroa.6.1.i.i.i4678.lcssa, 5 %idxprom.i18.i.i.i.i.i4690 = zext i32 %mul.i.i.i.i.i.i4689 to i64 %arrayidx.i19.i.i.i.i.i4691 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1635, i64 %idxprom.i18.i.i.i.i.i4690 %arrayidx.i21.i.i.i.i.i4692 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i4691, i64 %sh_prom.i.i.i.i store i64 %writer.sroa.10.5.i.i.i.i.i4614, ptr %arrayidx.i21.i.i.i.i.i4692, align 8, !tbaa !67 %spec.select.i.i.i.i.i.i.i4693 = call i64 @llvm.umin.i64(i64 %writer.sroa.10.5.i.i.i.i.i4614, i64 56) %arrayidx6.i.i.i.i.i.i.i4694 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i4692, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %arrayidx6.i.i.i.i.i.i.i4694, ptr nonnull align 1 %agg.tmp.sroa.0.1.i4636, i64 %spec.select.i.i.i.i.i.i.i4693, i1 false) %tobool.not.i.i.i.i.i.i4695 = icmp eq i32 %retval.sroa.8.1.i.i.i4680.lcssa, 0 %conv.i.i.i.i.i.i4696 = zext i1 %tobool.not.i.i.i.i.i.i4695 to i32 fence release %1636 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i4697 = zext i32 %retval.sroa.6.1.i.i.i4678.lcssa to i64 %arrayidx.i23.i.i.i.i.i4698 = getelementptr inbounds nuw i32, ptr %1636, i64 %idxprom.i22.i.i.i.i.i4697 store atomic i32 %conv.i.i.i.i.i.i4696, ptr %arrayidx.i23.i.i.i.i.i4698 monotonic, align 4 %1637 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i4699 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1637, i64 %idxprom.i22.i.i.i.i.i4697 %1638 = load i64, ptr %arrayidx.i.i4.i.i4699, align 8, !tbaa !64 %conv.i.i7.i.i.i.i4700 = trunc i64 %1638 to i32 %conv.i.i.i.i17.i.i.i.i4702 = trunc i64 %retval.sroa.2.1.i.i.i4679.lcssa to i32 %1639 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i4702, i1 true) %iszero.i.i.i.i18.i.i.i.i4703 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i4702, 0 %sub.i.i.i.i19.i.i.i.i4704 = select i1 %iszero.i.i.i.i18.i.i.i.i4703, i32 -1, i32 %1639 br label %while.cond.i.i.i.i4705 while.cond.i.i.i.i4705: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4717, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4686 %port.sroa.43.0.i.i4706 = phi i32 [ %conv.i.i.i.i.i.i4696, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4686 ], [ %conv.i.i39.i.i.i.i4718, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4717 ] %idx.0.i.i.i.i4707 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4686 ], [ %add.i.i.i.i4720, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4717 ] %cmp.i.i.i.i4708 = icmp ult i64 %idx.0.i.i.i.i4707, %writer.sroa.10.5.i.i.i.i.i4614 %1640 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i4700, i1 %cmp.i.i.i.i4708) %tobool.not.i.i.i.i4709 = icmp eq i32 %1640, 0 %1641 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i4710 = getelementptr inbounds nuw i32, ptr %1641, i64 %idxprom.i22.i.i.i.i.i4697 %1642 = load atomic i32, ptr %arrayidx.i22.i.i.i4710 monotonic, align 4 br i1 %tobool.not.i.i.i.i4709, label %cond.false.i.i.i4729, label %cond.false.i11.i.i.i.i4711 cond.false.i11.i.i.i.i4711: ; preds = %while.cond.i.i.i.i4705 %1643 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4702, i32 %1642, i32 %sub.i.i.i.i19.i.i.i.i4704, i32 31) %1644 = icmp eq i32 %1643, %port.sroa.43.0.i.i4706 br i1 %1644, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4716, label %while.body.i.i33.i.i.i.i4712 while.body.i.i33.i.i.i.i4712: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4713, %cond.false.i11.i.i.i.i4711 %1645 = phi ptr [ %1646, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4713 ], [ %1641, %cond.false.i11.i.i.i.i4711 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i4727, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4713 if.then.i.i.i48.i.i.i.i4727: ; preds = %while.body.i.i33.i.i.i.i4712 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i4728 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4713 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4713: ; preds = %if.then.i.i.i48.i.i.i.i4727, %while.body.i.i33.i.i.i.i4712 %1646 = phi ptr [ %.pre.i.i.i.i4728, %if.then.i.i.i48.i.i.i.i4727 ], [ %1645, %while.body.i.i33.i.i.i.i4712 ] %arrayidx.i.i.i35.i.i.i.i4714 = getelementptr inbounds nuw i32, ptr %1646, i64 %idxprom.i22.i.i.i.i.i4697 %1647 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i4714 monotonic, align 4 %1648 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4702, i32 %1647, i32 %sub.i.i.i.i19.i.i.i.i4704, i32 31) %cmp.i.not.i.i36.i.i.i.i4715 = icmp eq i32 %1648, %port.sroa.43.0.i.i4706 br i1 %cmp.i.not.i.i36.i.i.i.i4715, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4716, label %while.body.i.i33.i.i.i.i4712, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4716: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4713, %cond.false.i11.i.i.i.i4711 fence acquire br i1 %cmp.i.i.i.i4708, label %if.then.i.i20.i.i.i.i.i4721, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4717 if.then.i.i20.i.i.i.i.i4721: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4716 %add.ptr.i.i.i.i.i.i.i.i4722 = getelementptr inbounds nuw i8, ptr %agg.tmp.sroa.0.1.i4636, i64 %idx.0.i.i.i.i4707 %sub.i.i.i.i.i.i.i4723 = sub nuw i64 %writer.sroa.10.5.i.i.i.i.i4614, %idx.0.i.i.i.i4707 %spec.select.i.i.i47.i.i.i.i4724 = call i64 @llvm.umin.i64(i64 %sub.i.i.i.i.i.i.i4723, i64 64) %1649 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i4725 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1649, i64 %idxprom.i18.i.i.i.i.i4690 %arrayidx.i22.i.i.i.i.i4726 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i4725, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr align 1 %arrayidx.i22.i.i.i.i.i4726, ptr nonnull align 1 %add.ptr.i.i.i.i.i.i.i.i4722, i64 %spec.select.i.i.i47.i.i.i.i4724, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4717 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4717: ; preds = %if.then.i.i20.i.i.i.i.i4721, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4716 %conv.i.i39.i.i.i.i4718 = xor i32 %port.sroa.43.0.i.i4706, 1 fence release %1650 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i4719 = getelementptr inbounds nuw i32, ptr %1650, i64 %idxprom.i22.i.i.i.i.i4697 store atomic i32 %conv.i.i39.i.i.i.i4718, ptr %arrayidx.i24.i.i.i.i.i4719 monotonic, align 4 %add.i.i.i.i4720 = add i64 %idx.0.i.i.i.i4707, 64 br label %while.cond.i.i.i.i4705, !llvm.loop !71 cond.false.i.i.i4729: ; preds = %while.cond.i.i.i.i4705 %port.sroa.43.0.i.i4706.lcssa = phi i32 [ %port.sroa.43.0.i.i4706, %while.cond.i.i.i.i4705 ] %.lcssa5606 = phi ptr [ %1641, %while.cond.i.i.i.i4705 ] %.lcssa5605 = phi i32 [ %1642, %while.cond.i.i.i.i4705 ] %1651 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4702, i32 %.lcssa5605, i32 %sub.i.i.i.i19.i.i.i.i4704, i32 31) %1652 = icmp eq i32 %1651, %port.sroa.43.0.i.i4706.lcssa br i1 %1652, label %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i4734, label %while.body.i.i.i.i4730 while.body.i.i.i.i4730: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4731, %cond.false.i.i.i4729 %1653 = phi ptr [ %1654, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4731 ], [ %.lcssa5606, %cond.false.i.i.i4729 ] br i1 %343, label %if.then.i.i.i.i.i4745, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4731 if.then.i.i.i.i.i4745: ; preds = %while.body.i.i.i.i4730 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i4746 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4731 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4731: ; preds = %if.then.i.i.i.i.i4745, %while.body.i.i.i.i4730 %1654 = phi ptr [ %.pre.i.i4746, %if.then.i.i.i.i.i4745 ], [ %1653, %while.body.i.i.i.i4730 ] %arrayidx.i.i.i11.i.i4732 = getelementptr inbounds nuw i32, ptr %1654, i64 %idxprom.i22.i.i.i.i.i4697 %1655 = load atomic i32, ptr %arrayidx.i.i.i11.i.i4732 monotonic, align 4 %1656 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4702, i32 %1655, i32 %sub.i.i.i.i19.i.i.i.i4704, i32 31) %cmp.i.not.i.i.i.i4733 = icmp eq i32 %1656, %port.sroa.43.0.i.i4706.lcssa br i1 %cmp.i.not.i.i.i.i4733, label %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i4734, label %while.body.i.i.i.i4730, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i4734: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4731, %cond.false.i.i.i4729 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i4702) fence release %1657 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i4679.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i4735 = icmp ne i64 %retval.sroa.2.1.i.i.i4679.lcssa, 0 %cmp2.i.i.i.i19.i.i4736 = icmp eq i64 %1657, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i4737 = select i1 %iszero.i.i.i.i.i18.i.i4735, i1 %cmp2.i.i.i.i19.i.i4736, i1 false %div8.i.i.i21.i.i4738 = lshr i32 %retval.sroa.6.1.i.i.i4678.lcssa, 5 %1658 = and i32 %retval.sroa.6.1.i.i.i4678.lcssa, 31 %idxprom.i.i.i22.i.i4739 = zext nneg i32 %div8.i.i.i21.i.i4738 to i64 %arrayidx.i.i.i23.i.i4740 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i4739 %conv4.i.i.i24.i.i4741 = zext i1 %cmp.i.i.i.i20.i.i4737 to i32 %shl.i.i.i25.i.i4742 = shl nuw i32 %conv4.i.i.i24.i.i4741, %1658 %xor.i.i.i26.i.i4743 = xor i32 %shl.i.i.i25.i.i4742, -1 %1659 = atomicrmw and ptr %arrayidx.i.i.i23.i.i4740, i32 %xor.i.i.i26.i.i4743 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i4702) call void @llvm.lifetime.start.p0(ptr nonnull %ch.addr.i4758) store i8 10, ptr %ch.addr.i4758, align 1, !tbaa !36 br label %for.cond.i.i.i4761 for.cond.i.i.i4761: ; preds = %for.inc.i.i.i4796, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i4734 %retval.sroa.6.0.i.i.i4762 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i4734 ], [ %retval.sroa.6.2.i.i.i4797, %for.inc.i.i.i4796 ] %retval.sroa.2.0.i.i.i4763 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i4734 ], [ %retval.sroa.2.2.i.i.i4798, %for.inc.i.i.i4796 ] %retval.sroa.8.0.i.i.i4764 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i4734 ], [ %retval.sroa.8.2.i.i.i4799, %for.inc.i.i.i4796 ] %index.0.i.i.i4765 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git15write_to_stderrENS_3cpp11string_viewE.exit.i4734 ], [ %inc.i.i.i4800, %for.inc.i.i.i4796 ] %1660 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i4766 = icmp ult i32 %index.0.i.i.i4765, %1660 %spec.store.select.i.i.i4767 = select i1 %cmp.not.i.i.i4766, i32 %index.0.i.i.i4765, i32 0 %1661 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i4768 = zext i32 %1661 to i64 %div8.i.i.i.i.i4769 = lshr i32 %spec.store.select.i.i.i4767, 5 %1662 = and i32 %spec.store.select.i.i.i4767, 31 %idxprom.i.i.i.i.i4770 = zext nneg i32 %div8.i.i.i.i.i4769 to i64 %arrayidx.i.i.i.i.i4771 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i4770 %1663 = lshr i32 %1661, %2 %conv4.i.i.i.i.i4772 = and i32 %1663, 1 %shl.i.i.i.i.i4773 = shl nuw i32 %conv4.i.i.i.i.i4772, %1662 %1664 = atomicrmw or ptr %arrayidx.i.i.i.i.i4771, i32 %shl.i.i.i.i.i4773 monotonic, align 4 %shl5.i.i.i.i.i4774 = shl nuw i32 1, %1662 %and.i.i.i.i.i4775 = and i32 %shl5.i.i.i.i.i4774, %1664 %tobool3.i.i.i.i4776 = icmp ne i32 %and.i.i.i.i.i4775, 0 %1665 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %1661, i1 %tobool3.i.i.i.i4776) %cmp.i.not.i.i.i4777 = icmp eq i32 %1661, %1665 br i1 %cmp.i.not.i.i.i4777, label %for.inc.i.i.i4796, label %if.then.i.i.i.i4778 if.then.i.i.i.i4778: ; preds = %for.cond.i.i.i4761 fence acquire %1666 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i4779 = zext i32 %spec.store.select.i.i.i4767 to i64 %arrayidx.i.i.i.i4780 = getelementptr inbounds nuw i32, ptr %1666, i64 %idxprom.i.i.i.i4779 %1667 = load atomic i32, ptr %arrayidx.i.i.i.i4780 monotonic, align 4 %1668 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %1661, i1 true) %iszero.i.i.i.i.i.i4781 = icmp eq i32 %1661, 0 %sub.i.i.i.i.i.i4782 = select i1 %iszero.i.i.i.i.i.i4781, i32 -1, i32 %1668 %1669 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1661, i32 %1667, i32 %sub.i.i.i.i.i.i4782, i32 31) %1670 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i4783 = getelementptr inbounds nuw i32, ptr %1670, i64 %idxprom.i.i.i.i4779 %1671 = load atomic i32, ptr %arrayidx.i45.i.i.i4783 monotonic, align 4 %1672 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1661, i32 %1671, i32 %sub.i.i.i.i.i.i4782, i32 31) %cmp.i48.not.i.i.i4784 = icmp eq i32 %1669, %1672 br i1 %cmp.i48.not.i.i.i4784, label %if.end14.i.i.i4861, label %if.then12.i.i.i4785 if.then12.i.i.i4785: ; preds = %if.then.i.i.i.i4778 fence release %1673 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i4768, i1 true) %iszero.i.i.i.i.i.i.i4786 = icmp ne i32 %1661, 0 %cmp2.i.i.i.i.i.i4787 = icmp eq i64 %1673, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i4788 = select i1 %iszero.i.i.i.i.i.i.i4786, i1 %cmp2.i.i.i.i.i.i4787, i1 false %conv4.i.i53.i.i.i4789 = zext i1 %cmp.i.i.i.i.i.i4788 to i32 %shl.i.i54.i.i.i4790 = shl nuw i32 %conv4.i.i53.i.i.i4789, %1662 %xor.i.i.i.i.i4791 = xor i32 %shl.i.i54.i.i.i4790, -1 %1674 = atomicrmw and ptr %arrayidx.i.i.i.i.i4771, i32 %xor.i.i.i.i.i4791 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %1661) br label %cleanup26.i.i.i4792 if.end14.i.i.i4861: ; preds = %if.then.i.i.i.i4778 %1675 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i4768, i1 true) %iszero.i.i.i56.i.i.i4862 = icmp ne i32 %1661, 0 %cmp2.i.i.i.i.i4863 = icmp eq i64 %1675, %sh_prom.i.i.i.i %cmp.i.i.i.i.i4864 = select i1 %iszero.i.i.i56.i.i.i4862, i1 %cmp2.i.i.i.i.i4863, i1 false br i1 %cmp.i.i.i.i.i4864, label %if.then16.i.i.i4866, label %if.end22.i.i.i4865 if.then16.i.i.i4866: ; preds = %if.end14.i.i.i4861 %1676 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i4867 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1676, i64 %idxprom.i.i.i.i4779, i32 1 store i32 1660944387, ptr %opcode.i.i.i4867, align 8, !tbaa !61 %arrayidx21.i.i.i4868 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1676, i64 %idxprom.i.i.i.i4779 store i64 %conv.i.i.i.i.i4768, ptr %arrayidx21.i.i.i4868, align 8, !tbaa !64 br label %if.end22.i.i.i4865 if.end22.i.i.i4865: ; preds = %if.then16.i.i.i4866, %if.end14.i.i.i4861 call void @llvm.nvvm.bar.warp.sync(i32 %1661) br label %cleanup26.i.i.i4792 cleanup26.i.i.i4792: ; preds = %if.end22.i.i.i4865, %if.then12.i.i.i4785 %retval.sroa.6.1.i.i.i4793 = phi i32 [ %retval.sroa.6.0.i.i.i4762, %if.then12.i.i.i4785 ], [ %spec.store.select.i.i.i4767, %if.end22.i.i.i4865 ] %retval.sroa.2.1.i.i.i4794 = phi i64 [ %retval.sroa.2.0.i.i.i4763, %if.then12.i.i.i4785 ], [ %conv.i.i.i.i.i4768, %if.end22.i.i.i4865 ] %retval.sroa.8.1.i.i.i4795 = phi i32 [ %retval.sroa.8.0.i.i.i4764, %if.then12.i.i.i4785 ], [ %1669, %if.end22.i.i.i4865 ] br i1 %cmp.i48.not.i.i.i4784, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4801, label %for.inc.i.i.i4796 for.inc.i.i.i4796: ; preds = %cleanup26.i.i.i4792, %for.cond.i.i.i4761 %retval.sroa.6.2.i.i.i4797 = phi i32 [ %retval.sroa.6.1.i.i.i4793, %cleanup26.i.i.i4792 ], [ %retval.sroa.6.0.i.i.i4762, %for.cond.i.i.i4761 ] %retval.sroa.2.2.i.i.i4798 = phi i64 [ %retval.sroa.2.1.i.i.i4794, %cleanup26.i.i.i4792 ], [ %retval.sroa.2.0.i.i.i4763, %for.cond.i.i.i4761 ] %retval.sroa.8.2.i.i.i4799 = phi i32 [ %retval.sroa.8.1.i.i.i4795, %cleanup26.i.i.i4792 ], [ %retval.sroa.8.0.i.i.i4764, %for.cond.i.i.i4761 ] %inc.i.i.i4800 = add i32 %spec.store.select.i.i.i4767, 1 br label %for.cond.i.i.i4761, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4801: ; preds = %cleanup26.i.i.i4792 %retval.sroa.6.1.i.i.i4793.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i4793, %cleanup26.i.i.i4792 ] %retval.sroa.2.1.i.i.i4794.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i4794, %cleanup26.i.i.i4792 ] %retval.sroa.8.1.i.i.i4795.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i4795, %cleanup26.i.i.i4792 ] fence acquire %1677 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i4804 = shl i32 %retval.sroa.6.1.i.i.i4793.lcssa, 5 %idxprom.i18.i.i.i.i.i4805 = zext i32 %mul.i.i.i.i.i.i4804 to i64 %arrayidx.i19.i.i.i.i.i4806 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1677, i64 %idxprom.i18.i.i.i.i.i4805 %arrayidx.i21.i.i.i.i.i4807 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i4806, i64 %sh_prom.i.i.i.i store i64 1, ptr %arrayidx.i21.i.i.i.i.i4807, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i4809 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i4807, i64 8 %1678 = load i8, ptr %ch.addr.i4758, align 1 store i8 %1678, ptr %arrayidx6.i.i.i.i.i.i.i4809, align 8 %tobool.not.i.i.i.i.i.i4810 = icmp eq i32 %retval.sroa.8.1.i.i.i4795.lcssa, 0 %conv.i.i.i.i.i.i4811 = zext i1 %tobool.not.i.i.i.i.i.i4810 to i32 fence release %1679 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i4812 = zext i32 %retval.sroa.6.1.i.i.i4793.lcssa to i64 %arrayidx.i23.i.i.i.i.i4813 = getelementptr inbounds nuw i32, ptr %1679, i64 %idxprom.i22.i.i.i.i.i4812 store atomic i32 %conv.i.i.i.i.i.i4811, ptr %arrayidx.i23.i.i.i.i.i4813 monotonic, align 4 %1680 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i4814 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1680, i64 %idxprom.i22.i.i.i.i.i4812 %1681 = load i64, ptr %arrayidx.i.i4.i.i4814, align 8, !tbaa !64 %conv.i.i7.i.i.i.i4815 = trunc i64 %1681 to i32 %conv.i.i.i.i17.i.i.i.i4817 = trunc i64 %retval.sroa.2.1.i.i.i4794.lcssa to i32 %1682 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i4817, i1 true) %iszero.i.i.i.i18.i.i.i.i4818 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i4817, 0 %sub.i.i.i.i19.i.i.i.i4819 = select i1 %iszero.i.i.i.i18.i.i.i.i4818, i32 -1, i32 %1682 br label %while.cond.i.i.i.i4820 while.cond.i.i.i.i4820: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4832, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4801 %port.sroa.43.0.i.i4821 = phi i32 [ %conv.i.i.i.i.i.i4811, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4801 ], [ %conv.i.i39.i.i.i.i4833, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4832 ] %idx.0.i.i.i.i4822 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4801 ], [ %add.i.i.i.i4835, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4832 ] %cmp.i.i.i.i4823 = icmp eq i64 %idx.0.i.i.i.i4822, 0 %1683 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i4815, i1 %cmp.i.i.i.i4823) %tobool.not.i.i.i.i4824 = icmp eq i32 %1683, 0 %1684 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i4825 = getelementptr inbounds nuw i32, ptr %1684, i64 %idxprom.i22.i.i.i.i.i4812 %1685 = load atomic i32, ptr %arrayidx.i22.i.i.i4825 monotonic, align 4 br i1 %tobool.not.i.i.i.i4824, label %cond.false.i.i.i4844, label %cond.false.i11.i.i.i.i4826 cond.false.i11.i.i.i.i4826: ; preds = %while.cond.i.i.i.i4820 %1686 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4817, i32 %1685, i32 %sub.i.i.i.i19.i.i.i.i4819, i32 31) %1687 = icmp eq i32 %1686, %port.sroa.43.0.i.i4821 br i1 %1687, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4831, label %while.body.i.i33.i.i.i.i4827 while.body.i.i33.i.i.i.i4827: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4828, %cond.false.i11.i.i.i.i4826 %1688 = phi ptr [ %1689, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4828 ], [ %1684, %cond.false.i11.i.i.i.i4826 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i4842, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4828 if.then.i.i.i48.i.i.i.i4842: ; preds = %while.body.i.i33.i.i.i.i4827 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i4843 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4828 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4828: ; preds = %if.then.i.i.i48.i.i.i.i4842, %while.body.i.i33.i.i.i.i4827 %1689 = phi ptr [ %.pre.i.i.i.i4843, %if.then.i.i.i48.i.i.i.i4842 ], [ %1688, %while.body.i.i33.i.i.i.i4827 ] %arrayidx.i.i.i35.i.i.i.i4829 = getelementptr inbounds nuw i32, ptr %1689, i64 %idxprom.i22.i.i.i.i.i4812 %1690 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i4829 monotonic, align 4 %1691 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4817, i32 %1690, i32 %sub.i.i.i.i19.i.i.i.i4819, i32 31) %cmp.i.not.i.i36.i.i.i.i4830 = icmp eq i32 %1691, %port.sroa.43.0.i.i4821 br i1 %cmp.i.not.i.i36.i.i.i.i4830, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4831, label %while.body.i.i33.i.i.i.i4827, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4831: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4828, %cond.false.i11.i.i.i.i4826 fence acquire br i1 %cmp.i.i.i.i4823, label %if.then.i.i20.i.i.i.i.i4836, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4832 if.then.i.i20.i.i.i.i.i4836: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4831 %1692 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i4840 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1692, i64 %idxprom.i18.i.i.i.i.i4805 %arrayidx.i22.i.i.i.i.i4841 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i4840, i64 %sh_prom.i.i.i.i %1693 = load i8, ptr %ch.addr.i4758, align 1 store i8 %1693, ptr %arrayidx.i22.i.i.i.i.i4841, align 1 br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4832 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4832: ; preds = %if.then.i.i20.i.i.i.i.i4836, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4831 %conv.i.i39.i.i.i.i4833 = xor i32 %port.sroa.43.0.i.i4821, 1 fence release %1694 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i4834 = getelementptr inbounds nuw i32, ptr %1694, i64 %idxprom.i22.i.i.i.i.i4812 store atomic i32 %conv.i.i39.i.i.i.i4833, ptr %arrayidx.i24.i.i.i.i.i4834 monotonic, align 4 %add.i.i.i.i4835 = add i64 %idx.0.i.i.i.i4822, 64 br label %while.cond.i.i.i.i4820, !llvm.loop !71 cond.false.i.i.i4844: ; preds = %while.cond.i.i.i.i4820 %port.sroa.43.0.i.i4821.lcssa = phi i32 [ %port.sroa.43.0.i.i4821, %while.cond.i.i.i.i4820 ] %.lcssa5604 = phi ptr [ %1684, %while.cond.i.i.i.i4820 ] %.lcssa = phi i32 [ %1685, %while.cond.i.i.i.i4820 ] %1695 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4817, i32 %.lcssa, i32 %sub.i.i.i.i19.i.i.i.i4819, i32 31) %1696 = icmp eq i32 %1695, %port.sroa.43.0.i.i4821.lcssa br i1 %1696, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit4869, label %while.body.i.i.i.i4845 while.body.i.i.i.i4845: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4846, %cond.false.i.i.i4844 %1697 = phi ptr [ %1698, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4846 ], [ %.lcssa5604, %cond.false.i.i.i4844 ] br i1 %343, label %if.then.i.i.i.i.i4859, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4846 if.then.i.i.i.i.i4859: ; preds = %while.body.i.i.i.i4845 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i4860 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4846 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4846: ; preds = %if.then.i.i.i.i.i4859, %while.body.i.i.i.i4845 %1698 = phi ptr [ %.pre.i.i4860, %if.then.i.i.i.i.i4859 ], [ %1697, %while.body.i.i.i.i4845 ] %arrayidx.i.i.i11.i.i4847 = getelementptr inbounds nuw i32, ptr %1698, i64 %idxprom.i22.i.i.i.i.i4812 %1699 = load atomic i32, ptr %arrayidx.i.i.i11.i.i4847 monotonic, align 4 %1700 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4817, i32 %1699, i32 %sub.i.i.i.i19.i.i.i.i4819, i32 31) %cmp.i.not.i.i.i.i4848 = icmp eq i32 %1700, %port.sroa.43.0.i.i4821.lcssa br i1 %cmp.i.not.i.i.i.i4848, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit4869, label %while.body.i.i.i.i4845, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit4869: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4846, %cond.false.i.i.i4844 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i4817) fence release %1701 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i4794.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i4850 = icmp ne i64 %retval.sroa.2.1.i.i.i4794.lcssa, 0 %cmp2.i.i.i.i19.i.i4851 = icmp eq i64 %1701, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i4852 = select i1 %iszero.i.i.i.i.i18.i.i4850, i1 %cmp2.i.i.i.i19.i.i4851, i1 false %div8.i.i.i21.i.i4853 = lshr i32 %retval.sroa.6.1.i.i.i4793.lcssa, 5 %1702 = and i32 %retval.sroa.6.1.i.i.i4793.lcssa, 31 %idxprom.i.i.i22.i.i4854 = zext nneg i32 %div8.i.i.i21.i.i4853 to i64 %arrayidx.i.i.i23.i.i4855 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i4854 %conv4.i.i.i24.i.i4856 = zext i1 %cmp.i.i.i.i20.i.i4852 to i32 %shl.i.i.i25.i.i4857 = shl nuw i32 %conv4.i.i.i24.i.i4856, %1702 %xor.i.i.i26.i.i4858 = xor i32 %shl.i.i.i25.i.i4857, -1 %1703 = atomicrmw and ptr %arrayidx.i.i.i23.i.i4855, i32 %xor.i.i.i26.i.i4858 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i4817) call void @llvm.lifetime.end.p0(ptr nonnull %ch.addr.i4758) br label %if.end111 for.cond.i.i.i4881: ; preds = %for.inc.i.i.i4916, %for.cond.cleanup %retval.sroa.6.0.i.i.i4882 = phi i32 [ %retval.sroa.6.2.i.i.i4917, %for.inc.i.i.i4916 ], [ undef, %for.cond.cleanup ] %retval.sroa.2.0.i.i.i4883 = phi i64 [ %retval.sroa.2.2.i.i.i4918, %for.inc.i.i.i4916 ], [ undef, %for.cond.cleanup ] %retval.sroa.8.0.i.i.i4884 = phi i32 [ %retval.sroa.8.2.i.i.i4919, %for.inc.i.i.i4916 ], [ undef, %for.cond.cleanup ] %index.0.i.i.i4885 = phi i32 [ %inc.i.i.i4920, %for.inc.i.i.i4916 ], [ 0, %for.cond.cleanup ] %1704 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i4886 = icmp ult i32 %index.0.i.i.i4885, %1704 %spec.store.select.i.i.i4887 = select i1 %cmp.not.i.i.i4886, i32 %index.0.i.i.i4885, i32 0 %1705 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i4888 = zext i32 %1705 to i64 %div8.i.i.i.i.i4889 = lshr i32 %spec.store.select.i.i.i4887, 5 %1706 = and i32 %spec.store.select.i.i.i4887, 31 %idxprom.i.i.i.i.i4890 = zext nneg i32 %div8.i.i.i.i.i4889 to i64 %arrayidx.i.i.i.i.i4891 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i4890 %1707 = lshr i32 %1705, %2 %conv4.i.i.i.i.i4892 = and i32 %1707, 1 %shl.i.i.i.i.i4893 = shl nuw i32 %conv4.i.i.i.i.i4892, %1706 %1708 = atomicrmw or ptr %arrayidx.i.i.i.i.i4891, i32 %shl.i.i.i.i.i4893 monotonic, align 4 %shl5.i.i.i.i.i4894 = shl nuw i32 1, %1706 %and.i.i.i.i.i4895 = and i32 %shl5.i.i.i.i.i4894, %1708 %tobool3.i.i.i.i4896 = icmp ne i32 %and.i.i.i.i.i4895, 0 %1709 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %1705, i1 %tobool3.i.i.i.i4896) %cmp.i.not.i.i.i4897 = icmp eq i32 %1705, %1709 br i1 %cmp.i.not.i.i.i4897, label %for.inc.i.i.i4916, label %if.then.i.i.i.i4898 if.then.i.i.i.i4898: ; preds = %for.cond.i.i.i4881 fence acquire %1710 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i4899 = zext i32 %spec.store.select.i.i.i4887 to i64 %arrayidx.i.i.i.i4900 = getelementptr inbounds nuw i32, ptr %1710, i64 %idxprom.i.i.i.i4899 %1711 = load atomic i32, ptr %arrayidx.i.i.i.i4900 monotonic, align 4 %1712 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %1705, i1 true) %iszero.i.i.i.i.i.i4901 = icmp eq i32 %1705, 0 %sub.i.i.i.i.i.i4902 = select i1 %iszero.i.i.i.i.i.i4901, i32 -1, i32 %1712 %1713 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1705, i32 %1711, i32 %sub.i.i.i.i.i.i4902, i32 31) %1714 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i4903 = getelementptr inbounds nuw i32, ptr %1714, i64 %idxprom.i.i.i.i4899 %1715 = load atomic i32, ptr %arrayidx.i45.i.i.i4903 monotonic, align 4 %1716 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1705, i32 %1715, i32 %sub.i.i.i.i.i.i4902, i32 31) %cmp.i48.not.i.i.i4904 = icmp eq i32 %1713, %1716 br i1 %cmp.i48.not.i.i.i4904, label %if.end14.i.i.i4981, label %if.then12.i.i.i4905 if.then12.i.i.i4905: ; preds = %if.then.i.i.i.i4898 fence release %1717 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i4888, i1 true) %iszero.i.i.i.i.i.i.i4906 = icmp ne i32 %1705, 0 %cmp2.i.i.i.i.i.i4907 = icmp eq i64 %1717, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i4908 = select i1 %iszero.i.i.i.i.i.i.i4906, i1 %cmp2.i.i.i.i.i.i4907, i1 false %conv4.i.i53.i.i.i4909 = zext i1 %cmp.i.i.i.i.i.i4908 to i32 %shl.i.i54.i.i.i4910 = shl nuw i32 %conv4.i.i53.i.i.i4909, %1706 %xor.i.i.i.i.i4911 = xor i32 %shl.i.i54.i.i.i4910, -1 %1718 = atomicrmw and ptr %arrayidx.i.i.i.i.i4891, i32 %xor.i.i.i.i.i4911 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %1705) br label %cleanup26.i.i.i4912 if.end14.i.i.i4981: ; preds = %if.then.i.i.i.i4898 %1719 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i4888, i1 true) %iszero.i.i.i56.i.i.i4982 = icmp ne i32 %1705, 0 %cmp2.i.i.i.i.i4983 = icmp eq i64 %1719, %sh_prom.i.i.i.i %cmp.i.i.i.i.i4984 = select i1 %iszero.i.i.i56.i.i.i4982, i1 %cmp2.i.i.i.i.i4983, i1 false br i1 %cmp.i.i.i.i.i4984, label %if.then16.i.i.i4986, label %if.end22.i.i.i4985 if.then16.i.i.i4986: ; preds = %if.end14.i.i.i4981 %1720 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i4987 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1720, i64 %idxprom.i.i.i.i4899, i32 1 store i32 1660944387, ptr %opcode.i.i.i4987, align 8, !tbaa !61 %arrayidx21.i.i.i4988 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1720, i64 %idxprom.i.i.i.i4899 store i64 %conv.i.i.i.i.i4888, ptr %arrayidx21.i.i.i4988, align 8, !tbaa !64 br label %if.end22.i.i.i4985 if.end22.i.i.i4985: ; preds = %if.then16.i.i.i4986, %if.end14.i.i.i4981 call void @llvm.nvvm.bar.warp.sync(i32 %1705) br label %cleanup26.i.i.i4912 cleanup26.i.i.i4912: ; preds = %if.end22.i.i.i4985, %if.then12.i.i.i4905 %retval.sroa.6.1.i.i.i4913 = phi i32 [ %retval.sroa.6.0.i.i.i4882, %if.then12.i.i.i4905 ], [ %spec.store.select.i.i.i4887, %if.end22.i.i.i4985 ] %retval.sroa.2.1.i.i.i4914 = phi i64 [ %retval.sroa.2.0.i.i.i4883, %if.then12.i.i.i4905 ], [ %conv.i.i.i.i.i4888, %if.end22.i.i.i4985 ] %retval.sroa.8.1.i.i.i4915 = phi i32 [ %retval.sroa.8.0.i.i.i4884, %if.then12.i.i.i4905 ], [ %1713, %if.end22.i.i.i4985 ] br i1 %cmp.i48.not.i.i.i4904, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4921, label %for.inc.i.i.i4916 for.inc.i.i.i4916: ; preds = %cleanup26.i.i.i4912, %for.cond.i.i.i4881 %retval.sroa.6.2.i.i.i4917 = phi i32 [ %retval.sroa.6.1.i.i.i4913, %cleanup26.i.i.i4912 ], [ %retval.sroa.6.0.i.i.i4882, %for.cond.i.i.i4881 ] %retval.sroa.2.2.i.i.i4918 = phi i64 [ %retval.sroa.2.1.i.i.i4914, %cleanup26.i.i.i4912 ], [ %retval.sroa.2.0.i.i.i4883, %for.cond.i.i.i4881 ] %retval.sroa.8.2.i.i.i4919 = phi i32 [ %retval.sroa.8.1.i.i.i4915, %cleanup26.i.i.i4912 ], [ %retval.sroa.8.0.i.i.i4884, %for.cond.i.i.i4881 ] %inc.i.i.i4920 = add i32 %spec.store.select.i.i.i4887, 1 br label %for.cond.i.i.i4881, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4921: ; preds = %cleanup26.i.i.i4912 %retval.sroa.6.1.i.i.i4913.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i4913, %cleanup26.i.i.i4912 ] %retval.sroa.2.1.i.i.i4914.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i4914, %cleanup26.i.i.i4912 ] %retval.sroa.8.1.i.i.i4915.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i4915, %cleanup26.i.i.i4912 ] fence acquire %1721 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i4924 = shl i32 %retval.sroa.6.1.i.i.i4913.lcssa, 5 %idxprom.i18.i.i.i.i.i4925 = zext i32 %mul.i.i.i.i.i.i4924 to i64 %arrayidx.i19.i.i.i.i.i4926 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1721, i64 %idxprom.i18.i.i.i.i.i4925 %arrayidx.i21.i.i.i.i.i4927 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i4926, i64 %sh_prom.i.i.i.i store i64 14, ptr %arrayidx.i21.i.i.i.i.i4927, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i4929 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i4927, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(14) %arrayidx6.i.i.i.i.i.i.i4929, ptr noundef nonnull align 1 dereferenceable(14) @.str29, i64 14, i1 false) %tobool.not.i.i.i.i.i.i4930 = icmp eq i32 %retval.sroa.8.1.i.i.i4915.lcssa, 0 %conv.i.i.i.i.i.i4931 = zext i1 %tobool.not.i.i.i.i.i.i4930 to i32 fence release %1722 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i4932 = zext i32 %retval.sroa.6.1.i.i.i4913.lcssa to i64 %arrayidx.i23.i.i.i.i.i4933 = getelementptr inbounds nuw i32, ptr %1722, i64 %idxprom.i22.i.i.i.i.i4932 store atomic i32 %conv.i.i.i.i.i.i4931, ptr %arrayidx.i23.i.i.i.i.i4933 monotonic, align 4 %1723 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i4934 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1723, i64 %idxprom.i22.i.i.i.i.i4932 %1724 = load i64, ptr %arrayidx.i.i4.i.i4934, align 8, !tbaa !64 %conv.i.i7.i.i.i.i4935 = trunc i64 %1724 to i32 %conv.i.i.i.i17.i.i.i.i4937 = trunc i64 %retval.sroa.2.1.i.i.i4914.lcssa to i32 %1725 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i4937, i1 true) %iszero.i.i.i.i18.i.i.i.i4938 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i4937, 0 %sub.i.i.i.i19.i.i.i.i4939 = select i1 %iszero.i.i.i.i18.i.i.i.i4938, i32 -1, i32 %1725 br label %while.cond.i.i.i.i4940 while.cond.i.i.i.i4940: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4952, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4921 %port.sroa.43.0.i.i4941 = phi i32 [ %conv.i.i.i.i.i.i4931, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4921 ], [ %conv.i.i39.i.i.i.i4953, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4952 ] %idx.0.i.i.i.i4942 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i4921 ], [ %add.i.i.i.i4955, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4952 ] %cmp.i.i.i2.i4943 = icmp ult i64 %idx.0.i.i.i.i4942, 14 %1726 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i4935, i1 %cmp.i.i.i2.i4943) %tobool.not.i.i.i.i4944 = icmp eq i32 %1726, 0 %1727 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i4945 = getelementptr inbounds nuw i32, ptr %1727, i64 %idxprom.i22.i.i.i.i.i4932 %1728 = load atomic i32, ptr %arrayidx.i22.i.i.i4945 monotonic, align 4 br i1 %tobool.not.i.i.i.i4944, label %cond.false.i.i.i4964, label %cond.false.i11.i.i.i.i4946 cond.false.i11.i.i.i.i4946: ; preds = %while.cond.i.i.i.i4940 %1729 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4937, i32 %1728, i32 %sub.i.i.i.i19.i.i.i.i4939, i32 31) %1730 = icmp eq i32 %1729, %port.sroa.43.0.i.i4941 br i1 %1730, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4951, label %while.body.i.i33.i.i.i.i4947 while.body.i.i33.i.i.i.i4947: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4948, %cond.false.i11.i.i.i.i4946 %1731 = phi ptr [ %1732, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4948 ], [ %1727, %cond.false.i11.i.i.i.i4946 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i4962, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4948 if.then.i.i.i48.i.i.i.i4962: ; preds = %while.body.i.i33.i.i.i.i4947 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i4963 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4948 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4948: ; preds = %if.then.i.i.i48.i.i.i.i4962, %while.body.i.i33.i.i.i.i4947 %1732 = phi ptr [ %.pre.i.i.i.i4963, %if.then.i.i.i48.i.i.i.i4962 ], [ %1731, %while.body.i.i33.i.i.i.i4947 ] %arrayidx.i.i.i35.i.i.i.i4949 = getelementptr inbounds nuw i32, ptr %1732, i64 %idxprom.i22.i.i.i.i.i4932 %1733 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i4949 monotonic, align 4 %1734 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4937, i32 %1733, i32 %sub.i.i.i.i19.i.i.i.i4939, i32 31) %cmp.i.not.i.i36.i.i.i.i4950 = icmp eq i32 %1734, %port.sroa.43.0.i.i4941 br i1 %cmp.i.not.i.i36.i.i.i.i4950, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4951, label %while.body.i.i33.i.i.i.i4947, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4951: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i4948, %cond.false.i11.i.i.i.i4946 fence acquire br i1 %cmp.i.i.i2.i4943, label %if.then.i.i20.i.i.i.i.i4956, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4952 if.then.i.i20.i.i.i.i.i4956: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4951 %add.ptr.i.i.i.i.i.i.i.i4957 = getelementptr inbounds nuw i8, ptr @.str29, i64 %idx.0.i.i.i.i4942 %sub.i.i.i.i.i.i.i4958 = sub nuw nsw i64 14, %idx.0.i.i.i.i4942 %1735 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i4960 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1735, i64 %idxprom.i18.i.i.i.i.i4925 %arrayidx.i22.i.i.i.i.i4961 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i4960, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %arrayidx.i22.i.i.i.i.i4961, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr.i.i.i.i.i.i.i.i4957, i64 %sub.i.i.i.i.i.i.i4958, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4952 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i4952: ; preds = %if.then.i.i20.i.i.i.i.i4956, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i4951 %conv.i.i39.i.i.i.i4953 = xor i32 %port.sroa.43.0.i.i4941, 1 fence release %1736 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i4954 = getelementptr inbounds nuw i32, ptr %1736, i64 %idxprom.i22.i.i.i.i.i4932 store atomic i32 %conv.i.i39.i.i.i.i4953, ptr %arrayidx.i24.i.i.i.i.i4954 monotonic, align 4 %add.i.i.i.i4955 = add i64 %idx.0.i.i.i.i4942, 64 br label %while.cond.i.i.i.i4940, !llvm.loop !71 cond.false.i.i.i4964: ; preds = %while.cond.i.i.i.i4940 %port.sroa.43.0.i.i4941.lcssa = phi i32 [ %port.sroa.43.0.i.i4941, %while.cond.i.i.i.i4940 ] %.lcssa5628 = phi ptr [ %1727, %while.cond.i.i.i.i4940 ] %.lcssa5627 = phi i32 [ %1728, %while.cond.i.i.i.i4940 ] %1737 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4937, i32 %.lcssa5627, i32 %sub.i.i.i.i19.i.i.i.i4939, i32 31) %1738 = icmp eq i32 %1737, %port.sroa.43.0.i.i4941.lcssa br i1 %1738, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4989, label %while.body.i.i.i.i4965 while.body.i.i.i.i4965: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4966, %cond.false.i.i.i4964 %1739 = phi ptr [ %1740, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4966 ], [ %.lcssa5628, %cond.false.i.i.i4964 ] br i1 %343, label %if.then.i.i.i.i.i4979, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4966 if.then.i.i.i.i.i4979: ; preds = %while.body.i.i.i.i4965 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i4980 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4966 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4966: ; preds = %if.then.i.i.i.i.i4979, %while.body.i.i.i.i4965 %1740 = phi ptr [ %.pre.i.i4980, %if.then.i.i.i.i.i4979 ], [ %1739, %while.body.i.i.i.i4965 ] %arrayidx.i.i.i11.i.i4967 = getelementptr inbounds nuw i32, ptr %1740, i64 %idxprom.i22.i.i.i.i.i4932 %1741 = load atomic i32, ptr %arrayidx.i.i.i11.i.i4967 monotonic, align 4 %1742 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i4937, i32 %1741, i32 %sub.i.i.i.i19.i.i.i.i4939, i32 31) %cmp.i.not.i.i.i.i4968 = icmp eq i32 %1742, %port.sroa.43.0.i.i4941.lcssa br i1 %cmp.i.not.i.i.i.i4968, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4989, label %while.body.i.i.i.i4965, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4989: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i4966, %cond.false.i.i.i4964 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i4937) fence release %1743 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i4914.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i4970 = icmp ne i64 %retval.sroa.2.1.i.i.i4914.lcssa, 0 %cmp2.i.i.i.i19.i.i4971 = icmp eq i64 %1743, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i4972 = select i1 %iszero.i.i.i.i.i18.i.i4970, i1 %cmp2.i.i.i.i19.i.i4971, i1 false %div8.i.i.i21.i.i4973 = lshr i32 %retval.sroa.6.1.i.i.i4913.lcssa, 5 %1744 = and i32 %retval.sroa.6.1.i.i.i4913.lcssa, 31 %idxprom.i.i.i22.i.i4974 = zext nneg i32 %div8.i.i.i21.i.i4973 to i64 %arrayidx.i.i.i23.i.i4975 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i4974 %conv4.i.i.i24.i.i4976 = zext i1 %cmp.i.i.i.i20.i.i4972 to i32 %shl.i.i.i25.i.i4977 = shl nuw i32 %conv4.i.i.i24.i.i4976, %1744 %xor.i.i.i26.i.i4978 = xor i32 %shl.i.i.i25.i.i4977, -1 %1745 = atomicrmw and ptr %arrayidx.i.i.i23.i.i4975, i32 %xor.i.i.i26.i.i4978 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i4937) %1746 = load ptr, ptr %Options, align 8, !tbaa !113 %tobool104.not = icmp eq ptr %1746, null br i1 %tobool104.not, label %if.end111, label %for.cond.i.i.i5001 for.cond.i.i.i5001: ; preds = %for.inc.i.i.i5036, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4989 %retval.sroa.6.0.i.i.i5002 = phi i32 [ %retval.sroa.6.2.i.i.i5037, %for.inc.i.i.i5036 ], [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4989 ] %retval.sroa.2.0.i.i.i5003 = phi i64 [ %retval.sroa.2.2.i.i.i5038, %for.inc.i.i.i5036 ], [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4989 ] %retval.sroa.8.0.i.i.i5004 = phi i32 [ %retval.sroa.8.2.i.i.i5039, %for.inc.i.i.i5036 ], [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4989 ] %index.0.i.i.i5005 = phi i32 [ %inc.i.i.i5040, %for.inc.i.i.i5036 ], [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4989 ] %1747 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i5006 = icmp ult i32 %index.0.i.i.i5005, %1747 %spec.store.select.i.i.i5007 = select i1 %cmp.not.i.i.i5006, i32 %index.0.i.i.i5005, i32 0 %1748 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i5008 = zext i32 %1748 to i64 %div8.i.i.i.i.i5009 = lshr i32 %spec.store.select.i.i.i5007, 5 %1749 = and i32 %spec.store.select.i.i.i5007, 31 %idxprom.i.i.i.i.i5010 = zext nneg i32 %div8.i.i.i.i.i5009 to i64 %arrayidx.i.i.i.i.i5011 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i5010 %1750 = lshr i32 %1748, %2 %conv4.i.i.i.i.i5012 = and i32 %1750, 1 %shl.i.i.i.i.i5013 = shl nuw i32 %conv4.i.i.i.i.i5012, %1749 %1751 = atomicrmw or ptr %arrayidx.i.i.i.i.i5011, i32 %shl.i.i.i.i.i5013 monotonic, align 4 %shl5.i.i.i.i.i5014 = shl nuw i32 1, %1749 %and.i.i.i.i.i5015 = and i32 %shl5.i.i.i.i.i5014, %1751 %tobool3.i.i.i.i5016 = icmp ne i32 %and.i.i.i.i.i5015, 0 %1752 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %1748, i1 %tobool3.i.i.i.i5016) %cmp.i.not.i.i.i5017 = icmp eq i32 %1748, %1752 br i1 %cmp.i.not.i.i.i5017, label %for.inc.i.i.i5036, label %if.then.i.i.i.i5018 if.then.i.i.i.i5018: ; preds = %for.cond.i.i.i5001 fence acquire %1753 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i5019 = zext i32 %spec.store.select.i.i.i5007 to i64 %arrayidx.i.i.i.i5020 = getelementptr inbounds nuw i32, ptr %1753, i64 %idxprom.i.i.i.i5019 %1754 = load atomic i32, ptr %arrayidx.i.i.i.i5020 monotonic, align 4 %1755 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %1748, i1 true) %iszero.i.i.i.i.i.i5021 = icmp eq i32 %1748, 0 %sub.i.i.i.i.i.i5022 = select i1 %iszero.i.i.i.i.i.i5021, i32 -1, i32 %1755 %1756 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1748, i32 %1754, i32 %sub.i.i.i.i.i.i5022, i32 31) %1757 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i5023 = getelementptr inbounds nuw i32, ptr %1757, i64 %idxprom.i.i.i.i5019 %1758 = load atomic i32, ptr %arrayidx.i45.i.i.i5023 monotonic, align 4 %1759 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1748, i32 %1758, i32 %sub.i.i.i.i.i.i5022, i32 31) %cmp.i48.not.i.i.i5024 = icmp eq i32 %1756, %1759 br i1 %cmp.i48.not.i.i.i5024, label %if.end14.i.i.i5101, label %if.then12.i.i.i5025 if.then12.i.i.i5025: ; preds = %if.then.i.i.i.i5018 fence release %1760 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i5008, i1 true) %iszero.i.i.i.i.i.i.i5026 = icmp ne i32 %1748, 0 %cmp2.i.i.i.i.i.i5027 = icmp eq i64 %1760, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i5028 = select i1 %iszero.i.i.i.i.i.i.i5026, i1 %cmp2.i.i.i.i.i.i5027, i1 false %conv4.i.i53.i.i.i5029 = zext i1 %cmp.i.i.i.i.i.i5028 to i32 %shl.i.i54.i.i.i5030 = shl nuw i32 %conv4.i.i53.i.i.i5029, %1749 %xor.i.i.i.i.i5031 = xor i32 %shl.i.i54.i.i.i5030, -1 %1761 = atomicrmw and ptr %arrayidx.i.i.i.i.i5011, i32 %xor.i.i.i.i.i5031 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %1748) br label %cleanup26.i.i.i5032 if.end14.i.i.i5101: ; preds = %if.then.i.i.i.i5018 %1762 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i5008, i1 true) %iszero.i.i.i56.i.i.i5102 = icmp ne i32 %1748, 0 %cmp2.i.i.i.i.i5103 = icmp eq i64 %1762, %sh_prom.i.i.i.i %cmp.i.i.i.i.i5104 = select i1 %iszero.i.i.i56.i.i.i5102, i1 %cmp2.i.i.i.i.i5103, i1 false br i1 %cmp.i.i.i.i.i5104, label %if.then16.i.i.i5106, label %if.end22.i.i.i5105 if.then16.i.i.i5106: ; preds = %if.end14.i.i.i5101 %1763 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i5107 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1763, i64 %idxprom.i.i.i.i5019, i32 1 store i32 1660944387, ptr %opcode.i.i.i5107, align 8, !tbaa !61 %arrayidx21.i.i.i5108 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1763, i64 %idxprom.i.i.i.i5019 store i64 %conv.i.i.i.i.i5008, ptr %arrayidx21.i.i.i5108, align 8, !tbaa !64 br label %if.end22.i.i.i5105 if.end22.i.i.i5105: ; preds = %if.then16.i.i.i5106, %if.end14.i.i.i5101 call void @llvm.nvvm.bar.warp.sync(i32 %1748) br label %cleanup26.i.i.i5032 cleanup26.i.i.i5032: ; preds = %if.end22.i.i.i5105, %if.then12.i.i.i5025 %retval.sroa.6.1.i.i.i5033 = phi i32 [ %retval.sroa.6.0.i.i.i5002, %if.then12.i.i.i5025 ], [ %spec.store.select.i.i.i5007, %if.end22.i.i.i5105 ] %retval.sroa.2.1.i.i.i5034 = phi i64 [ %retval.sroa.2.0.i.i.i5003, %if.then12.i.i.i5025 ], [ %conv.i.i.i.i.i5008, %if.end22.i.i.i5105 ] %retval.sroa.8.1.i.i.i5035 = phi i32 [ %retval.sroa.8.0.i.i.i5004, %if.then12.i.i.i5025 ], [ %1756, %if.end22.i.i.i5105 ] br i1 %cmp.i48.not.i.i.i5024, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i5041, label %for.inc.i.i.i5036 for.inc.i.i.i5036: ; preds = %cleanup26.i.i.i5032, %for.cond.i.i.i5001 %retval.sroa.6.2.i.i.i5037 = phi i32 [ %retval.sroa.6.1.i.i.i5033, %cleanup26.i.i.i5032 ], [ %retval.sroa.6.0.i.i.i5002, %for.cond.i.i.i5001 ] %retval.sroa.2.2.i.i.i5038 = phi i64 [ %retval.sroa.2.1.i.i.i5034, %cleanup26.i.i.i5032 ], [ %retval.sroa.2.0.i.i.i5003, %for.cond.i.i.i5001 ] %retval.sroa.8.2.i.i.i5039 = phi i32 [ %retval.sroa.8.1.i.i.i5035, %cleanup26.i.i.i5032 ], [ %retval.sroa.8.0.i.i.i5004, %for.cond.i.i.i5001 ] %inc.i.i.i5040 = add i32 %spec.store.select.i.i.i5007, 1 br label %for.cond.i.i.i5001, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i5041: ; preds = %cleanup26.i.i.i5032 %retval.sroa.6.1.i.i.i5033.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i5033, %cleanup26.i.i.i5032 ] %retval.sroa.2.1.i.i.i5034.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i5034, %cleanup26.i.i.i5032 ] %retval.sroa.8.1.i.i.i5035.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i5035, %cleanup26.i.i.i5032 ] fence acquire %1764 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i5044 = shl i32 %retval.sroa.6.1.i.i.i5033.lcssa, 5 %idxprom.i18.i.i.i.i.i5045 = zext i32 %mul.i.i.i.i.i.i5044 to i64 %arrayidx.i19.i.i.i.i.i5046 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1764, i64 %idxprom.i18.i.i.i.i.i5045 %arrayidx.i21.i.i.i.i.i5047 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i5046, i64 %sh_prom.i.i.i.i store i64 21, ptr %arrayidx.i21.i.i.i.i.i5047, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i5049 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i5047, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(21) %arrayidx6.i.i.i.i.i.i.i5049, ptr noundef nonnull align 1 dereferenceable(21) @.str30, i64 21, i1 false) %tobool.not.i.i.i.i.i.i5050 = icmp eq i32 %retval.sroa.8.1.i.i.i5035.lcssa, 0 %conv.i.i.i.i.i.i5051 = zext i1 %tobool.not.i.i.i.i.i.i5050 to i32 fence release %1765 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i5052 = zext i32 %retval.sroa.6.1.i.i.i5033.lcssa to i64 %arrayidx.i23.i.i.i.i.i5053 = getelementptr inbounds nuw i32, ptr %1765, i64 %idxprom.i22.i.i.i.i.i5052 store atomic i32 %conv.i.i.i.i.i.i5051, ptr %arrayidx.i23.i.i.i.i.i5053 monotonic, align 4 %1766 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i5054 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1766, i64 %idxprom.i22.i.i.i.i.i5052 %1767 = load i64, ptr %arrayidx.i.i4.i.i5054, align 8, !tbaa !64 %conv.i.i7.i.i.i.i5055 = trunc i64 %1767 to i32 %conv.i.i.i.i17.i.i.i.i5057 = trunc i64 %retval.sroa.2.1.i.i.i5034.lcssa to i32 %1768 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i5057, i1 true) %iszero.i.i.i.i18.i.i.i.i5058 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i5057, 0 %sub.i.i.i.i19.i.i.i.i5059 = select i1 %iszero.i.i.i.i18.i.i.i.i5058, i32 -1, i32 %1768 br label %while.cond.i.i.i.i5060 while.cond.i.i.i.i5060: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i5072, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i5041 %port.sroa.43.0.i.i5061 = phi i32 [ %conv.i.i.i.i.i.i5051, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i5041 ], [ %conv.i.i39.i.i.i.i5073, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i5072 ] %idx.0.i.i.i.i5062 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i5041 ], [ %add.i.i.i.i5075, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i5072 ] %cmp.i.i.i2.i5063 = icmp ult i64 %idx.0.i.i.i.i5062, 21 %1769 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i5055, i1 %cmp.i.i.i2.i5063) %tobool.not.i.i.i.i5064 = icmp eq i32 %1769, 0 %1770 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i5065 = getelementptr inbounds nuw i32, ptr %1770, i64 %idxprom.i22.i.i.i.i.i5052 %1771 = load atomic i32, ptr %arrayidx.i22.i.i.i5065 monotonic, align 4 br i1 %tobool.not.i.i.i.i5064, label %cond.false.i.i.i5084, label %cond.false.i11.i.i.i.i5066 cond.false.i11.i.i.i.i5066: ; preds = %while.cond.i.i.i.i5060 %1772 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i5057, i32 %1771, i32 %sub.i.i.i.i19.i.i.i.i5059, i32 31) %1773 = icmp eq i32 %1772, %port.sroa.43.0.i.i5061 br i1 %1773, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i5071, label %while.body.i.i33.i.i.i.i5067 while.body.i.i33.i.i.i.i5067: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i5068, %cond.false.i11.i.i.i.i5066 %1774 = phi ptr [ %1775, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i5068 ], [ %1770, %cond.false.i11.i.i.i.i5066 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i5082, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i5068 if.then.i.i.i48.i.i.i.i5082: ; preds = %while.body.i.i33.i.i.i.i5067 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i5083 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i5068 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i5068: ; preds = %if.then.i.i.i48.i.i.i.i5082, %while.body.i.i33.i.i.i.i5067 %1775 = phi ptr [ %.pre.i.i.i.i5083, %if.then.i.i.i48.i.i.i.i5082 ], [ %1774, %while.body.i.i33.i.i.i.i5067 ] %arrayidx.i.i.i35.i.i.i.i5069 = getelementptr inbounds nuw i32, ptr %1775, i64 %idxprom.i22.i.i.i.i.i5052 %1776 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i5069 monotonic, align 4 %1777 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i5057, i32 %1776, i32 %sub.i.i.i.i19.i.i.i.i5059, i32 31) %cmp.i.not.i.i36.i.i.i.i5070 = icmp eq i32 %1777, %port.sroa.43.0.i.i5061 br i1 %cmp.i.not.i.i36.i.i.i.i5070, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i5071, label %while.body.i.i33.i.i.i.i5067, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i5071: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i5068, %cond.false.i11.i.i.i.i5066 fence acquire br i1 %cmp.i.i.i2.i5063, label %if.then.i.i20.i.i.i.i.i5076, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i5072 if.then.i.i20.i.i.i.i.i5076: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i5071 %add.ptr.i.i.i.i.i.i.i.i5077 = getelementptr inbounds nuw i8, ptr @.str30, i64 %idx.0.i.i.i.i5062 %sub.i.i.i.i.i.i.i5078 = sub nuw nsw i64 21, %idx.0.i.i.i.i5062 %1778 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i5080 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1778, i64 %idxprom.i18.i.i.i.i.i5045 %arrayidx.i22.i.i.i.i.i5081 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i5080, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %arrayidx.i22.i.i.i.i.i5081, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr.i.i.i.i.i.i.i.i5077, i64 %sub.i.i.i.i.i.i.i5078, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i5072 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i5072: ; preds = %if.then.i.i20.i.i.i.i.i5076, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i5071 %conv.i.i39.i.i.i.i5073 = xor i32 %port.sroa.43.0.i.i5061, 1 fence release %1779 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i5074 = getelementptr inbounds nuw i32, ptr %1779, i64 %idxprom.i22.i.i.i.i.i5052 store atomic i32 %conv.i.i39.i.i.i.i5073, ptr %arrayidx.i24.i.i.i.i.i5074 monotonic, align 4 %add.i.i.i.i5075 = add i64 %idx.0.i.i.i.i5062, 64 br label %while.cond.i.i.i.i5060, !llvm.loop !71 cond.false.i.i.i5084: ; preds = %while.cond.i.i.i.i5060 %port.sroa.43.0.i.i5061.lcssa = phi i32 [ %port.sroa.43.0.i.i5061, %while.cond.i.i.i.i5060 ] %.lcssa5626 = phi ptr [ %1770, %while.cond.i.i.i.i5060 ] %.lcssa5625 = phi i32 [ %1771, %while.cond.i.i.i.i5060 ] %1780 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i5057, i32 %.lcssa5625, i32 %sub.i.i.i.i19.i.i.i.i5059, i32 31) %1781 = icmp eq i32 %1780, %port.sroa.43.0.i.i5061.lcssa br i1 %1781, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit5109, label %while.body.i.i.i.i5085 while.body.i.i.i.i5085: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i5086, %cond.false.i.i.i5084 %1782 = phi ptr [ %1783, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i5086 ], [ %.lcssa5626, %cond.false.i.i.i5084 ] br i1 %343, label %if.then.i.i.i.i.i5099, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i5086 if.then.i.i.i.i.i5099: ; preds = %while.body.i.i.i.i5085 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i5100 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i5086 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i5086: ; preds = %if.then.i.i.i.i.i5099, %while.body.i.i.i.i5085 %1783 = phi ptr [ %.pre.i.i5100, %if.then.i.i.i.i.i5099 ], [ %1782, %while.body.i.i.i.i5085 ] %arrayidx.i.i.i11.i.i5087 = getelementptr inbounds nuw i32, ptr %1783, i64 %idxprom.i22.i.i.i.i.i5052 %1784 = load atomic i32, ptr %arrayidx.i.i.i11.i.i5087 monotonic, align 4 %1785 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i5057, i32 %1784, i32 %sub.i.i.i.i19.i.i.i.i5059, i32 31) %cmp.i.not.i.i.i.i5088 = icmp eq i32 %1785, %port.sroa.43.0.i.i5061.lcssa br i1 %cmp.i.not.i.i.i.i5088, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit5109, label %while.body.i.i.i.i5085, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit5109: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i5086, %cond.false.i.i.i5084 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i5057) fence release %1786 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i5034.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i5090 = icmp ne i64 %retval.sroa.2.1.i.i.i5034.lcssa, 0 %cmp2.i.i.i.i19.i.i5091 = icmp eq i64 %1786, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i5092 = select i1 %iszero.i.i.i.i.i18.i.i5090, i1 %cmp2.i.i.i.i19.i.i5091, i1 false %div8.i.i.i21.i.i5093 = lshr i32 %retval.sroa.6.1.i.i.i5033.lcssa, 5 %1787 = and i32 %retval.sroa.6.1.i.i.i5033.lcssa, 31 %idxprom.i.i.i22.i.i5094 = zext nneg i32 %div8.i.i.i21.i.i5093 to i64 %arrayidx.i.i.i23.i.i5095 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i5094 %conv4.i.i.i24.i.i5096 = zext i1 %cmp.i.i.i.i20.i.i5092 to i32 %shl.i.i.i25.i.i5097 = shl nuw i32 %conv4.i.i.i24.i.i5096, %1787 %xor.i.i.i26.i.i5098 = xor i32 %shl.i.i.i25.i.i5097, -1 %1788 = atomicrmw and ptr %arrayidx.i.i.i23.i.i5095, i32 %xor.i.i.i26.i.i5098 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i5057) %1789 = load ptr, ptr %Options, align 8, !tbaa !113 br label %for.cond.i.i.i.i5112 for.cond.i.i.i.i5112: ; preds = %for.cond.i.i.i.i5112, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit5109 %End.0.i.i.i.i5113 = phi ptr [ %1789, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit5109 ], [ %incdec.ptr.i.i.i.i5115, %for.cond.i.i.i.i5112 ] %1790 = load i8, ptr %End.0.i.i.i.i5113, align 1, !tbaa !36 %cmp.i.i.i.i5114 = icmp eq i8 %1790, 0 %incdec.ptr.i.i.i.i5115 = getelementptr inbounds nuw i8, ptr %End.0.i.i.i.i5113, i64 1 br i1 %cmp.i.i.i.i5114, label %for.cond.i.i.i5122.preheader, label %for.cond.i.i.i.i5112, !llvm.loop !101 for.cond.i.i.i5122.preheader: ; preds = %for.cond.i.i.i.i5112 %End.0.i.i.i.i5113.lcssa = phi ptr [ %End.0.i.i.i.i5113, %for.cond.i.i.i.i5112 ] br label %for.cond.i.i.i5122 for.cond.i.i.i5122: ; preds = %for.inc.i.i.i5157, %for.cond.i.i.i5122.preheader %retval.sroa.6.0.i.i.i5123 = phi i32 [ %retval.sroa.6.2.i.i.i5158, %for.inc.i.i.i5157 ], [ undef, %for.cond.i.i.i5122.preheader ] %retval.sroa.2.0.i.i.i5124 = phi i64 [ %retval.sroa.2.2.i.i.i5159, %for.inc.i.i.i5157 ], [ undef, %for.cond.i.i.i5122.preheader ] %retval.sroa.8.0.i.i.i5125 = phi i32 [ %retval.sroa.8.2.i.i.i5160, %for.inc.i.i.i5157 ], [ undef, %for.cond.i.i.i5122.preheader ] %index.0.i.i.i5126 = phi i32 [ %inc.i.i.i5161, %for.inc.i.i.i5157 ], [ 0, %for.cond.i.i.i5122.preheader ] %1791 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i5127 = icmp ult i32 %index.0.i.i.i5126, %1791 %spec.store.select.i.i.i5128 = select i1 %cmp.not.i.i.i5127, i32 %index.0.i.i.i5126, i32 0 %1792 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i5129 = zext i32 %1792 to i64 %div8.i.i.i.i.i5130 = lshr i32 %spec.store.select.i.i.i5128, 5 %1793 = and i32 %spec.store.select.i.i.i5128, 31 %idxprom.i.i.i.i.i5131 = zext nneg i32 %div8.i.i.i.i.i5130 to i64 %arrayidx.i.i.i.i.i5132 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i5131 %1794 = lshr i32 %1792, %2 %conv4.i.i.i.i.i5133 = and i32 %1794, 1 %shl.i.i.i.i.i5134 = shl nuw i32 %conv4.i.i.i.i.i5133, %1793 %1795 = atomicrmw or ptr %arrayidx.i.i.i.i.i5132, i32 %shl.i.i.i.i.i5134 monotonic, align 4 %shl5.i.i.i.i.i5135 = shl nuw i32 1, %1793 %and.i.i.i.i.i5136 = and i32 %shl5.i.i.i.i.i5135, %1795 %tobool3.i.i.i.i5137 = icmp ne i32 %and.i.i.i.i.i5136, 0 %1796 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %1792, i1 %tobool3.i.i.i.i5137) %cmp.i.not.i.i.i5138 = icmp eq i32 %1792, %1796 br i1 %cmp.i.not.i.i.i5138, label %for.inc.i.i.i5157, label %if.then.i.i.i.i5139 if.then.i.i.i.i5139: ; preds = %for.cond.i.i.i5122 fence acquire %1797 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i5140 = zext i32 %spec.store.select.i.i.i5128 to i64 %arrayidx.i.i.i.i5141 = getelementptr inbounds nuw i32, ptr %1797, i64 %idxprom.i.i.i.i5140 %1798 = load atomic i32, ptr %arrayidx.i.i.i.i5141 monotonic, align 4 %1799 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %1792, i1 true) %iszero.i.i.i.i.i.i5142 = icmp eq i32 %1792, 0 %sub.i.i.i.i.i.i5143 = select i1 %iszero.i.i.i.i.i.i5142, i32 -1, i32 %1799 %1800 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1792, i32 %1798, i32 %sub.i.i.i.i.i.i5143, i32 31) %1801 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i5144 = getelementptr inbounds nuw i32, ptr %1801, i64 %idxprom.i.i.i.i5140 %1802 = load atomic i32, ptr %arrayidx.i45.i.i.i5144 monotonic, align 4 %1803 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1792, i32 %1802, i32 %sub.i.i.i.i.i.i5143, i32 31) %cmp.i48.not.i.i.i5145 = icmp eq i32 %1800, %1803 br i1 %cmp.i48.not.i.i.i5145, label %if.end14.i.i.i5222, label %if.then12.i.i.i5146 if.then12.i.i.i5146: ; preds = %if.then.i.i.i.i5139 fence release %1804 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i5129, i1 true) %iszero.i.i.i.i.i.i.i5147 = icmp ne i32 %1792, 0 %cmp2.i.i.i.i.i.i5148 = icmp eq i64 %1804, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i5149 = select i1 %iszero.i.i.i.i.i.i.i5147, i1 %cmp2.i.i.i.i.i.i5148, i1 false %conv4.i.i53.i.i.i5150 = zext i1 %cmp.i.i.i.i.i.i5149 to i32 %shl.i.i54.i.i.i5151 = shl nuw i32 %conv4.i.i53.i.i.i5150, %1793 %xor.i.i.i.i.i5152 = xor i32 %shl.i.i54.i.i.i5151, -1 %1805 = atomicrmw and ptr %arrayidx.i.i.i.i.i5132, i32 %xor.i.i.i.i.i5152 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %1792) br label %cleanup26.i.i.i5153 if.end14.i.i.i5222: ; preds = %if.then.i.i.i.i5139 %1806 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i5129, i1 true) %iszero.i.i.i56.i.i.i5223 = icmp ne i32 %1792, 0 %cmp2.i.i.i.i.i5224 = icmp eq i64 %1806, %sh_prom.i.i.i.i %cmp.i.i.i.i.i5225 = select i1 %iszero.i.i.i56.i.i.i5223, i1 %cmp2.i.i.i.i.i5224, i1 false br i1 %cmp.i.i.i.i.i5225, label %if.then16.i.i.i5227, label %if.end22.i.i.i5226 if.then16.i.i.i5227: ; preds = %if.end14.i.i.i5222 %1807 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i5228 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1807, i64 %idxprom.i.i.i.i5140, i32 1 store i32 1660944387, ptr %opcode.i.i.i5228, align 8, !tbaa !61 %arrayidx21.i.i.i5229 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1807, i64 %idxprom.i.i.i.i5140 store i64 %conv.i.i.i.i.i5129, ptr %arrayidx21.i.i.i5229, align 8, !tbaa !64 br label %if.end22.i.i.i5226 if.end22.i.i.i5226: ; preds = %if.then16.i.i.i5227, %if.end14.i.i.i5222 call void @llvm.nvvm.bar.warp.sync(i32 %1792) br label %cleanup26.i.i.i5153 cleanup26.i.i.i5153: ; preds = %if.end22.i.i.i5226, %if.then12.i.i.i5146 %retval.sroa.6.1.i.i.i5154 = phi i32 [ %retval.sroa.6.0.i.i.i5123, %if.then12.i.i.i5146 ], [ %spec.store.select.i.i.i5128, %if.end22.i.i.i5226 ] %retval.sroa.2.1.i.i.i5155 = phi i64 [ %retval.sroa.2.0.i.i.i5124, %if.then12.i.i.i5146 ], [ %conv.i.i.i.i.i5129, %if.end22.i.i.i5226 ] %retval.sroa.8.1.i.i.i5156 = phi i32 [ %retval.sroa.8.0.i.i.i5125, %if.then12.i.i.i5146 ], [ %1800, %if.end22.i.i.i5226 ] br i1 %cmp.i48.not.i.i.i5145, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i5162, label %for.inc.i.i.i5157 for.inc.i.i.i5157: ; preds = %cleanup26.i.i.i5153, %for.cond.i.i.i5122 %retval.sroa.6.2.i.i.i5158 = phi i32 [ %retval.sroa.6.1.i.i.i5154, %cleanup26.i.i.i5153 ], [ %retval.sroa.6.0.i.i.i5123, %for.cond.i.i.i5122 ] %retval.sroa.2.2.i.i.i5159 = phi i64 [ %retval.sroa.2.1.i.i.i5155, %cleanup26.i.i.i5153 ], [ %retval.sroa.2.0.i.i.i5124, %for.cond.i.i.i5122 ] %retval.sroa.8.2.i.i.i5160 = phi i32 [ %retval.sroa.8.1.i.i.i5156, %cleanup26.i.i.i5153 ], [ %retval.sroa.8.0.i.i.i5125, %for.cond.i.i.i5122 ] %inc.i.i.i5161 = add i32 %spec.store.select.i.i.i5128, 1 br label %for.cond.i.i.i5122, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i5162: ; preds = %cleanup26.i.i.i5153 %retval.sroa.6.1.i.i.i5154.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i5154, %cleanup26.i.i.i5153 ] %retval.sroa.2.1.i.i.i5155.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i5155, %cleanup26.i.i.i5153 ] %retval.sroa.8.1.i.i.i5156.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i5156, %cleanup26.i.i.i5153 ] %sub.ptr.lhs.cast.i.i.i.i5117 = ptrtoint ptr %End.0.i.i.i.i5113.lcssa to i64 %sub.ptr.rhs.cast.i.i.i.i5118 = ptrtoint ptr %1789 to i64 %sub.ptr.sub.i.i.i.i5119 = sub i64 %sub.ptr.lhs.cast.i.i.i.i5117, %sub.ptr.rhs.cast.i.i.i.i5118 fence acquire %1808 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i5165 = shl i32 %retval.sroa.6.1.i.i.i5154.lcssa, 5 %idxprom.i18.i.i.i.i.i5166 = zext i32 %mul.i.i.i.i.i.i5165 to i64 %arrayidx.i19.i.i.i.i.i5167 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1808, i64 %idxprom.i18.i.i.i.i.i5166 %arrayidx.i21.i.i.i.i.i5168 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i5167, i64 %sh_prom.i.i.i.i store i64 %sub.ptr.sub.i.i.i.i5119, ptr %arrayidx.i21.i.i.i.i.i5168, align 8, !tbaa !67 %spec.select.i.i.i.i.i.i.i5169 = call i64 @llvm.umin.i64(i64 %sub.ptr.sub.i.i.i.i5119, i64 56) %arrayidx6.i.i.i.i.i.i.i5170 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i5168, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %arrayidx6.i.i.i.i.i.i.i5170, ptr align 1 %1789, i64 %spec.select.i.i.i.i.i.i.i5169, i1 false) %tobool.not.i.i.i.i.i.i5171 = icmp eq i32 %retval.sroa.8.1.i.i.i5156.lcssa, 0 %conv.i.i.i.i.i.i5172 = zext i1 %tobool.not.i.i.i.i.i.i5171 to i32 fence release %1809 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i5173 = zext i32 %retval.sroa.6.1.i.i.i5154.lcssa to i64 %arrayidx.i23.i.i.i.i.i5174 = getelementptr inbounds nuw i32, ptr %1809, i64 %idxprom.i22.i.i.i.i.i5173 store atomic i32 %conv.i.i.i.i.i.i5172, ptr %arrayidx.i23.i.i.i.i.i5174 monotonic, align 4 %1810 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i5175 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1810, i64 %idxprom.i22.i.i.i.i.i5173 %1811 = load i64, ptr %arrayidx.i.i4.i.i5175, align 8, !tbaa !64 %conv.i.i7.i.i.i.i5176 = trunc i64 %1811 to i32 %conv.i.i.i.i17.i.i.i.i5178 = trunc i64 %retval.sroa.2.1.i.i.i5155.lcssa to i32 %1812 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i5178, i1 true) %iszero.i.i.i.i18.i.i.i.i5179 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i5178, 0 %sub.i.i.i.i19.i.i.i.i5180 = select i1 %iszero.i.i.i.i18.i.i.i.i5179, i32 -1, i32 %1812 br label %while.cond.i.i.i.i5181 while.cond.i.i.i.i5181: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i5193, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i5162 %port.sroa.43.0.i.i5182 = phi i32 [ %conv.i.i.i.i.i.i5172, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i5162 ], [ %conv.i.i39.i.i.i.i5194, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i5193 ] %idx.0.i.i.i.i5183 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i5162 ], [ %add.i.i.i.i5196, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i5193 ] %cmp.i.i.i2.i5184 = icmp ult i64 %idx.0.i.i.i.i5183, %sub.ptr.sub.i.i.i.i5119 %1813 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i5176, i1 %cmp.i.i.i2.i5184) %tobool.not.i.i.i.i5185 = icmp eq i32 %1813, 0 %1814 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i5186 = getelementptr inbounds nuw i32, ptr %1814, i64 %idxprom.i22.i.i.i.i.i5173 %1815 = load atomic i32, ptr %arrayidx.i22.i.i.i5186 monotonic, align 4 br i1 %tobool.not.i.i.i.i5185, label %cond.false.i.i.i5205, label %cond.false.i11.i.i.i.i5187 cond.false.i11.i.i.i.i5187: ; preds = %while.cond.i.i.i.i5181 %1816 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i5178, i32 %1815, i32 %sub.i.i.i.i19.i.i.i.i5180, i32 31) %1817 = icmp eq i32 %1816, %port.sroa.43.0.i.i5182 br i1 %1817, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i5192, label %while.body.i.i33.i.i.i.i5188 while.body.i.i33.i.i.i.i5188: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i5189, %cond.false.i11.i.i.i.i5187 %1818 = phi ptr [ %1819, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i5189 ], [ %1814, %cond.false.i11.i.i.i.i5187 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i5203, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i5189 if.then.i.i.i48.i.i.i.i5203: ; preds = %while.body.i.i33.i.i.i.i5188 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i5204 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i5189 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i5189: ; preds = %if.then.i.i.i48.i.i.i.i5203, %while.body.i.i33.i.i.i.i5188 %1819 = phi ptr [ %.pre.i.i.i.i5204, %if.then.i.i.i48.i.i.i.i5203 ], [ %1818, %while.body.i.i33.i.i.i.i5188 ] %arrayidx.i.i.i35.i.i.i.i5190 = getelementptr inbounds nuw i32, ptr %1819, i64 %idxprom.i22.i.i.i.i.i5173 %1820 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i5190 monotonic, align 4 %1821 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i5178, i32 %1820, i32 %sub.i.i.i.i19.i.i.i.i5180, i32 31) %cmp.i.not.i.i36.i.i.i.i5191 = icmp eq i32 %1821, %port.sroa.43.0.i.i5182 br i1 %cmp.i.not.i.i36.i.i.i.i5191, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i5192, label %while.body.i.i33.i.i.i.i5188, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i5192: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i5189, %cond.false.i11.i.i.i.i5187 fence acquire br i1 %cmp.i.i.i2.i5184, label %if.then.i.i20.i.i.i.i.i5197, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i5193 if.then.i.i20.i.i.i.i.i5197: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i5192 %add.ptr.i.i.i.i.i.i.i.i5198 = getelementptr inbounds nuw i8, ptr %1789, i64 %idx.0.i.i.i.i5183 %sub.i.i.i.i.i.i.i5199 = sub nuw i64 %sub.ptr.sub.i.i.i.i5119, %idx.0.i.i.i.i5183 %spec.select.i.i.i47.i.i.i.i5200 = call i64 @llvm.umin.i64(i64 %sub.i.i.i.i.i.i.i5199, i64 64) %1822 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i5201 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1822, i64 %idxprom.i18.i.i.i.i.i5166 %arrayidx.i22.i.i.i.i.i5202 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i5201, i64 %sh_prom.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr align 1 %arrayidx.i22.i.i.i.i.i5202, ptr align 1 %add.ptr.i.i.i.i.i.i.i.i5198, i64 %spec.select.i.i.i47.i.i.i.i5200, i1 false) br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i5193 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i5193: ; preds = %if.then.i.i20.i.i.i.i.i5197, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i5192 %conv.i.i39.i.i.i.i5194 = xor i32 %port.sroa.43.0.i.i5182, 1 fence release %1823 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i5195 = getelementptr inbounds nuw i32, ptr %1823, i64 %idxprom.i22.i.i.i.i.i5173 store atomic i32 %conv.i.i39.i.i.i.i5194, ptr %arrayidx.i24.i.i.i.i.i5195 monotonic, align 4 %add.i.i.i.i5196 = add i64 %idx.0.i.i.i.i5183, 64 br label %while.cond.i.i.i.i5181, !llvm.loop !71 cond.false.i.i.i5205: ; preds = %while.cond.i.i.i.i5181 %port.sroa.43.0.i.i5182.lcssa = phi i32 [ %port.sroa.43.0.i.i5182, %while.cond.i.i.i.i5181 ] %.lcssa5624 = phi ptr [ %1814, %while.cond.i.i.i.i5181 ] %.lcssa5623 = phi i32 [ %1815, %while.cond.i.i.i.i5181 ] %1824 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i5178, i32 %.lcssa5623, i32 %sub.i.i.i.i19.i.i.i.i5180, i32 31) %1825 = icmp eq i32 %1824, %port.sroa.43.0.i.i5182.lcssa br i1 %1825, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit5230, label %while.body.i.i.i.i5206 while.body.i.i.i.i5206: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i5207, %cond.false.i.i.i5205 %1826 = phi ptr [ %1827, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i5207 ], [ %.lcssa5624, %cond.false.i.i.i5205 ] br i1 %343, label %if.then.i.i.i.i.i5220, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i5207 if.then.i.i.i.i.i5220: ; preds = %while.body.i.i.i.i5206 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i5221 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i5207 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i5207: ; preds = %if.then.i.i.i.i.i5220, %while.body.i.i.i.i5206 %1827 = phi ptr [ %.pre.i.i5221, %if.then.i.i.i.i.i5220 ], [ %1826, %while.body.i.i.i.i5206 ] %arrayidx.i.i.i11.i.i5208 = getelementptr inbounds nuw i32, ptr %1827, i64 %idxprom.i22.i.i.i.i.i5173 %1828 = load atomic i32, ptr %arrayidx.i.i.i11.i.i5208 monotonic, align 4 %1829 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i5178, i32 %1828, i32 %sub.i.i.i.i19.i.i.i.i5180, i32 31) %cmp.i.not.i.i.i.i5209 = icmp eq i32 %1829, %port.sroa.43.0.i.i5182.lcssa br i1 %cmp.i.not.i.i.i.i5209, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit5230, label %while.body.i.i.i.i5206, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit5230: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i5207, %cond.false.i.i.i5205 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i5178) fence release %1830 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i5155.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i5211 = icmp ne i64 %retval.sroa.2.1.i.i.i5155.lcssa, 0 %cmp2.i.i.i.i19.i.i5212 = icmp eq i64 %1830, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i5213 = select i1 %iszero.i.i.i.i.i18.i.i5211, i1 %cmp2.i.i.i.i19.i.i5212, i1 false %div8.i.i.i21.i.i5214 = lshr i32 %retval.sroa.6.1.i.i.i5154.lcssa, 5 %1831 = and i32 %retval.sroa.6.1.i.i.i5154.lcssa, 31 %idxprom.i.i.i22.i.i5215 = zext nneg i32 %div8.i.i.i21.i.i5214 to i64 %arrayidx.i.i.i23.i.i5216 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i5215 %conv4.i.i.i24.i.i5217 = zext i1 %cmp.i.i.i.i20.i.i5213 to i32 %shl.i.i.i25.i.i5218 = shl nuw i32 %conv4.i.i.i24.i.i5217, %1831 %xor.i.i.i26.i.i5219 = xor i32 %shl.i.i.i25.i.i5218, -1 %1832 = atomicrmw and ptr %arrayidx.i.i.i23.i.i5216, i32 %xor.i.i.i26.i.i5219 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i5178) call void @llvm.lifetime.start.p0(ptr nonnull %ch.addr.i5233) store i8 10, ptr %ch.addr.i5233, align 1, !tbaa !36 br label %for.cond.i.i.i5236 for.cond.i.i.i5236: ; preds = %for.inc.i.i.i5271, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit5230 %retval.sroa.6.0.i.i.i5237 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit5230 ], [ %retval.sroa.6.2.i.i.i5272, %for.inc.i.i.i5271 ] %retval.sroa.2.0.i.i.i5238 = phi i64 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit5230 ], [ %retval.sroa.2.2.i.i.i5273, %for.inc.i.i.i5271 ] %retval.sroa.8.0.i.i.i5239 = phi i32 [ undef, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit5230 ], [ %retval.sroa.8.2.i.i.i5274, %for.inc.i.i.i5271 ] %index.0.i.i.i5240 = phi i32 [ 0, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit5230 ], [ %inc.i.i.i5275, %for.inc.i.i.i5271 ] %1833 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not.i.i.i5241 = icmp ult i32 %index.0.i.i.i5240, %1833 %spec.store.select.i.i.i5242 = select i1 %cmp.not.i.i.i5241, i32 %index.0.i.i.i5240, i32 0 %1834 = call i32 @llvm.nvvm.activemask() %conv.i.i.i.i.i5243 = zext i32 %1834 to i64 %div8.i.i.i.i.i5244 = lshr i32 %spec.store.select.i.i.i5242, 5 %1835 = and i32 %spec.store.select.i.i.i5242, 31 %idxprom.i.i.i.i.i5245 = zext nneg i32 %div8.i.i.i.i.i5244 to i64 %arrayidx.i.i.i.i.i5246 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i.i.i5245 %1836 = lshr i32 %1834, %2 %conv4.i.i.i.i.i5247 = and i32 %1836, 1 %shl.i.i.i.i.i5248 = shl nuw i32 %conv4.i.i.i.i.i5247, %1835 %1837 = atomicrmw or ptr %arrayidx.i.i.i.i.i5246, i32 %shl.i.i.i.i.i5248 monotonic, align 4 %shl5.i.i.i.i.i5249 = shl nuw i32 1, %1835 %and.i.i.i.i.i5250 = and i32 %shl5.i.i.i.i.i5249, %1837 %tobool3.i.i.i.i5251 = icmp ne i32 %and.i.i.i.i.i5250, 0 %1838 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %1834, i1 %tobool3.i.i.i.i5251) %cmp.i.not.i.i.i5252 = icmp eq i32 %1834, %1838 br i1 %cmp.i.not.i.i.i5252, label %for.inc.i.i.i5271, label %if.then.i.i.i.i5253 if.then.i.i.i.i5253: ; preds = %for.cond.i.i.i5236 fence acquire %1839 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i.i.i.i5254 = zext i32 %spec.store.select.i.i.i5242 to i64 %arrayidx.i.i.i.i5255 = getelementptr inbounds nuw i32, ptr %1839, i64 %idxprom.i.i.i.i5254 %1840 = load atomic i32, ptr %arrayidx.i.i.i.i5255 monotonic, align 4 %1841 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %1834, i1 true) %iszero.i.i.i.i.i.i5256 = icmp eq i32 %1834, 0 %sub.i.i.i.i.i.i5257 = select i1 %iszero.i.i.i.i.i.i5256, i32 -1, i32 %1841 %1842 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1834, i32 %1840, i32 %sub.i.i.i.i.i.i5257, i32 31) %1843 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45.i.i.i5258 = getelementptr inbounds nuw i32, ptr %1843, i64 %idxprom.i.i.i.i5254 %1844 = load atomic i32, ptr %arrayidx.i45.i.i.i5258 monotonic, align 4 %1845 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %1834, i32 %1844, i32 %sub.i.i.i.i.i.i5257, i32 31) %cmp.i48.not.i.i.i5259 = icmp eq i32 %1842, %1845 br i1 %cmp.i48.not.i.i.i5259, label %if.end14.i.i.i5336, label %if.then12.i.i.i5260 if.then12.i.i.i5260: ; preds = %if.then.i.i.i.i5253 fence release %1846 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i5243, i1 true) %iszero.i.i.i.i.i.i.i5261 = icmp ne i32 %1834, 0 %cmp2.i.i.i.i.i.i5262 = icmp eq i64 %1846, %sh_prom.i.i.i.i %cmp.i.i.i.i.i.i5263 = select i1 %iszero.i.i.i.i.i.i.i5261, i1 %cmp2.i.i.i.i.i.i5262, i1 false %conv4.i.i53.i.i.i5264 = zext i1 %cmp.i.i.i.i.i.i5263 to i32 %shl.i.i54.i.i.i5265 = shl nuw i32 %conv4.i.i53.i.i.i5264, %1835 %xor.i.i.i.i.i5266 = xor i32 %shl.i.i54.i.i.i5265, -1 %1847 = atomicrmw and ptr %arrayidx.i.i.i.i.i5246, i32 %xor.i.i.i.i.i5266 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %1834) br label %cleanup26.i.i.i5267 if.end14.i.i.i5336: ; preds = %if.then.i.i.i.i5253 %1848 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i.i.i.i5243, i1 true) %iszero.i.i.i56.i.i.i5337 = icmp ne i32 %1834, 0 %cmp2.i.i.i.i.i5338 = icmp eq i64 %1848, %sh_prom.i.i.i.i %cmp.i.i.i.i.i5339 = select i1 %iszero.i.i.i56.i.i.i5337, i1 %cmp2.i.i.i.i.i5338, i1 false br i1 %cmp.i.i.i.i.i5339, label %if.then16.i.i.i5341, label %if.end22.i.i.i5340 if.then16.i.i.i5341: ; preds = %if.end14.i.i.i5336 %1849 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode.i.i.i5342 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1849, i64 %idxprom.i.i.i.i5254, i32 1 store i32 1660944387, ptr %opcode.i.i.i5342, align 8, !tbaa !61 %arrayidx21.i.i.i5343 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1849, i64 %idxprom.i.i.i.i5254 store i64 %conv.i.i.i.i.i5243, ptr %arrayidx21.i.i.i5343, align 8, !tbaa !64 br label %if.end22.i.i.i5340 if.end22.i.i.i5340: ; preds = %if.then16.i.i.i5341, %if.end14.i.i.i5336 call void @llvm.nvvm.bar.warp.sync(i32 %1834) br label %cleanup26.i.i.i5267 cleanup26.i.i.i5267: ; preds = %if.end22.i.i.i5340, %if.then12.i.i.i5260 %retval.sroa.6.1.i.i.i5268 = phi i32 [ %retval.sroa.6.0.i.i.i5237, %if.then12.i.i.i5260 ], [ %spec.store.select.i.i.i5242, %if.end22.i.i.i5340 ] %retval.sroa.2.1.i.i.i5269 = phi i64 [ %retval.sroa.2.0.i.i.i5238, %if.then12.i.i.i5260 ], [ %conv.i.i.i.i.i5243, %if.end22.i.i.i5340 ] %retval.sroa.8.1.i.i.i5270 = phi i32 [ %retval.sroa.8.0.i.i.i5239, %if.then12.i.i.i5260 ], [ %1842, %if.end22.i.i.i5340 ] br i1 %cmp.i48.not.i.i.i5259, label %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i5276, label %for.inc.i.i.i5271 for.inc.i.i.i5271: ; preds = %cleanup26.i.i.i5267, %for.cond.i.i.i5236 %retval.sroa.6.2.i.i.i5272 = phi i32 [ %retval.sroa.6.1.i.i.i5268, %cleanup26.i.i.i5267 ], [ %retval.sroa.6.0.i.i.i5237, %for.cond.i.i.i5236 ] %retval.sroa.2.2.i.i.i5273 = phi i64 [ %retval.sroa.2.1.i.i.i5269, %cleanup26.i.i.i5267 ], [ %retval.sroa.2.0.i.i.i5238, %for.cond.i.i.i5236 ] %retval.sroa.8.2.i.i.i5274 = phi i32 [ %retval.sroa.8.1.i.i.i5270, %cleanup26.i.i.i5267 ], [ %retval.sroa.8.0.i.i.i5239, %for.cond.i.i.i5236 ] %inc.i.i.i5275 = add i32 %spec.store.select.i.i.i5242, 1 br label %for.cond.i.i.i5236, !llvm.loop !65 _ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i5276: ; preds = %cleanup26.i.i.i5267 %retval.sroa.6.1.i.i.i5268.lcssa = phi i32 [ %retval.sroa.6.1.i.i.i5268, %cleanup26.i.i.i5267 ] %retval.sroa.2.1.i.i.i5269.lcssa = phi i64 [ %retval.sroa.2.1.i.i.i5269, %cleanup26.i.i.i5267 ] %retval.sroa.8.1.i.i.i5270.lcssa = phi i32 [ %retval.sroa.8.1.i.i.i5270, %cleanup26.i.i.i5267 ] fence acquire %1850 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %mul.i.i.i.i.i.i5279 = shl i32 %retval.sroa.6.1.i.i.i5268.lcssa, 5 %idxprom.i18.i.i.i.i.i5280 = zext i32 %mul.i.i.i.i.i.i5279 to i64 %arrayidx.i19.i.i.i.i.i5281 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1850, i64 %idxprom.i18.i.i.i.i.i5280 %arrayidx.i21.i.i.i.i.i5282 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i.i.i.i.i5281, i64 %sh_prom.i.i.i.i store i64 1, ptr %arrayidx.i21.i.i.i.i.i5282, align 8, !tbaa !67 %arrayidx6.i.i.i.i.i.i.i5284 = getelementptr inbounds nuw i8, ptr %arrayidx.i21.i.i.i.i.i5282, i64 8 %1851 = load i8, ptr %ch.addr.i5233, align 1 store i8 %1851, ptr %arrayidx6.i.i.i.i.i.i.i5284, align 8 %tobool.not.i.i.i.i.i.i5285 = icmp eq i32 %retval.sroa.8.1.i.i.i5270.lcssa, 0 %conv.i.i.i.i.i.i5286 = zext i1 %tobool.not.i.i.i.i.i.i5285 to i32 fence release %1852 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %idxprom.i22.i.i.i.i.i5287 = zext i32 %retval.sroa.6.1.i.i.i5268.lcssa to i64 %arrayidx.i23.i.i.i.i.i5288 = getelementptr inbounds nuw i32, ptr %1852, i64 %idxprom.i22.i.i.i.i.i5287 store atomic i32 %conv.i.i.i.i.i.i5286, ptr %arrayidx.i23.i.i.i.i.i5288 monotonic, align 4 %1853 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !68 %arrayidx.i.i4.i.i5289 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %1853, i64 %idxprom.i22.i.i.i.i.i5287 %1854 = load i64, ptr %arrayidx.i.i4.i.i5289, align 8, !tbaa !64 %conv.i.i7.i.i.i.i5290 = trunc i64 %1854 to i32 %conv.i.i.i.i17.i.i.i.i5292 = trunc i64 %retval.sroa.2.1.i.i.i5269.lcssa to i32 %1855 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i17.i.i.i.i5292, i1 true) %iszero.i.i.i.i18.i.i.i.i5293 = icmp eq i32 %conv.i.i.i.i17.i.i.i.i5292, 0 %sub.i.i.i.i19.i.i.i.i5294 = select i1 %iszero.i.i.i.i18.i.i.i.i5293, i32 -1, i32 %1855 br label %while.cond.i.i.i.i5295 while.cond.i.i.i.i5295: ; preds = %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i5307, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i5276 %port.sroa.43.0.i.i5296 = phi i32 [ %conv.i.i.i.i.i.i5286, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i5276 ], [ %conv.i.i39.i.i.i.i5308, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i5307 ] %idx.0.i.i.i.i5297 = phi i64 [ 56, %_ZN3rpc6Client4openILj1660944387EEENS_4PortILb0EEEv.exit.i.i5276 ], [ %add.i.i.i.i5310, %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i5307 ] %cmp.i.i.i.i5298 = icmp eq i64 %idx.0.i.i.i.i5297, 0 %1856 = call i32 @llvm.nvvm.vote.ballot.sync(i32 %conv.i.i7.i.i.i.i5290, i1 %cmp.i.i.i.i5298) %tobool.not.i.i.i.i5299 = icmp eq i32 %1856, 0 %1857 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %arrayidx.i22.i.i.i5300 = getelementptr inbounds nuw i32, ptr %1857, i64 %idxprom.i22.i.i.i.i.i5287 %1858 = load atomic i32, ptr %arrayidx.i22.i.i.i5300 monotonic, align 4 br i1 %tobool.not.i.i.i.i5299, label %cond.false.i.i.i5319, label %cond.false.i11.i.i.i.i5301 cond.false.i11.i.i.i.i5301: ; preds = %while.cond.i.i.i.i5295 %1859 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i5292, i32 %1858, i32 %sub.i.i.i.i19.i.i.i.i5294, i32 31) %1860 = icmp eq i32 %1859, %port.sroa.43.0.i.i5296 br i1 %1860, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i5306, label %while.body.i.i33.i.i.i.i5302 while.body.i.i33.i.i.i.i5302: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i5303, %cond.false.i11.i.i.i.i5301 %1861 = phi ptr [ %1862, %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i5303 ], [ %1857, %cond.false.i11.i.i.i.i5301 ] br i1 %343, label %if.then.i.i.i48.i.i.i.i5317, label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i5303 if.then.i.i.i48.i.i.i.i5317: ; preds = %while.body.i.i33.i.i.i.i5302 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i.i.i5318 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i5303 _ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i5303: ; preds = %if.then.i.i.i48.i.i.i.i5317, %while.body.i.i33.i.i.i.i5302 %1862 = phi ptr [ %.pre.i.i.i.i5318, %if.then.i.i.i48.i.i.i.i5317 ], [ %1861, %while.body.i.i33.i.i.i.i5302 ] %arrayidx.i.i.i35.i.i.i.i5304 = getelementptr inbounds nuw i32, ptr %1862, i64 %idxprom.i22.i.i.i.i.i5287 %1863 = load atomic i32, ptr %arrayidx.i.i.i35.i.i.i.i5304 monotonic, align 4 %1864 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i5292, i32 %1863, i32 %sub.i.i.i.i19.i.i.i.i5294, i32 31) %cmp.i.not.i.i36.i.i.i.i5305 = icmp eq i32 %1864, %port.sroa.43.0.i.i5296 br i1 %cmp.i.not.i.i36.i.i.i.i5305, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i5306, label %while.body.i.i33.i.i.i.i5302, !llvm.loop !70 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i5306: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i34.i.i.i.i5303, %cond.false.i11.i.i.i.i5301 fence acquire br i1 %cmp.i.i.i.i5298, label %if.then.i.i20.i.i.i.i.i5311, label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i5307 if.then.i.i20.i.i.i.i.i5311: ; preds = %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i5306 %1865 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 32), align 8, !tbaa !66 %arrayidx.i19.i46.i.i.i.i5315 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %1865, i64 %idxprom.i18.i.i.i.i.i5280 %arrayidx.i22.i.i.i.i.i5316 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19.i46.i.i.i.i5315, i64 %sh_prom.i.i.i.i %1866 = load i8, ptr %ch.addr.i5233, align 1 store i8 %1866, ptr %arrayidx.i22.i.i.i.i.i5316, align 1 br label %_ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i5307 _ZN3rpc4PortILb0EE4sendIZNS1_6send_nEPKPKvPyEUlPNS_6BufferEjE0_EEvT_.exit.i.i.i.i5307: ; preds = %if.then.i.i20.i.i.i.i.i5311, %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit.i.i.i.i.i5306 %conv.i.i39.i.i.i.i5308 = xor i32 %port.sroa.43.0.i.i5296, 1 fence release %1867 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i24.i.i.i.i.i5309 = getelementptr inbounds nuw i32, ptr %1867, i64 %idxprom.i22.i.i.i.i.i5287 store atomic i32 %conv.i.i39.i.i.i.i5308, ptr %arrayidx.i24.i.i.i.i.i5309 monotonic, align 4 %add.i.i.i.i5310 = add i64 %idx.0.i.i.i.i5297, 64 br label %while.cond.i.i.i.i5295, !llvm.loop !71 cond.false.i.i.i5319: ; preds = %while.cond.i.i.i.i5295 %port.sroa.43.0.i.i5296.lcssa = phi i32 [ %port.sroa.43.0.i.i5296, %while.cond.i.i.i.i5295 ] %.lcssa5622 = phi ptr [ %1857, %while.cond.i.i.i.i5295 ] %.lcssa5621 = phi i32 [ %1858, %while.cond.i.i.i.i5295 ] %1868 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i5292, i32 %.lcssa5621, i32 %sub.i.i.i.i19.i.i.i.i5294, i32 31) %1869 = icmp eq i32 %1868, %port.sroa.43.0.i.i5296.lcssa br i1 %1869, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit5344, label %while.body.i.i.i.i5320 while.body.i.i.i.i5320: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i5321, %cond.false.i.i.i5319 %1870 = phi ptr [ %1871, %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i5321 ], [ %.lcssa5622, %cond.false.i.i.i5319 ] br i1 %343, label %if.then.i.i.i.i.i5334, label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i5321 if.then.i.i.i.i.i5334: ; preds = %while.body.i.i.i.i5320 call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !69 %.pre.i.i5335 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i5321 _ZN3rpc13sleep_brieflyEv.exit.i.i.i.i5321: ; preds = %if.then.i.i.i.i.i5334, %while.body.i.i.i.i5320 %1871 = phi ptr [ %.pre.i.i5335, %if.then.i.i.i.i.i5334 ], [ %1870, %while.body.i.i.i.i5320 ] %arrayidx.i.i.i11.i.i5322 = getelementptr inbounds nuw i32, ptr %1871, i64 %idxprom.i22.i.i.i.i.i5287 %1872 = load atomic i32, ptr %arrayidx.i.i.i11.i.i5322 monotonic, align 4 %1873 = call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i17.i.i.i.i5292, i32 %1872, i32 %sub.i.i.i.i19.i.i.i.i5294, i32 31) %cmp.i.not.i.i.i.i5323 = icmp eq i32 %1873, %port.sroa.43.0.i.i5296.lcssa br i1 %cmp.i.not.i.i.i.i5323, label %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit5344, label %while.body.i.i.i.i5320, !llvm.loop !70 _ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit5344: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i.i.i5321, %cond.false.i.i.i5319 fence acquire call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i5292) fence release %1874 = call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %retval.sroa.2.1.i.i.i5269.lcssa, i1 true) %iszero.i.i.i.i.i18.i.i5325 = icmp ne i64 %retval.sroa.2.1.i.i.i5269.lcssa, 0 %cmp2.i.i.i.i19.i.i5326 = icmp eq i64 %1874, %sh_prom.i.i.i.i %cmp.i.i.i.i20.i.i5327 = select i1 %iszero.i.i.i.i.i18.i.i5325, i1 %cmp2.i.i.i.i19.i.i5326, i1 false %div8.i.i.i21.i.i5328 = lshr i32 %retval.sroa.6.1.i.i.i5268.lcssa, 5 %1875 = and i32 %retval.sroa.6.1.i.i.i5268.lcssa, 31 %idxprom.i.i.i22.i.i5329 = zext nneg i32 %div8.i.i.i21.i.i5328 to i64 %arrayidx.i.i.i23.i.i5330 = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i.i22.i.i5329 %conv4.i.i.i24.i.i5331 = zext i1 %cmp.i.i.i.i20.i.i5327 to i32 %shl.i.i.i25.i.i5332 = shl nuw i32 %conv4.i.i.i24.i.i5331, %1875 %xor.i.i.i26.i.i5333 = xor i32 %shl.i.i.i25.i.i5332, -1 %1876 = atomicrmw and ptr %arrayidx.i.i.i23.i.i5330, i32 %xor.i.i.i26.i.i5333 monotonic, align 4 call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i.i.i17.i.i.i.i5292) call void @llvm.lifetime.end.p0(ptr nonnull %ch.addr.i5233) br label %if.end111 if.end111: ; preds = %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit5344, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIPKcEERS1_T_.exit4989, %_ZN22__llvm_libc_22_0_0_git7testing10TestLoggerlsIcEERS1_T_.exit4869 %cmp112 = icmp sgt i32 %FailCount.2.lcssa, 0 %cmp113 = icmp eq i32 %TestCount.1.lcssa, 0 %1877 = or i1 %cmp112, %cmp113 %cond114 = zext i1 %1877 to i32 ret i32 %cond114 } ; Function Attrs: convergent mustprogress nounwind define dso_local noundef range(i32 0, 2) i32 @main(i32 noundef %argc, ptr noundef %argv, ptr noundef %envp) local_unnamed_addr #5 { entry: %ref.tmp = alloca %"struct.__llvm_libc_22_0_0_git::testing::TestOptions", align 8 store ptr %argv, ptr @_ZN22__llvm_libc_22_0_0_git7testing4argvE, align 8, !tbaa !31 store ptr %envp, ptr @_ZN22__llvm_libc_22_0_0_git7testing4envpE, align 8, !tbaa !31 call void @llvm.lifetime.start.p0(ptr nonnull %ref.tmp) #32 %cmp72.i = icmp sgt i32 %argc, 1 br i1 %cmp72.i, label %for.body.i, label %_ZN12_GLOBAL__N_112parseOptionsEiPPc.exit for.body.i: ; preds = %cleanup.i, %entry %i.076.i = phi i32 [ %inc.i, %cleanup.i ], [ 1, %entry ] %retval.sroa.6.075.i = phi i8 [ %retval.sroa.6.1.i, %cleanup.i ], [ 0, %entry ] %retval.sroa.3.074.i = phi i8 [ %retval.sroa.3.1.i, %cleanup.i ], [ 1, %entry ] %retval.sroa.0.073.i = phi ptr [ %retval.sroa.0.1.i, %cleanup.i ], [ null, %entry ] %idxprom.i = zext nneg i32 %i.076.i to i64 %arrayidx.i = getelementptr inbounds nuw ptr, ptr %argv, i64 %idxprom.i %0 = load ptr, ptr %arrayidx.i, align 8, !tbaa !34 br label %for.cond.i.i.i.i for.cond.i.i.i.i: ; preds = %for.cond.i.i.i.i, %for.body.i %End.0.i.i.i.i = phi ptr [ %0, %for.body.i ], [ %incdec.ptr.i.i.i.i, %for.cond.i.i.i.i ] %1 = load i8, ptr %End.0.i.i.i.i, align 1, !tbaa !36 %cmp.i.i.i.i = icmp eq i8 %1, 0 %incdec.ptr.i.i.i.i = getelementptr inbounds nuw i8, ptr %End.0.i.i.i.i, i64 1 br i1 %cmp.i.i.i.i, label %_ZN22__llvm_libc_22_0_0_git3cpp11string_viewC1EPKc.exit.i, label %for.cond.i.i.i.i, !llvm.loop !37 _ZN22__llvm_libc_22_0_0_git3cpp11string_viewC1EPKc.exit.i: ; preds = %for.cond.i.i.i.i %End.0.i.i.i.i.lcssa = phi ptr [ %End.0.i.i.i.i, %for.cond.i.i.i.i ] %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %End.0.i.i.i.i.lcssa to i64 %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %0 to i64 %sub.ptr.sub.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i switch i64 %sub.ptr.sub.i.i.i.i, label %if.else4.i [ i64 16, label %for.body.i.i.i.i i64 18, label %for.body.i.i.i44.i ] for.body.i.i.i.i: ; preds = %for.body.i.i.i.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_viewC1EPKc.exit.i %i.011.i.i.i.i = phi i64 [ %inc.i.i.i.i, %for.body.i.i.i.i ], [ 0, %_ZN22__llvm_libc_22_0_0_git3cpp11string_viewC1EPKc.exit.i ] %arrayidx.i.i.i.i = getelementptr inbounds nuw i8, ptr %0, i64 %i.011.i.i.i.i %2 = load i8, ptr %arrayidx.i.i.i.i, align 1, !tbaa !36 %arrayidx1.i.i.i.i = getelementptr inbounds nuw i8, ptr @.str31, i64 %i.011.i.i.i.i %3 = load i8, ptr %arrayidx1.i.i.i.i, align 1, !tbaa !36 %tobool.not.i.i.i.i = icmp ne i8 %2, %3 %inc.i.i.i.i = add nuw nsw i64 %i.011.i.i.i.i, 1 %exitcond.not.i.i.i.i = icmp eq i64 %inc.i.i.i.i, 16 %or.cond.i.i.i.i = select i1 %tobool.not.i.i.i.i, i1 true, i1 %exitcond.not.i.i.i.i br i1 %or.cond.i.i.i.i, label %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i.i, label %for.body.i.i.i.i, !llvm.loop !38 _ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i.i: ; preds = %for.body.i.i.i.i %.lcssa9 = phi i8 [ %2, %for.body.i.i.i.i ] %.lcssa8 = phi i8 [ %3, %for.body.i.i.i.i ] %4 = icmp eq i8 %.lcssa9, %.lcssa8 br i1 %4, label %cleanup.i, label %if.else4.i for.body.i.i.i44.i: ; preds = %for.body.i.i.i44.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_viewC1EPKc.exit.i %i.011.i.i.i45.i = phi i64 [ %inc.i.i.i49.i, %for.body.i.i.i44.i ], [ 0, %_ZN22__llvm_libc_22_0_0_git3cpp11string_viewC1EPKc.exit.i ] %arrayidx.i.i.i46.i = getelementptr inbounds nuw i8, ptr %0, i64 %i.011.i.i.i45.i %5 = load i8, ptr %arrayidx.i.i.i46.i, align 1, !tbaa !36 %arrayidx1.i.i.i47.i = getelementptr inbounds nuw i8, ptr @.str132, i64 %i.011.i.i.i45.i %6 = load i8, ptr %arrayidx1.i.i.i47.i, align 1, !tbaa !36 %tobool.not.i.i.i48.i = icmp ne i8 %5, %6 %inc.i.i.i49.i = add nuw nsw i64 %i.011.i.i.i45.i, 1 %exitcond.not.i.i.i50.i = icmp eq i64 %inc.i.i.i49.i, 18 %or.cond.i.i.i51.i = select i1 %tobool.not.i.i.i48.i, i1 true, i1 %exitcond.not.i.i.i50.i br i1 %or.cond.i.i.i51.i, label %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i52.i, label %for.body.i.i.i44.i, !llvm.loop !38 _ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i52.i: ; preds = %for.body.i.i.i44.i %.lcssa7 = phi i8 [ %5, %for.body.i.i.i44.i ] %.lcssa = phi i8 [ %6, %for.body.i.i.i44.i ] %7 = icmp eq i8 %.lcssa7, %.lcssa br i1 %7, label %cleanup.i, label %if.else4.i if.else4.i: ; preds = %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i52.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_viewC1EPKc.exit.i %cmp.not.i.i = icmp ult i64 %sub.ptr.sub.i.i.i.i, 8 br i1 %cmp.not.i.i, label %cleanup.i, label %for.body.i.i.i for.body.i.i.i: ; preds = %if.else4.i %8 = load i8, ptr %0, align 1, !tbaa !36 %tobool.not.i.i.i.not = icmp eq i8 %8, 45 br i1 %tobool.not.i.i.i.not, label %for.body.i.i.i.1, label %cleanup.i, !llvm.loop !38 for.body.i.i.i.1: ; preds = %for.body.i.i.i %arrayidx.i.i.i.1 = getelementptr inbounds nuw i8, ptr %0, i64 1 %9 = load i8, ptr %arrayidx.i.i.i.1, align 1, !tbaa !36 %tobool.not.i.i.i.1.not = icmp eq i8 %9, 45 br i1 %tobool.not.i.i.i.1.not, label %for.body.i.i.i.2, label %cleanup.i, !llvm.loop !38 for.body.i.i.i.2: ; preds = %for.body.i.i.i.1 %arrayidx.i.i.i.2 = getelementptr inbounds nuw i8, ptr %0, i64 2 %10 = load i8, ptr %arrayidx.i.i.i.2, align 1, !tbaa !36 %tobool.not.i.i.i.2.not = icmp eq i8 %10, 103 br i1 %tobool.not.i.i.i.2.not, label %for.body.i.i.i.3, label %cleanup.i, !llvm.loop !38 for.body.i.i.i.3: ; preds = %for.body.i.i.i.2 %arrayidx.i.i.i.3 = getelementptr inbounds nuw i8, ptr %0, i64 3 %11 = load i8, ptr %arrayidx.i.i.i.3, align 1, !tbaa !36 %tobool.not.i.i.i.3.not = icmp eq i8 %11, 116 br i1 %tobool.not.i.i.i.3.not, label %for.body.i.i.i.4, label %cleanup.i, !llvm.loop !38 for.body.i.i.i.4: ; preds = %for.body.i.i.i.3 %arrayidx.i.i.i.4 = getelementptr inbounds nuw i8, ptr %0, i64 4 %12 = load i8, ptr %arrayidx.i.i.i.4, align 1, !tbaa !36 %tobool.not.i.i.i.4.not = icmp eq i8 %12, 101 br i1 %tobool.not.i.i.i.4.not, label %for.body.i.i.i.5, label %cleanup.i, !llvm.loop !38 for.body.i.i.i.5: ; preds = %for.body.i.i.i.4 %arrayidx.i.i.i.5 = getelementptr inbounds nuw i8, ptr %0, i64 5 %13 = load i8, ptr %arrayidx.i.i.i.5, align 1, !tbaa !36 %tobool.not.i.i.i.5.not = icmp eq i8 %13, 115 br i1 %tobool.not.i.i.i.5.not, label %for.body.i.i.i.6, label %cleanup.i, !llvm.loop !38 for.body.i.i.i.6: ; preds = %for.body.i.i.i.5 %arrayidx.i.i.i.6 = getelementptr inbounds nuw i8, ptr %0, i64 6 %14 = load i8, ptr %arrayidx.i.i.i.6, align 1, !tbaa !36 %tobool.not.i.i.i.6.not = icmp eq i8 %14, 116 br i1 %tobool.not.i.i.i.6.not, label %for.body.i.i.i.7, label %cleanup.i, !llvm.loop !38 for.body.i.i.i.7: ; preds = %for.body.i.i.i.6 %arrayidx.i.i.i.7 = getelementptr inbounds nuw i8, ptr %0, i64 7 %15 = load i8, ptr %arrayidx.i.i.i.7, align 1, !tbaa !36 %16 = icmp eq i8 %15, 95 %17 = select i1 %16, ptr %retval.sroa.0.073.i, ptr %0 br label %cleanup.i cleanup.i: ; preds = %for.body.i.i.i.7, %for.body.i.i.i.6, %for.body.i.i.i.5, %for.body.i.i.i.4, %for.body.i.i.i.3, %for.body.i.i.i.2, %for.body.i.i.i.1, %for.body.i.i.i, %if.else4.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i52.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i.i %retval.sroa.0.1.i = phi ptr [ %retval.sroa.0.073.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i.i ], [ %retval.sroa.0.073.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i52.i ], [ %0, %if.else4.i ], [ %0, %for.body.i.i.i ], [ %0, %for.body.i.i.i.1 ], [ %0, %for.body.i.i.i.2 ], [ %0, %for.body.i.i.i.3 ], [ %0, %for.body.i.i.i.4 ], [ %0, %for.body.i.i.i.5 ], [ %0, %for.body.i.i.i.6 ], [ %17, %for.body.i.i.i.7 ] %retval.sroa.3.1.i = phi i8 [ 0, %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i.i ], [ %retval.sroa.3.074.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i52.i ], [ %retval.sroa.3.074.i, %if.else4.i ], [ %retval.sroa.3.074.i, %for.body.i.i.i ], [ %retval.sroa.3.074.i, %for.body.i.i.i.1 ], [ %retval.sroa.3.074.i, %for.body.i.i.i.2 ], [ %retval.sroa.3.074.i, %for.body.i.i.i.3 ], [ %retval.sroa.3.074.i, %for.body.i.i.i.4 ], [ %retval.sroa.3.074.i, %for.body.i.i.i.5 ], [ %retval.sroa.3.074.i, %for.body.i.i.i.6 ], [ %retval.sroa.3.074.i, %for.body.i.i.i.7 ] %retval.sroa.6.1.i = phi i8 [ %retval.sroa.6.075.i, %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i.i ], [ 1, %_ZN22__llvm_libc_22_0_0_git3cpp11string_view13compareMemoryEPKcS3_m.exit.loopexit.i.i52.i ], [ %retval.sroa.6.075.i, %if.else4.i ], [ %retval.sroa.6.075.i, %for.body.i.i.i ], [ %retval.sroa.6.075.i, %for.body.i.i.i.1 ], [ %retval.sroa.6.075.i, %for.body.i.i.i.2 ], [ %retval.sroa.6.075.i, %for.body.i.i.i.3 ], [ %retval.sroa.6.075.i, %for.body.i.i.i.4 ], [ %retval.sroa.6.075.i, %for.body.i.i.i.5 ], [ %retval.sroa.6.075.i, %for.body.i.i.i.6 ], [ %retval.sroa.6.075.i, %for.body.i.i.i.7 ] %inc.i = add nuw nsw i32 %i.076.i, 1 %exitcond.not.i = icmp eq i32 %inc.i, %argc br i1 %exitcond.not.i, label %_ZN12_GLOBAL__N_112parseOptionsEiPPc.exit, label %for.body.i, !llvm.loop !39 _ZN12_GLOBAL__N_112parseOptionsEiPPc.exit: ; preds = %cleanup.i, %entry %retval.sroa.0.0.lcssa.i = phi ptr [ null, %entry ], [ %retval.sroa.0.1.i, %cleanup.i ] %retval.sroa.3.0.lcssa.i = phi i8 [ 1, %entry ], [ %retval.sroa.3.1.i, %cleanup.i ] %retval.sroa.6.0.lcssa.i = phi i8 [ 0, %entry ], [ %retval.sroa.6.1.i, %cleanup.i ] store ptr %retval.sroa.0.0.lcssa.i, ptr %ref.tmp, align 8 %tmp.coerce.sroa.2.0.ref.tmp.sroa_idx = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 8 store i8 %retval.sroa.3.0.lcssa.i, ptr %tmp.coerce.sroa.2.0.ref.tmp.sroa_idx, align 8 %tmp.coerce.sroa.3.0.ref.tmp.sroa_idx = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 9 store i8 %retval.sroa.6.0.lcssa.i, ptr %tmp.coerce.sroa.3.0.ref.tmp.sroa_idx, align 1 %call1 = call fastcc noundef i32 @_ZN22__llvm_libc_22_0_0_git7testing4Test8runTestsERKNS0_11TestOptionsE(ptr noundef nonnull align 8 dereferenceable(10) %ref.tmp) #31 call void @llvm.lifetime.end.p0(ptr nonnull %ref.tmp) #32 ret i32 %call1 } ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.abs.i32(i32, i1 immarg) #11 ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) define dso_local noundef range(i32 0, 2) i32 @bcmp(ptr noundef readonly captures(none) %lhs, ptr noundef readonly captures(none) %rhs, i64 noundef %count) local_unnamed_addr #12 { entry: %cmp.i3.not.i.i = icmp eq i64 %count, 0 br i1 %cmp.i3.not.i.i, label %_ZN22__llvm_libc_22_0_0_git4bcmpEPKvS1_m.exit, label %for.body.i.i.i for.cond.i.i.i: ; preds = %for.body.i.i.i %inc.i.i.i = add nuw i64 %offset.addr.0.i4.i.i, 1 %exitcond.not.i.i = icmp eq i64 %inc.i.i.i, %count br i1 %exitcond.not.i.i, label %_ZN22__llvm_libc_22_0_0_git4bcmpEPKvS1_m.exit, label %for.body.i.i.i, !llvm.loop !183 for.body.i.i.i: ; preds = %for.cond.i.i.i, %entry %offset.addr.0.i4.i.i = phi i64 [ %inc.i.i.i, %for.cond.i.i.i ], [ 0, %entry ] %arrayidx.i.i.i = getelementptr inbounds nuw i8, ptr %lhs, i64 %offset.addr.0.i4.i.i %0 = load i8, ptr %arrayidx.i.i.i, align 1, !tbaa !185 %arrayidx1.i.i.i = getelementptr inbounds nuw i8, ptr %rhs, i64 %offset.addr.0.i4.i.i %1 = load i8, ptr %arrayidx1.i.i.i, align 1, !tbaa !185 %cmp2.not.i.i.i = icmp eq i8 %0, %1 br i1 %cmp2.not.i.i.i, label %for.cond.i.i.i, label %_ZN22__llvm_libc_22_0_0_git4bcmpEPKvS1_m.exit _ZN22__llvm_libc_22_0_0_git4bcmpEPKvS1_m.exit: ; preds = %for.body.i.i.i, %for.cond.i.i.i, %entry %call.pn.i.i.i = phi i32 [ 0, %entry ], [ 1, %for.body.i.i.i ], [ 0, %for.cond.i.i.i ] ret i32 %call.pn.i.i.i } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) define dso_local void @bzero(ptr noundef writeonly captures(none) %ptr, i64 noundef %count) local_unnamed_addr #13 { entry: tail call void @llvm.memset.p0.i64(ptr align 1 %ptr, i8 0, i64 %count, i1 false) ret void } ; Function Attrs: mustprogress nounwind memory(argmem: read, inaccessiblemem: write) define dso_local noundef range(i32 -255, 256) i32 @memcmp(ptr noundef readonly captures(address_is_null) %lhs, ptr noundef readonly captures(address_is_null) %rhs, i64 noundef %count) local_unnamed_addr #14 { entry: %tobool.not.i = icmp eq i64 %count, 0 br i1 %tobool.not.i, label %_ZN22__llvm_libc_22_0_0_git6memcmpEPKvS1_m.exit, label %do.body.i do.body.i: ; preds = %entry %cmp.i = icmp eq ptr %lhs, null br i1 %cmp.i, label %if.then1.i, label %do.body2.i if.then1.i: ; preds = %do.body.i tail call void @llvm.trap() unreachable do.body2.i: ; preds = %do.body.i %cmp3.i = icmp eq ptr %rhs, null br i1 %cmp3.i, label %if.then5.i, label %for.body.i.i.i if.then5.i: ; preds = %do.body2.i tail call void @llvm.trap() unreachable for.cond.i.i.i: ; preds = %for.body.i.i.i %inc.i.i.i = add nuw i64 %offset.addr.0.i5.i.i, 1 %exitcond.not.i.i = icmp eq i64 %inc.i.i.i, %count br i1 %exitcond.not.i.i, label %_ZN22__llvm_libc_22_0_0_git6memcmpEPKvS1_m.exit, label %for.body.i.i.i, !llvm.loop !187 for.body.i.i.i: ; preds = %for.cond.i.i.i, %do.body2.i %offset.addr.0.i5.i.i = phi i64 [ %inc.i.i.i, %for.cond.i.i.i ], [ 0, %do.body2.i ] %arrayidx.i.i.i = getelementptr inbounds nuw i8, ptr %lhs, i64 %offset.addr.0.i5.i.i %0 = load i8, ptr %arrayidx.i.i.i, align 1, !tbaa !185 %arrayidx1.i.i.i = getelementptr inbounds nuw i8, ptr %rhs, i64 %offset.addr.0.i5.i.i %1 = load i8, ptr %arrayidx1.i.i.i, align 1, !tbaa !185 %tobool.not.i.not.i.i = icmp eq i8 %0, %1 br i1 %tobool.not.i.not.i.i, label %for.cond.i.i.i, label %_ZN22__llvm_libc_22_0_0_git27inline_memcmp_byte_per_byteEPKNS_3cpp4byteES3_mm.exit.loopexit.split.loop.exit7.i.i _ZN22__llvm_libc_22_0_0_git27inline_memcmp_byte_per_byteEPKNS_3cpp4byteES3_mm.exit.loopexit.split.loop.exit7.i.i: ; preds = %for.body.i.i.i %.lcssa9 = phi i8 [ %0, %for.body.i.i.i ] %.lcssa = phi i8 [ %1, %for.body.i.i.i ] %conv2.i.le.i.i = zext i8 %.lcssa to i32 %conv.i.le.i.i = zext i8 %.lcssa9 to i32 %sub.i.le.i.i = sub nsw i32 %conv.i.le.i.i, %conv2.i.le.i.i br label %_ZN22__llvm_libc_22_0_0_git6memcmpEPKvS1_m.exit _ZN22__llvm_libc_22_0_0_git6memcmpEPKvS1_m.exit: ; preds = %_ZN22__llvm_libc_22_0_0_git27inline_memcmp_byte_per_byteEPKNS_3cpp4byteES3_mm.exit.loopexit.split.loop.exit7.i.i, %for.cond.i.i.i, %entry %retval.i.sroa.0.2.i.i = phi i32 [ %sub.i.le.i.i, %_ZN22__llvm_libc_22_0_0_git27inline_memcmp_byte_per_byteEPKNS_3cpp4byteES3_mm.exit.loopexit.split.loop.exit7.i.i ], [ 0, %entry ], [ 0, %for.cond.i.i.i ] ret i32 %retval.i.sroa.0.2.i.i } ; Function Attrs: mustprogress nounwind memory(argmem: readwrite, inaccessiblemem: write) define dso_local noundef ptr @memcpy(ptr noalias noundef returned writeonly captures(address_is_null, ret: address, provenance) %dst, ptr noalias noundef readonly captures(address_is_null) %src, i64 noundef %count) local_unnamed_addr #15 { entry: %tobool.not.i = icmp eq i64 %count, 0 br i1 %tobool.not.i, label %_ZN22__llvm_libc_22_0_0_git6memcpyEPvPKvm.exit, label %do.body.i do.body.i: ; preds = %entry %cmp.i = icmp eq ptr %dst, null br i1 %cmp.i, label %if.then1.i, label %do.body2.i if.then1.i: ; preds = %do.body.i tail call void @llvm.trap() unreachable do.body2.i: ; preds = %do.body.i %cmp3.i = icmp eq ptr %src, null br i1 %cmp3.i, label %if.then5.i, label %_ZN22__llvm_libc_22_0_0_git6memcpyEPvPKvm.exit if.then5.i: ; preds = %do.body2.i tail call void @llvm.trap() unreachable _ZN22__llvm_libc_22_0_0_git6memcpyEPvPKvm.exit: ; preds = %do.body2.i, %entry tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %dst, ptr readonly align 1 %src, i64 %count, i1 false), !alias.scope !188 ret ptr %dst } ; Function Attrs: mustprogress nounwind memory(argmem: readwrite, inaccessiblemem: write) define dso_local noundef ptr @memmove(ptr noundef returned %dst, ptr noundef %src, i64 noundef %count) local_unnamed_addr #15 { entry: %tobool.not.i = icmp eq i64 %count, 0 br i1 %tobool.not.i, label %if.end11.i, label %do.body.i do.body.i: ; preds = %entry %cmp.i = icmp eq ptr %dst, null br i1 %cmp.i, label %if.then1.i, label %do.body2.i if.then1.i: ; preds = %do.body.i tail call void @llvm.trap() unreachable do.body2.i: ; preds = %do.body.i %cmp3.i = icmp eq ptr %src, null br i1 %cmp3.i, label %if.then5.i, label %if.end11.i if.then5.i: ; preds = %do.body2.i tail call void @llvm.trap() unreachable if.end11.i: ; preds = %do.body2.i, %entry %sub.ptr.lhs.cast.i.i = ptrtoint ptr %dst to i64 %sub.ptr.rhs.cast.i.i = ptrtoint ptr %src to i64 %sub.ptr.sub.i.i = sub i64 %sub.ptr.lhs.cast.i.i, %sub.ptr.rhs.cast.i.i %call.call1.i.i = tail call i64 @llvm.abs.i64(i64 %sub.ptr.sub.i.i, i1 true) %cond.i.not.i = icmp ugt i64 %count, %call.call1.i.i br i1 %cond.i.not.i, label %if.else.i, label %if.then13.i if.then13.i: ; preds = %if.end11.i tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %dst, ptr align 1 %src, i64 %count, i1 false), !alias.scope !195 br label %_ZN22__llvm_libc_22_0_0_git7memmoveEPvPKvm.exit if.else.i: ; preds = %if.end11.i tail call void @llvm.memmove.p0.p0.i64(ptr align 1 %dst, ptr align 1 %src, i64 %count, i1 false) br label %_ZN22__llvm_libc_22_0_0_git7memmoveEPvPKvm.exit _ZN22__llvm_libc_22_0_0_git7memmoveEPvPKvm.exit: ; preds = %if.else.i, %if.then13.i ret ptr %dst } ; Function Attrs: mustprogress nounwind memory(argmem: write, inaccessiblemem: write) define dso_local noundef ptr @memset(ptr noundef returned writeonly captures(address_is_null, ret: address, provenance) %ptr, i32 noundef %value, i64 noundef %count) local_unnamed_addr #16 { entry: %tobool.not.i = icmp ne i64 %count, 0 %cmp.i = icmp eq ptr %ptr, null %or.cond.i = and i1 %cmp.i, %tobool.not.i br i1 %or.cond.i, label %if.then1.i, label %_ZN22__llvm_libc_22_0_0_git6memsetEPvim.exit if.then1.i: ; preds = %entry tail call void @llvm.trap() unreachable _ZN22__llvm_libc_22_0_0_git6memsetEPvim.exit: ; preds = %entry %conv.i = trunc i32 %value to i8 tail call void @llvm.memset.p0.i64(ptr align 1 %ptr, i8 %conv.i, i64 %count, i1 false) ret ptr %ptr } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, argmem: none, inaccessiblemem: none) define dso_local noundef range(i32 -1, 1) i32 @atexit(ptr noundef %func) local_unnamed_addr #17 { entry: %0 = load i64, ptr getelementptr inbounds nuw (i8, ptr @_ZN22__llvm_libc_22_0_0_git16atexit_callbacksE, i64 1024), align 8, !tbaa !17 %cmp.i.not.i.i = icmp eq i64 %0, 64 br i1 %cmp.i.not.i.i, label %_ZN22__llvm_libc_22_0_0_git6atexitEPFvvE.exit, label %if.end.i.i.i if.end.i.i.i: ; preds = %entry %inc.i.i.i = add i64 %0, 1 %arrayidx.i.i.i.i = getelementptr inbounds nuw [64 x %"struct.__llvm_libc_22_0_0_git::AtExitUnit"], ptr @_ZN22__llvm_libc_22_0_0_git16atexit_callbacksE, i64 0, i64 %0 %ref.tmp.sroa.4.0.arrayidx.i.i.i.sroa_idx.i = getelementptr inbounds nuw i8, ptr %arrayidx.i.i.i.i, i64 8 store ptr @_ZN22__llvm_libc_22_0_0_git17stdc_at_exit_funcEPv, ptr %arrayidx.i.i.i.i, align 8, !tbaa !23 store ptr %func, ptr %ref.tmp.sroa.4.0.arrayidx.i.i.i.sroa_idx.i, align 8, !tbaa !23 store i64 %inc.i.i.i, ptr getelementptr inbounds nuw (i8, ptr @_ZN22__llvm_libc_22_0_0_git16atexit_callbacksE, i64 1024), align 8, !tbaa !17 br label %_ZN22__llvm_libc_22_0_0_git6atexitEPFvvE.exit _ZN22__llvm_libc_22_0_0_git6atexitEPFvvE.exit: ; preds = %if.end.i.i.i, %entry %..i.i = sext i1 %cmp.i.not.i.i to i32 ret i32 %..i.i } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, argmem: none, inaccessiblemem: none) define dso_local ptr @malloc(i64 noundef %s) local_unnamed_addr #17 { entry: %sub = add i64 %s, 7 %div2 = and i64 %sub, -8 %0 = load ptr, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34 %add.ptr = getelementptr inbounds nuw i8, ptr %0, i64 %div2 store ptr %add.ptr, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34 %sub.ptr.lhs.cast = ptrtoint ptr %add.ptr to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, ptrtoint (ptr @_ZN12_GLOBAL__N_16memoryE to i64) %cmp = icmp ugt i64 %sub.ptr.sub, 65335 %cond = select i1 %cmp, ptr null, ptr %0 ret ptr %cond } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) define dso_local void @free(ptr readnone captures(none) %0) local_unnamed_addr #2 { entry: ret void } ; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) define dso_local ptr @realloc(ptr noundef readonly captures(address_is_null) %mem, i64 noundef %s) local_unnamed_addr #18 { entry: %cmp = icmp eq ptr %mem, null %sub.i = add i64 %s, 7 %div2.i = and i64 %sub.i, -8 %0 = load ptr, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34 %add.ptr.i = getelementptr inbounds nuw i8, ptr %0, i64 %div2.i store ptr %add.ptr.i, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34 %sub.ptr.lhs.cast.i = ptrtoint ptr %add.ptr.i to i64 %sub.ptr.sub.i = sub i64 %sub.ptr.lhs.cast.i, ptrtoint (ptr @_ZN12_GLOBAL__N_16memoryE to i64) %cmp.i = icmp ugt i64 %sub.ptr.sub.i, 65335 br i1 %cmp, label %if.then, label %if.end if.then: ; preds = %entry %cond.i = select i1 %cmp.i, ptr null, ptr %0 br label %return if.end: ; preds = %entry %cmp222 = icmp eq ptr %0, null %cmp2 = or i1 %cmp222, %cmp.i br i1 %cmp2, label %return, label %for.cond.preheader for.cond.preheader: ; preds = %if.end %cmp523.not = icmp eq i64 %s, 0 br i1 %cmp523.not, label %return, label %for.body.preheader for.body.preheader: ; preds = %for.cond.preheader %xtraiter = and i64 %s, 7 %1 = icmp ult i64 %s, 8 br i1 %1, label %return.loopexit.unr-lcssa, label %for.body.preheader.new for.body.preheader.new: ; preds = %for.body.preheader %unroll_iter = and i64 %s, -8 br label %for.body for.body: ; preds = %for.body, %for.body.preheader.new %i.024 = phi i64 [ 0, %for.body.preheader.new ], [ %inc.7, %for.body ] %arrayidx = getelementptr inbounds nuw i8, ptr %mem, i64 %i.024 %2 = load i8, ptr %arrayidx, align 1, !tbaa !36 %arrayidx6 = getelementptr inbounds nuw i8, ptr %0, i64 %i.024 store i8 %2, ptr %arrayidx6, align 1, !tbaa !36 %inc = or disjoint i64 %i.024, 1 %arrayidx.1 = getelementptr inbounds nuw i8, ptr %mem, i64 %inc %3 = load i8, ptr %arrayidx.1, align 1, !tbaa !36 %arrayidx6.1 = getelementptr inbounds nuw i8, ptr %0, i64 %inc store i8 %3, ptr %arrayidx6.1, align 1, !tbaa !36 %inc.1 = or disjoint i64 %i.024, 2 %arrayidx.2 = getelementptr inbounds nuw i8, ptr %mem, i64 %inc.1 %4 = load i8, ptr %arrayidx.2, align 1, !tbaa !36 %arrayidx6.2 = getelementptr inbounds nuw i8, ptr %0, i64 %inc.1 store i8 %4, ptr %arrayidx6.2, align 1, !tbaa !36 %inc.2 = or disjoint i64 %i.024, 3 %arrayidx.3 = getelementptr inbounds nuw i8, ptr %mem, i64 %inc.2 %5 = load i8, ptr %arrayidx.3, align 1, !tbaa !36 %arrayidx6.3 = getelementptr inbounds nuw i8, ptr %0, i64 %inc.2 store i8 %5, ptr %arrayidx6.3, align 1, !tbaa !36 %inc.3 = or disjoint i64 %i.024, 4 %arrayidx.4 = getelementptr inbounds nuw i8, ptr %mem, i64 %inc.3 %6 = load i8, ptr %arrayidx.4, align 1, !tbaa !36 %arrayidx6.4 = getelementptr inbounds nuw i8, ptr %0, i64 %inc.3 store i8 %6, ptr %arrayidx6.4, align 1, !tbaa !36 %inc.4 = or disjoint i64 %i.024, 5 %arrayidx.5 = getelementptr inbounds nuw i8, ptr %mem, i64 %inc.4 %7 = load i8, ptr %arrayidx.5, align 1, !tbaa !36 %arrayidx6.5 = getelementptr inbounds nuw i8, ptr %0, i64 %inc.4 store i8 %7, ptr %arrayidx6.5, align 1, !tbaa !36 %inc.5 = or disjoint i64 %i.024, 6 %arrayidx.6 = getelementptr inbounds nuw i8, ptr %mem, i64 %inc.5 %8 = load i8, ptr %arrayidx.6, align 1, !tbaa !36 %arrayidx6.6 = getelementptr inbounds nuw i8, ptr %0, i64 %inc.5 store i8 %8, ptr %arrayidx6.6, align 1, !tbaa !36 %inc.6 = or disjoint i64 %i.024, 7 %arrayidx.7 = getelementptr inbounds nuw i8, ptr %mem, i64 %inc.6 %9 = load i8, ptr %arrayidx.7, align 1, !tbaa !36 %arrayidx6.7 = getelementptr inbounds nuw i8, ptr %0, i64 %inc.6 store i8 %9, ptr %arrayidx6.7, align 1, !tbaa !36 %inc.7 = add nuw i64 %i.024, 8 %niter.ncmp.7 = icmp eq i64 %inc.7, %unroll_iter br i1 %niter.ncmp.7, label %return.loopexit.unr-lcssa, label %for.body, !llvm.loop !199 return.loopexit.unr-lcssa: ; preds = %for.body, %for.body.preheader %i.024.unr = phi i64 [ 0, %for.body.preheader ], [ %inc.7, %for.body ] %lcmp.mod.not = icmp eq i64 %xtraiter, 0 br i1 %lcmp.mod.not, label %return, label %for.body.epil for.body.epil: ; preds = %for.body.epil, %return.loopexit.unr-lcssa %i.024.epil = phi i64 [ %inc.epil, %for.body.epil ], [ %i.024.unr, %return.loopexit.unr-lcssa ] %epil.iter = phi i64 [ %epil.iter.next, %for.body.epil ], [ 0, %return.loopexit.unr-lcssa ] %arrayidx.epil = getelementptr inbounds nuw i8, ptr %mem, i64 %i.024.epil %10 = load i8, ptr %arrayidx.epil, align 1, !tbaa !36 %arrayidx6.epil = getelementptr inbounds nuw i8, ptr %0, i64 %i.024.epil store i8 %10, ptr %arrayidx6.epil, align 1, !tbaa !36 %inc.epil = add nuw nsw i64 %i.024.epil, 1 %epil.iter.next = add nuw nsw i64 %epil.iter, 1 %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter br i1 %epil.iter.cmp.not, label %return, label %for.body.epil, !llvm.loop !200 return: ; preds = %for.body.epil, %return.loopexit.unr-lcssa, %for.cond.preheader, %if.end, %if.then %retval.1 = phi ptr [ %cond.i, %if.then ], [ null, %if.end ], [ %0, %for.cond.preheader ], [ %0, %return.loopexit.unr-lcssa ], [ %0, %for.body.epil ] ret ptr %retval.1 } ; Function Attrs: cold mustprogress noreturn nounwind memory(inaccessiblemem: write) define dso_local void @__cxa_pure_virtual() local_unnamed_addr #19 { entry: tail call void @llvm.trap() unreachable } ; Function Attrs: cold noreturn nounwind memory(inaccessiblemem: write) declare void @llvm.trap() #20 ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) define dso_local noundef ptr @_ZnwmPv(i64 noundef %size, ptr noundef readnone returned captures(ret: address, provenance) %ptr) local_unnamed_addr #2 { entry: ret ptr %ptr } ; Function Attrs: mustprogress nobuiltin nounwind allocsize(0) define dso_local noundef nonnull ptr @_Znwm(i64 noundef %size) local_unnamed_addr #21 { entry: %sub.i = add i64 %size, 7 %div2.i = and i64 %sub.i, -8 %0 = load ptr, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34 %add.ptr.i = getelementptr inbounds nuw i8, ptr %0, i64 %div2.i store ptr %add.ptr.i, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34 ret ptr %0 } ; Function Attrs: mustprogress nobuiltin nounwind allocsize(0) define dso_local noundef nonnull ptr @_Znam(i64 noundef %size) local_unnamed_addr #21 { entry: %sub.i = add i64 %size, 7 %div2.i = and i64 %sub.i, -8 %0 = load ptr, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34 %add.ptr.i = getelementptr inbounds nuw i8, ptr %0, i64 %div2.i store ptr %add.ptr.i, ptr @_ZN12_GLOBAL__N_13ptrE, align 8, !tbaa !34 ret ptr %0 } ; Function Attrs: mustprogress nobuiltin nounwind define dso_local void @_ZdlPv(ptr noundef %0) local_unnamed_addr #22 { entry: tail call void @llvm.trap() unreachable } ; Function Attrs: mustprogress nobuiltin nounwind define dso_local void @_ZdlPvm(ptr noundef %ptr, i64 noundef %size) local_unnamed_addr #22 { entry: tail call void @llvm.trap() unreachable } ; Function Attrs: mustprogress nobuiltin nounwind define dso_local void @_ZdlPvSt11align_val_t(ptr noundef %mem, i64 noundef %0) local_unnamed_addr #22 { entry: tail call void @llvm.trap() unreachable } ; Function Attrs: cold mustprogress noreturn nounwind memory(inaccessiblemem: write) define dso_local void @_ZdlPvjSt11align_val_t(ptr noundef readnone captures(none) %mem, i32 noundef %0, i64 noundef %1) local_unnamed_addr #19 { entry: tail call void @llvm.trap() unreachable } ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare noundef range(i32 0, 32) i32 @llvm.nvvm.read.ptx.sreg.laneid() #11 ; Function Attrs: convergent nocallback nounwind memory(inaccessiblemem: readwrite) declare i32 @llvm.nvvm.activemask() #23 ; Function Attrs: convergent nocallback nounwind memory(inaccessiblemem: readwrite) declare i32 @llvm.nvvm.vote.ballot.sync(i32, i1) #23 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.cttz.i32(i32, i1 immarg) #11 ; Function Attrs: convergent nocallback nounwind memory(inaccessiblemem: readwrite) declare i32 @llvm.nvvm.shfl.sync.idx.i32(i32, i32, i32, i32) #23 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.cttz.i64(i64, i1 immarg) #11 ; Function Attrs: convergent nocallback nounwind declare void @llvm.nvvm.bar.warp.sync(i32) #24 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.nvvm.reflect(ptr) #11 ; Function Attrs: convergent mustprogress nounwind define internal fastcc void @__cxa_finalize() unnamed_addr #25 { entry: %0 = load i64, ptr getelementptr inbounds nuw (i8, ptr @_ZN22__llvm_libc_22_0_0_git16atexit_callbacksE, i64 1024), align 8, !tbaa !17 %cmp.i14.i = icmp eq i64 %0, 0 br i1 %cmp.i14.i, label %_ZN22__llvm_libc_22_0_0_git19call_exit_callbacksERNS_11FixedVectorINS_10AtExitUnitELm64EEE.exit, label %while.body.i while.body.i: ; preds = %while.body.i, %entry %1 = phi i64 [ %3, %while.body.i ], [ %0, %entry ] %sub.i.i = add i64 %1, -1 %arrayidx.i.i.i = getelementptr inbounds nuw [64 x %"struct.__llvm_libc_22_0_0_git::AtExitUnit"], ptr @_ZN22__llvm_libc_22_0_0_git16atexit_callbacksE, i64 0, i64 %sub.i.i %unit.sroa.0.0.copyload.i = load ptr, ptr %arrayidx.i.i.i, align 8, !tbaa !23 %unit.sroa.5.0.call2.sroa_idx.i = getelementptr inbounds nuw i8, ptr %arrayidx.i.i.i, i64 8 %unit.sroa.5.0.copyload.i = load ptr, ptr %unit.sroa.5.0.call2.sroa_idx.i, align 8, !tbaa !23 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %arrayidx.i.i.i, i8 0, i64 16, i1 false) %2 = load i64, ptr getelementptr inbounds nuw (i8, ptr @_ZN22__llvm_libc_22_0_0_git16atexit_callbacksE, i64 1024), align 8, !tbaa !17 %dec.i.i = add i64 %2, -1 store i64 %dec.i.i, ptr getelementptr inbounds nuw (i8, ptr @_ZN22__llvm_libc_22_0_0_git16atexit_callbacksE, i64 1024), align 8, !tbaa !17 tail call void %unit.sroa.0.0.copyload.i(ptr noundef %unit.sroa.5.0.copyload.i) #34 %3 = load i64, ptr getelementptr inbounds nuw (i8, ptr @_ZN22__llvm_libc_22_0_0_git16atexit_callbacksE, i64 1024), align 8, !tbaa !17 %cmp.i.i = icmp eq i64 %3, 0 br i1 %cmp.i.i, label %_ZN22__llvm_libc_22_0_0_git19call_exit_callbacksERNS_11FixedVectorINS_10AtExitUnitELm64EEE.exit, label %while.body.i, !llvm.loop !201 _ZN22__llvm_libc_22_0_0_git19call_exit_callbacksERNS_11FixedVectorINS_10AtExitUnitELm64EEE.exit: ; preds = %while.body.i, %entry store i64 0, ptr getelementptr inbounds nuw (i8, ptr @_ZN22__llvm_libc_22_0_0_git16atexit_callbacksE, i64 1024), align 8, !tbaa !17 ret void } ; Function Attrs: convergent inlinehint mustprogress nounwind define internal void @_ZN22__llvm_libc_22_0_0_git17stdc_at_exit_funcEPv(ptr noundef readonly captures(none) %payload) #26 comdat { entry: tail call void %payload() #34 ret void } ; Function Attrs: convergent mustprogress noreturn nounwind define internal fastcc void @_ZN22__llvm_libc_22_0_0_git4exitEi(i32 noundef %status) unnamed_addr #27 { entry: tail call fastcc void @__cxa_finalize() #34 tail call fastcc void @_ZN22__llvm_libc_22_0_0_git8internal4exitEi(i32 noundef %status) #35 unreachable } ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.abs.i64(i64, i1 immarg) #11 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) declare void @llvm.memmove.p0.p0.i64(ptr writeonly captures(none), ptr readonly captures(none), i64, i1 immarg) #10 ; Function Attrs: nocallback nofree nosync nounwind willreturn declare i64 @llvm.readsteadycounter() #28 ; Function Attrs: convergent mustprogress noreturn nounwind define internal fastcc void @_ZN22__llvm_libc_22_0_0_git8internal4exitEi(i32 noundef %status) unnamed_addr #27 { entry: %port = alloca %"struct.rpc::Port", align 8 call void @llvm.lifetime.start.p0(ptr nonnull %port) #32 %0 = getelementptr inbounds nuw i8, ptr %port, i64 8 %1 = getelementptr inbounds nuw i8, ptr %port, i64 16 %2 = getelementptr inbounds nuw i8, ptr %port, i64 20 %3 = getelementptr inbounds nuw i8, ptr %port, i64 24 %4 = getelementptr inbounds nuw i8, ptr %port, i64 28 %5 = getelementptr inbounds nuw i8, ptr %port, i64 29 %6 = getelementptr inbounds nuw i8, ptr %port, i64 30 store i8 -86, ptr %6, align 2, !annotation !202 %7 = getelementptr inbounds nuw i8, ptr %port, i64 31 store i8 -86, ptr %7, align 1, !annotation !202 %call = tail call fastcc <{ ptr, i64, i32, i32, i32, i8, i8 }> @_ZN3rpc6Client4openILj1660944385EEENS_4PortILb0EEEv() #36 %newret = extractvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %call, 0 %newret1 = extractvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %call, 1 %newret3 = extractvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %call, 2 %newret5 = extractvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %call, 3 %newret7 = extractvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %call, 4 %newret9 = extractvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %call, 5 %newret11 = extractvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %call, 6 store ptr %newret, ptr %port, align 8 store i64 %newret1, ptr %0, align 8 store i32 %newret3, ptr %1, align 8 store i32 %newret5, ptr %2, align 4 store i32 %newret7, ptr %3, align 8 store i8 %newret9, ptr %4, align 4 store i8 %newret11, ptr %5, align 1 call fastcc void @"_ZN3rpc4PortILb0EE13send_and_recvIZN22__llvm_libc_22_0_0_git8internal4exitEiE3$_0ZNS4_4exitEiE3$_1EEvT_T0_"(ptr noundef nonnull align 8 dereferenceable(30) %port) #36 call fastcc void @"_ZN3rpc4PortILb0EE4sendIZN22__llvm_libc_22_0_0_git8internal4exitEiE3$_2EEvT_"(ptr noundef nonnull align 8 dereferenceable(30) %port, i32 %status) #36 call fastcc void @_ZN3rpc4PortILb0EE5closeEv(ptr noundef nonnull align 8 dereferenceable(30) %port) #36 tail call void @llvm.nvvm.exit() unreachable } ; Function Attrs: convergent inlinehint mustprogress norecurse nounwind define internal fastcc <{ ptr, i64, i32, i32, i32, i8, i8 }> @_ZN3rpc6Client4openILj1660944385EEENS_4PortILb0EEEv() unnamed_addr #29 comdat align 2 !type !203 { entry: %0 = tail call range(i32 0, 32) i32 @llvm.nvvm.read.ptx.sreg.laneid() %sh_prom.i = zext nneg i32 %0 to i64 br label %for.cond for.cond: ; preds = %for.inc, %entry %retval.sroa.6.0 = phi i32 [ undef, %entry ], [ %retval.sroa.6.2, %for.inc ] %retval.sroa.2.0 = phi i64 [ undef, %entry ], [ %retval.sroa.2.2, %for.inc ] %retval.sroa.8.0 = phi i32 [ undef, %entry ], [ %retval.sroa.8.2, %for.inc ] %index.0 = phi i32 [ 0, %entry ], [ %inc, %for.inc ] %1 = load i32, ptr @__llvm_rpc_client, align 8, !tbaa !51 %cmp.not = icmp ult i32 %index.0, %1 %spec.store.select = select i1 %cmp.not, i32 %index.0, i32 0 %2 = tail call i32 @llvm.nvvm.activemask() %conv.i.i = zext i32 %2 to i64 %div8.i.i = lshr i32 %spec.store.select, 5 %3 = and i32 %spec.store.select, 31 %idxprom.i.i = zext nneg i32 %div8.i.i to i64 %arrayidx.i.i = getelementptr inbounds nuw i32, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 40), i64 %idxprom.i.i %4 = lshr i32 %2, %0 %conv4.i.i = and i32 %4, 1 %shl.i.i = shl nuw i32 %conv4.i.i, %3 %5 = atomicrmw or ptr %arrayidx.i.i, i32 %shl.i.i monotonic, align 4 %shl5.i.i = shl nuw i32 1, %3 %and.i.i = and i32 %shl5.i.i, %5 %tobool3.i = icmp ne i32 %and.i.i, 0 %6 = tail call i32 @llvm.nvvm.vote.ballot.sync(i32 %2, i1 %tobool3.i) %cmp.i.not = icmp eq i32 %2, %6 br i1 %cmp.i.not, label %for.inc, label %if.then.i if.then.i: ; preds = %for.cond fence acquire %7 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 8), align 8, !tbaa !58 %idxprom.i = zext i32 %spec.store.select to i64 %arrayidx.i = getelementptr inbounds nuw i32, ptr %7, i64 %idxprom.i %8 = load atomic i32, ptr %arrayidx.i monotonic, align 4 %9 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %2, i1 true) %iszero.i.i.i = icmp eq i32 %2, 0 %sub.i.i.i = select i1 %iszero.i.i.i, i32 -1, i32 %9 %10 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %2, i32 %8, i32 %sub.i.i.i, i32 31) %11 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 16), align 8, !tbaa !59 %arrayidx.i45 = getelementptr inbounds nuw i32, ptr %11, i64 %idxprom.i %12 = load atomic i32, ptr %arrayidx.i45 monotonic, align 4 %13 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %2, i32 %12, i32 %sub.i.i.i, i32 31) %cmp.i48.not = icmp eq i32 %10, %13 br i1 %cmp.i48.not, label %if.end14, label %if.then12 if.then12: ; preds = %if.then.i fence release %14 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i, i1 true) %iszero.i.i.i.i = icmp ne i32 %2, 0 %cmp2.i.i.i = icmp eq i64 %14, %sh_prom.i %cmp.i.i.i = select i1 %iszero.i.i.i.i, i1 %cmp2.i.i.i, i1 false %conv4.i.i53 = zext i1 %cmp.i.i.i to i32 %shl.i.i54 = shl nuw i32 %conv4.i.i53, %3 %xor.i.i = xor i32 %shl.i.i54, -1 %15 = atomicrmw and ptr %arrayidx.i.i, i32 %xor.i.i monotonic, align 4 tail call void @llvm.nvvm.bar.warp.sync(i32 %2) br label %cleanup26 if.end14: ; preds = %if.then.i %16 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %conv.i.i, i1 true) %iszero.i.i.i56 = icmp ne i32 %2, 0 %cmp2.i.i = icmp eq i64 %16, %sh_prom.i %cmp.i.i = select i1 %iszero.i.i.i56, i1 %cmp2.i.i, i1 false br i1 %cmp.i.i, label %if.then16, label %if.end22 if.then16: ; preds = %if.end14 %17 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @__llvm_rpc_client, i64 24), align 8, !tbaa !60 %opcode = getelementptr inbounds nuw %"struct.rpc::Header", ptr %17, i64 %idxprom.i, i32 1 store i32 1660944385, ptr %opcode, align 8, !tbaa !61 %arrayidx21 = getelementptr inbounds nuw %"struct.rpc::Header", ptr %17, i64 %idxprom.i store i64 %conv.i.i, ptr %arrayidx21, align 8, !tbaa !64 br label %if.end22 if.end22: ; preds = %if.then16, %if.end14 tail call void @llvm.nvvm.bar.warp.sync(i32 %2) br label %cleanup26 cleanup26: ; preds = %if.end22, %if.then12 %retval.sroa.6.1 = phi i32 [ %retval.sroa.6.0, %if.then12 ], [ %spec.store.select, %if.end22 ] %retval.sroa.2.1 = phi i64 [ %retval.sroa.2.0, %if.then12 ], [ %conv.i.i, %if.end22 ] %retval.sroa.8.1 = phi i32 [ %retval.sroa.8.0, %if.then12 ], [ %10, %if.end22 ] br i1 %cmp.i48.not, label %cleanup27, label %for.inc for.inc: ; preds = %cleanup26, %for.cond %retval.sroa.6.2 = phi i32 [ %retval.sroa.6.1, %cleanup26 ], [ %retval.sroa.6.0, %for.cond ] %retval.sroa.2.2 = phi i64 [ %retval.sroa.2.1, %cleanup26 ], [ %retval.sroa.2.0, %for.cond ] %retval.sroa.8.2 = phi i32 [ %retval.sroa.8.1, %cleanup26 ], [ %retval.sroa.8.0, %for.cond ] %inc = add i32 %spec.store.select, 1 br label %for.cond, !llvm.loop !204 cleanup27: ; preds = %cleanup26 %retval.sroa.6.1.lcssa = phi i32 [ %retval.sroa.6.1, %cleanup26 ] %retval.sroa.2.1.lcssa = phi i64 [ %retval.sroa.2.1, %cleanup26 ] %retval.sroa.8.1.lcssa = phi i32 [ %retval.sroa.8.1, %cleanup26 ] %newret2 = insertvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> <{ ptr @__llvm_rpc_client, i64 poison, i32 poison, i32 poison, i32 poison, i8 poison, i8 poison }>, i64 %retval.sroa.2.1.lcssa, 1 %newret4 = insertvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %newret2, i32 32, 2 %newret6 = insertvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %newret4, i32 %retval.sroa.6.1.lcssa, 3 %newret8 = insertvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %newret6, i32 %retval.sroa.8.1.lcssa, 4 %newret10 = insertvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %newret8, i8 0, 5 %newret12 = insertvalue <{ ptr, i64, i32, i32, i32, i8, i8 }> %newret10, i8 1, 6 ret <{ ptr, i64, i32, i32, i32, i8, i8 }> %newret12 } ; Function Attrs: convergent inlinehint mustprogress nounwind define internal fastcc void @"_ZN3rpc4PortILb0EE13send_and_recvIZN22__llvm_libc_22_0_0_git8internal4exitEiE3$_0ZNS4_4exitEiE3$_1EEvT_T0_"(ptr noundef nonnull align 8 captures(none) dereferenceable(30) %this) unnamed_addr #26 align 2 !type !205 { entry: %owns_buffer.i = getelementptr inbounds nuw i8, ptr %this, i64 29 %0 = load i8, ptr %owns_buffer.i, align 1, !tbaa !207, !range !97, !noundef !98 %loadedv.i = trunc nuw i8 %0 to i1 br i1 %loadedv.i, label %cond.true.i, label %cond.false.i cond.true.i: ; preds = %entry %out.i = getelementptr inbounds nuw i8, ptr %this, i64 24 %1 = load i32, ptr %out.i, align 8, !tbaa !210 br label %cond.end.i cond.false.i: ; preds = %entry %2 = load ptr, ptr %this, align 8, !tbaa !211, !nonnull !98, !align !212 %lane_mask.i = getelementptr inbounds nuw i8, ptr %this, i64 8 %3 = load i64, ptr %lane_mask.i, align 8, !tbaa !213 %index.i = getelementptr inbounds nuw i8, ptr %this, i64 20 %4 = load i32, ptr %index.i, align 4, !tbaa !214 %inbox.i.i = getelementptr inbounds nuw i8, ptr %2, i64 8 %5 = load ptr, ptr %inbox.i.i, align 8, !tbaa !58 %idxprom.i.i = zext i32 %4 to i64 %arrayidx.i.i = getelementptr inbounds nuw i32, ptr %5, i64 %idxprom.i.i %6 = load atomic i32, ptr %arrayidx.i.i monotonic, align 4 %conv.i.i.i.i = trunc i64 %3 to i32 %7 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i, i1 true) %iszero.i.i.i.i = icmp eq i32 %conv.i.i.i.i, 0 %sub.i.i.i.i = select i1 %iszero.i.i.i.i, i32 -1, i32 %7 %8 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i, i32 %6, i32 %sub.i.i.i.i, i32 31) %out5.phi.trans.insert.i = getelementptr inbounds nuw i8, ptr %this, i64 24 %.pre.i = load i32, ptr %out5.phi.trans.insert.i, align 8, !tbaa !210 %9 = icmp eq i32 %8, %.pre.i br label %cond.end.i cond.end.i: ; preds = %cond.false.i, %cond.true.i %10 = phi i32 [ %1, %cond.true.i ], [ %.pre.i, %cond.false.i ] %cond.i = phi i1 [ true, %cond.true.i ], [ %9, %cond.false.i ] %index4.i = getelementptr inbounds nuw i8, ptr %this, i64 20 br i1 %cond.i, label %"_ZN3rpc4PortILb0EE4sendIZN22__llvm_libc_22_0_0_git8internal4exitEiE3$_0EEvT_.exit", label %while.body.lr.ph.i.i while.body.lr.ph.i.i: ; preds = %cond.end.i %11 = load i32, ptr %index4.i, align 4, !tbaa !214 %lane_mask3.i = getelementptr inbounds nuw i8, ptr %this, i64 8 %12 = load i64, ptr %lane_mask3.i, align 8, !tbaa !213 %13 = load ptr, ptr %this, align 8, !tbaa !211, !nonnull !98, !align !212 %14 = tail call i32 @llvm.nvvm.reflect(ptr nonnull @.str80) %cmp.i3.i.i = icmp ugt i32 %14, 699 %inbox.i.i.i = getelementptr inbounds nuw i8, ptr %13, i64 8 %idxprom.i.i.i = zext i32 %11 to i64 %conv.i.i.i.i.i = trunc i64 %12 to i32 %15 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i.i, i1 true) %iszero.i.i.i.i.i = icmp eq i32 %conv.i.i.i.i.i, 0 %sub.i.i.i.i.i = select i1 %iszero.i.i.i.i.i, i32 -1, i32 %15 br label %while.body.i.i while.body.i.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i, %while.body.lr.ph.i.i br i1 %cmp.i3.i.i, label %if.then.i.i.i, label %_ZN3rpc13sleep_brieflyEv.exit.i.i if.then.i.i.i: ; preds = %while.body.i.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !215 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i _ZN3rpc13sleep_brieflyEv.exit.i.i: ; preds = %if.then.i.i.i, %while.body.i.i %16 = load ptr, ptr %inbox.i.i.i, align 8, !tbaa !58 %arrayidx.i.i.i = getelementptr inbounds nuw i32, ptr %16, i64 %idxprom.i.i.i %17 = load atomic i32, ptr %arrayidx.i.i.i monotonic, align 4 %18 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i.i, i32 %17, i32 %sub.i.i.i.i.i, i32 31) %cmp.i.not.i.i = icmp eq i32 %18, %10 br i1 %cmp.i.not.i.i, label %"_ZN3rpc4PortILb0EE4sendIZN22__llvm_libc_22_0_0_git8internal4exitEiE3$_0EEvT_.exit", label %while.body.i.i, !llvm.loop !216 "_ZN3rpc4PortILb0EE4sendIZN22__llvm_libc_22_0_0_git8internal4exitEiE3$_0EEvT_.exit": ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i, %cond.end.i %out5.i = getelementptr inbounds nuw i8, ptr %this, i64 24 fence acquire %19 = load ptr, ptr %this, align 8, !tbaa !211, !nonnull !98, !align !212 %20 = load i32, ptr %index4.i, align 4, !tbaa !214 %idxprom.i = zext i32 %20 to i64 %21 = load i32, ptr %out5.i, align 8, !tbaa !210 %tobool.not.i.i = icmp eq i32 %21, 0 %conv.i.i = zext i1 %tobool.not.i.i to i32 fence release %outbox.i.i = getelementptr inbounds nuw i8, ptr %19, i64 16 %22 = load ptr, ptr %outbox.i.i, align 8, !tbaa !59 %arrayidx.i21.i = getelementptr inbounds nuw i32, ptr %22, i64 %idxprom.i store atomic i32 %conv.i.i, ptr %arrayidx.i21.i monotonic, align 4 store i32 %conv.i.i, ptr %out5.i, align 8, !tbaa !210 store i8 0, ptr %owns_buffer.i, align 1, !tbaa !207 %receive.i = getelementptr inbounds nuw i8, ptr %this, i64 28 store i8 0, ptr %receive.i, align 4, !tbaa !217 %23 = load ptr, ptr %this, align 8, !tbaa !211, !nonnull !98, !align !212 %lane_mask.i7 = getelementptr inbounds nuw i8, ptr %this, i64 8 %24 = load i64, ptr %lane_mask.i7, align 8, !tbaa !213 %25 = load i32, ptr %index4.i, align 4, !tbaa !214 %inbox.i.i8 = getelementptr inbounds nuw i8, ptr %23, i64 8 %26 = load ptr, ptr %inbox.i.i8, align 8, !tbaa !58 %idxprom.i21.i = zext i32 %25 to i64 %arrayidx.i22.i = getelementptr inbounds nuw i32, ptr %26, i64 %idxprom.i21.i %27 = load atomic i32, ptr %arrayidx.i22.i monotonic, align 4 %conv.i.i.i.i9 = trunc i64 %24 to i32 %28 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i9, i1 true) %iszero.i.i.i.i10 = icmp eq i32 %conv.i.i.i.i9, 0 %sub.i.i.i.i11 = select i1 %iszero.i.i.i.i10, i32 -1, i32 %28 %29 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i9, i32 %27, i32 %sub.i.i.i.i11, i32 31) %30 = icmp eq i32 %29, %conv.i.i br i1 %30, label %"_ZN3rpc4PortILb0EE4recvIZN22__llvm_libc_22_0_0_git8internal4exitEiE3$_1EEvT_.exit", label %while.body.lr.ph.i.i12 while.body.lr.ph.i.i12: ; preds = %"_ZN3rpc4PortILb0EE4sendIZN22__llvm_libc_22_0_0_git8internal4exitEiE3$_0EEvT_.exit" %31 = tail call i32 @llvm.nvvm.reflect(ptr nonnull @.str80) %cmp.i3.i.i13 = icmp ugt i32 %31, 699 br label %while.body.i.i19 while.body.i.i19: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i20, %while.body.lr.ph.i.i12 %32 = phi ptr [ %33, %_ZN3rpc13sleep_brieflyEv.exit.i.i20 ], [ %26, %while.body.lr.ph.i.i12 ] br i1 %cmp.i3.i.i13, label %if.then.i.i.i23, label %_ZN3rpc13sleep_brieflyEv.exit.i.i20 if.then.i.i.i23: ; preds = %while.body.i.i19 tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !215 %.pre = load ptr, ptr %inbox.i.i8, align 8, !tbaa !58 br label %_ZN3rpc13sleep_brieflyEv.exit.i.i20 _ZN3rpc13sleep_brieflyEv.exit.i.i20: ; preds = %if.then.i.i.i23, %while.body.i.i19 %33 = phi ptr [ %.pre, %if.then.i.i.i23 ], [ %32, %while.body.i.i19 ] %arrayidx.i.i.i21 = getelementptr inbounds nuw i32, ptr %33, i64 %idxprom.i21.i %34 = load atomic i32, ptr %arrayidx.i.i.i21 monotonic, align 4 %35 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i9, i32 %34, i32 %sub.i.i.i.i11, i32 31) %cmp.i.not.i.i22 = icmp eq i32 %35, %conv.i.i br i1 %cmp.i.not.i.i22, label %"_ZN3rpc4PortILb0EE4recvIZN22__llvm_libc_22_0_0_git8internal4exitEiE3$_1EEvT_.exit", label %while.body.i.i19, !llvm.loop !216 "_ZN3rpc4PortILb0EE4recvIZN22__llvm_libc_22_0_0_git8internal4exitEiE3$_1EEvT_.exit": ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i.i20, %"_ZN3rpc4PortILb0EE4sendIZN22__llvm_libc_22_0_0_git8internal4exitEiE3$_0EEvT_.exit" fence acquire store i8 1, ptr %receive.i, align 4, !tbaa !217 store i8 1, ptr %owns_buffer.i, align 1, !tbaa !207 ret void } ; Function Attrs: convergent inlinehint mustprogress nounwind define internal fastcc void @"_ZN3rpc4PortILb0EE4sendIZN22__llvm_libc_22_0_0_git8internal4exitEiE3$_2EEvT_"(ptr noundef nonnull align 8 captures(none) dereferenceable(30) %this, i32 %fill.0.val.0.val) unnamed_addr #26 align 2 !type !218 { entry: %owns_buffer = getelementptr inbounds nuw i8, ptr %this, i64 29 %0 = load i8, ptr %owns_buffer, align 1, !tbaa !207, !range !97, !noundef !98 %loadedv = trunc nuw i8 %0 to i1 br i1 %loadedv, label %cond.true, label %cond.false cond.true: ; preds = %entry %out = getelementptr inbounds nuw i8, ptr %this, i64 24 %1 = load i32, ptr %out, align 8, !tbaa !210 br label %cond.end cond.false: ; preds = %entry %2 = load ptr, ptr %this, align 8, !tbaa !211, !nonnull !98, !align !212 %lane_mask = getelementptr inbounds nuw i8, ptr %this, i64 8 %3 = load i64, ptr %lane_mask, align 8, !tbaa !213 %index = getelementptr inbounds nuw i8, ptr %this, i64 20 %4 = load i32, ptr %index, align 4, !tbaa !214 %inbox.i = getelementptr inbounds nuw i8, ptr %2, i64 8 %5 = load ptr, ptr %inbox.i, align 8, !tbaa !58 %idxprom.i = zext i32 %4 to i64 %arrayidx.i = getelementptr inbounds nuw i32, ptr %5, i64 %idxprom.i %6 = load atomic i32, ptr %arrayidx.i monotonic, align 4 %conv.i.i.i = trunc i64 %3 to i32 %7 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i, i1 true) %iszero.i.i.i = icmp eq i32 %conv.i.i.i, 0 %sub.i.i.i = select i1 %iszero.i.i.i, i32 -1, i32 %7 %8 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i, i32 %6, i32 %sub.i.i.i, i32 31) %out5.phi.trans.insert = getelementptr inbounds nuw i8, ptr %this, i64 24 %.pre = load i32, ptr %out5.phi.trans.insert, align 8, !tbaa !210 %9 = icmp eq i32 %8, %.pre br label %cond.end cond.end: ; preds = %cond.false, %cond.true %10 = phi i32 [ %1, %cond.true ], [ %.pre, %cond.false ] %cond = phi i1 [ true, %cond.true ], [ %9, %cond.false ] %index4 = getelementptr inbounds nuw i8, ptr %this, i64 20 br i1 %cond, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit, label %while.body.lr.ph.i while.body.lr.ph.i: ; preds = %cond.end %11 = load i32, ptr %index4, align 4, !tbaa !214 %lane_mask3 = getelementptr inbounds nuw i8, ptr %this, i64 8 %12 = load i64, ptr %lane_mask3, align 8, !tbaa !213 %13 = load ptr, ptr %this, align 8, !tbaa !211, !nonnull !98, !align !212 %14 = tail call i32 @llvm.nvvm.reflect(ptr nonnull @.str80) %cmp.i3.i = icmp ugt i32 %14, 699 %inbox.i.i = getelementptr inbounds nuw i8, ptr %13, i64 8 %idxprom.i.i = zext i32 %11 to i64 %conv.i.i.i.i = trunc i64 %12 to i32 %15 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %conv.i.i.i.i, i1 true) %iszero.i.i.i.i = icmp eq i32 %conv.i.i.i.i, 0 %sub.i.i.i.i = select i1 %iszero.i.i.i.i, i32 -1, i32 %15 br label %while.body.i while.body.i: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i, %while.body.lr.ph.i br i1 %cmp.i3.i, label %if.then.i.i, label %_ZN3rpc13sleep_brieflyEv.exit.i if.then.i.i: ; preds = %while.body.i tail call void asm sideeffect "nanosleep.u32 64;", "~{memory}"() #34, !srcloc !215 br label %_ZN3rpc13sleep_brieflyEv.exit.i _ZN3rpc13sleep_brieflyEv.exit.i: ; preds = %if.then.i.i, %while.body.i %16 = load ptr, ptr %inbox.i.i, align 8, !tbaa !58 %arrayidx.i.i = getelementptr inbounds nuw i32, ptr %16, i64 %idxprom.i.i %17 = load atomic i32, ptr %arrayidx.i.i monotonic, align 4 %18 = tail call noundef i32 @llvm.nvvm.shfl.sync.idx.i32(i32 %conv.i.i.i.i, i32 %17, i32 %sub.i.i.i.i, i32 31) %cmp.i.not.i = icmp eq i32 %18, %10 br i1 %cmp.i.not.i, label %_ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit, label %while.body.i, !llvm.loop !216 _ZN3rpc7ProcessILb0EE18wait_for_ownershipEyjjj.exit: ; preds = %_ZN3rpc13sleep_brieflyEv.exit.i, %cond.end %out5 = getelementptr inbounds nuw i8, ptr %this, i64 24 fence acquire %lane_size = getelementptr inbounds nuw i8, ptr %this, i64 16 %19 = load i32, ptr %lane_size, align 8, !tbaa !220 %20 = load ptr, ptr %this, align 8, !tbaa !211, !nonnull !98, !align !212 %21 = load i32, ptr %index4, align 4, !tbaa !214 %packet.i = getelementptr inbounds nuw i8, ptr %20, i64 32 %22 = load ptr, ptr %packet.i, align 8, !tbaa !66 %mul.i = mul i32 %21, %19 %idxprom.i18 = zext i32 %mul.i to i64 %arrayidx.i19 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %22, i64 %idxprom.i18 %23 = tail call noundef range(i32 0, 32) i32 @llvm.nvvm.read.ptx.sreg.laneid() %idxprom.i20 = zext nneg i32 %23 to i64 %arrayidx.i21 = getelementptr inbounds nuw %"struct.rpc::Buffer", ptr %arrayidx.i19, i64 %idxprom.i20 store i32 %fill.0.val.0.val, ptr %arrayidx.i21, align 8, !tbaa !221 %24 = load i32, ptr %index4, align 4, !tbaa !214 %25 = load i32, ptr %out5, align 8, !tbaa !210 %tobool.not.i = icmp eq i32 %25, 0 %conv.i = zext i1 %tobool.not.i to i32 fence release %outbox.i = getelementptr inbounds nuw i8, ptr %20, i64 16 %26 = load ptr, ptr %outbox.i, align 8, !tbaa !59 %idxprom.i22 = zext i32 %24 to i64 %arrayidx.i23 = getelementptr inbounds nuw i32, ptr %26, i64 %idxprom.i22 store atomic i32 %conv.i, ptr %arrayidx.i23 monotonic, align 4 store i32 %conv.i, ptr %out5, align 8, !tbaa !210 store i8 0, ptr %owns_buffer, align 1, !tbaa !207 %receive = getelementptr inbounds nuw i8, ptr %this, i64 28 store i8 0, ptr %receive, align 4, !tbaa !217 ret void } ; Function Attrs: convergent inlinehint mustprogress norecurse nounwind define internal fastcc void @_ZN3rpc4PortILb0EE5closeEv(ptr noundef nonnull readonly align 8 captures(none) dereferenceable(30) %this) unnamed_addr #29 comdat align 2 !type !222 { entry: %lane_mask = getelementptr inbounds nuw i8, ptr %this, i64 8 %0 = load i64, ptr %lane_mask, align 8, !tbaa !213 %conv.i.i = trunc i64 %0 to i32 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i) %1 = load ptr, ptr %this, align 8, !tbaa !211, !nonnull !98, !align !212 %2 = load i64, ptr %lane_mask, align 8, !tbaa !213 %index5 = getelementptr inbounds nuw i8, ptr %this, i64 20 %3 = load i32, ptr %index5, align 4, !tbaa !214 fence release %lock.i = getelementptr inbounds nuw i8, ptr %1, i64 40 %4 = tail call noundef range(i32 0, 32) i32 @llvm.nvvm.read.ptx.sreg.laneid() %conv.i.i.i = zext nneg i32 %4 to i64 %5 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %2, i1 true) %iszero.i.i.i.i = icmp ne i64 %2, 0 %cmp2.i.i.i = icmp eq i64 %5, %conv.i.i.i %cmp.i.i.i = select i1 %iszero.i.i.i.i, i1 %cmp2.i.i.i, i1 false %div8.i.i = lshr i32 %3, 5 %6 = and i32 %3, 31 %idxprom.i.i = zext nneg i32 %div8.i.i to i64 %arrayidx.i.i = getelementptr inbounds nuw i32, ptr %lock.i, i64 %idxprom.i.i %conv4.i.i = zext i1 %cmp.i.i.i to i32 %shl.i.i = shl nuw i32 %conv4.i.i, %6 %xor.i.i = xor i32 %shl.i.i, -1 %7 = atomicrmw and ptr %arrayidx.i.i, i32 %xor.i.i monotonic, align 4 %conv.i.i4.i = trunc i64 %2 to i32 tail call void @llvm.nvvm.bar.warp.sync(i32 %conv.i.i4.i) ret void } ; Function Attrs: convergent noreturn nounwind memory(inaccessiblemem: readwrite) declare void @llvm.nvvm.exit() #30 attributes #0 = { convergent mustprogress nounwind "frame-pointer"="all" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+ptx63" } attributes #1 = { convergent mustprogress noreturn nounwind "frame-pointer"="all" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+ptx63" } attributes #2 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) "frame-pointer"="all" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="sm_89" "target-features"="+ptx88,+sm_89" } attributes #3 = { inlinehint mustprogress nofree norecurse nosync nounwind willreturn memory(none) "frame-pointer"="all" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="sm_89" "target-features"="+ptx88,+sm_89" } attributes #4 = { cold inlinehint mustprogress noreturn nounwind memory(inaccessiblemem: write) "frame-pointer"="all" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="sm_89" "target-features"="+ptx88,+sm_89" } attributes #5 = { convergent mustprogress nounwind "frame-pointer"="all" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="sm_89" "target-features"="+ptx88,+sm_89" } attributes #6 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #7 = { mustprogress nofree norecurse nosync nounwind willreturn "frame-pointer"="all" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="sm_89" "target-features"="+ptx88,+sm_89" } attributes #8 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: write) } attributes #10 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #11 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #12 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) "frame-pointer"="all" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="sm_89" "target-features"="+ptx88,+sm_89" } attributes #13 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) "frame-pointer"="all" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="sm_89" "target-features"="+ptx88,+sm_89" } attributes #14 = { mustprogress nounwind memory(argmem: read, inaccessiblemem: write) "frame-pointer"="all" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="sm_89" "target-features"="+ptx88,+sm_89" } attributes #15 = { mustprogress nounwind memory(argmem: readwrite, inaccessiblemem: write) "frame-pointer"="all" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="sm_89" "target-features"="+ptx88,+sm_89" } attributes #16 = { mustprogress nounwind memory(argmem: write, inaccessiblemem: write) "frame-pointer"="all" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="sm_89" "target-features"="+ptx88,+sm_89" } attributes #17 = { mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, argmem: none, inaccessiblemem: none) "frame-pointer"="all" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="sm_89" "target-features"="+ptx88,+sm_89" } attributes #18 = { mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) "frame-pointer"="all" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="sm_89" "target-features"="+ptx88,+sm_89" } attributes #19 = { cold mustprogress noreturn nounwind memory(inaccessiblemem: write) "frame-pointer"="all" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="sm_89" "target-features"="+ptx88,+sm_89" } attributes #20 = { cold noreturn nounwind memory(inaccessiblemem: write) } attributes #21 = { mustprogress nobuiltin nounwind allocsize(0) "frame-pointer"="all" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="sm_89" "target-features"="+ptx88,+sm_89" } attributes #22 = { mustprogress nobuiltin nounwind "frame-pointer"="all" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="sm_89" "target-features"="+ptx88,+sm_89" } attributes #23 = { convergent nocallback nounwind memory(inaccessiblemem: readwrite) } attributes #24 = { convergent nocallback nounwind } attributes #25 = { convergent mustprogress nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+ptx63" } attributes #26 = { convergent inlinehint mustprogress nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+ptx63" } attributes #27 = { convergent mustprogress noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+ptx63" } attributes #28 = { nocallback nofree nosync nounwind willreturn } attributes #29 = { convergent inlinehint mustprogress norecurse nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+ptx63" } attributes #30 = { convergent noreturn nounwind memory(inaccessiblemem: readwrite) } attributes #31 = { convergent nobuiltin nounwind "no-builtins" } attributes #32 = { nounwind } attributes #33 = { convergent nobuiltin noreturn nounwind "no-builtins" } attributes #34 = { convergent nounwind } attributes #35 = { convergent noreturn nounwind } attributes #36 = { convergent } !llvm.ident = !{!10} !llvm.module.flags = !{!11, !12, !13, !14, !15, !16} !0 = !{i64 16, !"_ZTS33LlvmLibcIntegerToStringTest_INT32"} !1 = !{i64 32, !"_ZTSM33LlvmLibcIntegerToStringTest_INT32FvvE.virtual"} !2 = !{i64 40, !"_ZTSM33LlvmLibcIntegerToStringTest_INT32FvvE.virtual"} !3 = !{i64 48, !"_ZTSM33LlvmLibcIntegerToStringTest_INT32FvvE.virtual"} !4 = !{i64 56, !"_ZTSM33LlvmLibcIntegerToStringTest_INT32KFPKcvE.virtual"} !5 = !{i64 16, !"_ZTSN22__llvm_libc_22_0_0_git7testing4TestE"} !6 = !{i64 32, !"_ZTSMN22__llvm_libc_22_0_0_git7testing4TestEFvvE.virtual"} !7 = !{i64 40, !"_ZTSMN22__llvm_libc_22_0_0_git7testing4TestEFvvE.virtual"} !8 = !{i64 48, !"_ZTSMN22__llvm_libc_22_0_0_git7testing4TestEFvvE.virtual"} !9 = !{i64 56, !"_ZTSMN22__llvm_libc_22_0_0_git7testing4TestEKFPKcvE.virtual"} !10 = !{!"clang version 22.0.0git"} !11 = !{i32 1, !"wchar_size", i32 4} !12 = !{i32 8, !"PIC Level", i32 1} !13 = !{i32 7, !"PIE Level", i32 1} !14 = !{i32 7, !"frame-pointer", i32 2} !15 = !{i32 1, !"ThinLTO", i32 0} !16 = !{i32 1, !"EnableSplitLTOUnit", i32 1} !17 = !{!18, !22, i64 1024} !18 = !{!"_ZTSN22__llvm_libc_22_0_0_git11FixedVectorINS_10AtExitUnitELm64EEE", !19, i64 0, !22, i64 1024} !19 = !{!"_ZTSN22__llvm_libc_22_0_0_git3cpp5arrayINS_10AtExitUnitELm64EEE", !20, i64 0} !20 = !{!"omnipotent char", !21, i64 0} !21 = !{!"Simple C++ TBAA"} !22 = !{!"long", !20, i64 0} !23 = !{!24, !24, i64 0} !24 = !{!"any pointer", !20, i64 0} !25 = !{!26, !26, i64 0} !26 = !{!"p1 long", !24, i64 0} !27 = !{!22, !22, i64 0} !28 = distinct !{!28, !29} !29 = !{!"llvm.loop.mustprogress"} !30 = distinct !{!30, !29} !31 = !{!32, !32, i64 0} !32 = !{!"p2 omnipotent char", !33, i64 0} !33 = !{!"any p2 pointer", !24, i64 0} !34 = !{!35, !35, i64 0} !35 = !{!"p1 omnipotent char", !24, i64 0} !36 = !{!20, !20, i64 0} !37 = distinct !{!37, !29} !38 = distinct !{!38, !29} !39 = distinct !{!39, !29} !40 = !{!41, !22, i64 16} !41 = !{!"_ZTSN22__llvm_libc_22_0_0_git15IntegerToStringIiNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEE", !42, i64 0, !22, i64 16} !42 = !{!"_ZTSN22__llvm_libc_22_0_0_git3cpp5arrayIcLm11EEE", !20, i64 0} !43 = !{!44, !46, i64 16} !44 = !{!"_ZTSN22__llvm_libc_22_0_0_git7testing4TestE", !45, i64 8, !46, i64 16} !45 = !{!"p1 _ZTSN22__llvm_libc_22_0_0_git7testing4TestE", !24, i64 0} !46 = !{!"p1 _ZTSN22__llvm_libc_22_0_0_git7testing8internal10RunContextE", !24, i64 0} !47 = distinct !{!47, !29} !48 = !{!49, !50, i64 0} !49 = !{!"_ZTSN22__llvm_libc_22_0_0_git7testing8internal10RunContextE", !50, i64 0} !50 = !{!"_ZTSN22__llvm_libc_22_0_0_git7testing8internal10RunContext9RunResultE", !20, i64 0} !51 = !{!52, !54, i64 0} !52 = !{!"_ZTSN3rpc6ClientE", !53, i64 0} !53 = !{!"_ZTSN3rpc7ProcessILb0EEE", !54, i64 0, !55, i64 8, !55, i64 16, !56, i64 24, !57, i64 32, !20, i64 40} !54 = !{!"int", !20, i64 0} !55 = !{!"p1 int", !24, i64 0} !56 = !{!"p1 _ZTSN3rpc6HeaderE", !24, i64 0} !57 = !{!"p1 _ZTSN3rpc6BufferE", !24, i64 0} !58 = !{!53, !55, i64 8} !59 = !{!53, !55, i64 16} !60 = !{!52, !56, i64 24} !61 = !{!62, !54, i64 8} !62 = !{!"_ZTSN3rpc6HeaderE", !63, i64 0, !54, i64 8} !63 = !{!"long long", !20, i64 0} !64 = !{!62, !63, i64 0} !65 = distinct !{!65, !29} !66 = !{!53, !57, i64 32} !67 = !{!63, !63, i64 0} !68 = !{!53, !56, i64 24} !69 = !{i64 161893} !70 = distinct !{!70, !29} !71 = distinct !{!71, !29} !72 = !{!73, !75} !73 = distinct !{!73, !74, !"_ZN22__llvm_libc_22_0_0_git3cpp8internal13to_dec_stringIiEENS0_6stringET_: %agg.result"} !74 = distinct !{!74, !"_ZN22__llvm_libc_22_0_0_git3cpp8internal13to_dec_stringIiEENS0_6stringET_"} !75 = distinct !{!75, !76, !"_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi: %agg.result"} !76 = distinct !{!76, !"_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi"} !77 = distinct !{!77, !29} !78 = !{!79, !81} !79 = distinct !{!79, !80, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %dst"} !80 = distinct !{!80, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm"} !81 = distinct !{!81, !80, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %src"} !82 = !{!83, !85} !83 = distinct !{!83, !84, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %dst"} !84 = distinct !{!84, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm"} !85 = distinct !{!85, !84, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %src"} !86 = !{!87, !89} !87 = distinct !{!87, !88, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %dst"} !88 = distinct !{!88, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm"} !89 = distinct !{!89, !88, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %src"} !90 = !{!91, !93} !91 = distinct !{!91, !92, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %dst"} !92 = distinct !{!92, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm"} !93 = distinct !{!93, !92, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %src"} !94 = !{!95, !96, i64 8} !95 = !{!"_ZTSN22__llvm_libc_22_0_0_git7testing11TestOptionsE", !35, i64 0, !96, i64 8, !96, i64 9} !96 = !{!"bool", !20, i64 0} !97 = !{i8 0, i8 2} !98 = !{} !99 = !{!45, !45, i64 0} !100 = distinct !{!100, !29} !101 = distinct !{!101, !29} !102 = !{!103, !105} !103 = distinct !{!103, !104, !"_ZN22__llvm_libc_22_0_0_git3cpp8internal13to_dec_stringIiEENS0_6stringET_: %agg.result"} !104 = distinct !{!104, !"_ZN22__llvm_libc_22_0_0_git3cpp8internal13to_dec_stringIiEENS0_6stringET_"} !105 = distinct !{!105, !106, !"_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi: %agg.result"} !106 = distinct !{!106, !"_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi"} !107 = !{!108, !110} !108 = distinct !{!108, !109, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %dst"} !109 = distinct !{!109, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm"} !110 = distinct !{!110, !109, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %src"} !111 = !{!112, !112, i64 0} !112 = !{!"vtable pointer", !21, i64 0} !113 = !{!95, !35, i64 0} !114 = distinct !{!114, !29} !115 = !{!116, !118} !116 = distinct !{!116, !117, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %dst"} !117 = distinct !{!117, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm"} !118 = distinct !{!118, !117, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %src"} !119 = !{!120, !122} !120 = distinct !{!120, !121, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %dst"} !121 = distinct !{!121, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm"} !122 = distinct !{!122, !121, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %src"} !123 = !{!95, !96, i64 9} !124 = !{!125, !127} !125 = distinct !{!125, !126, !"_ZN22__llvm_libc_22_0_0_git3cpp8internal13to_dec_stringIyEENS0_6stringET_: %agg.result"} !126 = distinct !{!126, !"_ZN22__llvm_libc_22_0_0_git3cpp8internal13to_dec_stringIyEENS0_6stringET_"} !127 = distinct !{!127, !128, !"_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy: %agg.result"} !128 = distinct !{!128, !"_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy"} !129 = distinct !{!129, !29} !130 = !{!131, !22, i64 24} !131 = !{!"_ZTSN22__llvm_libc_22_0_0_git15IntegerToStringIyNS_7details3FmtILh10ELb0ELb0ELb0ELm1EEEEE", !132, i64 0, !22, i64 24} !132 = !{!"_ZTSN22__llvm_libc_22_0_0_git3cpp5arrayIcLm21EEE", !20, i64 0} !133 = !{!134, !136} !134 = distinct !{!134, !135, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %dst"} !135 = distinct !{!135, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm"} !136 = distinct !{!136, !135, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %src"} !137 = !{!138, !140} !138 = distinct !{!138, !139, !"_ZN22__llvm_libc_22_0_0_git3cpp8internal13to_dec_stringIyEENS0_6stringET_: %agg.result"} !139 = distinct !{!139, !"_ZN22__llvm_libc_22_0_0_git3cpp8internal13to_dec_stringIyEENS0_6stringET_"} !140 = distinct !{!140, !141, !"_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy: %agg.result"} !141 = distinct !{!141, !"_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy"} !142 = !{!143, !145} !143 = distinct !{!143, !144, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %dst"} !144 = distinct !{!144, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm"} !145 = distinct !{!145, !144, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %src"} !146 = !{!147, !149} !147 = distinct !{!147, !148, !"_ZN22__llvm_libc_22_0_0_git3cpp8internal13to_dec_stringIyEENS0_6stringET_: %agg.result"} !148 = distinct !{!148, !"_ZN22__llvm_libc_22_0_0_git3cpp8internal13to_dec_stringIyEENS0_6stringET_"} !149 = distinct !{!149, !150, !"_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy: %agg.result"} !150 = distinct !{!150, !"_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEy"} !151 = !{!152, !154} !152 = distinct !{!152, !153, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %dst"} !153 = distinct !{!153, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm"} !154 = distinct !{!154, !153, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %src"} !155 = distinct !{!155, !29} !156 = !{!157, !159} !157 = distinct !{!157, !158, !"_ZN22__llvm_libc_22_0_0_git3cpp8internal13to_dec_stringIiEENS0_6stringET_: %agg.result"} !158 = distinct !{!158, !"_ZN22__llvm_libc_22_0_0_git3cpp8internal13to_dec_stringIiEENS0_6stringET_"} !159 = distinct !{!159, !160, !"_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi: %agg.result"} !160 = distinct !{!160, !"_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi"} !161 = !{!162, !164} !162 = distinct !{!162, !163, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %dst"} !163 = distinct !{!163, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm"} !164 = distinct !{!164, !163, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %src"} !165 = !{!166, !168} !166 = distinct !{!166, !167, !"_ZN22__llvm_libc_22_0_0_git3cpp8internal13to_dec_stringIiEENS0_6stringET_: %agg.result"} !167 = distinct !{!167, !"_ZN22__llvm_libc_22_0_0_git3cpp8internal13to_dec_stringIiEENS0_6stringET_"} !168 = distinct !{!168, !169, !"_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi: %agg.result"} !169 = distinct !{!169, !"_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi"} !170 = !{!171, !173} !171 = distinct !{!171, !172, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %dst"} !172 = distinct !{!172, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm"} !173 = distinct !{!173, !172, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %src"} !174 = !{!175, !177} !175 = distinct !{!175, !176, !"_ZN22__llvm_libc_22_0_0_git3cpp8internal13to_dec_stringIiEENS0_6stringET_: %agg.result"} !176 = distinct !{!176, !"_ZN22__llvm_libc_22_0_0_git3cpp8internal13to_dec_stringIiEENS0_6stringET_"} !177 = distinct !{!177, !178, !"_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi: %agg.result"} !178 = distinct !{!178, !"_ZN22__llvm_libc_22_0_0_git3cpp9to_stringEi"} !179 = !{!180, !182} !180 = distinct !{!180, !181, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %dst"} !181 = distinct !{!181, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm"} !182 = distinct !{!182, !181, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %src"} !183 = distinct !{!183, !29, !184} !184 = !{!"llvm.loop.unroll.disable"} !185 = !{!186, !186, i64 0} !186 = !{!"_ZTSN22__llvm_libc_22_0_0_git3cpp4byteE", !20, i64 0} !187 = distinct !{!187, !29, !184} !188 = !{!189, !191, !192, !194} !189 = distinct !{!189, !190, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %dst"} !190 = distinct !{!190, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm"} !191 = distinct !{!191, !190, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %src"} !192 = distinct !{!192, !193, !"_ZN22__llvm_libc_22_0_0_git6memcpyEPvPKvm: %dst"} !193 = distinct !{!193, !"_ZN22__llvm_libc_22_0_0_git6memcpyEPvPKvm"} !194 = distinct !{!194, !193, !"_ZN22__llvm_libc_22_0_0_git6memcpyEPvPKvm: %src"} !195 = !{!196, !198} !196 = distinct !{!196, !197, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %dst"} !197 = distinct !{!197, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm"} !198 = distinct !{!198, !197, !"_ZN22__llvm_libc_22_0_0_git13inline_memcpyEPvPKvm: %src"} !199 = distinct !{!199, !29} !200 = distinct !{!200, !184} !201 = distinct !{!201, !29} !202 = !{!"auto-init"} !203 = !{i64 0, !"_ZTSMN3rpc6ClientEFNS_4PortILb0EEEvE"} !204 = distinct !{!204, !29} !205 = !{i64 0, !206} !206 = distinct !{} !207 = !{!208, !96, i64 29} !208 = !{!"_ZTSN3rpc4PortILb0EEE", !209, i64 0, !63, i64 8, !54, i64 16, !54, i64 20, !54, i64 24, !96, i64 28, !96, i64 29} !209 = !{!"p1 _ZTSN3rpc7ProcessILb0EEE", !24, i64 0} !210 = !{!208, !54, i64 24} !211 = !{!208, !209, i64 0} !212 = !{i64 8} !213 = !{!208, !63, i64 8} !214 = !{!208, !54, i64 20} !215 = !{i64 131976} !216 = distinct !{!216, !29} !217 = !{!208, !96, i64 28} !218 = !{i64 0, !219} !219 = distinct !{} !220 = !{!208, !54, i64 16} !221 = !{!54, !54, i64 0} !222 = !{i64 0, !"_ZTSMN3rpc4PortILb0EEEFvvE"}
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