; LLVM IR from DanEngelbrecht/longtail :: test/test.ll/ZN38Longtail_VersionLocalContent (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.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_VersionIndex = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, ptr }
%struct.Longtail_BlockStoreAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_API = type { ptr }
%struct.Longtail_JobAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr, 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 }
%struct.Longtail_HashAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_ChunkerAPI = type { %struct.Longtail_API, 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.694 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.695 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.696 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.697 = external hidden unnamed_addr constant [143 x i8], align 1
@.str.698 = external hidden unnamed_addr constant [162 x i8], align 1
@.str.699 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.700 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.701 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.702 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.703 = external hidden unnamed_addr constant [143 x i8], align 1
@.str.704 = external hidden unnamed_addr constant [162 x i8], align 1
@.str.705 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.706 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.707 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.708 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.709 = external hidden unnamed_addr constant [67 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

declare void @Longtail_Free(ptr 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

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

declare ptr @Longtail_CreateHPCDCChunkerAPI() #2

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

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

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

declare ptr @Longtail_CreateInMemStorageAPI() #2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN38Longtail_VersionLocalContent__TestCase8TestBodyEv(ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #3 align 2 {
  %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 i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca ptr, align 8
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca ptr, align 8
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca ptr, align 8
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %45 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #4
  %46 = call ptr @Longtail_CreateInMemStorageAPI()
  store ptr %46, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #4
  %47 = call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 8, i32 noundef 0)
  store ptr %47, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #4
  %48 = load ptr, ptr %4, align 8, !tbaa !5
  %49 = load ptr, ptr %3, align 8, !tbaa !5
  %50 = call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %48, ptr noundef %49, ptr noundef @.str.694, ptr noundef null, i32 noundef 0)
  store ptr %50, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #4
  %51 = call ptr @Longtail_CreateBlake3HashAPI()
  store ptr %51, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #4
  %52 = call ptr @Longtail_CreateHPCDCChunkerAPI()
  store ptr %52, ptr %7, align 8, !tbaa !5
  %53 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef %53, ptr noundef @.str.695, i32 noundef 56, i32 noundef 7, i32 noundef 5371)
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #4
  br label %54

54:                                               ; preds = %1
  %55 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %56 = getelementptr inbounds %struct.jc_test_fixture, ptr %55, i32 0, i32 11
  %57 = load i32, ptr %56, align 8
  %58 = and i32 %57, -16776961
  %59 = or i32 %58, 1413120
  store i32 %59, ptr %56, align 8
  %60 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %61 = getelementptr inbounds %struct.jc_test_fixture, ptr %60, i32 0, i32 4
  store ptr @.str.3, ptr %61, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #4
  store i32 0, ptr %9, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #4
  %62 = load ptr, ptr %3, align 8, !tbaa !5
  %63 = load ptr, ptr %4, align 8, !tbaa !5
  %64 = call i32 @Longtail_GetFilesRecursively2(ptr noundef %62, ptr noundef %63, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef @.str.695, ptr noundef %8)
  store i32 %64, ptr %10, align 4, !tbaa !14
  %65 = 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 @.str.46, ptr noundef @.str.696, ptr noundef null)
  %66 = icmp eq i32 %65, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #4
  br i1 %66, label %67, label %68

67:                                               ; preds = %54
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %372

68:                                               ; preds = %54
  br label %69

69:                                               ; preds = %68
  br label %70

70:                                               ; preds = %69
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #4
  br label %71

71:                                               ; preds = %70
  %72 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %73 = getelementptr inbounds %struct.jc_test_fixture, ptr %72, i32 0, i32 11
  %74 = load i32, ptr %73, align 8
  %75 = and i32 %74, -16776961
  %76 = or i32 %75, 1417216
  store i32 %76, ptr %73, align 8
  %77 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %78 = getelementptr inbounds %struct.jc_test_fixture, ptr %77, i32 0, i32 4
  store ptr @.str.3, ptr %78, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #4
  store i32 0, ptr %13, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #4
  %79 = load ptr, ptr %3, align 8, !tbaa !5
  %80 = load ptr, ptr %6, align 8, !tbaa !5
  %81 = load ptr, ptr %7, align 8, !tbaa !5
  %82 = load ptr, ptr %4, align 8, !tbaa !5
  %83 = load ptr, ptr %8, align 8, !tbaa !5
  %84 = call i32 @Longtail_CreateVersionIndex(ptr noundef %79, ptr noundef %80, ptr noundef %81, ptr noundef %82, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef @.str.695, ptr noundef %83, ptr noundef null, i32 noundef 128, i32 noundef 0, ptr noundef %12)
  store i32 %84, ptr %14, align 4, !tbaa !14
  %85 = 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.697, ptr noundef null)
  %86 = icmp eq i32 %85, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #4
  br i1 %86, label %87, label %88

87:                                               ; preds = %71
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %371

88:                                               ; preds = %71
  br label %89

89:                                               ; preds = %88
  br label %90

90:                                               ; preds = %89
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #4
  %91 = load ptr, ptr %5, align 8, !tbaa !5
  %92 = load ptr, ptr %12, align 8, !tbaa !5
  %93 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %92, i32 0, i32 4
  %94 = load ptr, ptr %93, align 8, !tbaa !15
  %95 = load i32, ptr %94, align 4, !tbaa !14
  %96 = load ptr, ptr %12, align 8, !tbaa !5
  %97 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %96, i32 0, i32 12
  %98 = load ptr, ptr %97, align 8, !tbaa !17
  %99 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %91, i32 noundef %95, ptr noundef %98, i32 noundef 0)
  store ptr %99, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #4
  br label %100

100:                                              ; preds = %90
  %101 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %102 = getelementptr inbounds %struct.jc_test_fixture, ptr %101, i32 0, i32 11
  %103 = load i32, ptr %102, align 8
  %104 = and i32 %103, -16776961
  %105 = or i32 %104, 1421056
  store i32 %105, ptr %102, align 8
  %106 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %107 = getelementptr inbounds %struct.jc_test_fixture, ptr %106, i32 0, i32 4
  store ptr @.str.3, ptr %107, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #4
  store i32 0, ptr %17, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #4
  %108 = load ptr, ptr %6, align 8, !tbaa !5
  %109 = load ptr, ptr %15, align 8, !tbaa !5
  %110 = load ptr, ptr %12, align 8, !tbaa !5
  %111 = call i32 @Longtail_CreateMissingContent(ptr noundef %108, ptr noundef %109, ptr noundef %110, i32 noundef 32, i32 noundef 3, ptr noundef %16)
  store i32 %111, ptr %18, align 4, !tbaa !14
  %112 = 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) %17, ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef @.str.46, ptr noundef @.str.698, ptr noundef null)
  %113 = icmp eq i32 %112, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #4
  br i1 %113, label %114, label %115

114:                                              ; preds = %100
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %370

115:                                              ; preds = %100
  br label %116

116:                                              ; preds = %115
  br label %117

117:                                              ; preds = %116
  br label %118

118:                                              ; preds = %117
  %119 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %120 = getelementptr inbounds %struct.jc_test_fixture, ptr %119, i32 0, i32 11
  %121 = load i32, ptr %120, align 8
  %122 = and i32 %121, -16776961
  %123 = or i32 %122, 1423872
  store i32 %123, ptr %120, align 8
  %124 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %125 = getelementptr inbounds %struct.jc_test_fixture, ptr %124, i32 0, i32 4
  store ptr @.str.3, ptr %125, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #4
  store i32 0, ptr %19, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #4
  %126 = load ptr, ptr %3, align 8, !tbaa !5
  %127 = load ptr, ptr %5, align 8, !tbaa !5
  %128 = load ptr, ptr %4, align 8, !tbaa !5
  %129 = load ptr, ptr %16, align 8, !tbaa !5
  %130 = load ptr, ptr %12, align 8, !tbaa !5
  %131 = call i32 @Longtail_WriteContent(ptr noundef %126, ptr noundef %127, ptr noundef %128, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %129, ptr noundef %130, ptr noundef @.str.695)
  store i32 %131, ptr %20, align 4, !tbaa !14
  %132 = 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 @.str.46, ptr noundef @.str.699, ptr noundef null)
  %133 = icmp eq i32 %132, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #4
  br i1 %133, label %134, label %135

134:                                              ; preds = %118
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %370

135:                                              ; preds = %118
  br label %136

136:                                              ; preds = %135
  br label %137

137:                                              ; preds = %136
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #4
  br label %138

138:                                              ; preds = %137
  %139 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %140 = getelementptr inbounds %struct.jc_test_fixture, ptr %139, i32 0, i32 11
  %141 = load i32, ptr %140, align 8
  %142 = and i32 %141, -16776961
  %143 = or i32 %142, 1425408
  store i32 %143, ptr %140, align 8
  %144 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %145 = getelementptr inbounds %struct.jc_test_fixture, ptr %144, i32 0, i32 4
  store ptr @.str.3, ptr %145, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #4
  store i32 0, ptr %22, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #4
  %146 = load ptr, ptr %16, align 8, !tbaa !5
  %147 = load ptr, ptr %15, align 8, !tbaa !5
  %148 = call i32 @Longtail_MergeStoreIndex(ptr noundef %146, ptr noundef %147, ptr noundef %21)
  store i32 %148, ptr %23, align 4, !tbaa !14
  %149 = 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.700, ptr noundef null)
  %150 = icmp eq i32 %149, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #4
  br i1 %150, label %151, label %152

151:                                              ; preds = %138
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %369

152:                                              ; preds = %138
  br label %153

153:                                              ; preds = %152
  br label %154

154:                                              ; preds = %153
  br label %155

155:                                              ; preds = %154
  %156 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %157 = getelementptr inbounds %struct.jc_test_fixture, ptr %156, i32 0, i32 11
  %158 = load i32, ptr %157, align 8
  %159 = and i32 %158, -16776961
  %160 = or i32 %159, 1426432
  store i32 %160, ptr %157, align 8
  %161 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %162 = getelementptr inbounds %struct.jc_test_fixture, ptr %161, i32 0, i32 4
  store ptr @.str.3, ptr %162, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #4
  store i32 0, ptr %24, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #4
  %163 = load ptr, ptr %21, align 8, !tbaa !5
  %164 = load ptr, ptr %12, align 8, !tbaa !5
  %165 = call i32 @Longtail_ValidateStore(ptr noundef %163, ptr noundef %164)
  store i32 %165, ptr %25, align 4, !tbaa !14
  %166 = 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.701, ptr noundef null)
  %167 = icmp eq i32 %166, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #4
  br i1 %167, label %168, label %169

168:                                              ; preds = %155
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %369

169:                                              ; preds = %155
  br label %170

170:                                              ; preds = %169
  br label %171

171:                                              ; preds = %170
  %172 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef %172, ptr noundef @.str.695, i32 noundef 31, i32 noundef 91, i32 noundef 19377)
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #4
  br label %173

173:                                              ; preds = %171
  %174 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %175 = getelementptr inbounds %struct.jc_test_fixture, ptr %174, i32 0, i32 11
  %176 = load i32, ptr %175, align 8
  %177 = and i32 %176, -16776961
  %178 = or i32 %177, 1429504
  store i32 %178, ptr %175, align 8
  %179 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %180 = getelementptr inbounds %struct.jc_test_fixture, ptr %179, i32 0, i32 4
  store ptr @.str.3, ptr %180, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #4
  store i32 0, ptr %27, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #4
  %181 = load ptr, ptr %3, align 8, !tbaa !5
  %182 = load ptr, ptr %4, align 8, !tbaa !5
  %183 = call i32 @Longtail_GetFilesRecursively2(ptr noundef %181, ptr noundef %182, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef @.str.695, ptr noundef %26)
  store i32 %183, ptr %28, align 4, !tbaa !14
  %184 = 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) %27, ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef @.str.46, ptr noundef @.str.702, ptr noundef null)
  %185 = icmp eq i32 %184, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #4
  br i1 %185, label %186, label %187

186:                                              ; preds = %173
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %368

187:                                              ; preds = %173
  br label %188

188:                                              ; preds = %187
  br label %189

189:                                              ; preds = %188
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #4
  br label %190

190:                                              ; preds = %189
  %191 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %192 = getelementptr inbounds %struct.jc_test_fixture, ptr %191, i32 0, i32 11
  %193 = load i32, ptr %192, align 8
  %194 = and i32 %193, -16776961
  %195 = or i32 %194, 1433600
  store i32 %195, ptr %192, align 8
  %196 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %197 = getelementptr inbounds %struct.jc_test_fixture, ptr %196, i32 0, i32 4
  store ptr @.str.3, ptr %197, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #4
  store i32 0, ptr %30, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #4
  %198 = load ptr, ptr %3, align 8, !tbaa !5
  %199 = load ptr, ptr %6, align 8, !tbaa !5
  %200 = load ptr, ptr %7, align 8, !tbaa !5
  %201 = load ptr, ptr %4, align 8, !tbaa !5
  %202 = load ptr, ptr %26, align 8, !tbaa !5
  %203 = call i32 @Longtail_CreateVersionIndex(ptr noundef %198, ptr noundef %199, ptr noundef %200, ptr noundef %201, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef @.str.695, ptr noundef %202, ptr noundef null, i32 noundef 128, i32 noundef 0, ptr noundef %29)
  store i32 %203, ptr %31, align 4, !tbaa !14
  %204 = 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) %30, ptr noundef nonnull align 4 dereferenceable(4) %31, ptr noundef @.str.46, ptr noundef @.str.703, ptr noundef null)
  %205 = icmp eq i32 %204, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #4
  br i1 %205, label %206, label %207

206:                                              ; preds = %190
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %367

207:                                              ; preds = %190
  br label %208

208:                                              ; preds = %207
  br label %209

209:                                              ; preds = %208
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #4
  %210 = load ptr, ptr %5, align 8, !tbaa !5
  %211 = load ptr, ptr %29, align 8, !tbaa !5
  %212 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %211, i32 0, i32 4
  %213 = load ptr, ptr %212, align 8, !tbaa !15
  %214 = load i32, ptr %213, align 4, !tbaa !14
  %215 = load ptr, ptr %29, align 8, !tbaa !5
  %216 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %215, i32 0, i32 12
  %217 = load ptr, ptr %216, align 8, !tbaa !17
  %218 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %210, i32 noundef %214, ptr noundef %217, i32 noundef 0)
  store ptr %218, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #4
  br label %219

219:                                              ; preds = %209
  %220 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %221 = getelementptr inbounds %struct.jc_test_fixture, ptr %220, i32 0, i32 11
  %222 = load i32, ptr %221, align 8
  %223 = and i32 %222, -16776961
  %224 = or i32 %223, 1437440
  store i32 %224, ptr %221, align 8
  %225 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %226 = getelementptr inbounds %struct.jc_test_fixture, ptr %225, i32 0, i32 4
  store ptr @.str.3, ptr %226, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #4
  store i32 0, ptr %34, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #4
  %227 = load ptr, ptr %6, align 8, !tbaa !5
  %228 = load ptr, ptr %32, align 8, !tbaa !5
  %229 = load ptr, ptr %29, align 8, !tbaa !5
  %230 = call i32 @Longtail_CreateMissingContent(ptr noundef %227, ptr noundef %228, ptr noundef %229, i32 noundef 32, i32 noundef 3, ptr noundef %33)
  store i32 %230, ptr %35, align 4, !tbaa !14
  %231 = 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.704, ptr noundef null)
  %232 = icmp eq i32 %231, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #4
  br i1 %232, label %233, label %234

233:                                              ; preds = %219
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %366

234:                                              ; preds = %219
  br label %235

235:                                              ; preds = %234
  br label %236

236:                                              ; preds = %235
  br label %237

237:                                              ; preds = %236
  %238 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %239 = getelementptr inbounds %struct.jc_test_fixture, ptr %238, i32 0, i32 11
  %240 = load i32, ptr %239, align 8
  %241 = and i32 %240, -16776961
  %242 = or i32 %241, 1440256
  store i32 %242, ptr %239, align 8
  %243 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %244 = getelementptr inbounds %struct.jc_test_fixture, ptr %243, i32 0, i32 4
  store ptr @.str.3, ptr %244, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #4
  store i32 0, ptr %36, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #4
  %245 = load ptr, ptr %3, align 8, !tbaa !5
  %246 = load ptr, ptr %5, align 8, !tbaa !5
  %247 = load ptr, ptr %4, align 8, !tbaa !5
  %248 = load ptr, ptr %33, align 8, !tbaa !5
  %249 = load ptr, ptr %29, align 8, !tbaa !5
  %250 = call i32 @Longtail_WriteContent(ptr noundef %245, ptr noundef %246, ptr noundef %247, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %248, ptr noundef %249, ptr noundef @.str.695)
  store i32 %250, ptr %37, align 4, !tbaa !14
  %251 = 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) %36, ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef @.str.46, ptr noundef @.str.705, ptr noundef null)
  %252 = icmp eq i32 %251, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #4
  br i1 %252, label %253, label %254

253:                                              ; preds = %237
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %366

254:                                              ; preds = %237
  br label %255

255:                                              ; preds = %254
  br label %256

256:                                              ; preds = %255
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #4
  br label %257

257:                                              ; preds = %256
  %258 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %259 = getelementptr inbounds %struct.jc_test_fixture, ptr %258, i32 0, i32 11
  %260 = load i32, ptr %259, align 8
  %261 = and i32 %260, -16776961
  %262 = or i32 %261, 1441792
  store i32 %262, ptr %259, align 8
  %263 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %264 = getelementptr inbounds %struct.jc_test_fixture, ptr %263, i32 0, i32 4
  store ptr @.str.3, ptr %264, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #4
  store i32 0, ptr %39, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #4
  %265 = load ptr, ptr %33, align 8, !tbaa !5
  %266 = load ptr, ptr %32, align 8, !tbaa !5
  %267 = call i32 @Longtail_MergeStoreIndex(ptr noundef %265, ptr noundef %266, ptr noundef %38)
  store i32 %267, ptr %40, align 4, !tbaa !14
  %268 = 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) %39, ptr noundef nonnull align 4 dereferenceable(4) %40, ptr noundef @.str.46, ptr noundef @.str.706, ptr noundef null)
  %269 = icmp eq i32 %268, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #4
  br i1 %269, label %270, label %271

270:                                              ; preds = %257
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %365

271:                                              ; preds = %257
  br label %272

272:                                              ; preds = %271
  br label %273

273:                                              ; preds = %272
  br label %274

274:                                              ; preds = %273
  %275 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %276 = getelementptr inbounds %struct.jc_test_fixture, ptr %275, i32 0, i32 11
  %277 = load i32, ptr %276, align 8
  %278 = and i32 %277, -16776961
  %279 = or i32 %278, 1442816
  store i32 %279, ptr %276, align 8
  %280 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %281 = getelementptr inbounds %struct.jc_test_fixture, ptr %280, i32 0, i32 4
  store ptr @.str.3, ptr %281, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #4
  store i32 0, ptr %41, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #4
  %282 = load ptr, ptr %38, align 8, !tbaa !5
  %283 = load ptr, ptr %29, align 8, !tbaa !5
  %284 = call i32 @Longtail_ValidateStore(ptr noundef %282, ptr noundef %283)
  store i32 %284, ptr %42, align 4, !tbaa !14
  %285 = 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) %41, ptr noundef nonnull align 4 dereferenceable(4) %42, ptr noundef @.str.46, ptr noundef @.str.707, ptr noundef null)
  %286 = icmp eq i32 %285, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #4
  br i1 %286, label %287, label %288

287:                                              ; preds = %274
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %365

288:                                              ; preds = %274
  br label %289

289:                                              ; preds = %288
  br label %290

290:                                              ; preds = %289
  br label %291

291:                                              ; preds = %290
  %292 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %293 = getelementptr inbounds %struct.jc_test_fixture, ptr %292, i32 0, i32 11
  %294 = load i32, ptr %293, align 8
  %295 = and i32 %294, -16776961
  %296 = or i32 %295, 1443584
  store i32 %296, ptr %293, align 8
  %297 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %298 = getelementptr inbounds %struct.jc_test_fixture, ptr %297, i32 0, i32 4
  store ptr @.str.3, ptr %298, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #4
  store i32 0, ptr %43, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #4
  %299 = load ptr, ptr %38, align 8, !tbaa !5
  %300 = load ptr, ptr %12, align 8, !tbaa !5
  %301 = call i32 @Longtail_ValidateStore(ptr noundef %299, ptr noundef %300)
  store i32 %301, ptr %44, align 4, !tbaa !14
  %302 = 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) %43, ptr noundef nonnull align 4 dereferenceable(4) %44, ptr noundef @.str.46, ptr noundef @.str.708, ptr noundef null)
  %303 = icmp eq i32 %302, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  br i1 %303, label %304, label %305

304:                                              ; preds = %291
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %365

305:                                              ; preds = %291
  br label %306

306:                                              ; preds = %305
  br label %307

307:                                              ; preds = %306
  br label %308

308:                                              ; preds = %307
  %309 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %310 = getelementptr inbounds %struct.jc_test_fixture, ptr %309, i32 0, i32 11
  %311 = load i32, ptr %310, align 8
  %312 = and i32 %311, -16776961
  %313 = or i32 %312, 1444352
  store i32 %313, ptr %310, align 8
  %314 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %315 = getelementptr inbounds %struct.jc_test_fixture, ptr %314, i32 0, i32 4
  store ptr @.str.3, ptr %315, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %316 = load ptr, ptr %21, align 8, !tbaa !5
  %317 = load ptr, ptr %29, align 8, !tbaa !5
  %318 = call i32 @Longtail_ValidateStore(ptr noundef %316, ptr noundef %317)
  %319 = call noundef i32 @_Z14jc_test_cmp_NEIiiEiT_T0_PKcS3_(i32 noundef 0, i32 noundef %318, ptr noundef @.str.46, ptr noundef @.str.709)
  %320 = icmp eq i32 %319, 0
  br i1 %320, label %321, label %322

321:                                              ; preds = %308
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %365

322:                                              ; preds = %308
  br label %323

323:                                              ; preds = %322
  br label %324

324:                                              ; preds = %323
  %325 = load ptr, ptr %38, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %325)
  %326 = load ptr, ptr %33, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %326)
  %327 = load ptr, ptr %32, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %327)
  %328 = load ptr, ptr %29, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %328)
  %329 = load ptr, ptr %26, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %329)
  %330 = load ptr, ptr %21, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %330)
  %331 = load ptr, ptr %16, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %331)
  %332 = load ptr, ptr %15, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %332)
  %333 = load ptr, ptr %12, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %333)
  %334 = load ptr, ptr %8, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %334)
  %335 = load ptr, ptr %5, align 8, !tbaa !5
  %336 = icmp ne ptr %335, null
  br i1 %336, label %337, label %340

337:                                              ; preds = %324
  %338 = load ptr, ptr %5, align 8, !tbaa !5
  %339 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %338, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %339)
  br label %340

340:                                              ; preds = %337, %324
  %341 = load ptr, ptr %4, align 8, !tbaa !5
  %342 = icmp ne ptr %341, null
  br i1 %342, label %343, label %346

343:                                              ; preds = %340
  %344 = load ptr, ptr %4, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %344, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %345)
  br label %346

346:                                              ; preds = %343, %340
  %347 = load ptr, ptr %3, align 8, !tbaa !5
  %348 = icmp ne ptr %347, null
  br i1 %348, label %349, label %352

349:                                              ; preds = %346
  %350 = load ptr, ptr %3, align 8, !tbaa !5
  %351 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %350, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %351)
  br label %352

352:                                              ; preds = %349, %346
  %353 = load ptr, ptr %6, align 8, !tbaa !5
  %354 = icmp ne ptr %353, null
  br i1 %354, label %355, label %358

355:                                              ; preds = %352
  %356 = load ptr, ptr %6, align 8, !tbaa !5
  %357 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %356, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %357)
  br label %358

358:                                              ; preds = %355, %352
  %359 = load ptr, ptr %7, align 8, !tbaa !5
  %360 = icmp ne ptr %359, null
  br i1 %360, label %361, label %364

361:                                              ; preds = %358
  %362 = load ptr, ptr %7, align 8, !tbaa !5
  %363 = getelementptr inbounds %struct.Longtail_ChunkerAPI, ptr %362, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %363)
  br label %364

364:                                              ; preds = %361, %358
  store i32 0, ptr %11, align 4
  br label %365

365:                                              ; preds = %364, %321, %304, %287, %270
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #4
  br label %366

366:                                              ; preds = %365, %253, %233
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #4
  br label %367

367:                                              ; preds = %366, %206
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #4
  br label %368

368:                                              ; preds = %367, %186
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #4
  br label %369

369:                                              ; preds = %368, %168, %151
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #4
  br label %370

370:                                              ; preds = %369, %134, %114
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #4
  br label %371

371:                                              ; preds = %370, %87
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #4
  br label %372

372:                                              ; preds = %371, %67
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #4
  %373 = load i32, ptr %11, align 4
  switch i32 %373, label %375 [
    i32 0, label %374
    i32 1, label %374
  ]

374:                                              ; preds = %372, %372
  ret void

375:                                              ; preds = %372
  unreachable
}

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

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

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 = { 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 = !{!16, !6, i64 32}
!16 = !{!"_ZTS21Longtail_VersionIndex", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !12, i64 128, !6, i64 136, !6, i64 144}
!17 = !{!16, !6, i64 96}


; 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"

@.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.694 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.695 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.696 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.697 = external hidden unnamed_addr constant [143 x i8], align 1
@.str.698 = external hidden unnamed_addr constant [162 x i8], align 1
@.str.699 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.700 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.701 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.702 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.703 = external hidden unnamed_addr constant [143 x i8], align 1
@.str.704 = external hidden unnamed_addr constant [162 x i8], align 1
@.str.705 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.706 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.707 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.708 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.709 = external hidden unnamed_addr constant [67 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

declare void @Longtail_Free(ptr 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 i32 @Longtail_MergeStoreIndex(ptr noundef, ptr noundef, ptr noundef) 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 i32 @Longtail_GetFilesRecursively2(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare ptr @Longtail_CreateInMemStorageAPI() local_unnamed_addr #2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN38Longtail_VersionLocalContent__TestCase8TestBodyEv(ptr nocapture noundef nonnull readnone align 8 dereferenceable(8) %0) unnamed_addr #3 align 2 {
  %2 = alloca ptr, align 8
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca ptr, align 8
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = tail call ptr @Longtail_CreateInMemStorageAPI()
  %37 = tail call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 8, i32 noundef 0)
  %38 = tail call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %37, ptr noundef %36, ptr noundef nonnull @.str.694, ptr noundef null, i32 noundef 0)
  %39 = tail call ptr @Longtail_CreateBlake3HashAPI()
  %40 = tail call ptr @Longtail_CreateHPCDCChunkerAPI()
  tail call void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef %36, ptr noundef nonnull @.str.695, i32 noundef 56, i32 noundef 7, i32 noundef 5371)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #4
  %41 = tail call noundef ptr @_ZL19jc_test_get_fixturev()
  %42 = getelementptr inbounds i8, ptr %41, i64 96
  %43 = load i32, ptr %42, align 8
  %44 = and i32 %43, -16776961
  %45 = or disjoint i32 %44, 1413120
  store i32 %45, ptr %42, align 8
  %46 = tail call noundef ptr @_ZL19jc_test_get_fixturev()
  %47 = getelementptr inbounds i8, ptr %46, i64 32
  store ptr @.str.3, ptr %47, align 8, !tbaa !5
  tail call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #4
  store i32 0, ptr %3, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #4
  %48 = call i32 @Longtail_GetFilesRecursively2(ptr noundef %36, ptr noundef %37, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef nonnull @.str.695, ptr noundef nonnull %2)
  store i32 %48, ptr %4, align 4, !tbaa !13
  %49 = 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.696, ptr noundef null)
  %50 = icmp eq i32 %49, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #4
  br i1 %50, label %51, label %52

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

52:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #4
  %53 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %54 = getelementptr inbounds i8, ptr %53, i64 96
  %55 = load i32, ptr %54, align 8
  %56 = and i32 %55, -16776961
  %57 = or disjoint i32 %56, 1417216
  store i32 %57, ptr %54, align 8
  %58 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %59 = getelementptr inbounds i8, ptr %58, i64 32
  store ptr @.str.3, ptr %59, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #4
  store i32 0, ptr %6, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #4
  %60 = load ptr, ptr %2, align 8, !tbaa !14
  %61 = call i32 @Longtail_CreateVersionIndex(ptr noundef %36, ptr noundef %39, ptr noundef %40, ptr noundef %37, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef nonnull @.str.695, ptr noundef %60, ptr noundef null, i32 noundef 128, i32 noundef 0, ptr noundef nonnull %5)
  store i32 %61, ptr %7, align 4, !tbaa !13
  %62 = 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) %6, ptr noundef nonnull align 4 dereferenceable(4) %7, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.697, ptr noundef null)
  %63 = icmp eq i32 %62, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #4
  br i1 %63, label %64, label %65

64:                                               ; preds = %52
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %264

65:                                               ; preds = %52
  %66 = load ptr, ptr %5, align 8, !tbaa !14
  %67 = getelementptr inbounds i8, ptr %66, i64 32
  %68 = load ptr, ptr %67, align 8, !tbaa !15
  %69 = load i32, ptr %68, align 4, !tbaa !13
  %70 = getelementptr inbounds i8, ptr %66, i64 96
  %71 = load ptr, ptr %70, align 8, !tbaa !17
  %72 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %38, i32 noundef %69, ptr noundef %71, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #4
  %73 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %74 = getelementptr inbounds i8, ptr %73, i64 96
  %75 = load i32, ptr %74, align 8
  %76 = and i32 %75, -16776961
  %77 = or disjoint i32 %76, 1421056
  store i32 %77, ptr %74, align 8
  %78 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %79 = getelementptr inbounds i8, ptr %78, i64 32
  store ptr @.str.3, ptr %79, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #4
  store i32 0, ptr %9, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #4
  %80 = load ptr, ptr %5, align 8, !tbaa !14
  %81 = call i32 @Longtail_CreateMissingContent(ptr noundef %39, ptr noundef %72, ptr noundef %80, i32 noundef 32, i32 noundef 3, ptr noundef nonnull %8)
  store i32 %81, ptr %10, align 4, !tbaa !13
  %82 = 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.698, ptr noundef null)
  %83 = icmp eq i32 %82, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #4
  br i1 %83, label %84, label %85

84:                                               ; preds = %65
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %263

85:                                               ; preds = %65
  %86 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %87 = getelementptr inbounds i8, ptr %86, i64 96
  %88 = load i32, ptr %87, align 8
  %89 = and i32 %88, -16776961
  %90 = or disjoint i32 %89, 1423872
  store i32 %90, ptr %87, align 8
  %91 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %92 = getelementptr inbounds i8, ptr %91, i64 32
  store ptr @.str.3, ptr %92, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #4
  store i32 0, ptr %11, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #4
  %93 = load ptr, ptr %8, align 8, !tbaa !14
  %94 = load ptr, ptr %5, align 8, !tbaa !14
  %95 = call i32 @Longtail_WriteContent(ptr noundef %36, ptr noundef %38, ptr noundef %37, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %93, ptr noundef %94, ptr noundef nonnull @.str.695)
  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.699, ptr noundef null)
  %97 = icmp eq i32 %96, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #4
  br i1 %97, label %98, label %99

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

99:                                               ; preds = %85
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #4
  %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, 1425408
  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 %14) #4
  store i32 0, ptr %14, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #4
  %107 = load ptr, ptr %8, align 8, !tbaa !14
  %108 = call i32 @Longtail_MergeStoreIndex(ptr noundef %107, ptr noundef %72, ptr noundef nonnull %13)
  store i32 %108, ptr %15, align 4, !tbaa !13
  %109 = 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) %14, ptr noundef nonnull align 4 dereferenceable(4) %15, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.700, ptr noundef null)
  %110 = icmp eq i32 %109, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #4
  br i1 %110, label %111, label %112

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

112:                                              ; preds = %99
  %113 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %114 = getelementptr inbounds i8, ptr %113, i64 96
  %115 = load i32, ptr %114, align 8
  %116 = and i32 %115, -16776961
  %117 = or disjoint i32 %116, 1426432
  store i32 %117, ptr %114, align 8
  %118 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %119 = getelementptr inbounds i8, ptr %118, i64 32
  store ptr @.str.3, ptr %119, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #4
  store i32 0, ptr %16, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #4
  %120 = load ptr, ptr %13, align 8, !tbaa !14
  %121 = load ptr, ptr %5, align 8, !tbaa !14
  %122 = call i32 @Longtail_ValidateStore(ptr noundef %120, ptr noundef %121)
  store i32 %122, ptr %17, align 4, !tbaa !13
  %123 = 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.701, ptr noundef null)
  %124 = icmp eq i32 %123, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #4
  br i1 %124, label %125, label %126

125:                                              ; preds = %112
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %262

126:                                              ; preds = %112
  call void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef %36, ptr noundef nonnull @.str.695, i32 noundef 31, i32 noundef 91, i32 noundef 19377)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #4
  %127 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %128 = getelementptr inbounds i8, ptr %127, i64 96
  %129 = load i32, ptr %128, align 8
  %130 = and i32 %129, -16776961
  %131 = or disjoint i32 %130, 1429504
  store i32 %131, ptr %128, align 8
  %132 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %133 = getelementptr inbounds i8, ptr %132, i64 32
  store ptr @.str.3, ptr %133, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #4
  store i32 0, ptr %19, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #4
  %134 = call i32 @Longtail_GetFilesRecursively2(ptr noundef %36, ptr noundef %37, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef nonnull @.str.695, ptr noundef nonnull %18)
  store i32 %134, ptr %20, align 4, !tbaa !13
  %135 = 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.702, ptr noundef null)
  %136 = icmp eq i32 %135, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #4
  br i1 %136, label %137, label %138

137:                                              ; preds = %126
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %261

138:                                              ; preds = %126
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #4
  %139 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %140 = getelementptr inbounds i8, ptr %139, i64 96
  %141 = load i32, ptr %140, align 8
  %142 = and i32 %141, -16776961
  %143 = or disjoint i32 %142, 1433600
  store i32 %143, ptr %140, align 8
  %144 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %145 = getelementptr inbounds i8, ptr %144, i64 32
  store ptr @.str.3, ptr %145, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #4
  store i32 0, ptr %22, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #4
  %146 = load ptr, ptr %18, align 8, !tbaa !14
  %147 = call i32 @Longtail_CreateVersionIndex(ptr noundef %36, ptr noundef %39, ptr noundef %40, ptr noundef %37, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef nonnull @.str.695, ptr noundef %146, ptr noundef null, i32 noundef 128, i32 noundef 0, ptr noundef nonnull %21)
  store i32 %147, ptr %23, align 4, !tbaa !13
  %148 = 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 nonnull @.str.46, ptr noundef nonnull @.str.703, ptr noundef null)
  %149 = icmp eq i32 %148, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #4
  br i1 %149, label %150, label %151

150:                                              ; preds = %138
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %260

151:                                              ; preds = %138
  %152 = load ptr, ptr %21, align 8, !tbaa !14
  %153 = getelementptr inbounds i8, ptr %152, i64 32
  %154 = load ptr, ptr %153, align 8, !tbaa !15
  %155 = load i32, ptr %154, align 4, !tbaa !13
  %156 = getelementptr inbounds i8, ptr %152, i64 96
  %157 = load ptr, ptr %156, align 8, !tbaa !17
  %158 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %38, i32 noundef %155, ptr noundef %157, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #4
  %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, 1437440
  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 %25) #4
  store i32 0, ptr %25, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #4
  %166 = load ptr, ptr %21, align 8, !tbaa !14
  %167 = call i32 @Longtail_CreateMissingContent(ptr noundef %39, ptr noundef %158, ptr noundef %166, i32 noundef 32, i32 noundef 3, ptr noundef nonnull %24)
  store i32 %167, ptr %26, align 4, !tbaa !13
  %168 = 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) %25, ptr noundef nonnull align 4 dereferenceable(4) %26, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.704, ptr noundef null)
  %169 = icmp eq i32 %168, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #4
  br i1 %169, label %170, label %171

170:                                              ; preds = %151
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %259

171:                                              ; preds = %151
  %172 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %173 = getelementptr inbounds i8, ptr %172, i64 96
  %174 = load i32, ptr %173, align 8
  %175 = and i32 %174, -16776961
  %176 = or disjoint i32 %175, 1440256
  store i32 %176, ptr %173, align 8
  %177 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %178 = getelementptr inbounds i8, ptr %177, i64 32
  store ptr @.str.3, ptr %178, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #4
  store i32 0, ptr %27, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #4
  %179 = load ptr, ptr %24, align 8, !tbaa !14
  %180 = load ptr, ptr %21, align 8, !tbaa !14
  %181 = call i32 @Longtail_WriteContent(ptr noundef %36, ptr noundef %38, ptr noundef %37, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %179, ptr noundef %180, ptr noundef nonnull @.str.695)
  store i32 %181, ptr %28, align 4, !tbaa !13
  %182 = 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) %27, ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.705, ptr noundef null)
  %183 = icmp eq i32 %182, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #4
  br i1 %183, label %184, label %185

184:                                              ; preds = %171
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %259

185:                                              ; preds = %171
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #4
  %186 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %187 = getelementptr inbounds i8, ptr %186, i64 96
  %188 = load i32, ptr %187, align 8
  %189 = and i32 %188, -16776961
  %190 = or disjoint i32 %189, 1441792
  store i32 %190, ptr %187, align 8
  %191 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %192 = getelementptr inbounds i8, ptr %191, i64 32
  store ptr @.str.3, ptr %192, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #4
  store i32 0, ptr %30, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #4
  %193 = load ptr, ptr %24, align 8, !tbaa !14
  %194 = call i32 @Longtail_MergeStoreIndex(ptr noundef %193, ptr noundef %158, ptr noundef nonnull %29)
  store i32 %194, ptr %31, align 4, !tbaa !13
  %195 = 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) %30, ptr noundef nonnull align 4 dereferenceable(4) %31, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.706, ptr noundef null)
  %196 = icmp eq i32 %195, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #4
  br i1 %196, label %197, label %198

197:                                              ; preds = %185
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %258

198:                                              ; preds = %185
  %199 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %200 = getelementptr inbounds i8, ptr %199, i64 96
  %201 = load i32, ptr %200, align 8
  %202 = and i32 %201, -16776961
  %203 = or disjoint i32 %202, 1442816
  store i32 %203, ptr %200, align 8
  %204 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %205 = getelementptr inbounds i8, ptr %204, i64 32
  store ptr @.str.3, ptr %205, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #4
  store i32 0, ptr %32, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #4
  %206 = load ptr, ptr %29, align 8, !tbaa !14
  %207 = load ptr, ptr %21, align 8, !tbaa !14
  %208 = call i32 @Longtail_ValidateStore(ptr noundef %206, ptr noundef %207)
  store i32 %208, ptr %33, align 4, !tbaa !13
  %209 = 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) %32, ptr noundef nonnull align 4 dereferenceable(4) %33, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.707, ptr noundef null)
  %210 = icmp eq i32 %209, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #4
  br i1 %210, label %211, label %212

211:                                              ; preds = %198
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %258

212:                                              ; preds = %198
  %213 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %214 = getelementptr inbounds i8, ptr %213, i64 96
  %215 = load i32, ptr %214, align 8
  %216 = and i32 %215, -16776961
  %217 = or disjoint i32 %216, 1443584
  store i32 %217, ptr %214, align 8
  %218 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %219 = getelementptr inbounds i8, ptr %218, i64 32
  store ptr @.str.3, ptr %219, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #4
  store i32 0, ptr %34, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #4
  %220 = load ptr, ptr %29, align 8, !tbaa !14
  %221 = load ptr, ptr %5, align 8, !tbaa !14
  %222 = call i32 @Longtail_ValidateStore(ptr noundef %220, ptr noundef %221)
  store i32 %222, ptr %35, align 4, !tbaa !13
  %223 = 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 nonnull @.str.46, ptr noundef nonnull @.str.708, ptr noundef null)
  %224 = icmp eq i32 %223, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #4
  br i1 %224, label %225, label %226

225:                                              ; preds = %212
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %258

226:                                              ; preds = %212
  %227 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %228 = getelementptr inbounds i8, ptr %227, i64 96
  %229 = load i32, ptr %228, align 8
  %230 = and i32 %229, -16776961
  %231 = or disjoint i32 %230, 1444352
  store i32 %231, ptr %228, align 8
  %232 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %233 = getelementptr inbounds i8, ptr %232, i64 32
  store ptr @.str.3, ptr %233, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %234 = load ptr, ptr %13, align 8, !tbaa !14
  %235 = load ptr, ptr %21, align 8, !tbaa !14
  %236 = call i32 @Longtail_ValidateStore(ptr noundef %234, ptr noundef %235)
  %237 = call noundef i32 @_Z14jc_test_cmp_NEIiiEiT_T0_PKcS3_(i32 noundef 0, i32 noundef %236, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.709)
  %238 = icmp eq i32 %237, 0
  br i1 %238, label %239, label %240

239:                                              ; preds = %226
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %258

240:                                              ; preds = %226
  %241 = load ptr, ptr %29, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %241)
  %242 = load ptr, ptr %24, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %242)
  call void @Longtail_Free(ptr noundef %158)
  %243 = load ptr, ptr %21, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %243)
  %244 = load ptr, ptr %18, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %244)
  %245 = load ptr, ptr %13, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %245)
  %246 = load ptr, ptr %8, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %246)
  call void @Longtail_Free(ptr noundef %72)
  %247 = load ptr, ptr %5, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %247)
  %248 = load ptr, ptr %2, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %248)
  %.not = icmp eq ptr %38, null
  br i1 %.not, label %250, label %249

249:                                              ; preds = %240
  call void @Longtail_DisposeAPI(ptr noundef nonnull %38)
  br label %250

250:                                              ; preds = %249, %240
  %.not47 = icmp eq ptr %37, null
  br i1 %.not47, label %252, label %251

251:                                              ; preds = %250
  call void @Longtail_DisposeAPI(ptr noundef nonnull %37)
  br label %252

252:                                              ; preds = %251, %250
  %.not48 = icmp eq ptr %36, null
  br i1 %.not48, label %254, label %253

253:                                              ; preds = %252
  call void @Longtail_DisposeAPI(ptr noundef nonnull %36)
  br label %254

254:                                              ; preds = %253, %252
  %.not49 = icmp eq ptr %39, null
  br i1 %.not49, label %256, label %255

255:                                              ; preds = %254
  call void @Longtail_DisposeAPI(ptr noundef nonnull %39)
  br label %256

256:                                              ; preds = %255, %254
  %.not50 = icmp eq ptr %40, null
  br i1 %.not50, label %258, label %257

257:                                              ; preds = %256
  call void @Longtail_DisposeAPI(ptr noundef nonnull %40)
  br label %258

258:                                              ; preds = %256, %257, %239, %225, %211, %197
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #4
  br label %259

259:                                              ; preds = %258, %184, %170
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #4
  br label %260

260:                                              ; preds = %259, %150
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #4
  br label %261

261:                                              ; preds = %260, %137
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #4
  br label %262

262:                                              ; preds = %261, %125, %111
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #4
  br label %263

263:                                              ; preds = %262, %98, %84
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #4
  br label %264

264:                                              ; preds = %263, %64
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #4
  br label %265

265:                                              ; preds = %264, %51
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #4
  ret void
}

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

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

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 = { 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 32}
!16 = !{!"_ZTS21Longtail_VersionIndex", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88, !7, i64 96, !7, i64 104, !7, i64 112, !7, i64 120, !11, i64 128, !7, i64 136, !7, i64 144}
!17 = !{!16, !7, i64 96}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass