; LLVM IR from DanEngelbrecht/longtail :: test/test.ll/ZN56Longtail_TestCacheBlockStoreGetExistingContent (TestCase8TestBodyEv)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.CaptureBlockStore = type { %struct.Longtail_BlockStoreAPI, ptr, ptr, ptr }
%struct.Longtail_BlockStoreAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_API = type { ptr }
%struct.TestAsyncFlushComplete = type <{ %struct.Longtail_AsyncFlushAPI, ptr, i32, [4 x i8] }>
%struct.Longtail_AsyncFlushAPI = type { %struct.Longtail_API, ptr }
%struct.jc_test_fixture = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.jc_test_stats, i32, i32, i32, i32 }
%struct.jc_test_stats = type { i32, i32, i32, i32, i64 }
%struct.Longtail_JobAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_ChunkerAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_HashAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_CompressionRegistryAPI = type { %struct.Longtail_API, ptr }
%struct.Longtail_StorageAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

@.str.3 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.681 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.759 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.760 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.761 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.762 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.763 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.764 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.765 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.766 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.767 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.768 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.769 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.770 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.771 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.772 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.773 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.774 = external hidden unnamed_addr constant [45 x i8], align 1
@__const._ZN56Longtail_TestCacheBlockStoreGetExistingContent__TestCase8TestBodyEv.version_names = external hidden unnamed_addr constant [8 x ptr], align 16
@.str.775 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.776 = external hidden unnamed_addr constant [167 x i8], align 1
@.str.777 = external hidden unnamed_addr constant [161 x i8], align 1
@.str.778 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.779 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.780 = external hidden unnamed_addr constant [109 x i8], align 1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef ptr @_ZL19jc_test_get_fixturev() #1

declare void @_Z28jc_test_increment_assertionsv() #2

declare void @_Z21jc_test_set_test_faili(i32 noundef) #2

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef, ptr noundef) #3 align 2

declare void @Longtail_DisposeAPI(ptr noundef) #2

declare ptr @Longtail_CreateBlake3HashAPI() #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #4

declare ptr @Longtail_CreateHPCDCChunkerAPI() #2

declare ptr @Longtail_CreateBikeshedJobAPI(i32 noundef, i32 noundef) #2

declare ptr @Longtail_CreateInMemStorageAPI() #2

declare ptr @Longtail_CreateFullCompressionRegistry() #2

declare ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) #2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN22TestAsyncFlushCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN22TestAsyncFlushComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28)) unnamed_addr #5 align 2

declare ptr @Longtail_CreateCacheBlockStoreAPI(ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_Z21CaptureBlockStoreInitP17CaptureBlockStoreP22Longtail_BlockStoreAPI(ptr noundef, ptr noundef) #3

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN56Longtail_TestCacheBlockStoreGetExistingContent__TestCase8TestBodyEv(ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca %struct.CaptureBlockStore, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca [8 x ptr], align 16
  %27 = alloca i32, align 4
  %28 = alloca [64 x i8], align 16
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca [64 x i8], align 16
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca %struct.TestAsyncFlushComplete, align 8
  %37 = alloca ptr, align 8
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca %struct.TestAsyncFlushComplete, align 8
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %48 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #7
  %49 = call ptr @Longtail_CreateInMemStorageAPI()
  store ptr %49, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #7
  %50 = call ptr @Longtail_CreateFullCompressionRegistry()
  store ptr %50, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #7
  %51 = call ptr @Longtail_CreateBlake3HashAPI()
  store ptr %51, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #7
  %52 = call ptr @Longtail_CreateHPCDCChunkerAPI()
  store ptr %52, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #7
  %53 = call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 0, i32 noundef 0)
  store ptr %53, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #7
  %54 = load ptr, ptr %7, align 8, !tbaa !5
  %55 = load ptr, ptr %3, align 8, !tbaa !5
  %56 = call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %54, ptr noundef %55, ptr noundef @.str.759, ptr noundef null, i32 noundef 0)
  store ptr %56, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  %57 = load ptr, ptr %7, align 8, !tbaa !5
  %58 = load ptr, ptr %3, align 8, !tbaa !5
  %59 = call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %57, ptr noundef %58, ptr noundef @.str.760, ptr noundef null, i32 noundef 0)
  store ptr %59, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 88, ptr %10) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  %60 = load ptr, ptr %9, align 8, !tbaa !5
  %61 = call noundef ptr @_Z21CaptureBlockStoreInitP17CaptureBlockStoreP22Longtail_BlockStoreAPI(ptr noundef %10, ptr noundef %60)
  store ptr %61, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #7
  %62 = load ptr, ptr %7, align 8, !tbaa !5
  %63 = load ptr, ptr %8, align 8, !tbaa !5
  %64 = load ptr, ptr %11, align 8, !tbaa !5
  %65 = call ptr @Longtail_CreateCacheBlockStoreAPI(ptr noundef %62, ptr noundef %63, ptr noundef %64)
  store ptr %65, ptr %12, align 8, !tbaa !5
  %66 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef %66, ptr noundef @.str.761, i32 noundef 3, i32 noundef 0, i32 noundef 13486)
  br label %67

67:                                               ; preds = %1
  %68 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %69 = getelementptr inbounds %struct.jc_test_fixture, ptr %68, i32 0, i32 11
  %70 = load i32, ptr %69, align 8
  %71 = and i32 %70, -16776961
  %72 = or i32 %71, 1736192
  store i32 %72, ptr %69, align 8
  %73 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %74 = getelementptr inbounds %struct.jc_test_fixture, ptr %73, i32 0, i32 4
  store ptr @.str.3, ptr %74, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  store i32 0, ptr %13, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #7
  %75 = load ptr, ptr %3, align 8, !tbaa !5
  %76 = call noundef i32 @_ZL7CopyDirP19Longtail_StorageAPIPKcS2_(ptr noundef %75, ptr noundef @.str.761, ptr noundef @.str.762)
  store i32 %76, ptr %14, align 4, !tbaa !14
  %77 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef @.str.46, ptr noundef @.str.763, ptr noundef null)
  %78 = icmp eq i32 %77, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  br i1 %78, label %79, label %80

79:                                               ; preds = %67
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %15, align 4
  br label %509

80:                                               ; preds = %67
  br label %81

81:                                               ; preds = %80
  br label %82

82:                                               ; preds = %81
  %83 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef %83, ptr noundef @.str.762, i32 noundef 1, i32 noundef 0, i32 noundef 13486)
  br label %84

84:                                               ; preds = %82
  %85 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %86 = getelementptr inbounds %struct.jc_test_fixture, ptr %85, i32 0, i32 11
  %87 = load i32, ptr %86, align 8
  %88 = and i32 %87, -16776961
  %89 = or i32 %88, 1736704
  store i32 %89, ptr %86, align 8
  %90 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %91 = getelementptr inbounds %struct.jc_test_fixture, ptr %90, i32 0, i32 4
  store ptr @.str.3, ptr %91, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #7
  store i32 0, ptr %16, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  %92 = load ptr, ptr %3, align 8, !tbaa !5
  %93 = call noundef i32 @_ZL7CopyDirP19Longtail_StorageAPIPKcS2_(ptr noundef %92, ptr noundef @.str.762, ptr noundef @.str.764)
  store i32 %93, ptr %17, align 4, !tbaa !14
  %94 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef @.str.46, ptr noundef @.str.765, ptr noundef null)
  %95 = icmp eq i32 %94, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  br i1 %95, label %96, label %97

96:                                               ; preds = %84
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %15, align 4
  br label %509

97:                                               ; preds = %84
  br label %98

98:                                               ; preds = %97
  br label %99

99:                                               ; preds = %98
  %100 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef %100, ptr noundef @.str.764, i32 noundef 1, i32 noundef 0, i32 noundef 13486)
  br label %101

101:                                              ; preds = %99
  %102 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %103 = getelementptr inbounds %struct.jc_test_fixture, ptr %102, i32 0, i32 11
  %104 = load i32, ptr %103, align 8
  %105 = and i32 %104, -16776961
  %106 = or i32 %105, 1737216
  store i32 %106, ptr %103, align 8
  %107 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %108 = getelementptr inbounds %struct.jc_test_fixture, ptr %107, i32 0, i32 4
  store ptr @.str.3, ptr %108, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  store i32 0, ptr %18, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  %109 = load ptr, ptr %3, align 8, !tbaa !5
  %110 = call noundef i32 @_ZL7CopyDirP19Longtail_StorageAPIPKcS2_(ptr noundef %109, ptr noundef @.str.764, ptr noundef @.str.766)
  store i32 %110, ptr %19, align 4, !tbaa !14
  %111 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef @.str.46, ptr noundef @.str.767, ptr noundef null)
  %112 = icmp eq i32 %111, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  br i1 %112, label %113, label %114

113:                                              ; preds = %101
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %15, align 4
  br label %509

114:                                              ; preds = %101
  br label %115

115:                                              ; preds = %114
  br label %116

116:                                              ; preds = %115
  %117 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef %117, ptr noundef @.str.766, i32 noundef 1, i32 noundef 0, i32 noundef 13486)
  %118 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef %118, ptr noundef @.str.768, i32 noundef 1, i32 noundef 0, i32 noundef 13486)
  %119 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef %119, ptr noundef @.str.769, i32 noundef 1, i32 noundef 0, i32 noundef 13486)
  br label %120

120:                                              ; preds = %116
  %121 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %122 = getelementptr inbounds %struct.jc_test_fixture, ptr %121, i32 0, i32 11
  %123 = load i32, ptr %122, align 8
  %124 = and i32 %123, -16776961
  %125 = or i32 %124, 1738240
  store i32 %125, ptr %122, align 8
  %126 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %127 = getelementptr inbounds %struct.jc_test_fixture, ptr %126, i32 0, i32 4
  store ptr @.str.3, ptr %127, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #7
  store i32 0, ptr %20, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #7
  %128 = load ptr, ptr %3, align 8, !tbaa !5
  %129 = call noundef i32 @_ZL7CopyDirP19Longtail_StorageAPIPKcS2_(ptr noundef %128, ptr noundef @.str.769, ptr noundef @.str.770)
  store i32 %129, ptr %21, align 4, !tbaa !14
  %130 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef nonnull align 4 dereferenceable(4) %21, ptr noundef @.str.46, ptr noundef @.str.771, ptr noundef null)
  %131 = icmp eq i32 %130, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  br i1 %131, label %132, label %133

132:                                              ; preds = %120
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %15, align 4
  br label %509

133:                                              ; preds = %120
  br label %134

134:                                              ; preds = %133
  br label %135

135:                                              ; preds = %134
  %136 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef %136, ptr noundef @.str.770, i32 noundef 1, i32 noundef 0, i32 noundef 13486)
  br label %137

137:                                              ; preds = %135
  %138 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %139 = getelementptr inbounds %struct.jc_test_fixture, ptr %138, i32 0, i32 11
  %140 = load i32, ptr %139, align 8
  %141 = and i32 %140, -16776961
  %142 = or i32 %141, 1738752
  store i32 %142, ptr %139, align 8
  %143 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %144 = getelementptr inbounds %struct.jc_test_fixture, ptr %143, i32 0, i32 4
  store ptr @.str.3, ptr %144, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #7
  store i32 0, ptr %22, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #7
  %145 = load ptr, ptr %3, align 8, !tbaa !5
  %146 = call noundef i32 @_ZL7CopyDirP19Longtail_StorageAPIPKcS2_(ptr noundef %145, ptr noundef @.str.766, ptr noundef @.str.772)
  store i32 %146, ptr %23, align 4, !tbaa !14
  %147 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 4 dereferenceable(4) %23, ptr noundef @.str.46, ptr noundef @.str.773, ptr noundef null)
  %148 = icmp eq i32 %147, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  br i1 %148, label %149, label %150

149:                                              ; preds = %137
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %15, align 4
  br label %509

150:                                              ; preds = %137
  br label %151

151:                                              ; preds = %150
  br label %152

152:                                              ; preds = %151
  br label %153

153:                                              ; preds = %152
  %154 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %155 = getelementptr inbounds %struct.jc_test_fixture, ptr %154, i32 0, i32 11
  %156 = load i32, ptr %155, align 8
  %157 = and i32 %156, -16776961
  %158 = or i32 %157, 1739008
  store i32 %158, ptr %155, align 8
  %159 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %160 = getelementptr inbounds %struct.jc_test_fixture, ptr %159, i32 0, i32 4
  store ptr @.str.3, ptr %160, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #7
  store i32 0, ptr %24, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #7
  %161 = load ptr, ptr %3, align 8, !tbaa !5
  %162 = call noundef i32 @_ZL7CopyDirP19Longtail_StorageAPIPKcS2_(ptr noundef %161, ptr noundef @.str.768, ptr noundef @.str.772)
  store i32 %162, ptr %25, align 4, !tbaa !14
  %163 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef @.str.46, ptr noundef @.str.774, ptr noundef null)
  %164 = icmp eq i32 %163, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  br i1 %164, label %165, label %166

165:                                              ; preds = %153
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %15, align 4
  br label %509

166:                                              ; preds = %153
  br label %167

167:                                              ; preds = %166
  br label %168

168:                                              ; preds = %167
  %169 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef %169, ptr noundef @.str.772, i32 noundef 1, i32 noundef 0, i32 noundef 13486)
  call void @llvm.lifetime.start.p0(i64 64, ptr %26) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %26, ptr align 16 @__const._ZN56Longtail_TestCacheBlockStoreGetExistingContent__TestCase8TestBodyEv.version_names, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  store i32 0, ptr %27, align 4, !tbaa !14
  br label %170

170:                                              ; preds = %209, %168
  %171 = load i32, ptr %27, align 4, !tbaa !14
  %172 = icmp ult i32 %171, 8
  br i1 %172, label %174, label %173

173:                                              ; preds = %170
  store i32 14, ptr %15, align 4
  br label %212

174:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 64, ptr %28) #7
  %175 = getelementptr inbounds [64 x i8], ptr %28, i64 0, i64 0
  %176 = load i32, ptr %27, align 4, !tbaa !14
  %177 = zext i32 %176 to i64
  %178 = getelementptr inbounds [8 x ptr], ptr %26, i64 0, i64 %177
  %179 = load ptr, ptr %178, align 8, !tbaa !5
  %180 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %175, ptr noundef @.str.775, ptr noundef %179) #7
  br label %181

181:                                              ; preds = %174
  %182 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %183 = getelementptr inbounds %struct.jc_test_fixture, ptr %182, i32 0, i32 11
  %184 = load i32, ptr %183, align 8
  %185 = and i32 %184, -16776961
  %186 = or i32 %185, 1741312
  store i32 %186, ptr %183, align 8
  %187 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %188 = getelementptr inbounds %struct.jc_test_fixture, ptr %187, i32 0, i32 4
  store ptr @.str.3, ptr %188, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #7
  store i32 0, ptr %29, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #7
  %189 = load ptr, ptr %3, align 8, !tbaa !5
  %190 = load ptr, ptr %5, align 8, !tbaa !5
  %191 = load ptr, ptr %6, align 8, !tbaa !5
  %192 = load ptr, ptr %7, align 8, !tbaa !5
  %193 = load ptr, ptr %9, align 8, !tbaa !5
  %194 = load i32, ptr %27, align 4, !tbaa !14
  %195 = zext i32 %194 to i64
  %196 = getelementptr inbounds [8 x ptr], ptr %26, i64 0, i64 %195
  %197 = load ptr, ptr %196, align 8, !tbaa !5
  %198 = getelementptr inbounds [64 x i8], ptr %28, i64 0, i64 0
  %199 = call noundef i32 @_ZL12UploadFolderP19Longtail_StorageAPIP16Longtail_HashAPIP19Longtail_ChunkerAPIP15Longtail_JobAPIP22Longtail_BlockStoreAPIPKcSA_jjj(ptr noundef %189, ptr noundef %190, ptr noundef %191, ptr noundef %192, ptr noundef %193, ptr noundef %197, ptr noundef %198, i32 noundef 8192, i32 noundef 26973, i32 noundef 11)
  store i32 %199, ptr %30, align 4, !tbaa !14
  %200 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef nonnull align 4 dereferenceable(4) %30, ptr noundef @.str.46, ptr noundef @.str.776, ptr noundef null)
  %201 = icmp eq i32 %200, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  br i1 %201, label %202, label %203

202:                                              ; preds = %181
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %15, align 4
  br label %206

203:                                              ; preds = %181
  br label %204

204:                                              ; preds = %203
  br label %205

205:                                              ; preds = %204
  store i32 0, ptr %15, align 4
  br label %206

206:                                              ; preds = %205, %202
  call void @llvm.lifetime.end.p0(i64 64, ptr %28) #7
  %207 = load i32, ptr %15, align 4
  switch i32 %207, label %212 [
    i32 0, label %208
  ]

208:                                              ; preds = %206
  br label %209

209:                                              ; preds = %208
  %210 = load i32, ptr %27, align 4, !tbaa !14
  %211 = add i32 %210, 1
  store i32 %211, ptr %27, align 4, !tbaa !14
  br label %170, !llvm.loop !15

212:                                              ; preds = %206, %173
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  %213 = load i32, ptr %15, align 4
  switch i32 %213, label %508 [
    i32 14, label %214
  ]

214:                                              ; preds = %212
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #7
  store i32 0, ptr %31, align 4, !tbaa !14
  br label %215

215:                                              ; preds = %448, %214
  %216 = load i32, ptr %31, align 4, !tbaa !14
  %217 = icmp ult i32 %216, 8
  br i1 %217, label %219, label %218

218:                                              ; preds = %215
  store i32 19, ptr %15, align 4
  br label %451

219:                                              ; preds = %215
  %220 = load ptr, ptr %12, align 8, !tbaa !5
  %221 = icmp ne ptr %220, null
  br i1 %221, label %222, label %225

222:                                              ; preds = %219
  %223 = load ptr, ptr %12, align 8, !tbaa !5
  %224 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %223, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %224)
  br label %225

225:                                              ; preds = %222, %219
  %226 = load ptr, ptr %11, align 8, !tbaa !5
  %227 = icmp ne ptr %226, null
  br i1 %227, label %228, label %231

228:                                              ; preds = %225
  %229 = load ptr, ptr %11, align 8, !tbaa !5
  %230 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %229, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %230)
  br label %231

231:                                              ; preds = %228, %225
  %232 = load ptr, ptr %9, align 8, !tbaa !5
  %233 = icmp ne ptr %232, null
  br i1 %233, label %234, label %237

234:                                              ; preds = %231
  %235 = load ptr, ptr %9, align 8, !tbaa !5
  %236 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %235, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %236)
  br label %237

237:                                              ; preds = %234, %231
  %238 = load ptr, ptr %8, align 8, !tbaa !5
  %239 = icmp ne ptr %238, null
  br i1 %239, label %240, label %243

240:                                              ; preds = %237
  %241 = load ptr, ptr %8, align 8, !tbaa !5
  %242 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %241, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %242)
  br label %243

243:                                              ; preds = %240, %237
  %244 = load ptr, ptr %7, align 8, !tbaa !5
  %245 = load ptr, ptr %3, align 8, !tbaa !5
  %246 = call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %244, ptr noundef %245, ptr noundef @.str.759, ptr noundef null, i32 noundef 0)
  store ptr %246, ptr %8, align 8, !tbaa !5
  %247 = load ptr, ptr %7, align 8, !tbaa !5
  %248 = load ptr, ptr %3, align 8, !tbaa !5
  %249 = call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %247, ptr noundef %248, ptr noundef @.str.760, ptr noundef null, i32 noundef 0)
  store ptr %249, ptr %9, align 8, !tbaa !5
  %250 = load ptr, ptr %9, align 8, !tbaa !5
  %251 = call noundef ptr @_Z21CaptureBlockStoreInitP17CaptureBlockStoreP22Longtail_BlockStoreAPI(ptr noundef %10, ptr noundef %250)
  store ptr %251, ptr %11, align 8, !tbaa !5
  %252 = load ptr, ptr %7, align 8, !tbaa !5
  %253 = load ptr, ptr %8, align 8, !tbaa !5
  %254 = load ptr, ptr %11, align 8, !tbaa !5
  %255 = call ptr @Longtail_CreateCacheBlockStoreAPI(ptr noundef %252, ptr noundef %253, ptr noundef %254)
  store ptr %255, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #7
  %256 = load i32, ptr %31, align 4, !tbaa !14
  store i32 %256, ptr %32, align 4, !tbaa !14
  br label %257

257:                                              ; preds = %441, %243
  %258 = load i32, ptr %32, align 4, !tbaa !14
  %259 = icmp ult i32 %258, 8
  br i1 %259, label %261, label %260

260:                                              ; preds = %257
  store i32 22, ptr %15, align 4
  br label %445

261:                                              ; preds = %257
  call void @llvm.lifetime.start.p0(i64 64, ptr %33) #7
  %262 = getelementptr inbounds [64 x i8], ptr %33, i64 0, i64 0
  %263 = load i32, ptr %32, align 4, !tbaa !14
  %264 = zext i32 %263 to i64
  %265 = getelementptr inbounds [8 x ptr], ptr %26, i64 0, i64 %264
  %266 = load ptr, ptr %265, align 8, !tbaa !5
  %267 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %262, ptr noundef @.str.775, ptr noundef %266) #7
  br label %268

268:                                              ; preds = %261
  %269 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %270 = getelementptr inbounds %struct.jc_test_fixture, ptr %269, i32 0, i32 11
  %271 = load i32, ptr %270, align 8
  %272 = and i32 %271, -16776961
  %273 = or i32 %272, 1746176
  store i32 %273, ptr %270, align 8
  %274 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %275 = getelementptr inbounds %struct.jc_test_fixture, ptr %274, i32 0, i32 4
  store ptr @.str.3, ptr %275, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #7
  store i32 0, ptr %34, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #7
  %276 = load ptr, ptr %3, align 8, !tbaa !5
  %277 = load ptr, ptr %5, align 8, !tbaa !5
  %278 = load ptr, ptr %6, align 8, !tbaa !5
  %279 = load ptr, ptr %7, align 8, !tbaa !5
  %280 = load ptr, ptr %12, align 8, !tbaa !5
  %281 = getelementptr inbounds [64 x i8], ptr %33, i64 0, i64 0
  %282 = call noundef i32 @_ZL14DownloadFolderP19Longtail_StorageAPIP16Longtail_HashAPIP19Longtail_ChunkerAPIP15Longtail_JobAPIP22Longtail_BlockStoreAPIPKcSA_jjj(ptr noundef %276, ptr noundef %277, ptr noundef %278, ptr noundef %279, ptr noundef %280, ptr noundef %281, ptr noundef @.str.681, i32 noundef 8192, i32 noundef 26973, i32 noundef 11)
  store i32 %282, ptr %35, align 4, !tbaa !14
  %283 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %34, ptr noundef nonnull align 4 dereferenceable(4) %35, ptr noundef @.str.46, ptr noundef @.str.777, ptr noundef null)
  %284 = icmp eq i32 %283, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  br i1 %284, label %285, label %286

285:                                              ; preds = %268
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %15, align 4
  br label %438

286:                                              ; preds = %268
  br label %287

287:                                              ; preds = %286
  br label %288

288:                                              ; preds = %287
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #7
  call void @_ZN22TestAsyncFlushCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28) %36)
  br label %289

289:                                              ; preds = %288
  %290 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %291 unwind label %312

291:                                              ; preds = %289
  %292 = getelementptr inbounds %struct.jc_test_fixture, ptr %290, i32 0, i32 11
  %293 = load i32, ptr %292, align 8
  %294 = and i32 %293, -16776961
  %295 = or i32 %294, 1747200
  store i32 %295, ptr %292, align 8
  %296 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %297 unwind label %312

297:                                              ; preds = %291
  %298 = getelementptr inbounds %struct.jc_test_fixture, ptr %296, i32 0, i32 4
  store ptr @.str.3, ptr %298, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %299 unwind label %312

299:                                              ; preds = %297
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #7
  store i32 0, ptr %39, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #7
  %300 = load ptr, ptr %12, align 8, !tbaa !5
  %301 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %300, i32 0, i32 7
  %302 = load ptr, ptr %301, align 8, !tbaa !17
  %303 = load ptr, ptr %12, align 8, !tbaa !5
  %304 = getelementptr inbounds %struct.TestAsyncFlushComplete, ptr %36, i32 0, i32 0
  %305 = invoke noundef i32 %302(ptr noundef %303, ptr noundef %304)
          to label %306 unwind label %316

306:                                              ; preds = %299
  store i32 %305, ptr %40, align 4, !tbaa !14
  %307 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %39, ptr noundef nonnull align 4 dereferenceable(4) %40, ptr noundef @.str.46, ptr noundef @.str.778, ptr noundef null)
          to label %308 unwind label %316

308:                                              ; preds = %306
  %309 = icmp eq i32 %307, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  br i1 %309, label %310, label %320

310:                                              ; preds = %308
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %311 unwind label %312

311:                                              ; preds = %310
  store i32 1, ptr %15, align 4
  br label %348

312:                                              ; preds = %339, %332, %326, %324, %322, %310, %297, %291, %289
  %313 = landingpad { ptr, i32 }
          cleanup
  %314 = extractvalue { ptr, i32 } %313, 0
  store ptr %314, ptr %37, align 8
  %315 = extractvalue { ptr, i32 } %313, 1
  store i32 %315, ptr %38, align 4
  br label %374

316:                                              ; preds = %306, %299
  %317 = landingpad { ptr, i32 }
          cleanup
  %318 = extractvalue { ptr, i32 } %317, 0
  store ptr %318, ptr %37, align 8
  %319 = extractvalue { ptr, i32 } %317, 1
  store i32 %319, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  br label %374

320:                                              ; preds = %308
  br label %321

321:                                              ; preds = %320
  br label %322

322:                                              ; preds = %321
  invoke void @_ZN22TestAsyncFlushComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28) %36)
          to label %323 unwind label %312

323:                                              ; preds = %322
  br label %324

324:                                              ; preds = %323
  %325 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %326 unwind label %312

326:                                              ; preds = %324
  %327 = getelementptr inbounds %struct.jc_test_fixture, ptr %325, i32 0, i32 11
  %328 = load i32, ptr %327, align 8
  %329 = and i32 %328, -16776961
  %330 = or i32 %329, 1747712
  store i32 %330, ptr %327, align 8
  %331 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %332 unwind label %312

332:                                              ; preds = %326
  %333 = getelementptr inbounds %struct.jc_test_fixture, ptr %331, i32 0, i32 4
  store ptr @.str.3, ptr %333, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %334 unwind label %312

334:                                              ; preds = %332
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #7
  store i32 0, ptr %41, align 4, !tbaa !14
  %335 = getelementptr inbounds %struct.TestAsyncFlushComplete, ptr %36, i32 0, i32 2
  %336 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %41, ptr noundef nonnull align 4 dereferenceable(4) %335, ptr noundef @.str.46, ptr noundef @.str.292, ptr noundef null)
          to label %337 unwind label %341

337:                                              ; preds = %334
  %338 = icmp eq i32 %336, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #7
  br i1 %338, label %339, label %345

339:                                              ; preds = %337
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %340 unwind label %312

340:                                              ; preds = %339
  store i32 1, ptr %15, align 4
  br label %348

341:                                              ; preds = %334
  %342 = landingpad { ptr, i32 }
          cleanup
  %343 = extractvalue { ptr, i32 } %342, 0
  store ptr %343, ptr %37, align 8
  %344 = extractvalue { ptr, i32 } %342, 1
  store i32 %344, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #7
  br label %374

345:                                              ; preds = %337
  br label %346

346:                                              ; preds = %345
  br label %347

347:                                              ; preds = %346
  store i32 0, ptr %15, align 4
  br label %348

348:                                              ; preds = %347, %340, %311
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #7
  %349 = load i32, ptr %15, align 4
  switch i32 %349, label %438 [
    i32 0, label %350
  ]

350:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #7
  call void @_ZN22TestAsyncFlushCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28) %42)
  br label %351

351:                                              ; preds = %350
  %352 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %353 unwind label %375

353:                                              ; preds = %351
  %354 = getelementptr inbounds %struct.jc_test_fixture, ptr %352, i32 0, i32 11
  %355 = load i32, ptr %354, align 8
  %356 = and i32 %355, -16776961
  %357 = or i32 %356, 1748736
  store i32 %357, ptr %354, align 8
  %358 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %359 unwind label %375

359:                                              ; preds = %353
  %360 = getelementptr inbounds %struct.jc_test_fixture, ptr %358, i32 0, i32 4
  store ptr @.str.3, ptr %360, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %361 unwind label %375

361:                                              ; preds = %359
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #7
  store i32 0, ptr %43, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #7
  %362 = load ptr, ptr %8, align 8, !tbaa !5
  %363 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %362, i32 0, i32 7
  %364 = load ptr, ptr %363, align 8, !tbaa !17
  %365 = load ptr, ptr %8, align 8, !tbaa !5
  %366 = getelementptr inbounds %struct.TestAsyncFlushComplete, ptr %42, i32 0, i32 0
  %367 = invoke noundef i32 %364(ptr noundef %365, ptr noundef %366)
          to label %368 unwind label %379

368:                                              ; preds = %361
  store i32 %367, ptr %44, align 4, !tbaa !14
  %369 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %43, ptr noundef nonnull align 4 dereferenceable(4) %44, ptr noundef @.str.46, ptr noundef @.str.779, ptr noundef null)
          to label %370 unwind label %379

370:                                              ; preds = %368
  %371 = icmp eq i32 %369, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  br i1 %371, label %372, label %383

372:                                              ; preds = %370
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %373 unwind label %375

373:                                              ; preds = %372
  store i32 1, ptr %15, align 4
  br label %411

374:                                              ; preds = %341, %316, %312
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #7
  br label %444

375:                                              ; preds = %402, %395, %389, %387, %385, %372, %359, %353, %351
  %376 = landingpad { ptr, i32 }
          cleanup
  %377 = extractvalue { ptr, i32 } %376, 0
  store ptr %377, ptr %37, align 8
  %378 = extractvalue { ptr, i32 } %376, 1
  store i32 %378, ptr %38, align 4
  br label %434

379:                                              ; preds = %368, %361
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %37, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  br label %434

383:                                              ; preds = %370
  br label %384

384:                                              ; preds = %383
  br label %385

385:                                              ; preds = %384
  invoke void @_ZN22TestAsyncFlushComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28) %42)
          to label %386 unwind label %375

386:                                              ; preds = %385
  br label %387

387:                                              ; preds = %386
  %388 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %389 unwind label %375

389:                                              ; preds = %387
  %390 = getelementptr inbounds %struct.jc_test_fixture, ptr %388, i32 0, i32 11
  %391 = load i32, ptr %390, align 8
  %392 = and i32 %391, -16776961
  %393 = or i32 %392, 1749248
  store i32 %393, ptr %390, align 8
  %394 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %395 unwind label %375

395:                                              ; preds = %389
  %396 = getelementptr inbounds %struct.jc_test_fixture, ptr %394, i32 0, i32 4
  store ptr @.str.3, ptr %396, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %397 unwind label %375

397:                                              ; preds = %395
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #7
  store i32 0, ptr %45, align 4, !tbaa !14
  %398 = getelementptr inbounds %struct.TestAsyncFlushComplete, ptr %42, i32 0, i32 2
  %399 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %45, ptr noundef nonnull align 4 dereferenceable(4) %398, ptr noundef @.str.46, ptr noundef @.str.292, ptr noundef null)
          to label %400 unwind label %404

400:                                              ; preds = %397
  %401 = icmp eq i32 %399, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  br i1 %401, label %402, label %408

402:                                              ; preds = %400
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %403 unwind label %375

403:                                              ; preds = %402
  store i32 1, ptr %15, align 4
  br label %411

404:                                              ; preds = %397
  %405 = landingpad { ptr, i32 }
          cleanup
  %406 = extractvalue { ptr, i32 } %405, 0
  store ptr %406, ptr %37, align 8
  %407 = extractvalue { ptr, i32 } %405, 1
  store i32 %407, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  br label %434

408:                                              ; preds = %400
  br label %409

409:                                              ; preds = %408
  br label %410

410:                                              ; preds = %409
  store i32 0, ptr %15, align 4
  br label %411

411:                                              ; preds = %410, %403, %373
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #7
  %412 = load i32, ptr %15, align 4
  switch i32 %412, label %438 [
    i32 0, label %413
  ]

413:                                              ; preds = %411
  br label %414

414:                                              ; preds = %413
  %415 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %416 = getelementptr inbounds %struct.jc_test_fixture, ptr %415, i32 0, i32 11
  %417 = load i32, ptr %416, align 8
  %418 = and i32 %417, -16776961
  %419 = or i32 %418, 1750272
  store i32 %419, ptr %416, align 8
  %420 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %421 = getelementptr inbounds %struct.jc_test_fixture, ptr %420, i32 0, i32 4
  store ptr @.str.3, ptr %421, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #7
  store i32 0, ptr %46, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #7
  %422 = load ptr, ptr %3, align 8, !tbaa !5
  %423 = load ptr, ptr %5, align 8, !tbaa !5
  %424 = load ptr, ptr %6, align 8, !tbaa !5
  %425 = load ptr, ptr %7, align 8, !tbaa !5
  %426 = load i32, ptr %32, align 4, !tbaa !14
  %427 = zext i32 %426 to i64
  %428 = getelementptr inbounds [8 x ptr], ptr %26, i64 0, i64 %427
  %429 = load ptr, ptr %428, align 8, !tbaa !5
  %430 = call noundef i32 @_ZL15ValidateVersionP19Longtail_StorageAPIP16Longtail_HashAPIP19Longtail_ChunkerAPIP15Longtail_JobAPIPKcS8_j(ptr noundef %422, ptr noundef %423, ptr noundef %424, ptr noundef %425, ptr noundef %429, ptr noundef @.str.681, i32 noundef 8192)
  store i32 %430, ptr %47, align 4, !tbaa !14
  %431 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %46, ptr noundef nonnull align 4 dereferenceable(4) %47, ptr noundef @.str.46, ptr noundef @.str.780, ptr noundef null)
  %432 = icmp eq i32 %431, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  br i1 %432, label %433, label %435

433:                                              ; preds = %414
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %15, align 4
  br label %438

434:                                              ; preds = %404, %379, %375
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #7
  br label %444

435:                                              ; preds = %414
  br label %436

436:                                              ; preds = %435
  br label %437

437:                                              ; preds = %436
  store i32 0, ptr %15, align 4
  br label %438

438:                                              ; preds = %437, %433, %411, %348, %285
  call void @llvm.lifetime.end.p0(i64 64, ptr %33) #7
  %439 = load i32, ptr %15, align 4
  switch i32 %439, label %445 [
    i32 0, label %440
  ]

440:                                              ; preds = %438
  br label %441

441:                                              ; preds = %440
  %442 = load i32, ptr %32, align 4, !tbaa !14
  %443 = add i32 %442, 1
  store i32 %443, ptr %32, align 4, !tbaa !14
  br label %257, !llvm.loop !20

444:                                              ; preds = %434, %374
  call void @llvm.lifetime.end.p0(i64 64, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #7
  br label %512

445:                                              ; preds = %438, %260
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  %446 = load i32, ptr %15, align 4
  switch i32 %446, label %451 [
    i32 22, label %447
  ]

447:                                              ; preds = %445
  br label %448

448:                                              ; preds = %447
  %449 = load i32, ptr %31, align 4, !tbaa !14
  %450 = add i32 %449, 1
  store i32 %450, ptr %31, align 4, !tbaa !14
  br label %215, !llvm.loop !21

451:                                              ; preds = %445, %218
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  %452 = load i32, ptr %15, align 4
  switch i32 %452, label %508 [
    i32 19, label %453
  ]

453:                                              ; preds = %451
  %454 = load ptr, ptr %12, align 8, !tbaa !5
  %455 = icmp ne ptr %454, null
  br i1 %455, label %456, label %459

456:                                              ; preds = %453
  %457 = load ptr, ptr %12, align 8, !tbaa !5
  %458 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %457, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %458)
  br label %459

459:                                              ; preds = %456, %453
  %460 = load ptr, ptr %11, align 8, !tbaa !5
  %461 = icmp ne ptr %460, null
  br i1 %461, label %462, label %465

462:                                              ; preds = %459
  %463 = load ptr, ptr %11, align 8, !tbaa !5
  %464 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %463, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %464)
  br label %465

465:                                              ; preds = %462, %459
  %466 = load ptr, ptr %9, align 8, !tbaa !5
  %467 = icmp ne ptr %466, null
  br i1 %467, label %468, label %471

468:                                              ; preds = %465
  %469 = load ptr, ptr %9, align 8, !tbaa !5
  %470 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %469, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %470)
  br label %471

471:                                              ; preds = %468, %465
  %472 = load ptr, ptr %8, align 8, !tbaa !5
  %473 = icmp ne ptr %472, null
  br i1 %473, label %474, label %477

474:                                              ; preds = %471
  %475 = load ptr, ptr %8, align 8, !tbaa !5
  %476 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %475, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %476)
  br label %477

477:                                              ; preds = %474, %471
  %478 = load ptr, ptr %7, align 8, !tbaa !5
  %479 = icmp ne ptr %478, null
  br i1 %479, label %480, label %483

480:                                              ; preds = %477
  %481 = load ptr, ptr %7, align 8, !tbaa !5
  %482 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %481, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %482)
  br label %483

483:                                              ; preds = %480, %477
  %484 = load ptr, ptr %6, align 8, !tbaa !5
  %485 = icmp ne ptr %484, null
  br i1 %485, label %486, label %489

486:                                              ; preds = %483
  %487 = load ptr, ptr %6, align 8, !tbaa !5
  %488 = getelementptr inbounds %struct.Longtail_ChunkerAPI, ptr %487, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %488)
  br label %489

489:                                              ; preds = %486, %483
  %490 = load ptr, ptr %5, align 8, !tbaa !5
  %491 = icmp ne ptr %490, null
  br i1 %491, label %492, label %495

492:                                              ; preds = %489
  %493 = load ptr, ptr %5, align 8, !tbaa !5
  %494 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %493, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %494)
  br label %495

495:                                              ; preds = %492, %489
  %496 = load ptr, ptr %4, align 8, !tbaa !5
  %497 = icmp ne ptr %496, null
  br i1 %497, label %498, label %501

498:                                              ; preds = %495
  %499 = load ptr, ptr %4, align 8, !tbaa !5
  %500 = getelementptr inbounds %struct.Longtail_CompressionRegistryAPI, ptr %499, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %500)
  br label %501

501:                                              ; preds = %498, %495
  %502 = load ptr, ptr %3, align 8, !tbaa !5
  %503 = icmp ne ptr %502, null
  br i1 %503, label %504, label %507

504:                                              ; preds = %501
  %505 = load ptr, ptr %3, align 8, !tbaa !5
  %506 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %505, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %506)
  br label %507

507:                                              ; preds = %504, %501
  store i32 0, ptr %15, align 4
  br label %508

508:                                              ; preds = %507, %451, %212
  call void @llvm.lifetime.end.p0(i64 64, ptr %26) #7
  br label %509

509:                                              ; preds = %508, %165, %149, %132, %113, %96, %79
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #7
  %510 = load i32, ptr %15, align 4
  switch i32 %510, label %517 [
    i32 0, label %511
    i32 1, label %511
  ]

511:                                              ; preds = %509, %509
  ret void

512:                                              ; preds = %444
  %513 = load ptr, ptr %37, align 8
  %514 = load i32, ptr %38, align 4
  %515 = insertvalue { ptr, i32 } poison, ptr %513, 0
  %516 = insertvalue { ptr, i32 } %515, i32 %514, 1
  resume { ptr, i32 } %516

517:                                              ; preds = %509
  unreachable
}

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZL7CopyDirP19Longtail_StorageAPIPKcS2_(ptr noundef, ptr noundef, ptr noundef) #3

; Function Attrs: nounwind
declare i32 @sprintf(ptr noundef, ptr noundef, ...) #6

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZL12UploadFolderP19Longtail_StorageAPIP16Longtail_HashAPIP19Longtail_ChunkerAPIP15Longtail_JobAPIP22Longtail_BlockStoreAPIPKcSA_jjj(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) #3

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZL14DownloadFolderP19Longtail_StorageAPIP16Longtail_HashAPIP19Longtail_ChunkerAPIP15Longtail_JobAPIP22Longtail_BlockStoreAPIPKcSA_jjj(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) #3

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZL15ValidateVersionP19Longtail_StorageAPIP16Longtail_HashAPIP19Longtail_ChunkerAPIP15Longtail_JobAPIPKcS8_j(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) #3

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #5 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 32}
!10 = !{!"_ZTS15jc_test_fixture", !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !11, i64 64, !12, i64 88, !12, i64 91, !12, i64 91, !12, i64 91, !12, i64 91, !12, i64 92, !12, i64 96, !12, i64 97, !12, i64 99, !12, i64 100}
!11 = !{!"_ZTS13jc_test_stats", !12, i64 0, !12, i64 4, !12, i64 6, !12, i64 8, !12, i64 12, !13, i64 16}
!12 = !{!"int", !7, i64 0}
!13 = !{!"long", !7, i64 0}
!14 = !{!12, !12, i64 0}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = !{!18, !6, i64 56}
!18 = !{!"_ZTS22Longtail_BlockStoreAPI", !19, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56}
!19 = !{!"_ZTS12Longtail_API", !6, i64 0}
!20 = distinct !{!20, !16}
!21 = distinct !{!21, !16}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.CaptureBlockStore = type { %struct.Longtail_BlockStoreAPI, ptr, ptr, ptr }
%struct.Longtail_BlockStoreAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_API = type { ptr }
%struct.TestAsyncFlushComplete = type <{ %struct.Longtail_AsyncFlushAPI, ptr, i32, [4 x i8] }>
%struct.Longtail_AsyncFlushAPI = type { %struct.Longtail_API, ptr }

@.str.3 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.681 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.759 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.760 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.761 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.762 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.763 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.764 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.765 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.766 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.767 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.768 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.769 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.770 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.771 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.772 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.773 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.774 = external hidden unnamed_addr constant [45 x i8], align 1
@__const._ZN56Longtail_TestCacheBlockStoreGetExistingContent__TestCase8TestBodyEv.version_names = external hidden unnamed_addr constant [8 x ptr], align 16
@.str.775 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.776 = external hidden unnamed_addr constant [167 x i8], align 1
@.str.777 = external hidden unnamed_addr constant [161 x i8], align 1
@.str.778 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.779 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.780 = external hidden unnamed_addr constant [109 x i8], align 1

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef ptr @_ZL19jc_test_get_fixturev() local_unnamed_addr #1

declare void @_Z28jc_test_increment_assertionsv() local_unnamed_addr #2

declare void @_Z21jc_test_set_test_faili(i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3 align 2

declare void @Longtail_DisposeAPI(ptr noundef) local_unnamed_addr #2

declare ptr @Longtail_CreateBlake3HashAPI() local_unnamed_addr #2

declare ptr @Longtail_CreateHPCDCChunkerAPI() local_unnamed_addr #2

declare ptr @Longtail_CreateBikeshedJobAPI(i32 noundef, i32 noundef) local_unnamed_addr #2

declare ptr @Longtail_CreateInMemStorageAPI() local_unnamed_addr #2

declare ptr @Longtail_CreateFullCompressionRegistry() local_unnamed_addr #2

declare ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN22TestAsyncFlushCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN22TestAsyncFlushComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28)) unnamed_addr #4 align 2

declare ptr @Longtail_CreateCacheBlockStoreAPI(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_Z21CaptureBlockStoreInitP17CaptureBlockStoreP22Longtail_BlockStoreAPI(ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN56Longtail_TestCacheBlockStoreGetExistingContent__TestCase8TestBodyEv(ptr nocapture noundef nonnull readnone align 8 dereferenceable(8) %0) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %struct.CaptureBlockStore, align 8
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca [64 x i8], align 16
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca [64 x i8], align 16
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca %struct.TestAsyncFlushComplete, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca %struct.TestAsyncFlushComplete, align 8
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = tail call ptr @Longtail_CreateInMemStorageAPI()
  %32 = tail call ptr @Longtail_CreateFullCompressionRegistry()
  %33 = tail call ptr @Longtail_CreateBlake3HashAPI()
  %34 = tail call ptr @Longtail_CreateHPCDCChunkerAPI()
  %35 = tail call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 0, i32 noundef 0)
  %36 = tail call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %35, ptr noundef %31, ptr noundef nonnull @.str.759, ptr noundef null, i32 noundef 0)
  %37 = tail call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %35, ptr noundef %31, ptr noundef nonnull @.str.760, ptr noundef null, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %2) #6
  %38 = call noundef ptr @_Z21CaptureBlockStoreInitP17CaptureBlockStoreP22Longtail_BlockStoreAPI(ptr noundef nonnull %2, ptr noundef %37)
  %39 = call ptr @Longtail_CreateCacheBlockStoreAPI(ptr noundef %35, ptr noundef %36, ptr noundef %38)
  call void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef %31, ptr noundef nonnull @.str.761, i32 noundef 3, i32 noundef 0, i32 noundef 13486)
  %40 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %41 = getelementptr inbounds i8, ptr %40, i64 96
  %42 = load i32, ptr %41, align 8
  %43 = and i32 %42, -16776961
  %44 = or disjoint i32 %43, 1736192
  store i32 %44, ptr %41, align 8
  %45 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %46 = getelementptr inbounds i8, ptr %45, i64 32
  store ptr @.str.3, ptr %46, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #6
  store i32 0, ptr %3, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #6
  %47 = call noundef i32 @_ZL7CopyDirP19Longtail_StorageAPIPKcS2_(ptr noundef %31, ptr noundef nonnull @.str.761, ptr noundef nonnull @.str.762)
  store i32 %47, ptr %4, align 4, !tbaa !13
  %48 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.763, ptr noundef null)
  %49 = icmp eq i32 %48, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #6
  br i1 %49, label %50, label %51

50:                                               ; preds = %1
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %335

51:                                               ; preds = %1
  call void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef %31, ptr noundef nonnull @.str.762, i32 noundef 1, i32 noundef 0, i32 noundef 13486)
  %52 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %53 = getelementptr inbounds i8, ptr %52, i64 96
  %54 = load i32, ptr %53, align 8
  %55 = and i32 %54, -16776961
  %56 = or disjoint i32 %55, 1736704
  store i32 %56, ptr %53, align 8
  %57 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %58 = getelementptr inbounds i8, ptr %57, i64 32
  store ptr @.str.3, ptr %58, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #6
  store i32 0, ptr %5, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #6
  %59 = call noundef i32 @_ZL7CopyDirP19Longtail_StorageAPIPKcS2_(ptr noundef %31, ptr noundef nonnull @.str.762, ptr noundef nonnull @.str.764)
  store i32 %59, ptr %6, align 4, !tbaa !13
  %60 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %5, ptr noundef nonnull align 4 dereferenceable(4) %6, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.765, ptr noundef null)
  %61 = icmp eq i32 %60, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #6
  br i1 %61, label %62, label %63

62:                                               ; preds = %51
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %335

63:                                               ; preds = %51
  call void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef %31, ptr noundef nonnull @.str.764, i32 noundef 1, i32 noundef 0, i32 noundef 13486)
  %64 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %65 = getelementptr inbounds i8, ptr %64, i64 96
  %66 = load i32, ptr %65, align 8
  %67 = and i32 %66, -16776961
  %68 = or disjoint i32 %67, 1737216
  store i32 %68, ptr %65, align 8
  %69 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %70 = getelementptr inbounds i8, ptr %69, i64 32
  store ptr @.str.3, ptr %70, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #6
  store i32 0, ptr %7, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #6
  %71 = call noundef i32 @_ZL7CopyDirP19Longtail_StorageAPIPKcS2_(ptr noundef %31, ptr noundef nonnull @.str.764, ptr noundef nonnull @.str.766)
  store i32 %71, ptr %8, align 4, !tbaa !13
  %72 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %7, ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.767, ptr noundef null)
  %73 = icmp eq i32 %72, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  br i1 %73, label %74, label %75

74:                                               ; preds = %63
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %335

75:                                               ; preds = %63
  call void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef %31, ptr noundef nonnull @.str.766, i32 noundef 1, i32 noundef 0, i32 noundef 13486)
  call void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef %31, ptr noundef nonnull @.str.768, i32 noundef 1, i32 noundef 0, i32 noundef 13486)
  call void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef %31, ptr noundef nonnull @.str.769, i32 noundef 1, i32 noundef 0, i32 noundef 13486)
  %76 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %77 = getelementptr inbounds i8, ptr %76, i64 96
  %78 = load i32, ptr %77, align 8
  %79 = and i32 %78, -16776961
  %80 = or disjoint i32 %79, 1738240
  store i32 %80, ptr %77, align 8
  %81 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %82 = getelementptr inbounds i8, ptr %81, i64 32
  store ptr @.str.3, ptr %82, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #6
  store i32 0, ptr %9, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #6
  %83 = call noundef i32 @_ZL7CopyDirP19Longtail_StorageAPIPKcS2_(ptr noundef %31, ptr noundef nonnull @.str.769, ptr noundef nonnull @.str.770)
  store i32 %83, ptr %10, align 4, !tbaa !13
  %84 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.771, ptr noundef null)
  %85 = icmp eq i32 %84, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #6
  br i1 %85, label %86, label %87

86:                                               ; preds = %75
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %335

87:                                               ; preds = %75
  call void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef %31, ptr noundef nonnull @.str.770, i32 noundef 1, i32 noundef 0, i32 noundef 13486)
  %88 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %89 = getelementptr inbounds i8, ptr %88, i64 96
  %90 = load i32, ptr %89, align 8
  %91 = and i32 %90, -16776961
  %92 = or disjoint i32 %91, 1738752
  store i32 %92, ptr %89, align 8
  %93 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %94 = getelementptr inbounds i8, ptr %93, i64 32
  store ptr @.str.3, ptr %94, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #6
  store i32 0, ptr %11, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #6
  %95 = call noundef i32 @_ZL7CopyDirP19Longtail_StorageAPIPKcS2_(ptr noundef %31, ptr noundef nonnull @.str.766, ptr noundef nonnull @.str.772)
  store i32 %95, ptr %12, align 4, !tbaa !13
  %96 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.773, ptr noundef null)
  %97 = icmp eq i32 %96, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  br i1 %97, label %98, label %99

98:                                               ; preds = %87
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %335

99:                                               ; preds = %87
  %100 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %101 = getelementptr inbounds i8, ptr %100, i64 96
  %102 = load i32, ptr %101, align 8
  %103 = and i32 %102, -16776961
  %104 = or disjoint i32 %103, 1739008
  store i32 %104, ptr %101, align 8
  %105 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %106 = getelementptr inbounds i8, ptr %105, i64 32
  store ptr @.str.3, ptr %106, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #6
  store i32 0, ptr %13, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #6
  %107 = call noundef i32 @_ZL7CopyDirP19Longtail_StorageAPIPKcS2_(ptr noundef %31, ptr noundef nonnull @.str.768, ptr noundef nonnull @.str.772)
  store i32 %107, ptr %14, align 4, !tbaa !13
  %108 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.774, ptr noundef null)
  %109 = icmp eq i32 %108, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #6
  br i1 %109, label %110, label %111

110:                                              ; preds = %99
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %335

111:                                              ; preds = %99
  call void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef %31, ptr noundef nonnull @.str.772, i32 noundef 1, i32 noundef 0, i32 noundef 13486)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %15) #6
  %112 = load ptr, ptr @__const._ZN56Longtail_TestCacheBlockStoreGetExistingContent__TestCase8TestBodyEv.version_names, align 16, !tbaa !14
  %113 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %15, ptr noundef nonnull dereferenceable(1) @.str.775, ptr noundef %112) #6
  %114 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %115 = getelementptr inbounds i8, ptr %114, i64 96
  %116 = load i32, ptr %115, align 8
  %117 = and i32 %116, -16776961
  %118 = or disjoint i32 %117, 1741312
  store i32 %118, ptr %115, align 8
  %119 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %120 = getelementptr inbounds i8, ptr %119, i64 32
  store ptr @.str.3, ptr %120, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #6
  store i32 0, ptr %16, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #6
  %121 = call noundef i32 @_ZL12UploadFolderP19Longtail_StorageAPIP16Longtail_HashAPIP19Longtail_ChunkerAPIP15Longtail_JobAPIP22Longtail_BlockStoreAPIPKcSA_jjj(ptr noundef %31, ptr noundef %33, ptr noundef %34, ptr noundef %35, ptr noundef %37, ptr noundef %112, ptr noundef nonnull %15, i32 noundef 8192, i32 noundef 26973, i32 noundef 11)
  store i32 %121, ptr %17, align 4, !tbaa !13
  %122 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.776, ptr noundef null)
  %.not = icmp eq i32 %122, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  br i1 %.not, label %123, label %.critedge

123:                                              ; preds = %.critedge.6, %.critedge.5, %.critedge.4, %.critedge.3, %.critedge.2, %.critedge.1, %.critedge, %111
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #6
  br label %335

.critedge:                                        ; preds = %111
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %15) #6
  %124 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN56Longtail_TestCacheBlockStoreGetExistingContent__TestCase8TestBodyEv.version_names, i64 8), align 8, !tbaa !14
  %125 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %15, ptr noundef nonnull dereferenceable(1) @.str.775, ptr noundef %124) #6
  %126 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %127 = getelementptr inbounds i8, ptr %126, i64 96
  %128 = load i32, ptr %127, align 8
  %129 = and i32 %128, -16776961
  %130 = or disjoint i32 %129, 1741312
  store i32 %130, ptr %127, align 8
  %131 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %132 = getelementptr inbounds i8, ptr %131, i64 32
  store ptr @.str.3, ptr %132, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #6
  store i32 0, ptr %16, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #6
  %133 = call noundef i32 @_ZL12UploadFolderP19Longtail_StorageAPIP16Longtail_HashAPIP19Longtail_ChunkerAPIP15Longtail_JobAPIP22Longtail_BlockStoreAPIPKcSA_jjj(ptr noundef %31, ptr noundef %33, ptr noundef %34, ptr noundef %35, ptr noundef %37, ptr noundef %124, ptr noundef nonnull %15, i32 noundef 8192, i32 noundef 26973, i32 noundef 11)
  store i32 %133, ptr %17, align 4, !tbaa !13
  %134 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.776, ptr noundef null)
  %.not.1 = icmp eq i32 %134, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  br i1 %.not.1, label %123, label %.critedge.1

.critedge.1:                                      ; preds = %.critedge
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %15) #6
  %135 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN56Longtail_TestCacheBlockStoreGetExistingContent__TestCase8TestBodyEv.version_names, i64 16), align 16, !tbaa !14
  %136 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %15, ptr noundef nonnull dereferenceable(1) @.str.775, ptr noundef %135) #6
  %137 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %138 = getelementptr inbounds i8, ptr %137, i64 96
  %139 = load i32, ptr %138, align 8
  %140 = and i32 %139, -16776961
  %141 = or disjoint i32 %140, 1741312
  store i32 %141, ptr %138, align 8
  %142 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %143 = getelementptr inbounds i8, ptr %142, i64 32
  store ptr @.str.3, ptr %143, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #6
  store i32 0, ptr %16, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #6
  %144 = call noundef i32 @_ZL12UploadFolderP19Longtail_StorageAPIP16Longtail_HashAPIP19Longtail_ChunkerAPIP15Longtail_JobAPIP22Longtail_BlockStoreAPIPKcSA_jjj(ptr noundef %31, ptr noundef %33, ptr noundef %34, ptr noundef %35, ptr noundef %37, ptr noundef %135, ptr noundef nonnull %15, i32 noundef 8192, i32 noundef 26973, i32 noundef 11)
  store i32 %144, ptr %17, align 4, !tbaa !13
  %145 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.776, ptr noundef null)
  %.not.2 = icmp eq i32 %145, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  br i1 %.not.2, label %123, label %.critedge.2

.critedge.2:                                      ; preds = %.critedge.1
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %15) #6
  %146 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN56Longtail_TestCacheBlockStoreGetExistingContent__TestCase8TestBodyEv.version_names, i64 24), align 8, !tbaa !14
  %147 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %15, ptr noundef nonnull dereferenceable(1) @.str.775, ptr noundef %146) #6
  %148 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %149 = getelementptr inbounds i8, ptr %148, i64 96
  %150 = load i32, ptr %149, align 8
  %151 = and i32 %150, -16776961
  %152 = or disjoint i32 %151, 1741312
  store i32 %152, ptr %149, align 8
  %153 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %154 = getelementptr inbounds i8, ptr %153, i64 32
  store ptr @.str.3, ptr %154, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #6
  store i32 0, ptr %16, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #6
  %155 = call noundef i32 @_ZL12UploadFolderP19Longtail_StorageAPIP16Longtail_HashAPIP19Longtail_ChunkerAPIP15Longtail_JobAPIP22Longtail_BlockStoreAPIPKcSA_jjj(ptr noundef %31, ptr noundef %33, ptr noundef %34, ptr noundef %35, ptr noundef %37, ptr noundef %146, ptr noundef nonnull %15, i32 noundef 8192, i32 noundef 26973, i32 noundef 11)
  store i32 %155, ptr %17, align 4, !tbaa !13
  %156 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.776, ptr noundef null)
  %.not.3 = icmp eq i32 %156, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  br i1 %.not.3, label %123, label %.critedge.3

.critedge.3:                                      ; preds = %.critedge.2
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %15) #6
  %157 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN56Longtail_TestCacheBlockStoreGetExistingContent__TestCase8TestBodyEv.version_names, i64 32), align 16, !tbaa !14
  %158 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %15, ptr noundef nonnull dereferenceable(1) @.str.775, ptr noundef %157) #6
  %159 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %160 = getelementptr inbounds i8, ptr %159, i64 96
  %161 = load i32, ptr %160, align 8
  %162 = and i32 %161, -16776961
  %163 = or disjoint i32 %162, 1741312
  store i32 %163, ptr %160, align 8
  %164 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %165 = getelementptr inbounds i8, ptr %164, i64 32
  store ptr @.str.3, ptr %165, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #6
  store i32 0, ptr %16, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #6
  %166 = call noundef i32 @_ZL12UploadFolderP19Longtail_StorageAPIP16Longtail_HashAPIP19Longtail_ChunkerAPIP15Longtail_JobAPIP22Longtail_BlockStoreAPIPKcSA_jjj(ptr noundef %31, ptr noundef %33, ptr noundef %34, ptr noundef %35, ptr noundef %37, ptr noundef %157, ptr noundef nonnull %15, i32 noundef 8192, i32 noundef 26973, i32 noundef 11)
  store i32 %166, ptr %17, align 4, !tbaa !13
  %167 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.776, ptr noundef null)
  %.not.4 = icmp eq i32 %167, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  br i1 %.not.4, label %123, label %.critedge.4

.critedge.4:                                      ; preds = %.critedge.3
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %15) #6
  %168 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN56Longtail_TestCacheBlockStoreGetExistingContent__TestCase8TestBodyEv.version_names, i64 40), align 8, !tbaa !14
  %169 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %15, ptr noundef nonnull dereferenceable(1) @.str.775, ptr noundef %168) #6
  %170 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %171 = getelementptr inbounds i8, ptr %170, i64 96
  %172 = load i32, ptr %171, align 8
  %173 = and i32 %172, -16776961
  %174 = or disjoint i32 %173, 1741312
  store i32 %174, ptr %171, align 8
  %175 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %176 = getelementptr inbounds i8, ptr %175, i64 32
  store ptr @.str.3, ptr %176, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #6
  store i32 0, ptr %16, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #6
  %177 = call noundef i32 @_ZL12UploadFolderP19Longtail_StorageAPIP16Longtail_HashAPIP19Longtail_ChunkerAPIP15Longtail_JobAPIP22Longtail_BlockStoreAPIPKcSA_jjj(ptr noundef %31, ptr noundef %33, ptr noundef %34, ptr noundef %35, ptr noundef %37, ptr noundef %168, ptr noundef nonnull %15, i32 noundef 8192, i32 noundef 26973, i32 noundef 11)
  store i32 %177, ptr %17, align 4, !tbaa !13
  %178 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.776, ptr noundef null)
  %.not.5 = icmp eq i32 %178, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  br i1 %.not.5, label %123, label %.critedge.5

.critedge.5:                                      ; preds = %.critedge.4
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %15) #6
  %179 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN56Longtail_TestCacheBlockStoreGetExistingContent__TestCase8TestBodyEv.version_names, i64 48), align 16, !tbaa !14
  %180 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %15, ptr noundef nonnull dereferenceable(1) @.str.775, ptr noundef %179) #6
  %181 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %182 = getelementptr inbounds i8, ptr %181, i64 96
  %183 = load i32, ptr %182, align 8
  %184 = and i32 %183, -16776961
  %185 = or disjoint i32 %184, 1741312
  store i32 %185, ptr %182, align 8
  %186 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %187 = getelementptr inbounds i8, ptr %186, i64 32
  store ptr @.str.3, ptr %187, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #6
  store i32 0, ptr %16, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #6
  %188 = call noundef i32 @_ZL12UploadFolderP19Longtail_StorageAPIP16Longtail_HashAPIP19Longtail_ChunkerAPIP15Longtail_JobAPIP22Longtail_BlockStoreAPIPKcSA_jjj(ptr noundef %31, ptr noundef %33, ptr noundef %34, ptr noundef %35, ptr noundef %37, ptr noundef %179, ptr noundef nonnull %15, i32 noundef 8192, i32 noundef 26973, i32 noundef 11)
  store i32 %188, ptr %17, align 4, !tbaa !13
  %189 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.776, ptr noundef null)
  %.not.6 = icmp eq i32 %189, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  br i1 %.not.6, label %123, label %.critedge.6

.critedge.6:                                      ; preds = %.critedge.5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %15) #6
  %190 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN56Longtail_TestCacheBlockStoreGetExistingContent__TestCase8TestBodyEv.version_names, i64 56), align 8, !tbaa !14
  %191 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %15, ptr noundef nonnull dereferenceable(1) @.str.775, ptr noundef %190) #6
  %192 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %193 = getelementptr inbounds i8, ptr %192, i64 96
  %194 = load i32, ptr %193, align 8
  %195 = and i32 %194, -16776961
  %196 = or disjoint i32 %195, 1741312
  store i32 %196, ptr %193, align 8
  %197 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %198 = getelementptr inbounds i8, ptr %197, i64 32
  store ptr @.str.3, ptr %198, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #6
  store i32 0, ptr %16, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #6
  %199 = call noundef i32 @_ZL12UploadFolderP19Longtail_StorageAPIP16Longtail_HashAPIP19Longtail_ChunkerAPIP15Longtail_JobAPIP22Longtail_BlockStoreAPIPKcSA_jjj(ptr noundef %31, ptr noundef %33, ptr noundef %34, ptr noundef %35, ptr noundef %37, ptr noundef %190, ptr noundef nonnull %15, i32 noundef 8192, i32 noundef 26973, i32 noundef 11)
  store i32 %199, ptr %17, align 4, !tbaa !13
  %200 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.776, ptr noundef null)
  %.not.7 = icmp eq i32 %200, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  br i1 %.not.7, label %123, label %.critedge.7

.critedge.7:                                      ; preds = %.critedge.6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #6
  %201 = getelementptr inbounds i8, ptr %21, i64 24
  %202 = getelementptr inbounds i8, ptr %25, i64 24
  br label %203

203:                                              ; preds = %.critedge.7, %.critedge148
  %indvars.iv = phi i64 [ 0, %.critedge.7 ], [ %indvars.iv.next, %.critedge148 ]
  %.0109262 = phi ptr [ %39, %.critedge.7 ], [ %214, %.critedge148 ]
  %.0111261 = phi ptr [ %38, %.critedge.7 ], [ %213, %.critedge148 ]
  %.0113260 = phi ptr [ %37, %.critedge.7 ], [ %212, %.critedge148 ]
  %.0115259 = phi ptr [ %36, %.critedge.7 ], [ %211, %.critedge148 ]
  %.not122 = icmp eq ptr %.0109262, null
  br i1 %.not122, label %205, label %204

204:                                              ; preds = %203
  call void @Longtail_DisposeAPI(ptr noundef nonnull %.0109262)
  br label %205

205:                                              ; preds = %204, %203
  %.not123 = icmp eq ptr %.0111261, null
  br i1 %.not123, label %207, label %206

206:                                              ; preds = %205
  call void @Longtail_DisposeAPI(ptr noundef nonnull %.0111261)
  br label %207

207:                                              ; preds = %206, %205
  %.not124 = icmp eq ptr %.0113260, null
  br i1 %.not124, label %209, label %208

208:                                              ; preds = %207
  call void @Longtail_DisposeAPI(ptr noundef nonnull %.0113260)
  br label %209

209:                                              ; preds = %208, %207
  %.not125 = icmp eq ptr %.0115259, null
  br i1 %.not125, label %.lr.ph, label %210

210:                                              ; preds = %209
  call void @Longtail_DisposeAPI(ptr noundef nonnull %.0115259)
  br label %.lr.ph

.lr.ph:                                           ; preds = %209, %210
  %211 = call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %35, ptr noundef %31, ptr noundef nonnull @.str.759, ptr noundef null, i32 noundef 0)
  %212 = call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %35, ptr noundef %31, ptr noundef nonnull @.str.760, ptr noundef null, i32 noundef 0)
  %213 = call noundef ptr @_Z21CaptureBlockStoreInitP17CaptureBlockStoreP22Longtail_BlockStoreAPI(ptr noundef nonnull %2, ptr noundef %212)
  %214 = call ptr @Longtail_CreateCacheBlockStoreAPI(ptr noundef %35, ptr noundef %211, ptr noundef %213)
  %215 = getelementptr inbounds i8, ptr %214, i64 56
  %216 = getelementptr inbounds i8, ptr %211, i64 56
  br label %217

217:                                              ; preds = %.lr.ph, %318
  %indvars.iv316 = phi i64 [ %indvars.iv, %.lr.ph ], [ %indvars.iv.next317, %318 ]
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %18) #6
  %218 = getelementptr inbounds [8 x ptr], ptr @__const._ZN56Longtail_TestCacheBlockStoreGetExistingContent__TestCase8TestBodyEv.version_names, i64 0, i64 %indvars.iv316
  %219 = load ptr, ptr %218, align 8, !tbaa !14
  %220 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %18, ptr noundef nonnull dereferenceable(1) @.str.775, ptr noundef %219) #6
  %221 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %222 = getelementptr inbounds i8, ptr %221, i64 96
  %223 = load i32, ptr %222, align 8
  %224 = and i32 %223, -16776961
  %225 = or disjoint i32 %224, 1746176
  store i32 %225, ptr %222, align 8
  %226 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %227 = getelementptr inbounds i8, ptr %226, i64 32
  store ptr @.str.3, ptr %227, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #6
  store i32 0, ptr %19, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #6
  %228 = call noundef i32 @_ZL14DownloadFolderP19Longtail_StorageAPIP16Longtail_HashAPIP19Longtail_ChunkerAPIP15Longtail_JobAPIP22Longtail_BlockStoreAPIPKcSA_jjj(ptr noundef %31, ptr noundef %33, ptr noundef %34, ptr noundef %35, ptr noundef %214, ptr noundef nonnull %18, ptr noundef nonnull @.str.681, i32 noundef 8192, i32 noundef 26973, i32 noundef 11)
  store i32 %228, ptr %20, align 4, !tbaa !13
  %229 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.777, ptr noundef null)
  %230 = icmp eq i32 %229, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  br i1 %230, label %231, label %232

231:                                              ; preds = %217
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %320

232:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #6
  call void @_ZN22TestAsyncFlushCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28) %21)
  %233 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %234 unwind label %.loopexit

234:                                              ; preds = %232
  %235 = getelementptr inbounds i8, ptr %233, i64 96
  %236 = load i32, ptr %235, align 8
  %237 = and i32 %236, -16776961
  %238 = or disjoint i32 %237, 1747200
  store i32 %238, ptr %235, align 8
  %239 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %240 unwind label %.loopexit

240:                                              ; preds = %234
  %241 = getelementptr inbounds i8, ptr %239, i64 32
  store ptr @.str.3, ptr %241, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %242 unwind label %.loopexit

242:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #6
  store i32 0, ptr %22, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #6
  %243 = load ptr, ptr %215, align 8, !tbaa !15
  %244 = invoke noundef i32 %243(ptr noundef nonnull %214, ptr noundef nonnull %21)
          to label %245 unwind label %249

245:                                              ; preds = %242
  store i32 %244, ptr %23, align 4, !tbaa !13
  %246 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 4 dereferenceable(4) %23, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.778, ptr noundef null)
          to label %247 unwind label %249

247:                                              ; preds = %245
  %248 = icmp eq i32 %246, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  br i1 %248, label %.invoke, label %251

.invoke:                                          ; preds = %247, %264
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %.critedge142 unwind label %.loopexit.split-lp

.loopexit:                                        ; preds = %232, %234, %240, %251, %252, %254, %260
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %285

.loopexit.split-lp:                               ; preds = %.invoke
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %285

249:                                              ; preds = %245, %242
  %250 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  br label %285

251:                                              ; preds = %247
  invoke void @_ZN22TestAsyncFlushComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28) %21)
          to label %252 unwind label %.loopexit

252:                                              ; preds = %251
  %253 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %254 unwind label %.loopexit

254:                                              ; preds = %252
  %255 = getelementptr inbounds i8, ptr %253, i64 96
  %256 = load i32, ptr %255, align 8
  %257 = and i32 %256, -16776961
  %258 = or disjoint i32 %257, 1747712
  store i32 %258, ptr %255, align 8
  %259 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %260 unwind label %.loopexit

260:                                              ; preds = %254
  %261 = getelementptr inbounds i8, ptr %259, i64 32
  store ptr @.str.3, ptr %261, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %262 unwind label %.loopexit

262:                                              ; preds = %260
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #6
  store i32 0, ptr %24, align 4, !tbaa !13
  %263 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef nonnull align 4 dereferenceable(4) %201, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.292, ptr noundef null)
          to label %264 unwind label %266

264:                                              ; preds = %262
  %265 = icmp eq i32 %263, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  br i1 %265, label %.invoke, label %268

266:                                              ; preds = %262
  %267 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  br label %285

268:                                              ; preds = %264
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #6
  call void @_ZN22TestAsyncFlushCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28) %25)
  %269 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %270 unwind label %.loopexit157

270:                                              ; preds = %268
  %271 = getelementptr inbounds i8, ptr %269, i64 96
  %272 = load i32, ptr %271, align 8
  %273 = and i32 %272, -16776961
  %274 = or disjoint i32 %273, 1748736
  store i32 %274, ptr %271, align 8
  %275 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %276 unwind label %.loopexit157

276:                                              ; preds = %270
  %277 = getelementptr inbounds i8, ptr %275, i64 32
  store ptr @.str.3, ptr %277, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %278 unwind label %.loopexit157

278:                                              ; preds = %276
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #6
  store i32 0, ptr %26, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #6
  %279 = load ptr, ptr %216, align 8, !tbaa !15
  %280 = invoke noundef i32 %279(ptr noundef nonnull %211, ptr noundef nonnull %25)
          to label %281 unwind label %286

281:                                              ; preds = %278
  store i32 %280, ptr %27, align 4, !tbaa !13
  %282 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %26, ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.779, ptr noundef null)
          to label %283 unwind label %286

283:                                              ; preds = %281
  %284 = icmp eq i32 %282, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  br i1 %284, label %.invoke372, label %288

.invoke372:                                       ; preds = %283, %301
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %.critedge144 unwind label %.loopexit.split-lp158

285:                                              ; preds = %.loopexit, %.loopexit.split-lp, %266, %249
  %.pn = phi { ptr, i32 } [ %267, %266 ], [ %250, %249 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #6
  br label %319

.loopexit157:                                     ; preds = %268, %270, %276, %288, %289, %291, %297
  %lpad.loopexit159 = landingpad { ptr, i32 }
          cleanup
  br label %317

.loopexit.split-lp158:                            ; preds = %.invoke372
  %lpad.loopexit.split-lp160 = landingpad { ptr, i32 }
          cleanup
  br label %317

286:                                              ; preds = %281, %278
  %287 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  br label %317

288:                                              ; preds = %283
  invoke void @_ZN22TestAsyncFlushComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28) %25)
          to label %289 unwind label %.loopexit157

289:                                              ; preds = %288
  %290 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %291 unwind label %.loopexit157

291:                                              ; preds = %289
  %292 = getelementptr inbounds i8, ptr %290, i64 96
  %293 = load i32, ptr %292, align 8
  %294 = and i32 %293, -16776961
  %295 = or disjoint i32 %294, 1749248
  store i32 %295, ptr %292, align 8
  %296 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %297 unwind label %.loopexit157

297:                                              ; preds = %291
  %298 = getelementptr inbounds i8, ptr %296, i64 32
  store ptr @.str.3, ptr %298, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %299 unwind label %.loopexit157

299:                                              ; preds = %297
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #6
  store i32 0, ptr %28, align 4, !tbaa !13
  %300 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef nonnull align 4 dereferenceable(4) %202, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.292, ptr noundef null)
          to label %301 unwind label %303

301:                                              ; preds = %299
  %302 = icmp eq i32 %300, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #6
  br i1 %302, label %.invoke372, label %305

303:                                              ; preds = %299
  %304 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #6
  br label %317

305:                                              ; preds = %301
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %25) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #6
  %306 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %307 = getelementptr inbounds i8, ptr %306, i64 96
  %308 = load i32, ptr %307, align 8
  %309 = and i32 %308, -16776961
  %310 = or disjoint i32 %309, 1750272
  store i32 %310, ptr %307, align 8
  %311 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %312 = getelementptr inbounds i8, ptr %311, i64 32
  store ptr @.str.3, ptr %312, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #6
  store i32 0, ptr %29, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #6
  %313 = call noundef i32 @_ZL15ValidateVersionP19Longtail_StorageAPIP16Longtail_HashAPIP19Longtail_ChunkerAPIP15Longtail_JobAPIPKcS8_j(ptr noundef %31, ptr noundef %33, ptr noundef %34, ptr noundef %35, ptr noundef %219, ptr noundef nonnull @.str.681, i32 noundef 8192)
  store i32 %313, ptr %30, align 4, !tbaa !13
  %314 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef nonnull align 4 dereferenceable(4) %30, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.780, ptr noundef null)
  %315 = icmp eq i32 %314, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #6
  br i1 %315, label %316, label %318

316:                                              ; preds = %305
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %320

317:                                              ; preds = %.loopexit157, %.loopexit.split-lp158, %303, %286
  %.pn127 = phi { ptr, i32 } [ %304, %303 ], [ %287, %286 ], [ %lpad.loopexit159, %.loopexit157 ], [ %lpad.loopexit.split-lp160, %.loopexit.split-lp158 ]
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %25) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #6
  br label %319

.critedge142:                                     ; preds = %.invoke
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #6
  br label %320

.critedge144:                                     ; preds = %.invoke372
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %25) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #6
  br label %320

318:                                              ; preds = %305
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %18) #6
  %indvars.iv.next317 = add nuw nsw i64 %indvars.iv316, 1
  %exitcond = icmp eq i64 %indvars.iv.next317, 8
  br i1 %exitcond, label %.critedge148, label %217, !llvm.loop !18

319:                                              ; preds = %317, %285
  %.pn127.pn = phi { ptr, i32 } [ %.pn127, %317 ], [ %.pn, %285 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %2) #6
  resume { ptr, i32 } %.pn127.pn

.critedge148:                                     ; preds = %318
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond320 = icmp eq i64 %indvars.iv.next, 8
  br i1 %exitcond320, label %321, label %203, !llvm.loop !20

320:                                              ; preds = %231, %316, %.critedge142, %.critedge144
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %18) #6
  br label %335

321:                                              ; preds = %.critedge148
  call void @Longtail_DisposeAPI(ptr noundef nonnull %214)
  %.not131 = icmp eq ptr %213, null
  br i1 %.not131, label %323, label %322

322:                                              ; preds = %321
  call void @Longtail_DisposeAPI(ptr noundef nonnull %213)
  br label %323

323:                                              ; preds = %322, %321
  %.not132 = icmp eq ptr %212, null
  br i1 %.not132, label %325, label %324

324:                                              ; preds = %323
  call void @Longtail_DisposeAPI(ptr noundef nonnull %212)
  br label %325

325:                                              ; preds = %324, %323
  call void @Longtail_DisposeAPI(ptr noundef nonnull %211)
  %.not134 = icmp eq ptr %35, null
  br i1 %.not134, label %327, label %326

326:                                              ; preds = %325
  call void @Longtail_DisposeAPI(ptr noundef nonnull %35)
  br label %327

327:                                              ; preds = %326, %325
  %.not135 = icmp eq ptr %34, null
  br i1 %.not135, label %329, label %328

328:                                              ; preds = %327
  call void @Longtail_DisposeAPI(ptr noundef nonnull %34)
  br label %329

329:                                              ; preds = %328, %327
  %.not136 = icmp eq ptr %33, null
  br i1 %.not136, label %331, label %330

330:                                              ; preds = %329
  call void @Longtail_DisposeAPI(ptr noundef nonnull %33)
  br label %331

331:                                              ; preds = %330, %329
  %.not137 = icmp eq ptr %32, null
  br i1 %.not137, label %333, label %332

332:                                              ; preds = %331
  call void @Longtail_DisposeAPI(ptr noundef nonnull %32)
  br label %333

333:                                              ; preds = %332, %331
  %.not138 = icmp eq ptr %31, null
  br i1 %.not138, label %335, label %334

334:                                              ; preds = %333
  call void @Longtail_DisposeAPI(ptr noundef nonnull %31)
  br label %335

335:                                              ; preds = %320, %123, %334, %333, %110, %98, %86, %74, %62, %50
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %2) #6
  ret void
}

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZL7CopyDirP19Longtail_StorageAPIPKcS2_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: nofree nounwind
declare noundef i32 @sprintf(ptr noalias nocapture noundef writeonly, ptr nocapture noundef readonly, ...) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZL12UploadFolderP19Longtail_StorageAPIP16Longtail_HashAPIP19Longtail_ChunkerAPIP15Longtail_JobAPIP22Longtail_BlockStoreAPIPKcSA_jjj(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZL14DownloadFolderP19Longtail_StorageAPIP16Longtail_HashAPIP19Longtail_ChunkerAPIP15Longtail_JobAPIP22Longtail_BlockStoreAPIPKcSA_jjj(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZL15ValidateVersionP19Longtail_StorageAPIP16Longtail_HashAPIP19Longtail_ChunkerAPIP15Longtail_JobAPIPKcS8_j(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 32}
!6 = !{!"_ZTS15jc_test_fixture", !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !10, i64 64, !11, i64 88, !11, i64 91, !11, i64 91, !11, i64 91, !11, i64 91, !11, i64 92, !11, i64 96, !11, i64 97, !11, i64 99, !11, i64 100}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTS13jc_test_stats", !11, i64 0, !11, i64 4, !11, i64 6, !11, i64 8, !11, i64 12, !12, i64 16}
!11 = !{!"int", !8, i64 0}
!12 = !{!"long", !8, i64 0}
!13 = !{!11, !11, i64 0}
!14 = !{!7, !7, i64 0}
!15 = !{!16, !7, i64 56}
!16 = !{!"_ZTS22Longtail_BlockStoreAPI", !17, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56}
!17 = !{!"_ZTS12Longtail_API", !7, i64 0}
!18 = distinct !{!18, !19}
!19 = !{!"llvm.loop.mustprogress"}
!20 = distinct !{!20, !19}


; Effective O3 passes: ConstraintEliminationPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass